मुख्य सामग्री पर जाएं

शुरुआती लोगों के लिए हैलो वर्ल्ड स्मार्ट अनुबंध

Solidity
Hardhat
Alchemy
स्मार्ट अनुबंध
परिनियोजित करना
शुरआती
elanh
31 मार्च 2021
14 मिनट का पठन

यदि आप ब्लॉकचेन विकास में नए हैं और नहीं जानते कि कहां से शुरू करें, या यदि आप सिर्फ यह समझना चाहते हैं कि स्मार्ट अनुबंधों को कैसे तैनात और इंटरैक्ट किया जाए, तो यह गाइड आपके लिए है। हम वर्चुअल वॉलेट मेटामास्क (opens in a new tab), सॉलिडिटी (opens in a new tab), हार्डहैट (opens in a new tab), और अल्केमी (opens in a new tab) का उपयोग करके सेपोलिया टेस्ट नेटवर्क पर एक सरल स्मार्ट अनुबंध बनाने और तैनात करने के माध्यम से चलेंगे (चिंता न करें यदि आप नहीं समझते हैं कि इसका क्या मतलब है, हम इसे समझाएंगे)।

इस ट्यूटोरियल के भाग 2 (opens in a new tab) में हम देखेंगे कि एक बार यहां तैनात होने के बाद हम अपने स्मार्ट अनुबंध के साथ कैसे इंटरैक्ट कर सकते हैं, और भाग 3 (opens in a new tab) में हम इसे ईथरस्कैन पर कैसे प्रकाशित करें, इसे कवर करेंगे।

यदि आपके पास किसी भी समय कोई प्रश्न हैं, तो बेझिझक अल्केमी डिस्कॉर्ड (opens in a new tab) में संपर्क करें!

चरण 1: एथेरियम नेटवर्क से कनेक्ट करें

एथेरियम श्रृंखला के लिए अनुरोध करने के कई तरीके हैं। सरलता के लिए, हम अल्केमी पर एक मुफ्त खाते का उपयोग करेंगे, जो एक ब्लॉकचेन डेवलपर प्लेटफ़ॉर्म और API है जो हमें अपने स्वयं के नोड्स को चलाने के बिना एथेरियम श्रृंखला के साथ संवाद करने की अनुमति देता है। प्लेटफॉर्म में निगरानी और एनालिटिक्स के लिए डेवलपर उपकरण भी हैं जिनका हम इस ट्यूटोरियल में लाभ उठाएंगे ताकि यह समझ सकें कि हमारे स्मार्ट अनुबंध की तैनाती में क्या हो रहा है। यदि आपके पास पहले से अल्केमी खाता नहीं है, तो आप यहां मुफ्त में साइन अप कर सकते हैं (opens in a new tab)

चरण 2: अपना ऐप (और API कुंजी) बनाएं

एक बार जब आप एक अल्केमी खाता बना लेते हैं, तो आप एक ऐप बनाकर एक API कुंजी उत्पन्न कर सकते हैं। यह हमें सेपोलिया टेस्टनेट से अनुरोध करने की अनुमति देगा। यदि आप टेस्टनेट से परिचित नहीं हैं, तो यह पृष्ठ देखें।

  1. नेव बार में "एक ऐप चुनें" का चयन करके और "नया ऐप बनाएं" पर क्लिक करके अपने अल्केमी डैशबोर्ड में "नया ऐप बनाएं" पृष्ठ पर नेविगेट करें

हैलो वर्ल्ड ऐप बनाएं

  1. अपने ऐप को “Hello World” नाम दें, एक संक्षिप्त विवरण दें, और एक उपयोग मामला चुनें, उदाहरण के लिए, "इन्फ्रा और टूलींग।" अगला, "एथेरियम" खोजें और नेटवर्क चुनें।

ऐप व्यू हैलो वर्ल्ड बनाएं

  1. आगे बढ़ने के लिए "अगला" पर क्लिक करें, फिर "ऐप बनाएं" और बस हो गया! आपका ऐप नेव बार ड्रॉपडाउन मेनू में दिखाई देना चाहिए, जिसमें कॉपी करने के लिए एक API कुंजी उपलब्ध है।

चरण 3: एक एथेरियम खाता (पता) बनाएं

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

