स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म [एक गहरा गोता जांच]

इस गाइड में, हम वहां से कुछ स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म से गुजरने जा रहे हैं और देखें कि उन्हें अलग क्या सेट करता है। उनमें से कुछ पहले से ही काम कर रहे हैं, जबकि कुछ विकास के अधीन हैं.

हम स्मार्ट अनुबंध के युग में रह रहे हैं। जबकि बिटकॉइन ने हमें दिखाया होगा कि एक भुगतान प्रणाली विकेंद्रीकृत सहकर्मी से सहकर्मी के वातावरण में मौजूद हो सकती है। हालाँकि, यह इथेरियम के आगमन के साथ था, कि बाढ़ अच्छी तरह से और वास्तव में खुल गई। दूसरी पीढ़ी के ब्लॉकचेन के युग में इथेरियम की शुरुआत हुई और लोगों ने आखिरकार इसकी असली क्षमता को देखा Dapps और स्मार्ट अनुबंधरों.

Contents

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

इससे पहले कि हम ऐसा करें, अपने आप से एक प्रश्न पूछें.

वास्तव में स्मार्ट अनुबंध क्या हैं?

स्मार्ट अनुबंध स्वचालित अनुबंध हैं। वे अपने कोड पर लिखे गए विशिष्ट निर्देशों के साथ आत्म-निष्पादन कर रहे हैं जो कुछ शर्तों के होने पर निष्पादित हो जाते हैं.

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

आप यहां हमारे इन-गाइड गाइड में स्मार्ट अनुबंधों के बारे में अधिक जान सकते हैं.

तो, हम अपने स्मार्ट कॉन्ट्रैक्ट में क्या वांछनीय गुण चाहते हैं?

ब्लॉकचेन पर चलने वाली किसी भी चीज को अपरिवर्तनीय होना चाहिए और उसकी अखंडता से समझौता किए बिना कई नोड्स के माध्यम से चलने की क्षमता होनी चाहिए। जिसके परिणामस्वरूप, स्मार्ट अनुबंध की कार्यक्षमता के लिए तीन चीजें होनी चाहिए:

  • नियतात्मक.
  • जल्द.
  • पृथक.

फ़ीचर # 1: निर्धारक

एक प्रोग्राम नियतात्मक होता है यदि वह हर बार दिए गए इनपुट को समान आउटपुट देता है। जैसे। यदि 3 + 1 = 4 तो 3 + 1 हमेशा 4 होगा (समान आधार मानकर)। इसलिए जब कोई प्रोग्राम एक ही आउटपुट को विभिन्न कंप्यूटरों में इनपुट के समान सेट देता है, तो प्रोग्राम को नियतात्मक कहा जाता है.

ऐसे कई क्षण होते हैं जब कोई कार्यक्रम निर्धारक तरीके से कार्य कर सकता है:

  • संयुक्त राष्ट्र के नियतात्मक प्रणाली कार्यों को कॉल करना: जब कोई प्रोग्रामर अपने प्रोग्राम में अन-डिसिनेटिव फंक्शन कहता है.
  • अन-निर्धारक डेटा संसाधन: यदि कोई प्रोग्राम रनटाइम के दौरान डेटा प्राप्त करता है और वह डेटा स्रोत संयुक्त राष्ट्र-निर्धारक है तो कार्यक्रम संयुक्त राष्ट्र-निर्धारक बन जाता है। जैसे। मान लीजिए कि एक प्रोग्राम जो किसी विशेष क्वेरी के शीर्ष 10 Google खोजों को प्राप्त करता है। सूची में बदलाव हो सकता है.
  • गतिशील कॉल: जब कोई प्रोग्राम दूसरे प्रोग्राम को कॉल करता है तो उसे डायनामिक कॉलिंग कहा जाता है। चूंकि कॉल लक्ष्य को निष्पादन के दौरान ही निर्धारित किया जाता है, इसलिए यह प्रकृति में संयुक्त राष्ट्र-निर्धारक है.

फ़ीचर # 2: टर्मिनेबल

गणितीय तर्क में, हमारे पास एक समस्या है जिसे “समस्या निवारण” कहा जाता है। मूल रूप से, यह बताता है कि किसी दिए गए कार्यक्रम को समय सीमा के भीतर निष्पादित किया जा सकता है या नहीं, यह जानने में असमर्थता है। 1936 में, एलन ट्यूरिंग ने कैंटर की विकर्ण समस्या का उपयोग करते हुए कटौती की, यह जानने का कोई तरीका नहीं है कि दिया गया कार्यक्रम समय सीमा में समाप्त हो सकता है या नहीं।.

यह स्पष्ट रूप से स्मार्ट अनुबंधों के साथ एक समस्या है क्योंकि, परिभाषा के अनुसार अनुबंध, एक निश्चित समय सीमा में समाप्ति के लिए सक्षम होना चाहिए। यह सुनिश्चित करने के लिए कुछ उपाय किए गए हैं कि अनुबंध को “मार” करने का एक तरीका है और एक अंतहीन लूप में प्रवेश न करें जो संसाधनों को सूखा देगा:

  • ट्यूरिंग अपूर्णता: एक ट्यूरिंग अपूर्ण अपूर्ण में सीमित कार्यक्षमता होगी और जंप और / या लूप बनाने में सक्षम नहीं होगा। इसलिए वे एक अंतहीन लूप में प्रवेश नहीं कर सकते हैं.
  • चरण और शुल्क मीटर: एक प्रोग्राम केवल उस संख्या “कदम” पर नज़र रख सकता है जो उसने लिया है, यानी उसके द्वारा निष्पादित किए गए निर्देशों की संख्या और फिर एक विशेष चरण की गणना निष्पादित होने के बाद समाप्त हो जाती है। एक अन्य विधि शुल्क मीटर है। यहां अनुबंधों को पूर्व-भुगतान शुल्क के साथ निष्पादित किया जाता है। प्रत्येक अनुदेश निष्पादन के लिए एक विशेष शुल्क शुल्क की आवश्यकता होती है। यदि खर्च किया गया शुल्क प्री-पेड शुल्क से अधिक है तो अनुबंध समाप्त हो जाता है.
  • घड़ी: यहां एक पूर्व-निर्धारित टाइमर रखा गया है। यदि अनुबंध निष्पादन समय-सीमा से अधिक हो जाता है तो बाहरी रूप से निरस्त कर दिया जाता है.

फ़ीचर # 3: पृथक

एक ब्लॉकचेन में, कोई भी और सभी एक स्मार्ट अनुबंध अपलोड कर सकते हैं। हालाँकि, इसके कारण अनुबंध में जानबूझकर और अनजाने में वायरस और बग हो सकते हैं.

