अपना पहला स्मार्ट अनुबंध तैनात करना
मुझे लगता है कि आप भी इथेरियम ब्लॉकचेन पर अपना पहला स्मार्ट अनुबंध तैनात करने और उसके साथ इंटरैक्ट करने के लिए हमारी तरह ही उत्साहित हैं।
चिंता न करें, क्योंकि यह हमारा पहला स्मार्ट अनुबंध है, हम इसे एक लोकल टेस्ट नेटवर्क पर तैनात करेंगे ताकि इसे तैनात करने में आपका कोई खर्च न लगे और आप इसके साथ जितना चाहें उतना खेल सकें।
अपना अनुबंध लिखना
पहला कदम Remix पर जाना (opens in a new tab) और एक नई फ़ाइल बनाना है। Remix इंटरफ़ेस के ऊपरी बाएँ हिस्से पर एक नई फ़ाइल जोड़ें और अपना मनचाहा फ़ाइल नाम दर्ज करें।
नई फ़ाइल में, हम निम्नलिखित कोड पेस्ट करेंगे।
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.17;
contract Counter {
// गिनती की संख्या रखने के लिए unsigned int प्रकार का सार्वजनिक चर
uint256 public count = 0;
// फ़ंक्शन जो हमारे काउंटर को बढ़ाता है
function increment() public {
count += 1;
}
// गिनती का मान प्राप्त करने के लिए अनावश्यक गेटर
function getCount() public view returns (uint256) {
return count;
}
}
यदि आप प्रोग्रामिंग से परिचित हैं तो आप आसानी से अनुमान लगा सकते हैं कि यह प्रोग्राम क्या करता है। यहाँ पंक्ति दर पंक्ति स्पष्टीकरण दिया गया है:
- पंक्ति 4: हम
Counterनाम से एक अनुबंध परिभाषित करते हैं। - पंक्ति 7: हमारा अनुबंध
countनाम का एक अनसाइंड इंटीजर (unsigned integer) स्टोर करता है जो 0 से शुरू होता है। - पंक्ति 10: पहला फ़ंक्शन अनुबंध की स्थिति को संशोधित करेगा और हमारे वेरिएबल
countकोincrement()करेगा। - पंक्ति 15: दूसरा फ़ंक्शन केवल एक गेटर (getter) है ताकि स्मार्ट अनुबंध के बाहर
countवेरिएबल का मान पढ़ा जा सके। ध्यान दें कि, चूँकि हमने अपनेcountवेरिएबल को पब्लिक (public) के रूप में परिभाषित किया है, इसलिए यह आवश्यक नहीं है लेकिन इसे एक उदाहरण के रूप में दिखाया गया है।
हमारे पहले सरल स्मार्ट अनुबंध के लिए बस इतना ही। जैसा कि आप जानते होंगे, यह Java या C++ जैसी OOP (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) भाषाओं की एक क्लास (class) जैसा दिखता है। अब हमारे अनुबंध के साथ खेलने का समय आ गया है।
अपना अनुबंध तैनात करना
चूँकि हमने अपना पहला स्मार्ट अनुबंध लिख लिया है, अब हम इसके साथ खेलने के लिए इसे ब्लॉकचेन पर तैनात करेंगे।
ब्लॉकचेन पर स्मार्ट अनुबंध तैनात करना वास्तव में बिना किसी प्राप्तकर्ता को निर्दिष्ट किए संकलित (compiled) स्मार्ट अनुबंध के कोड वाले लेन-देन को भेजना है।
हम सबसे पहले बाईं ओर संकलन (compile) आइकन पर क्लिक करके अनुबंध को संकलित (compile) करेंगे:
फिर संकलन (compile) बटन पर क्लिक करें:
आप "Auto compile" विकल्प का चयन कर सकते हैं ताकि जब भी आप टेक्स्ट एडिटर पर सामग्री सहेजें तो अनुबंध हमेशा संकलित हो जाए।
फिर "deploy and run transactions" स्क्रीन पर जाएँ:
एक बार जब आप "deploy and run transactions" स्क्रीन पर आ जाएँ, तो दोबारा जाँच लें कि आपके अनुबंध का नाम दिखाई दे रहा है और Deploy पर क्लिक करें। जैसा कि आप पृष्ठ के शीर्ष पर देख सकते हैं, वर्तमान वातावरण "JavaScript VM" है जिसका अर्थ है कि हम अपने स्मार्ट अनुबंध को एक लोकल टेस्ट ब्लॉकचेन पर तैनात करेंगे और उसके साथ इंटरैक्ट करेंगे ताकि हम तेज़ी से और बिना किसी शुल्क के परीक्षण कर सकें।
एक बार जब आप "Deploy" बटन पर क्लिक कर देते हैं, तो आप देखेंगे कि आपका अनुबंध नीचे दिखाई दे रहा है। इसे विस्तारित करने के लिए बाईं ओर के तीर पर क्लिक करें ताकि हम अपने अनुबंध की सामग्री देख सकें। यह हमारा वेरिएबल counter, हमारा increment() फ़ंक्शन और गेटर getCounter() है।
यदि आप count या getCount बटन पर क्लिक करते हैं, तो यह वास्तव में अनुबंध के count वेरिएबल की सामग्री को प्राप्त करेगा और इसे प्रदर्शित करेगा। चूँकि हमने अभी तक increment फ़ंक्शन को कॉल नहीं किया है, इसलिए इसे 0 प्रदर्शित करना चाहिए।
आइए अब बटन पर क्लिक करके increment फ़ंक्शन को कॉल करें। आप देखेंगे कि किए गए लेन-देन के लॉग विंडो के नीचे दिखाई दे रहे हैं। आप देखेंगे कि जब आप increment बटन के बजाय डेटा प्राप्त करने के लिए बटन दबाते हैं तो लॉग अलग होते हैं। ऐसा इसलिए है क्योंकि ब्लॉकचेन पर डेटा पढ़ने के लिए किसी लेन-देन (लिखने) या शुल्क की आवश्यकता नहीं होती है। क्योंकि केवल ब्लॉकचेन की स्थिति को संशोधित करने के लिए लेन-देन करने की आवश्यकता होती है:
इंक्रीमेंट (increment) बटन दबाने के बाद जो हमारे increment() फ़ंक्शन को कॉल करने के लिए एक लेन-देन उत्पन्न करेगा, यदि हम वापस count या getCount बटन पर क्लिक करते हैं तो हम अपने स्मार्ट अनुबंध की नई अद्यतन स्थिति को पढ़ेंगे जिसमें count वेरिएबल 0 से बड़ा होगा।
अगले ट्यूटोरियल में, हम कवर करेंगे कि आप अपने स्मार्ट अनुबंधों में घटनाएँ कैसे जोड़ सकते हैं। घटनाओं को लॉग करना आपके स्मार्ट अनुबंध को डीबग करने और यह समझने का एक सुविधाजनक तरीका है कि फ़ंक्शन को कॉल करते समय क्या हो रहा है।