आप मेटामास्क डाउनलोड कर सकते हैं और यहां (opens in a new tab) मुफ्त में एक एथेरियम खाता बना सकते हैं। जब आप एक खाता बना रहे हों, या यदि आपके पास पहले से ही एक खाता है, तो नेटवर्क ड्रॉपडाउन मेनू का उपयोग करके "सेपोलिया" टेस्ट नेटवर्क पर स्विच करना सुनिश्चित करें (ताकि हम वास्तविक धन से निपट नहीं रहे हैं)।

यदि आपको सेपोलिया सूचीबद्ध नहीं दिखाई देता है, तो मेनू में जाएं, फिर उन्नत और "टेस्ट नेटवर्क दिखाएं" को चालू करने के लिए नीचे स्क्रॉल करें। नेटवर्क चयन मेनू में, टेस्टनेट की सूची खोजने के लिए "कस्टम" टैब चुनें और "सेपोलिया" चुनें।

मेटामास्क सेपोलिया उदाहरण

चरण 4: एक फोसेट से ईथर जोड़ें

हमारे स्मार्ट अनुबंध को टेस्ट नेटवर्क पर तैनात करने के लिए, हमें कुछ नकली Eth की आवश्यकता होगी। सेपोलिया ETH प्राप्त करने के लिए आप विभिन्न फोसेट की सूची देखने के लिए सेपोलिया नेटवर्क विवरण पर जा सकते हैं। यदि एक काम नहीं करता है, तो दूसरा प्रयास करें क्योंकि वे कभी-कभी सूख सकते हैं। नेटवर्क ट्रैफिक के कारण आपको अपना नकली ETH प्राप्त करने में कुछ समय लग सकता है। आपको इसके तुरंत बाद अपने मेटामास्क खाते में ETH दिखना चाहिए!

चरण 5: अपनी शेष राशि की जाँच करें

यह सुनिश्चित करने के लिए कि हमारी शेष राशि है, आइए अल्केमी के कंपोजर टूल (opens in a new tab) का उपयोग करके एक eth_getBalance अनुरोध करें। यह हमारे वॉलेट में ETH की राशि वापस कर देगा। जब आप अपना मेटामास्क खाता पता इनपुट करते हैं और "Send Request" पर क्लिक करते हैं, तो आपको इस तरह का एक जवाब देखना चाहिए:

{ "jsonrpc": "2.0", "id": 0, "result": "0x2B5E3AF16B1880000" }

नोट: यह परिणाम ETH में नहीं, wei में है। Wei का उपयोग ईथर के सबसे छोटे मूल्यवर्ग के रूप में किया जाता है। wei से ETH में रूपांतरण है: 1 eth = 1018 wei। तो यदि हम 0x2B5E3AF16B1880000 को दशमलव में बदलते हैं तो हमें 5*10¹⁸ मिलता है जो 5 ETH के बराबर है।

उफ्फ! हमारा नकली पैसा सब यहाँ है

चरण 6: हमारी परियोजना को प्रारंभ करें

सबसे पहले, हमें अपने प्रोजेक्ट के लिए एक फ़ोल्डर बनाना होगा। अपने कमांड लाइन पर नेविगेट करें और टाइप करें:

mkdir hello-world
cd hello-world

अब जब हम अपने प्रोजेक्ट फ़ोल्डर के अंदर हैं, तो हम प्रोजेक्ट को प्रारंभ करने के लिए npm init का उपयोग करेंगे। यदि आपके पास पहले से npm इंस्टॉल नहीं है, तो इन निर्देशों (opens in a new tab) का पालन करें (हमें नोड.जेएस की भी आवश्यकता होगी इसलिए उसे भी डाउनलोड करें!)।

npm init

यह वास्तव में कोई मायने नहीं रखता कि आप इंस्टॉलेशन प्रश्नों का उत्तर कैसे देते हैं, संदर्भ के लिए हमने इसे कैसे किया है:

package.json को स्वीकृत करें और हम जाने के लिए तैयार हैं!

चरण 7: हार्डहैट (opens in a new tab) डाउनलोड करें

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

हमारे hello-world प्रोजेक्ट के अंदर चलाएं:

npm install --save-dev hardhat

इंस्टॉलेशन निर्देशों (opens in a new tab) पर अधिक जानकारी के लिए यह पेज देखें।

चरण 8: हार्डहैट प्रोजेक्ट बनाएं