यदि अनुबंध को अलग नहीं किया जाता है, तो यह पूरी प्रणाली को बाधित कर सकता है। इसलिए, पूरे पारिस्थितिकी तंत्र को किसी भी नकारात्मक प्रभाव से बचाने के लिए एक अनुबंध को सैंडबॉक्स में अलग रखना महत्वपूर्ण है.

अब जब हमने इन विशेषताओं को देखा है, तो यह जानना महत्वपूर्ण है कि इन्हें कैसे निष्पादित किया जाता है। आमतौर पर, स्मार्ट कॉन्ट्रैक्ट दो प्रणालियों में से एक का उपयोग करके चलाया जाता है:

  • आभाषी दुनिया: एथेरियम और नियो इसका उपयोग करते हैं
  • डाक में काम करनेवाला मज़दूर: कपड़ा इसका उपयोग करता है.

आइए इन दोनों की तुलना करें और निर्धारित करें कि कौन बेहतर पारिस्थितिकी तंत्र के लिए बनाता है। सादगी के लिए, हम Ethereum (वर्चुअल मशीन) की तुलना फैब्रिक (डोकर) से करने जा रहे हैं.

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

इसलिए, जैसा कि देखा जा सकता है, वर्चुअल मशीनें स्मार्ट कॉन्ट्रैक्ट्स के लिए बेहतर निर्धारक, समाप्ति योग्य और पृथक वातावरण प्रदान करती हैं.

ठीक है, तो अब हम जानते हैं कि स्मार्ट कॉन्ट्रैक्ट क्या हैं और यह तथ्य कि वर्चुअल मशीन स्मार्ट कॉन्ट्रैक्ट के लिए बेहतर प्लेटफॉर्म हैं। आइए नजर डालते हैं कि वास्तव में डैप को कुशलतापूर्वक चलाने के लिए क्या करना चाहिए.

क्या Dapps की आवश्यकता है?

या, इसे और अधिक विशेष रूप से फ्रेम करने के लिए, डीएपीपी को सफल होने और मुख्यधारा के दर्शकों के साथ हिट करने की क्या आवश्यकता है? इसकी पूर्ण न्यूनतम आवश्यकताएं क्या हैं?

लाखों उपयोगकर्ताओं के लिए समर्थन

यह उपयोग करने के लिए लाखों उपयोगकर्ताओं के लिए पर्याप्त स्केलेबल होना चाहिए। यह डीएपीपी के लिए विशेष रूप से सच है जो मुख्यधारा की स्वीकृति की तलाश में हैं.

नि: शुल्क उपयोग

मंच को देवों को डैप बनाने में सक्षम बनाना चाहिए जो अपने उपयोगकर्ताओं के लिए उपयोग करने के लिए स्वतंत्र हैं। किसी भी उपयोगकर्ता को एक Dapp के लाभों को प्राप्त करने के लिए मंच का भुगतान नहीं करना चाहिए.

आसानी से अपग्रेड करने योग्य

प्लेटफ़ॉर्म को डेवलपर्स को अपनी इच्छानुसार डैप को अपग्रेड करने की आज़ादी देनी चाहिए। इसके अलावा, अगर कुछ बग डैप को प्रभावित करते हैं, तो देवताओं को प्लेटफॉर्म को प्रभावित किए बिना डीएपीपी को ठीक करने में सक्षम होना चाहिए.

कम विलंबता

एक डीएपीपी को यथासंभव सुचारू रूप से और सबसे कम संभव विलंबता के साथ चलना चाहिए.

समानांतर प्रदर्शन

एक प्लेटफॉर्म को अपने डैप को कार्यभार वितरित करने और समय बचाने के लिए समानांतर रूप से संसाधित करने की अनुमति देनी चाहिए.

अनुक्रमिक प्रदर्शन

हालांकि, एक ब्लॉकचेन पर सभी कार्यों को उस तरह से नहीं किया जाना चाहिए। लेनदेन निष्पादन के बारे में सोचें। एकाधिक लेन-देन को समानांतर में निष्पादित नहीं किया जा सकता है; दोहरे खर्च जैसी त्रुटियों से बचने के लिए इसे एक बार में करने की आवश्यकता है.

तो, DAPP के निर्माण की बात आते ही हमारे पास कौन से प्लेटफ़ॉर्म उपलब्ध हैं?

BitShares और Graphene के पास अच्छा प्रवाह है, लेकिन निश्चित रूप से स्मार्ट अनुबंध उपयुक्त नहीं हैं.

इथेरियम स्पष्ट रूप से बाजार में सबसे स्पष्ट विकल्प है। इसमें अद्भुत स्मार्ट अनुबंध क्षमताएं हैं लेकिन कम लेनदेन की गति एक प्रमुख मुद्दा है। साथ ही, गैस की कीमत भी समस्याग्रस्त हो सकती है.

ठीक है, इसलिए अब हम जानते हैं कि डैप्स को क्या चाहिए, कुछ स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म के माध्यम से जाने दें.

हम देख रहे होंगे:

  • एथेरियम
  • EOS
  • तारकीय
  • कार्डानो
  • नव
  • हाइपरलेगर फैब्रिक

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

एथेरियम

सबसे पहले और सबसे महत्वपूर्ण, हमारे पास इथेरियम है, जिसने इसे शुरू किया.

यह है कि Ethereum की वेबसाइट इसे कैसे परिभाषित करती है:

“Ethereum एक विकेन्द्रीकृत मंच है जो स्मार्ट कॉन्ट्रैक्ट्स चलाता है: एप्लिकेशन जो डाउनटाइम, सेंसरशिप, धोखाधड़ी या किसी भी संभावना के बिना प्रोग्राम के रूप में चलते हैं। तृतीय पक्ष दखल अंदाजी। ये ऐप एक कस्टम निर्मित ब्लॉकचेन पर चलते हैं, जो एक बहुत ही शक्तिशाली साझा वैश्विक बुनियादी ढांचा है जो मूल्य को स्थानांतरित कर सकता है और संपत्ति के स्वामित्व का प्रतिनिधित्व कर सकता है। ”

लेकिन सरल शब्दों में, Ethereum भविष्य का अंतिम सॉफ्टवेयर प्लेटफॉर्म बनने की योजना बना रहा है। यदि भविष्य विकेंद्रीकृत है और डैप्स आम हो गए हैं, तो एथेरियम को इसके सामने और केंद्र होना चाहिए.

