मुख्य आशयावर जा

तुमचे पहिले स्मार्ट कॉन्ट्रॅक्ट प्रस्थापित करणे

स्मार्ट कॉन्ट्रॅक्ट्स
Remix
Solidity
प्रस्थापित करणे
नवशिक्या
jdourlens
3 एप्रिल, 2020
4 मिनिटांचे वाचन

मला खात्री आहे की तुम्ही देखील इथेरियम ब्लॉकचेनवर तुमचे पहिले स्मार्ट कॉन्ट्रॅक्ट प्रस्थापित करण्यासाठी आणि त्याच्याशी संवाद साधण्यासाठी आमच्याइतकेच उत्सुक आहात.

काळजी करू नका, हे आपले पहिले स्मार्ट कॉन्ट्रॅक्ट असल्याने, आपण ते एका लोकल टेस्ट नेटवर्कवर प्रस्थापित करू जेणेकरून तुम्हाला ते प्रस्थापित करण्यासाठी कोणताही खर्च येणार नाही आणि तुम्ही त्याच्यासोबत तुम्हाला हवे तितके प्रयोग करू शकाल.

आपले कॉन्ट्रॅक्ट लिहिणे

पहिली पायरी म्हणजे Remix ला भेट देणे (opens in a new tab) आणि एक नवीन फाईल तयार करणे. Remix इंटरफेसच्या वरच्या डाव्या बाजूला एक नवीन फाईल जोडा आणि तुम्हाला हवे असलेले फाईलचे नाव प्रविष्ट करा.

Adding a new file in the Remix interface

नवीन फाईलमध्ये, आपण खालील कोड पेस्ट करू.

जर तुम्हाला प्रोग्रामिंगची सवय असेल तर हा प्रोग्राम काय करतो याचा तुम्ही सहज अंदाज लावू शकता. येथे ओळीनुसार स्पष्टीकरण दिले आहे:

  • ओळ 4: आपण Counter नावाने एक कॉन्ट्रॅक्ट परिभाषित करतो.
  • ओळ 7: आपले कॉन्ट्रॅक्ट count नावाचा एक अनसाईन्ड इंटिजर (unsigned integer) स्टोअर करते ज्याची सुरुवात 0 पासून होते.
  • ओळ 10: पहिले फंक्शन कॉन्ट्रॅक्टची स्थिती (state) बदलेल आणि आपल्या count व्हेरिएबलला increment() करेल.
  • ओळ 15: दुसरे फंक्शन फक्त एक गेटर (getter) आहे जेणेकरून स्मार्ट कॉन्ट्रॅक्टच्या बाहेर count व्हेरिएबलचे मूल्य वाचता येईल. लक्षात घ्या की, आपण आपले count व्हेरिएबल पब्लिक (public) म्हणून परिभाषित केल्यामुळे हे आवश्यक नाही परंतु एक उदाहरण म्हणून दर्शविले आहे.

आपल्या पहिल्या साध्या स्मार्ट कॉन्ट्रॅक्टसाठी एवढेच. तुम्हाला माहीत असेलच की, हे Java किंवा C++ सारख्या OOP (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) भाषांमधील क्लाससारखे दिसते. आता आपल्या कॉन्ट्रॅक्टसोबत प्रयोग करण्याची वेळ आली आहे.

आपले कॉन्ट्रॅक्ट प्रस्थापित करणे

आपण आपले अगदी पहिले स्मार्ट कॉन्ट्रॅक्ट लिहिल्यामुळे, आता आपण त्याच्यासोबत प्रयोग करण्यासाठी ते ब्लॉकचेनवर प्रस्थापित करू.

ब्लॉकचेनवर स्मार्ट कॉन्ट्रॅक्ट प्रस्थापित करणे म्हणजे प्रत्यक्षात कोणताही प्राप्तकर्ता निर्दिष्ट न करता संकलित (compiled) स्मार्ट कॉन्ट्रॅक्टचा कोड असलेला व्यवहार पाठवणे होय.

आपण प्रथम डाव्या बाजूला असलेल्या कंपाईल आयकॉनवर क्लिक करून कॉन्ट्रॅक्ट कंपाईल करू:

The compile icon in the Remix toolbar

त्यानंतर कंपाईल बटणावर क्लिक करा:

The compile button in the Remix solidity compiler

तुम्ही "Auto compile" पर्याय निवडू शकता जेणेकरून जेव्हा तुम्ही टेक्स्ट एडिटरवर मजकूर सेव्ह कराल तेव्हा कॉन्ट्रॅक्ट नेहमी कंपाईल केले जाईल.

त्यानंतर "deploy and run transactions" स्क्रीनवर जा:

The deploy icon in the Remix toolbar

एकदा तुम्ही "deploy and run transactions" स्क्रीनवर आल्यावर, तुमच्या कॉन्ट्रॅक्टचे नाव दिसत असल्याची खात्री करा आणि Deploy वर क्लिक करा. तुम्ही पेजच्या शीर्षस्थानी पाहू शकता की, सध्याचे वातावरण "JavaScript VM" आहे, याचा अर्थ असा की आपण जलद आणि कोणत्याही शुल्काशिवाय चाचणी करण्यासाठी एका लोकल टेस्ट ब्लॉकचेनवर आपले स्मार्ट कॉन्ट्रॅक्ट प्रस्थापित करू आणि त्याच्याशी संवाद साधू.

The deploy button in the Remix solidity compiler

एकदा तुम्ही "Deploy" बटणावर क्लिक केल्यावर, तुम्हाला तुमचे कॉन्ट्रॅक्ट तळाशी दिसेल. ते विस्तृत करण्यासाठी डावीकडील बाणावर क्लिक करा जेणेकरून आपल्याला आपल्या कॉन्ट्रॅक्टचा मजकूर दिसेल. हे आपले counter व्हेरिएबल, आपले increment() फंक्शन आणि गेटर getCounter() आहे.

जर तुम्ही count किंवा getCount बटणावर क्लिक केले, तर ते प्रत्यक्षात कॉन्ट्रॅक्टच्या count व्हेरिएबलचा मजकूर प्राप्त करेल आणि तो प्रदर्शित करेल. आपण अद्याप increment फंक्शन कॉल केले नसल्यामुळे, ते 0 प्रदर्शित करेल.

The function button in the Remix solidity compiler

आता बटणावर क्लिक करून increment फंक्शन कॉल करूया. तुम्हाला विंडोच्या तळाशी केलेल्या व्यवहारांच्या नोंदी (logs) दिसतील. तुम्हाला दिसेल की जेव्हा तुम्ही increment बटणाऐवजी डेटा प्राप्त करण्यासाठी बटण दाबता तेव्हा नोंदी वेगळ्या असतात. याचे कारण असे की ब्लॉकचेनवरील डेटा वाचण्यासाठी कोणत्याही व्यवहारांची (लिहिण्याची) किंवा शुल्काची आवश्यकता नसते. कारण केवळ ब्लॉकचेनची स्थिती (state) बदलण्यासाठी व्यवहार करणे आवश्यक असते:

A log of transactions

इन्क्रिमेंट (increment) बटण दाबल्यानंतर जे आपल्या increment() फंक्शनला कॉल करण्यासाठी एक व्यवहार तयार करेल, जर आपण पुन्हा count किंवा getCount बटणांवर क्लिक केले तर आपण आपल्या स्मार्ट कॉन्ट्रॅक्टची नवीन अपडेट केलेली स्थिती वाचू ज्यामध्ये count व्हेरिएबल 0 पेक्षा मोठे असेल.

Newly updated state of the smart contract

पुढील ट्युटोरिअलमध्ये, आपण तुमच्या स्मार्ट कॉन्ट्रॅक्ट्समध्ये घटना (events) कशा जोडू शकता हे पाहू. घटनांची नोंद करणे (Logging events) हा तुमच्या स्मार्ट कॉन्ट्रॅक्टला डीबग करण्याचा आणि फंक्शन कॉल करताना काय होत आहे हे समजून घेण्याचा एक सोयीस्कर मार्ग आहे.