हमारे प्रोजेक्ट फ़ोल्डर के अंदर चलाएं:

npx hardhat

इसके बाद आपको एक स्वागत संदेश और यह चुनने का विकल्प देखना चाहिए कि आप क्या करना चाहते हैं। “create an empty hardhat.config.js” चुनें:

यह हमारे लिए एक hardhat.config.js फ़ाइल उत्पन्न करेगा जिसमें हम अपनी परियोजना के लिए सभी सेटअप निर्दिष्ट करेंगे (चरण 13 पर)।

चरण 9: प्रोजेक्ट फ़ोल्डर जोड़ें

हमारे प्रोजेक्ट को व्यवस्थित रखने के लिए हम दो नए फ़ोल्डर बनाएंगे। अपने कमांड लाइन में अपने प्रोजेक्ट की रूट डायरेक्टरी पर नेविगेट करें और टाइप करें:

mkdir contracts
mkdir scripts
  • contracts/ वह जगह है जहाँ हम अपनी हैलो वर्ल्ड स्मार्ट अनुबंध कोड फ़ाइल रखेंगे
  • scripts/ वह जगह है जहाँ हम अपने अनुबंध को तैनात करने और उसके साथ बातचीत करने के लिए स्क्रिप्ट रखेंगे

चरण 10: हमारा अनुबंध लिखें

आप खुद से पूछ रहे होंगे, कि हम कोड कब लिखेंगे?? खैर, हम यहाँ हैं, चरण 10 पर।

अपने पसंदीदा संपादक में हैलो-वर्ल्ड प्रोजेक्ट खोलें (हम वीएसकोड (opens in a new tab) पसंद करते हैं)। स्मार्ट अनुबंध सॉलिडिटी नामक भाषा में लिखे जाते हैं, जिसका उपयोग हम अपने HelloWorld.sol स्मार्ट अनुबंध को लिखने के लिए करेंगे।

  1. "contracts" फ़ोल्डर पर नेविगेट करें और HelloWorld.sol नामक एक नई फ़ाइल बनाएं
  2. नीचे एथेरियम फाउंडेशन का एक नमूना हैलो वर्ल्ड स्मार्ट अनुबंध है जिसका उपयोग हम इस ट्यूटोरियल के लिए करेंगे। नीचे दी गई सामग्री को अपनी HelloWorld.sol फ़ाइल में कॉपी और पेस्ट करें, और यह समझने के लिए टिप्पणियों को पढ़ना सुनिश्चित करें कि यह अनुबंध क्या करता है:

यह एक बहुत ही सरल स्मार्ट अनुबंध है जो निर्माण पर एक संदेश संग्रहीत करता है और update फ़ंक्शन को कॉल करके अपडेट किया जा सकता है।

चरण 11: मेटामास्क और अल्केमी को अपनी परियोजना से कनेक्ट करें

हमने एक मेटामास्क वॉलेट, अल्केमी खाता बनाया है, और अपना स्मार्ट अनुबंध लिखा है, अब तीनों को जोड़ने का समय है।

आपके वर्चुअल वॉलेट से भेजे गए प्रत्येक लेनदेन के लिए आपकी अद्वितीय निजी कुंजी का उपयोग करके एक हस्ताक्षर की आवश्यकता होती है। हमारे प्रोग्राम को यह अनुमति प्रदान करने के लिए, हम अपनी निजी कुंजी (और अल्केमी API कुंजी) को एक पर्यावरण फ़ाइल में सुरक्षित रूप से संग्रहीत कर सकते हैं।

लेनदेन भेजने के बारे में अधिक जानने के लिए, web3 का उपयोग करके लेनदेन भेजने पर यह ट्यूटोरियल देखें।

सबसे पहले, अपने प्रोजेक्ट डायरेक्टरी में dotenv पैकेज इंस्टॉल करें:

npm install dotenv --save

फिर, हमारे प्रोजेक्ट की रूट डायरेक्टरी में एक .env फ़ाइल बनाएं, और इसमें अपनी मेटामास्क निजी कुंजी और HTTP अल्केमी API URL जोड़ें।

  • अपनी निजी कुंजी निर्यात करने के लिए इन निर्देशों (opens in a new tab) का पालन करें
  • HTTP अल्केमी API URL प्राप्त करने के लिए नीचे देखें

alchemy api कुंजी प्राप्त करें