Ethereum Virtual Machine या EVM एक आभासी मशीन है जिसमें Ethereum में सभी स्मार्ट कॉन्ट्रैक्ट कार्य करते हैं। यह एक साधारण लेकिन शक्तिशाली ट्यूरिंग कम्प्लीट 256-बिट वर्चुअल मशीन है। ट्यूरिंग कम्प्लीट का मतलब है कि संसाधनों और मेमोरी को देखते हुए, ईवीएम में निष्पादित कोई भी कार्यक्रम किसी भी समस्या को हल कर सकता है.

EVM में स्मार्ट कॉन्ट्रैक्ट को कोड करने के लिए, किसी को प्रोग्रामिंग लैंग्वेज सॉलिडिटी सीखने की जरूरत है.

सॉलिडिटी एक उद्देश्यपूर्ण रूप से पतला है, एक सिंटैक्स के साथ शिथिल-टाइप भाषा जो ईसीएमएस्क्रिप्ट (जावास्क्रिप्ट) के समान है। Ethereum Design Rationale दस्तावेज़ से याद रखने के लिए कुछ प्रमुख बिंदु हैं, अर्थात् हम 32-बाइट अनुदेश शब्द आकार के साथ स्टैक-एंड-मेमोरी मॉडल के भीतर काम कर रहे हैं, EVM (एथेरियम वर्चुअल मशीन) हमें प्रोग्राम तक पहुंच प्रदान करता है। स्टैक ”जो एक रजिस्टर स्पेस की तरह है जहाँ हम प्रोग्राम काउंटर लूप / जम्प (अनुक्रमिक प्रोग्राम कंट्रोल के लिए), एक एक्सपेंडेबल अस्थायी“ मेमोरी ”और अधिक स्थायी“ स्टोरेज ”बनाने के लिए मेमोरी एड्रेस भी चिपका सकते हैं जो वास्तव में स्थायी में लिखा गया है ब्लॉकचैन, और सबसे महत्वपूर्ण बात, ईवीएम को स्मार्ट कॉन्ट्रैक्ट्स के भीतर कुल नियतत्ववाद की आवश्यकता होती है.

इसलिए, इससे पहले कि हम जारी रखें, एक बुनियादी सॉलिडिटी अनुबंध उदाहरण देखें। (कोड्स जीथब से लिया गया था).

चलो एक सरलता से चलें जबकि एकान्तता में पाश:

अनुबंध BasicIterator