अल्केमी API URL कॉपी करें

आपका .env इस तरह दिखना चाहिए:

API_URL = "https://eth-sepolia.g.alchemy.com/v2/आपकी-एपीआई-कुंजी"
PRIVATE_KEY = "आपकी-MetaMask-निजी-कुंजी"

वास्तव में इन्हें हमारे कोड से जोड़ने के लिए, हम इन चरों को अपनी hardhat.config.js फ़ाइल में चरण 13 पर संदर्भित करेंगे।

.env को कमिट न करें! कृपया यह सुनिश्चित कर लें कि आप अपनी .env फ़ाइल को किसी के साथ साझा या उजागर न करें, क्योंकि ऐसा करने से आप अपने रहस्यों से समझौता कर रहे हैं। यदि आप संस्करण नियंत्रण का उपयोग कर रहे हैं, तो अपनी .env को gitignore फ़ाइल में जोड़ें।

चरण 12: ईथर्स.जेएस इंस्टॉल करें

ईथर्स.जेएस एक लाइब्रेरी है जो अधिक उपयोगकर्ता-अनुकूल तरीकों के साथ मानक JSON-RPC तरीकों को रैप करके एथेरियम के साथ इंटरैक्ट करना और अनुरोध करना आसान बनाती है।

हार्डहैट अतिरिक्त टूलिंग और विस्तारित कार्यक्षमता के लिए प्लगइन्स (opens in a new tab) को एकीकृत करना बेहद आसान बनाता है। हम अनुबंध परिनियोजन के लिए Ethers प्लगइन (opens in a new tab) का लाभ उठाएंगे (ईथर्स.जेएस (opens in a new tab) में कुछ बहुत ही स्वच्छ अनुबंध परिनियोजन विधियाँ हैं)।

अपनी प्रोजेक्ट डायरेक्टरी में टाइप करें:

npm install --save-dev @nomiclabs/hardhat-ethers "ethers@^5.0.0"

हम अगले चरण में अपनी hardhat.config.js में ईथर की भी आवश्यकता होगी।

चरण 13: hardhat.config.js को अपडेट करें

हमने अब तक कई निर्भरताएँ और प्लगइन्स जोड़े हैं, अब हमें hardhat.config.js को अपडेट करने की आवश्यकता है ताकि हमारी परियोजना उन सभी के बारे में जान सके।

अपने hardhat.config.js को इस तरह दिखने के लिए अपडेट करें:

चरण 14: हमारे अनुबंध को संकलित करें

यह सुनिश्चित करने के लिए कि अब तक सब कुछ काम कर रहा है, आइए हम अपने अनुबंध को कंपाइल करें। compile कार्य अंतर्निहित हार्डहैट कार्यों में से एक है।

कमांड लाइन से चलाएं:

npx hardhat compile

आपको SPDX license identifier not provided in source file के बारे में एक चेतावनी मिल सकती है, लेकिन इसके बारे में चिंता करने की कोई आवश्यकता नहीं है — उम्मीद है कि बाकी सब कुछ अच्छा लग रहा है! यदि नहीं, तो आप हमेशा अल्केमी discord (opens in a new tab) में संदेश भेज सकते हैं।

चरण 15: हमारी परिनियोजन स्क्रिप्ट लिखें

अब जब हमारा अनुबंध लिखा गया है और हमारी कॉन्फ़िगरेशन फ़ाइल तैयार है, तो हमारी अनुबंध डिप्लॉय स्क्रिप्ट लिखने का समय आ गया है।

scripts/ फ़ोल्डर पर नेविगेट करें और deploy.js नामक एक नई फ़ाइल बनाएं, जिसमें निम्नलिखित सामग्री जोड़ें:

हार्डहैट अपने अनुबंध ट्यूटोरियल (opens in a new tab) में कोड की इन पंक्तियों में से प्रत्येक क्या करता है, यह समझाने का एक अद्भुत काम करता है, हमने यहां उनकी व्याख्याओं को अपनाया है।

const HelloWorld = await ethers.getContractFactory("HelloWorld");

ethers.js में एक ContractFactory नए स्मार्ट अनुबंधों को तैनात करने के लिए उपयोग किया जाने वाला एक एब्स्ट्रेक्शन है, इसलिए यहाँ HelloWorld हमारे हैलो वर्ल्ड अनुबंध के उदाहरणों के लिए एक फैक्ट्री है। hardhat-ethers प्लगइन का उपयोग करते समय ContractFactory और Contract उदाहरण डिफ़ॉल्ट रूप से पहले हस्ताक्षरकर्ता से जुड़े होते हैं।

const hello_world = await HelloWorld.deploy();

ContractFactory पर deploy() को कॉल करने से परिनियोजन शुरू हो जाएगा, और एक Promise लौटाएगा जो एक Contract में हल हो जाता है। यह वह ऑब्जेक्ट है जिसमें हमारे प्रत्येक स्मार्ट अनुबंध फ़ंक्शन के लिए एक विधि है।

चरण 16: हमारे अनुबंध को तैनात करें

हम अंततः अपने स्मार्ट अनुबंध को डिप्लॉय करने के लिए तैयार हैं! कमांड लाइन पर नेविगेट करें और चलाएं:

npx hardhat run scripts/deploy.js --network sepolia

इसके बाद आपको कुछ इस तरह देखना चाहिए:

अनुबंध पते पर तैनात: 0x6cd7d44516a20882cEa2DE9f205bF401c0d23570

यदि हम सेपोलिया etherscan (opens in a new tab) पर जाते हैं और अपने अनुबंध पते की खोज करते हैं तो हम देख पाएंगे कि यह सफलतापूर्वक तैनात हो गया है। लेनदेन कुछ इस तरह दिखेगा:

ईथरस्कैन अनुबंध

From पता आपके मेटामास्क खाते के पते से मेल खाना चाहिए और To पता “Contract Creation” कहेगा, लेकिन यदि हम लेनदेन में क्लिक करते हैं तो हम To फ़ील्ड में अपना अनुबंध पता देखेंगे:

ईथरस्कैन लेनदेन

बधाई हो! आपने अभी-अभी एथेरियम श्रृंखला पर एक स्मार्ट अनुबंध तैनात किया है 🎉

पर्दे के पीछे क्या हो रहा है, यह समझने के लिए, आइए हमारे अल्केमी डैशबोर्ड (opens in a new tab) में एक्सप्लोरर टैब पर नेविगेट करें। यदि आपके पास कई अल्केमी ऐप हैं, तो ऐप द्वारा फ़िल्टर करना और “Hello World” का चयन करना सुनिश्चित करें। हैलो वर्ल्ड एक्सप्लोरर

यहां आपको कुछ JSON-RPC कॉल दिखाई देंगे जो हार्डहैट/Ethers ने हमारे लिए पर्दे के पीछे से किए थे जब हमने .deploy() फ़ंक्शन को कॉल किया था। यहाँ दो महत्वपूर्ण बातें हैं eth_sendRawTransaction (opens in a new tab), जो वास्तव में हमारे अनुबंध को सेपोलिया श्रृंखला पर लिखने का अनुरोध है, और eth_getTransactionByHash (opens in a new tab) जो हैश दिए जाने पर हमारे लेनदेन के बारे में जानकारी पढ़ने का अनुरोध है (लेन-देन के समय एक विशिष्ट पैटर्न)। लेन-देन भेजने के बारे में अधिक जानने के लिए, वेब3 का उपयोग करके लेन-देन भेजने पर इस ट्यूटोरियल को देखें

इस ट्यूटोरियल के भाग 1 के लिए बस इतना ही, भाग 2 में हम वास्तव में अपने प्रारंभिक संदेश को अपडेट करके अपने स्मार्ट अनुबंध के साथ बातचीत करेंगे (opens in a new tab), और भाग 3 में हम अपने स्मार्ट अनुबंध को ईथरस्कैन पर प्रकाशित करेंगे (opens in a new tab) ताकि हर कोई जान सके कि इसके साथ कैसे बातचीत करनी है।

अल्केमी के बारे में और जानना चाहते हैं? हमारी वेबसाइट (opens in a new tab) देखें। कभी कोई अपडेट मिस नहीं करना चाहते? हमारे न्यूज़लेटर को यहां (opens in a new tab) सब्सक्राइब करें! हमारे डिस्कॉर्ड (opens in a new tab) से भी जुड़ना सुनिश्चित करें।**।

पेज का अंतिम अपडेट: 3 मार्च 2026

क्या यह ट्यूटोरियल उपयोगी था?