{{

पता बनाने वाला; // आरक्षित करें "पता"-टाइप स्पॉट

uint8 [10] पूर्णांक; // एक सरणी में 10 8-बिट अहस्ताक्षरित पूर्णांक के लिए भंडारण का एक हिस्सा सुरक्षित रखें

फंक्शन बेसिकेटर ()

{{

निर्माता = msg.sender;

uint8 x = 0;

// धारा 1: मूल्यों को असाइन करना

जबकि (एक्स < पूर्णांक। गति) {

पूर्णांक [x] = x;

x ++;

}}

फ़ंक्शन गेटसम () निरंतर रिटर्न (यूंट) {

uint8 योग = 0;

uint8 x = 0;

// धारा 2: एक सरणी में पूर्णांकों को जोड़ना.

जबकि (एक्स < पूर्णांक। गति) {

sum = sum + integers [x];

x ++;

}

वापसी राशि;

}

// धारा 3: अनुबंध को मारना

समारोह मार ()

{{

अगर (msg.sender == निर्माता)

{{

आत्महत्या (निर्माता);

}

}

}

तो, कोड का विश्लेषण करते हैं। आसानी से समझने के लिए, हमने कोड को 3 खंडों में विभाजित किया है.

खंड 1: मान असाइन करना

पहले चरण में, हम “पूर्णांक” नामक एक सरणी को भर रहे हैं जो 10 8-बिट अहस्ताक्षरित पूर्णांक में लेता है। जिस तरह से हम कर रहे हैं वह थोड़ी देर लूप के माध्यम से है। चलो देखते हैं कि लूप के अंदर क्या हो रहा है.

जबकि (एक्स < पूर्णांक। गति) {

पूर्णांक [x] = x;

x ++;

}

याद रखें, हमने पहले ही पूर्णांक x को “0” का मान दिया है। जबकि लूप 0 से पूर्णांक तक जाता है। Integers.length एक फ़ंक्शन है जो सरणी की अधिकतम क्षमता लौटाता है। इसलिए, अगर हमने तय किया है कि एक सरणी में 10 पूर्णांक होंगे, arrayname.length 10 का मान लौटाएगा। ऊपर दिए गए लूप में, x का मान 0 – 9 से जाता है (<10) और पूर्णांक सरणी के लिए भी खुद का मूल्य प्रदान करता है। तो, लूप के अंत में, पूर्णांक में निम्नलिखित मान होंगे:

0,1,2,3,4,5,6,7,8,9.

खंड 2: सरणी सामग्री को जोड़ना

GetSum () फ़ंक्शन के अंदर हम ऐरे की सामग्री को जोड़ने जा रहे हैं। जिस तरह से करने जा रहे हैं वह ऊपर के रूप में लूप दोहराते हुए और सरणी की सामग्री को जोड़ने के लिए चर “योग” का उपयोग करके है।.

धारा 3: अनुबंध को मारना

यह फ़ंक्शन अनुबंध को मारता है और अनुबंध के शेष धन को अनुबंध निर्माता को वापस भेजता है.

गैस क्या है?

“गैस” एथेरियम पारिस्थितिकी तंत्र का जीवन-प्रवाह है, इसे लगाने का कोई अन्य तरीका नहीं है। गैस एक ऐसी इकाई है जो कम्प्यूटेशनल प्रयास की मात्रा को मापती है जिसे कुछ निश्चित कार्यों को निष्पादित करने में लगेगा.

इथेरियम में भाग लेने वाला हर एक ऑपरेशन, यह एक साधारण लेनदेन, या एक स्मार्ट अनुबंध, या यहां तक ​​कि एक ICO गैस की कुछ मात्रा लेता है। गैस वह है जो एक ऑपरेशन को निष्पादित करने के लिए नेटवर्क को भुगतान की जाने वाली फीस की संख्या की गणना करने के लिए उपयोग किया जाता है.

जब कोई स्मार्ट कॉन्ट्रैक्ट जमा करता है, तो उसके पास पूर्व-निर्धारित गैस मूल्य होता है। जब अनुबंध को निष्पादित किया जाता है, तो अनुबंध के प्रत्येक चरण को निष्पादित करने के लिए एक निश्चित मात्रा में गैस की आवश्यकता होती है.

इससे दो परिदृश्य बन सकते हैं:

  1. आवश्यक गैस सीमा निर्धारित सीमा से अधिक है। यदि ऐसा है तो अनुबंध की स्थिति वापस अपनी मूल स्थिति में वापस आ जाती है और सभी गैस का उपयोग किया जाता है.

        2. आवश्यक गैस सीमा निर्धारित सीमा से कम है। यदि ऐसा है, तो अनुबंध पूरा हो गया है और बचे हुए गैस को अनुबंधकर्ता को दे दिया गया है.

जबकि Ethereum ने स्मार्ट कॉन्ट्रैक्ट के लिए मार्ग प्रशस्त किया होगा। यह कुछ स्केलेबिलिटी मुद्दों का सामना करता है। हालांकि, प्लाज्मा, रेडेन, शार्डिंग आदि जैसे नवाचार इस मुद्दे को हल कर सकते हैं.

EOS

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

ईओएस एक विकेन्द्रीकृत ऑपरेटिंग सिस्टम बनने का लक्ष्य लेकर चल रहा है जो औद्योगिक पैमाने के विकेंद्रीकृत अनुप्रयोगों का समर्थन कर सकता है.

यह बहुत आश्चर्यजनक लगता है, लेकिन वास्तव में जनता की कल्पना पर कब्जा कर लिया है निम्नलिखित दो दावों है:

  • वे लेनदेन शुल्क को पूरी तरह से हटाने की योजना बना रहे हैं.
  • वे प्रति सेकंड लाखों लेनदेन करने की क्षमता का दावा कर रहे हैं.

इन दो विशेषताओं के कारण डैप डेवलपर्स को ईओएस के साथ मोहित किया जाता है। आइए देखें कि ईओएस इन दोनों चीजों को कैसे प्राप्त करता है.

फीस निकालना

ईओएस एक स्वामित्व मॉडल पर काम करता है जिसके तहत उपयोगकर्ता स्वयं होते हैं और प्रत्येक लेनदेन के लिए भुगतान करने के बजाय अपनी हिस्सेदारी के आनुपातिक संसाधनों का उपयोग करने के हकदार होते हैं। तो, संक्षेप में, यदि आप ईओएस के एन टोकन रखते हैं तो आप एन * के लेनदेन के हकदार हैं। यह, संक्षेप में, लेनदेन शुल्क को समाप्त करता है.

Ethereum पर एप्लिकेशन चलाने और होस्ट करने की लागत एक डेवलपर के लिए अधिक हो सकती है, जो ब्लॉकचेन पर अपने एप्लिकेशन का परीक्षण करना चाहता है। विकास के शुरुआती चरणों में शामिल गैस की कीमत नए डेवलपर्स को बंद करने के लिए पर्याप्त हो सकती है.

Ethereum और EOS संचालित करने के तरीके में मूलभूत अंतर यह है कि Ethereum डेवलपर्स के लिए अपनी कम्प्यूटेशनल पावर को किराए पर लेता है, EOS अपने संसाधनों का स्वामित्व देता है। तो, संक्षेप में, यदि आपके पास EOS में हिस्सेदारी का 1/1000 वां हिस्सा है, तो आपके पास EOS में कुल कम्प्यूटेशनल शक्ति और संसाधनों का 1/1000 वां हिस्सा होगा।.

जैसा कि उनके लेख में आईको-समीक्षाएं बताती हैं:

“ईओएस का स्वामित्व मॉडल डीएपीपी डेवलपर्स को अनुमानित होस्टिंग लागत प्रदान करता है, जिसके लिए उन्हें केवल एक निश्चित प्रतिशत या हिस्सेदारी का स्तर बनाए रखने की आवश्यकता होती है, और फ्रीमियम एप्लिकेशन बनाना संभव बनाता है। इसके अलावा, चूंकि ईओएस टोकन धारक अन्य डेवलपर्स के लिए संसाधनों के अपने हिस्से को किराए पर लेने / सौंपने में सक्षम होंगे, इसलिए स्वामित्व मॉडल बैंडविड्थ और भंडारण की आपूर्ति और मांग के लिए ईओएस टोकन का मूल्य रखता है। “

बढ़ी हुई स्केलेबिलिटी

EOS को अपने DPOS सर्वसम्मति तंत्र से इसकी मापनीयता मिलती है। डीपीओएस का लक्ष्य निर्धारित हिस्सेदारी है और यह इस प्रकार काम करता है:

सबसे पहले, जो कोई ईओएस सॉफ्टवेयर में एकीकृत ब्लॉकचेन पर टोकन रखता है, वह एक सतत अनुमोदन मतदान प्रणाली के माध्यम से ब्लॉक उत्पादकों का चयन कर सकता है। ब्लॉक निर्माता चुनाव में कोई भी भाग ले सकता है और उन्हें सभी अन्य उत्पादकों के सापेक्ष प्राप्त कुल मतों के अनुपात में ब्लॉक बनाने का अवसर दिया जाएगा।.

यह कैसे काम करता है?

  • ब्लॉक 21 के दौर में उत्पादित होते हैं.
  • प्रत्येक दौर की शुरुआत में 21 ब्लॉक निर्माता चुने जाते हैं। शीर्ष 20 को स्वचालित रूप से चुना जाता है जबकि 21 वें को दूसरे उत्पादकों के सापेक्ष उनके वोटों की संख्या के लिए आनुपातिक चुना जाता है.
  • उत्पादकों को ब्लॉक समय से प्राप्त छद्म आयामी संख्या का उपयोग करने के लिए फेरबदल किया जाता है। यह सुनिश्चित करने के लिए किया जाता है कि अन्य सभी उत्पादकों से संपर्क का संतुलन बना रहे.
  • यह सुनिश्चित करने के लिए कि नियमित रूप से ब्लॉक उत्पादन बनाए रखा जाता है और उस ब्लॉक समय को 3 सेकंड तक रखा जाता है, उत्पादकों को विचार से हटाकर भाग नहीं लेने के लिए दंडित किया जाता है। एक निर्माता को विचार करने के लिए हर 24 घंटे में कम से कम एक ब्लॉक का उत्पादन करना होता है.

चूंकि आम सहमति में बहुत कम लोग शामिल होते हैं, यह एथेरियम और बिटकॉइन की तुलना में अधिक तेज और केंद्रीकृत है, जो सर्वसम्मति के लिए पूरे नेटवर्क का उपयोग करता है.

WASM भाषा

EOS WebAssembly उर्फ ​​WASM प्रोग्रामिंग भाषा का उपयोग करता है। इसका उपयोग वे इसके गुणों के कारण करते हैं (webassembly.org से लिया गया):

  • गति और दक्षता: WebAssembly प्लेटफार्मों की एक विस्तृत श्रृंखला पर उपलब्ध सामान्य हार्डवेयर क्षमताओं का लाभ उठाकर देशी गति से निष्पादित करता है.
  • खुला और डीबग करने योग्य: यह डिबगिंग, परीक्षण, प्रयोग, अनुकूलन, सीखने, शिक्षण और हाथ से कार्यक्रम लिखने के लिए एक पाठ प्रारूप में सुंदर-मुद्रित होने के लिए डिज़ाइन किया गया है.
  • सुरक्षित: WebAssembly स्मृति-सुरक्षित, सैंडबॉक्स किए गए निष्पादन वातावरण का वर्णन करता है जो मौजूदा जावास्क्रिप्ट वर्चुअल मशीनों के अंदर भी लागू किया जा सकता है.

औद्योगिक पैमाने पर Dapps बनाने के लिए EOS एक सही मंच है। आइए कल्पना करें कि आप एक विकेंद्रीकृत ट्विटर बना रहे हैं। यदि आपने एथेरियम पर बनाया है, तो उपयोगकर्ता को एक ट्वीट के प्रत्येक चरण को निष्पादित करने के दौरान कुछ गैस खर्च करना होगा.

यदि आपने EOS में यही काम किया है, तो उपयोगकर्ताओं को गैस खर्च करने की आवश्यकता नहीं है क्योंकि लेनदेन शुल्क 0 है! हालाँकि, चूंकि ईओएस एथेरम के रूप में विकेंद्रीकृत नहीं है, इसलिए डाप्स को सेंसरशिप प्रतिरोध की उच्च डिग्री की आवश्यकता होती है, जो इसके लिए एक अच्छा फिट नहीं हो सकता है.

तारकीय

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलावस्टेलर जेड मैककेलेब के दिमाग की उपज है और जॉयस किम 2014 में वापस आ गया था जब इसे रिपल प्रोटोकॉल से कांटा गया था। स्टेलर, उनकी वेबसाइट के अनुसार,

“एक ऐसा मंच है जो बैंकों, भुगतान प्रणालियों और लोगों को जोड़ता है। पैसा जल्दी, मज़बूती से, और लगभग बिना किसी लागत के ले जाने के लिए एकीकृत करें ”.

स्टेलर का उपयोग करते हुए, कोई भी पैसा सीमाओं से जल्दी, मज़बूती से, और एक पैसे के अंश के लिए स्थानांतरित कर सकता है.

एथेरियम के विपरीत, स्टेलर स्मार्ट कॉन्ट्रैक्ट्स (एसएससी) ट्यूरिंग पूर्ण नहीं हैं। निम्न तालिका आपको स्टेलर और एथेरम स्मार्ट कॉन्ट्रैक्ट के बीच अंतर का एक अच्छा विचार देती है:

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

चित्र साभार: हैकरून

कुछ आँकड़े सीधे दूर जा सकते हैं.

सबसे विशेष रूप से, 5 सेकंड का पुष्टि समय और तथ्य यह है कि स्टेलर नेटवर्क पर एक एकल लेनदेन की लागत केवल ~ $ 0.0000002 है!

$ तारकीय नेटवर्क->buildTransaction ($ customerKeypair)

->addCreateAccountOp ($ escrowKeypair, 100.00006) // 100 XLM सेटअप के बाद + ट्रांसफर + ट्रांजेक्शन

->सबमिट करें ($ customerKeypair);

}

प्रिंट "एस्क्रो खाता बनाया गया: " . $ एस्क्रोकेयर->getPublicKey ()। PHP_EOL;

/ *

* इसे एस्क्रो अकाउंट बनाने के लिए, हमें उस वर्कर को साबित करना होगा

* कार्यकर्ता खोजते समय कोई भी इससे धनराशि नहीं निकाल सकता है

* एक घमंड पता.

*

* इससे पूरा होता है:

* – समान वजन के कार्यकर्ता और ग्राहक हस्ताक्षरकर्ता बनाना (1)

* – किसी भी लेनदेन पर सहमत होने के लिए दोनों हस्ताक्षरकर्ताओं की आवश्यकता (सीमा 2 पर सेट है)

*

* हालांकि, हमें उस मामले को भी संभालने की आवश्यकता है जहां कोई भी कार्यकर्ता काम नहीं करता है और हम

* खाते को पुनः प्राप्त करने की आवश्यकता है। यह एक उपदेशात्मक मर्ज जोड़कर किया जा सकता है

* लेनदेन जो अब से 30 दिनों तक मान्य नहीं है.

*

* यह कार्यकर्ता को यह जानने की अनुमति देता है कि धन उपलब्ध होने की गारंटी है

* 30 दिनों के लिए.

* /

// एस्क्रो अकाउंट को लोड करें

$ खाता = $ stellarNetwork->getAccount ($ escrowKeypair);

// लेन-देन के लिए आवश्यक होने के बाद से कुछ अनुक्रम संख्याओं को पहले से रखें

$ शुरुआती राशि = $ खाता->getSequence ();

// ट्रैक करें कि एस्क्रो अकाउंट सेट करने के लिए कितने लेन-देन आवश्यक हैं

// हमें इसकी आवश्यकता है ताकि हम सही गणना कर सकें "खाता पुनः प्राप्त करें" अनुक्रम संख्या

$ numSetupTransactions = 5;

$ reclaimAccountOrPaySeqNum = $ startSequenceNumber + $ numSetupTransactions + 1;

// एक डेटा मान के साथ खाते को अपडेट करें जो यह दर्शाता है कि किस वैनिटी पते को खोजना है

प्रिंट "घमंड पते का अनुरोध करने के लिए डेटा प्रविष्टि जोड़ना…";

$ तारकीय नेटवर्क->buildTransaction ($ एस्क्रोकेयर)

->setAccountData (‘रिक्वेस्ट: जेनरिटीऐड्रेस’, ‘जी * जूलू’)

->सबमिट करें ($ escrowKeypair);

प्रिंट "किया हुआ" . PHP_EOL;

// फालबैक ट्रांजैक्शन: यदि कोई श्रमिक जेनरेट नहीं करता है, तो एस्क्रो खाते को पुनः प्राप्त करें

// 30 दिनों में घमंड पता

$ reclaimTx = $ stellarNetwork->buildTransaction ($ एस्क्रोकेयर)

->setSequenceNumber (नया BigInteger ($ reclaimAccountOrPaySeqNum)

// टूडू: एक वास्तविक कार्यान्वयन में इसे बाहर करना

//->setLowerTimebound (नया \ DateTime (‘+ 30 दिन’))

->setAccountData (‘रिक्वेस्ट: जेनरेटिटी एड्रेस’)

->addMergeOperation ($ customerKeypair)

->getTransactionEnvelope ();

// खाता पर एक हस्ताक्षरकर्ता के रूप में $ reclaimTx का हैश जोड़ें

// देखें: https://www.stellar.org/developers/guides/concepts/multi-sig.html#pre-authorized-transaction

$ txHashSigner = नया हस्ताक्षरकर्ता (

SignerKey :: fromPreauthorizedHash ($ reclaimTx->getHash ()),

2 // वजन पर्याप्त होना चाहिए ताकि किसी अन्य हस्ताक्षरकर्ता की आवश्यकता न हो

);

$ addReclaimTxSignerOp = new SetOptionsOp ();

$ addReclaimTxSignerOp->updateSigner ($ txHashSigner);

प्रिंट "एक हस्ताक्षरकर्ता के रूप में पूर्व-अधिकृत पुनः प्राप्त लेनदेन को जोड़ना… ";

$ तारकीय नेटवर्क->buildTransaction ($ एस्क्रोकेयर)

->addOperation ($ addReclaimTxSignerOp)

->सबमिट करें ($ escrowKeypair);

प्रिंट "किया हुआ" . PHP_EOL;

प्रिंट "जोड़े गए प्री-ऑर्ट पुनः प्राप्त लेनदेन को अनुक्रम में मान्य है " . $ reclaimAccountOrPaySeqNum PHP_EOL;

प्रिंट "एस्क्रौ खाते को पुनः प्राप्त करने के लिए, 90-reclaim-escrow.php चलाएं" . PHP_EOL;

// वजन 1 के हस्ताक्षरकर्ता के रूप में कार्यकर्ता खाता जोड़ें

$ कार्यकर्ता = नया हस्ताक्षरकर्ता (

SignerKey :: FromKeypair ($ कार्यकर्ताकेयरपेयर),

1 // एक और हस्ताक्षरकर्ता की आवश्यकता है

);

$ addSignerOp = नया SetOptionsOp ();

$ addSignerOp->updateSigner ($ कार्यकर्ताSigner);

$ तारकीय नेटवर्क->buildTransaction ($ एस्क्रोकेयर)

->addOperation ($ addSignerOp)

->सबमिट करें ($ escrowKeypair);

// वजन 1 के दूसरे हस्ताक्षरकर्ता के रूप में ग्राहक खाता जोड़ें

$ कार्यकर्ता = नया हस्ताक्षरकर्ता (

SignerKey :: FromKeypair ($ customerKeypair),

1 // एक और हस्ताक्षरकर्ता की आवश्यकता है

);

$ addSignerOp = नया SetOptionsOp ();

$ addSignerOp->updateSigner ($ कार्यकर्ताSigner);

$ तारकीय नेटवर्क->buildTransaction ($ एस्क्रोकेयर)

->addOperation ($ addSignerOp)

->सबमिट करें ($ escrowKeypair);

// थ्रेसहोल्ड बढ़ाएँ और मास्टर वेट 0 पर सेट करें

// सभी ऑपरेशनों में अब 2 की सीमा होनी चाहिए

$ थ्रेसहोल्ड = नया सेटओसओप ();

$ थ्रेसहोल्ड->सेटलोथ्रेशोल्ड (2);

$ थ्रेशोल्ड->सेटमेडियम थ्रेशोल्ड (2);

$ थ्रेसहोल्ड->setHighThreshold (2);

$ थ्रेसहोल्ड->setMasterWeight (0);

$ तारकीय नेटवर्क->buildTransaction ($ एस्क्रोकेयर)

->जोड़ ($ थ्रेशोल्ड)

->सबमिट करें ($ escrowKeypair);

PHP_EOL प्रिंट करें;

प्रिंट "एस्क्रो खाते को समाप्त करना" . PHP_EOL;

कार्डानो

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

सबसे दिलचस्प परियोजनाओं में से एक कार्डानो सामने आया है। एथेरियम की तरह, कार्डानो एक स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म है, हालांकि कार्डानो लेयर्ड आर्किटेक्चर के जरिए स्केलेबिलिटी और सिक्योरिटी प्रदान करता है। कार्डनो का दृष्टिकोण अंतरिक्ष में अपने आप में अद्वितीय है क्योंकि यह वैज्ञानिक दर्शन और सहकर्मी की समीक्षा किए गए अकादमिक अनुसंधान पर बनाया गया है

कार्डानो का लक्ष्य अपने सर्वसम्मति तंत्र के Ouroboros सबूत के माध्यम से स्केलेबिलिटी को बढ़ाना है। कार्डानो में स्मार्ट कॉन्ट्रैक्ट्स को कोड करने के लिए, आपको प्लूटस का उपयोग करने की आवश्यकता होगी, जो हास्केल पर आधारित है, कार्डोनो को कोड करने के लिए उपयोग की जाने वाली भाषा.

जबकि C ++ और अधिकांश पारंपरिक भाषाएं इंपीरियल प्रोग्रामिंग लैंग्वेज हैं, प्लूटस और हास्केल कार्यात्मक प्रोग्रामिंग लैंग्वेज हैं.

तो, कार्यात्मक प्रोग्रामिंग कैसे काम करता है?

मान लीजिए कि एक फ़ंक्शन f (x) है जिसे हम एक फ़ंक्शन जी (x) की गणना करने के लिए उपयोग करना चाहते हैं और फिर हम उस फ़ंक्शन एच (एक्स) के साथ काम करना चाहते हैं। एक क्रम में उन सभी को हल करने के बजाय, हम बस उन सभी को एक साथ एक ही फ़ंक्शन में इस तरह से क्लब कर सकते हैं:

h (g (f (x)))

यह गणितीय दृष्टिकोण को गणितीय रूप से तर्क करना आसान बनाता है। यही कारण है कि कार्यात्मक कार्यक्रमों को स्मार्ट अनुबंध निर्माण के लिए अधिक सुरक्षित दृष्टिकोण माना जाता है। यह सरल औपचारिक सत्यापन में भी सहायक होता है, जिसका अर्थ है कि यह गणितीय रूप से यह साबित करना आसान है कि एक कार्यक्रम क्या करता है और कैसे कार्य करता है। यह कार्डानो को अपनी “उच्च आश्वासन संहिता” संपत्ति देता है.

चलिए इसका एक वास्तविक जीवन उदाहरण लेते हैं और देखते हैं कि क्यों यह कुछ परिस्थितियों में अत्यंत महत्वपूर्ण और यहां तक ​​कि जीवन-रक्षक बन सकता है.

मान लीजिए, हम एक प्रोग्राम को कोड कर रहे हैं जो वायु-यातायात को नियंत्रित करता है.

जैसा कि आप कल्पना कर सकते हैं, ऐसी प्रणाली को कोड करने के लिए उच्च सटीकता और सटीकता की आवश्यकता होती है। हम केवल आंखें बंद करके कुछ नहीं कर सकते हैं और जब लोगों की जान जोखिम में होती है तो सबसे अच्छा करने की उम्मीद करते हैं। इन जैसी स्थितियों में, हमें एक कोड की आवश्यकता होती है, जो गणितीय निश्चितता के उच्च स्तर तक काम करने के लिए सिद्ध हो सकता है.

यही कारण है कि कार्यात्मक दृष्टिकोण इतना वांछनीय है.

और यह वही है जो कार्डानो अपने स्मार्ट कॉन्ट्रैक्ट के लिए अपने पारिस्थितिकी तंत्र और प्लूटस को कोड करने के लिए हास्केल का उपयोग कर रहा है। हास्केल और प्लूटस दोनों कार्यात्मक भाषाएं हैं.

निम्न तालिका कार्यात्मक दृष्टिकोण के साथ इंपीरियल दृष्टिकोण की तुलना करती है.

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

चित्र साभार: Docs.Microsoft.com

तो, आइए कार्यात्मक दृष्टिकोण के लाभों पर ध्यान दें:

  • उच्च आश्वासन कोड बनाने में मदद करता है क्योंकि गणितीय रूप से यह साबित करना आसान है कि कोड कैसे व्यवहार करने वाला है.
  • पठनीयता और स्थिरता को बढ़ाता है क्योंकि प्रत्येक फ़ंक्शन को एक विशिष्ट कार्य को पूरा करने के लिए डिज़ाइन किया गया है। कार्य भी राज्य-स्वतंत्र हैं.
  • कोड को रीफ्रैक्टर करना आसान है और कोड में कोई भी बदलाव लागू करने के लिए सरल हैं। इससे दोहराव का विकास आसान हो जाता है.
  • व्यक्तिगत कार्यों को आसानी से अलग किया जा सकता है जो उन्हें बाहर का परीक्षण करने और डिबग करने में आसान बनाता है.

नव

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

नियो, जिसे पूर्व में एंथेसर के नाम से जाना जाता था, अक्सर “चीन के इथेरियम” के रूप में जाना जाता है.

उनकी वेबसाइट के अनुसार, नियो एक “गैर-लाभकारी समुदाय-आधारित ब्लॉकचेन परियोजना है जो परिसंपत्तियों को डिजिटाइज़ करने के लिए ब्लॉकचैन तकनीक और डिजिटल पहचान का उपयोग करती है, स्मार्ट अनुबंधों का उपयोग करके डिजिटल परिसंपत्तियों के प्रबंधन को स्वचालित करने के लिए, और वितरित के साथ” स्मार्ट अर्थव्यवस्था “का एहसास करने के लिए नेटवर्क।”

नियो का मुख्य उद्देश्य “स्मार्ट अर्थव्यवस्था” के लिए वितरित नेटवर्क होना है। जैसा कि उनकी वेबसाइट बताती है:

डिजिटल एसेट्स + डिजिटल आइडेंटिटी + स्मार्ट कॉन्ट्रैक्ट = स्मार्ट इकोनॉमी.

नियो को शंघाई स्थित ब्लॉकचैन आर द्वारा विकसित किया गया था&डी कंपनी “ओनाचिन”। Onchain की स्थापना CEO Da Hongfei और CTO Erik Zhang ने की थी। नियो पर अनुसंधान 2014 के आसपास शुरू हुआ। 2016 में, ओपेकिन केपीएमजी द्वारा चीन में शीर्ष 50 फिनटेक कंपनी में सूचीबद्ध किया गया था.

नियो एक स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म बनाना चाहते थे, जिसमें एक Ethereum वर्चुअल मशीन के सभी फायदे हों, जो बिना किसी बाधा के अपने डेवलपर्स को भाषा अवरोधों से बचाए। Ethereum में, आपको स्मार्ट कॉन्ट्रैक्ट्स को कोड करने के लिए सॉलिडिटी सीखने की आवश्यकता होगी, जबकि Neo में, आप कॉन्ट्रैक्ट कॉन्ट्रैक्ट्स के लिए जावास्क्रिप्ट का भी उपयोग कर सकते हैं.

नियो स्मार्ट कॉन्ट्रैक्ट 2.0

नियो के स्मार्ट कॉन्ट्रैक्ट सिस्टम उर्फ ​​स्मार्ट कॉन्ट्रैक्ट 2.0 के तीन भाग हैं:

  • NeoVM.
  • InteropService
  • DevPack

नवम

यह नव आभासी मशीन का सचित्र प्रतिनिधित्व है:

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

छवि क्रेडिट: नव श्वेतपत्र

नियो वाइटपॉपर के रूप में, NeoVM या Neo Virtual मशीन एक हल्का, सामान्य प्रयोजन वाला VM है जिसका आर्किटेक्चर बारीकी से JVM और .NET रनटाइम जैसा दिखता है। यह एक वर्चुअल सीपीयू के समान है जो निर्देश में अनुबंध में निर्देशों को पढ़ता और निष्पादित करता है, अनुदेश संचालन, तर्क संचालन और इसी तरह की कार्यक्षमता के आधार पर प्रक्रिया नियंत्रण करता है। यह एक अच्छी स्टार्ट-अप गति के साथ बहुमुखी है जो इसे स्मार्ट अनुबंधों को चलाने के लिए एक शानदार वातावरण बनाता है.

InteropService

InteropService स्मार्ट अनुबंधों की उपयोगिता बढ़ाता है। यह सिस्टम की समग्र स्थिरता और दक्षता पर समझौता किए बिना अनुबंधों को नियोवीएम के बाहर डेटा तक पहुंचने की अनुमति देता है.

वर्तमान में, इंटरऑपरेबल सर्विस लेयर स्मार्ट कॉन्ट्रैक्ट के चेन-चेन डेटा तक पहुंचने के लिए कुछ एपीआई प्रदान करता है। डेटा जो इसे एक्सेस कर सकता है:

  • जानकारी ब्लॉक करें.
  • लेन-देन की जानकारी
  • अनुबंध की जानकारी.
  • संपत्ति की जानकारी

…।दूसरों के बीच में.

यह स्मार्ट कॉन्ट्रैक्ट के लिए स्टोरेज स्पेस भी प्रदान करता है.

DevPack

DevPack में उच्च-स्तरीय भाषा संकलक और IDE प्लग-इन शामिल हैं। चूंकि NeoVM आर्किटेक्चर JVM और .NET रनटाइम के समान है, इसलिए यह अनुबंधों को अन्य भाषाओं में कोडित करने में सक्षम बनाता है। जैसा कि आप कल्पना कर सकते हैं, यह डेवलपर्स द्वारा स्मार्ट कॉन्ट्रैक्ट बनाने का तरीका जानने के लिए लिया गया समय बहुत कम कर देता है.

हाइपरलेगर फैब्रिक

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

उनकी वेबसाइट के अनुसार, “हाइपरलेगर एक खुला स्रोत सहयोगात्मक प्रयास है जो क्रॉस-इंडस्ट्री ब्लॉकचेन प्रौद्योगिकियों को आगे बढ़ाने के लिए बनाया गया है। यह एक वैश्विक सहयोग है, जिसे लिनक्स फाउंडेशन द्वारा वित्त, बैंकिंग, इंटरनेट ऑफ थिंग्स, आपूर्ति श्रृंखला, विनिर्माण और प्रौद्योगिकी सहित नेताओं द्वारा होस्ट किया गया है। “

हो सकता है कि हाइपरलेगर परिवार में सबसे दिलचस्प प्रोजेक्ट आईबीएम का फैब्रिक हो। एक एकल ब्लॉकचैन फैब्रिक के बजाय एक मॉड्यूलर वास्तुकला के साथ ब्लॉकचैन आधारित समाधान के विकास के लिए एक आधार है.

फैब्रिक के साथ ब्लॉकचेन के विभिन्न घटक, जैसे आम सहमति और सदस्यता सेवाएं प्लग-एंड-प्ले बन सकती हैं। फैब्रिक को एक ढांचा प्रदान करने के लिए डिज़ाइन किया गया है जिसके साथ उद्यमों को अपने स्वयं के, व्यक्तिगत ब्लॉकचेन नेटवर्क को एक साथ रखा जा सकता है जो कि प्रति सेकंड 1,000 से अधिक लेन-देन कर सकते हैं।.

विभिन्न स्मार्ट कॉन्ट्रैक्ट प्लेटफ़ॉर्म पर एक गहरा बदलाव

फैब्रिक क्या है और यह कैसे काम करता है? गो में रूपरेखा लागू है। यह विभिन्न प्रकार की अनुमतियों के साथ कंसोर्टियम ब्लॉकचेन को सक्षम करने के लिए बनाया गया है। फैब्रिक एक स्मार्ट कॉन्ट्रैक्ट सिस्टम पर निर्भर करता है जिसे चिनकोड कहा जाता है, जो कि नेटवर्क के प्रत्येक सहकर्मी डॉकटर कंटेनरों में चलता है.

चिनकोड लिखने के लिए, व्यक्ति को चार कार्यों में पारंगत होना चाहिए:

  • PutState: नई संपत्ति बनाएं या मौजूदा एक को अपडेट करें.
  • GetState: संपत्ति प्राप्त करें.
  • GetHistoryForKey: परिवर्तनों का इतिहास पुनः प्राप्त करें.
  • विलंब: ’हटाएं’ संपत्ति.

निम्नलिखित एक चिनकोड का एक उदाहरण है:

// स्मार्ट कॉन्ट्रैक्ट संरचना को परिभाषित करें

स्मार्टकंट्रेक्ट संरचना {} टाइप करें

// कार की संरचना को परिभाषित करें, जिसमें 4 गुण हैं.

प्रकार कार संरचना {

स्ट्रिंग करें"बनाना"`

मॉडल स्ट्रिंग `json:"नमूना"`

रंग स्ट्रिंग `जसन:"रंग"`

स्वामी स्ट्रिंग `जसन:"मालिक"`

}

/ *

* स्मार्ट कॉन्ट्रैक्ट को चलाने के लिए एक आवेदन अनुरोध के परिणामस्वरूप इनवोक विधि को कहा जाता है "फबकर"

* कॉलिंग एप्लिकेशन प्रोग्राम ने तर्कों के साथ, विशेष स्मार्ट कॉन्ट्रैक्ट फ़ंक्शन को भी निर्दिष्ट किया है

* /

func (s * SmartContract) आह्वान करें (APIstub shim.ChaincodeStubInterface) scespesponse {

// अनुरोधित स्मार्ट कॉन्ट्रैक्ट फ़ंक्शन और तर्कों को पुनः प्राप्त करें

फ़ंक्शन, args: = APIstub.GetFunctionAndParameters ()

// उचित हैंडलर फ़ंक्शन के लिए रूट का उपयोग करने वाले के साथ बातचीत करने के लिए उपयुक्त है

यदि कार्य == "initLedger" {{

वापसी s.initLedger (APIstub)

} और अगर फ़ंक्शन == "क्रिएटर" {{

वापसी s.createCar (APIstub, args)

}

वापसी shim.Error ("अमान्य स्मार्ट अनुबंध फ़ंक्शन नाम.")

}

func (s * SmartContract) initLedger (APIstub shim.ChaincodeStubInterface) sc.Response {

वापसी शिम। असफल ([] बाइट ("लेजर अब चल रहा है, सफलता!"))

}

// प्राप्त तर्कों के साथ डेटाबेस में नई कार जोड़ें

func (s * SmartContract) createCar (APIstub shim.ChaincodeStubInterface, args [] स्ट्रिंग] sc.Response {

अगर लेन (args)! = 5 {

वापसी shim.Error ("तर्कों की गलत संख्या। अपेक्षा ५")

}

var कार = कार {Make: args [1], मॉडल: args [2], रंग: args [3], मालिक: args [4]}

carAsBytes, _: = json.Marshal (कार)

APIstub.PutState (args [0], carAsBytes)

वापसी शिम। असफल (शून्य)

}

दुर्गंध मुख्य () {

// एक नया स्मार्ट कॉन्ट्रैक्ट बनाएं

गलती: = shim.Start (नया (SmartContract))

अगर गलत है! = nil {

fmt.Printf ("नया स्मार्ट अनुबंध बनाने में त्रुटि:% s", गलत)

}

}

निष्कर्ष

इसलिए यह अब आपके पास है। कुछ स्मार्ट कॉन्ट्रैक्ट प्लेटफॉर्म और विभिन्न गुण जो उन्हें अद्वितीय बनाते हैं। कम से कम अभी के लिए “एक-आकार-फिट-सभी” नहीं है। आपको उस प्लेटफ़ॉर्म को चुनने की आवश्यकता होगी जो आपके डॅप के लिए आवश्यक कार्यात्मकताओं को सबसे अच्छा सूट करता है.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map