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

Web3 वापरून व्यवहार पाठवणे

व्यवहार
web3.js
Alchemy
नवशिक्या
एलन हॅल्पर्न
4 नोव्हेंबर, 2020
9 मिनिटांचे वाचन

Web3 वापरून इथेरियम व्यवहार पाठवण्यासाठी हे नवशिक्यांसाठी अनुकूल मार्गदर्शक आहे. इथेरियम ब्लॉकचेनवर व्यवहार पाठवण्यासाठी तीन मुख्य टप्पे आहेत: तयार करणे, स्वाक्षरी करणे आणि प्रसारित करणे. आपण या तिन्ही टप्प्यांबद्दल जाणून घेऊ, आशा आहे की तुमच्या सर्व प्रश्नांची उत्तरे मिळतील! या ट्युटोरियलमध्ये, आपण इथेरियम चेनवर आपले व्यवहार पाठवण्यासाठी Alchemy (नवीन टॅबमध्ये उघडते) वापरणार आहोत. तुम्ही येथे मोफत Alchemy खाते तयार करू शकता (नवीन टॅबमध्ये उघडते).

टीप: हे मार्गदर्शक तुमच्या ॲपच्या बॅकएंडवर तुमच्या व्यवहारांवर स्वाक्षरी करण्यासाठी आहे. जर तुम्हाला फ्रंटएंडवर तुमच्या व्यवहारांवर स्वाक्षरी करणे समाकलित करायचे असेल, तर ब्राउझर प्रदाता सोबत Web3 (नवीन टॅबमध्ये उघडते) समाकलित करणे तपासा.

मूलभूत गोष्टी

बहुतेक ब्लॉकचेन डेव्हलपर्स जेव्हा पहिल्यांदा सुरुवात करतात, तेव्हा तुम्ही व्यवहार कसा पाठवायचा (जे खूप सोपे असायला हवे) यावर काही संशोधन केले असेल आणि तुम्हाला अनेक मार्गदर्शक सापडले असतील, जे प्रत्येक वेगळ्या गोष्टी सांगत असतील आणि तुम्हाला थोडे भारावून आणि गोंधळात टाकतील. जर तुम्ही त्या परिस्थितीत असाल, तर काळजी करू नका; आपण सर्वजण कधीतरी तिथे होतो! तर, आपण सुरुवात करण्यापूर्वी, काही गोष्टी स्पष्ट करूया:

1. Alchemy तुमच्या खाजगी की साठवत नाही

  • याचा अर्थ असा की Alchemy तुमच्या वतीने व्यवहारांवर स्वाक्षरी करू शकत नाही आणि पाठवू शकत नाही. याचे कारण सुरक्षितता हे आहे. Alchemy तुम्हाला तुमची खाजगी की शेअर करण्यास कधीही सांगणार नाही, आणि तुम्ही तुमची खाजगी की होस्ट केलेल्या नोडसोबत (किंवा कोणाशीही) कधीही शेअर करू नये.
  • तुम्ही Alchemy च्या मुख्य API चा वापर करून ब्लॉकचेनवरून वाचू शकता, परंतु त्यावर लिहिण्यासाठी तुम्हाला Alchemy द्वारे पाठवण्यापूर्वी तुमच्या व्यवहारांवर स्वाक्षरी करण्यासाठी दुसरे काहीतरी वापरावे लागेल (हे इतर कोणत्याही नोड सेवेसाठी समान आहे).

2. साइनर म्हणजे काय?

  • साइनर्स तुमची खाजगी की वापरून तुमच्यासाठी व्यवहारांवर स्वाक्षरी करतील. या ट्युटोरियलमध्ये आपण आपल्या व्यवहारावर स्वाक्षरी करण्यासाठी Alchemy Web3 (नवीन टॅबमध्ये उघडते) वापरणार आहोत, परंतु तुम्ही इतर कोणतीही Web3 लायब्ररी देखील वापरू शकता.
  • फ्रंटएंडवर, साइनरचे एक उत्तम उदाहरण म्हणजे मेटामास्क (नवीन टॅबमध्ये उघडते) असेल, जे तुमच्या वतीने व्यवहारांवर स्वाक्षरी करेल आणि पाठवेल.

3. मला माझ्या व्यवहारांवर स्वाक्षरी करण्याची आवश्यकता का आहे?

  • इथेरियम नेटवर्कवर व्यवहार पाठवू इच्छिणाऱ्या प्रत्येक वापरकर्त्याने व्यवहारावर स्वाक्षरी करणे आवश्यक आहे (त्यांची खाजगी की वापरून), जेणेकरून व्यवहाराचा उगम तोच आहे ज्याचा तो दावा करतो हे प्रमाणित करता येईल.
  • या खाजगी की चे संरक्षण करणे अत्यंत महत्त्वाचे आहे, कारण त्यात प्रवेश मिळाल्यास तुमच्या इथेरियम खात्यावर पूर्ण नियंत्रण मिळते, ज्यामुळे तुम्हाला (किंवा प्रवेश असलेल्या कोणालाही) तुमच्या वतीने व्यवहार करण्याची परवानगी मिळते.

4. मी माझ्या खाजगी की चे संरक्षण कसे करू?

  • तुमची खाजगी की संरक्षित करण्याचे आणि व्यवहार पाठवण्यासाठी तिचा वापर करण्याचे अनेक मार्ग आहेत. या ट्युटोरियलमध्ये आपण .env फाईल वापरणार आहोत. तथापि, तुम्ही खाजगी की साठवणारा वेगळा प्रदाता देखील वापरू शकता, कीस्टोअर फाईल वापरू शकता किंवा इतर पर्याय वापरू शकता.

5. eth_sendTransaction आणि eth_sendRawTransaction मध्ये काय फरक आहे?

eth_sendTransaction आणि eth_sendRawTransaction हे दोन्ही इथेरियम API फंक्शन्स आहेत जे इथेरियम नेटवर्कवर व्यवहार प्रसारित करतात जेणेकरून तो भविष्यातील ब्लॉकमध्ये जोडला जाईल. ते व्यवहारांच्या स्वाक्षरी हाताळण्याच्या पद्धतीत भिन्न आहेत.

  • eth_sendTransaction (नवीन टॅबमध्ये उघडते) चा वापर स्वाक्षरी नसलेले व्यवहार पाठवण्यासाठी केला जातो, याचा अर्थ असा की तुम्ही ज्या नोडला पाठवत आहात त्याने तुमची खाजगी की व्यवस्थापित केली पाहिजे जेणेकरून तो चेनवर प्रसारित करण्यापूर्वी व्यवहारावर स्वाक्षरी करू शकेल. Alchemy वापरकर्त्यांच्या खाजगी की ठेवत नसल्यामुळे, ते या पद्धतीला समर्थन देत नाहीत.
  • eth_sendRawTransaction (नवीन टॅबमध्ये उघडते) चा वापर आधीच स्वाक्षरी केलेल्या व्यवहारांना प्रसारित करण्यासाठी केला जातो. याचा अर्थ तुम्हाला प्रथम signTransaction(tx, private_key) (नवीन टॅबमध्ये उघडते) वापरावे लागेल, त्यानंतर त्याचा परिणाम eth_sendRawTransaction मध्ये पास करावा लागेल.

Web3 वापरताना, web3.eth.sendSignedTransaction (नवीन टॅबमध्ये उघडते) फंक्शन कॉल करून eth_sendRawTransaction ॲक्सेस केले जाते.

या ट्युटोरियलमध्ये आपण हेच वापरणार आहोत.

6. Web3 लायब्ररी म्हणजे काय?

  • Web3.js ही मानक जेसॉन-आरपीसी कॉल्सभोवती एक रॅपर लायब्ररी आहे जी इथेरियम डेव्हलपमेंटमध्ये वापरण्यासाठी अगदी सामान्य आहे.
  • वेगवेगळ्या भाषांसाठी अनेक Web3 लायब्ररी आहेत. या ट्युटोरियलमध्ये आपण Alchemy Web3 (नवीन टॅबमध्ये उघडते) वापरणार आहोत जे JavaScript मध्ये लिहिलेले आहे. तुम्ही Ethers.js (नवीन टॅबमध्ये उघडते) सारखे इतर पर्याय येथे तपासू शकता.

ठीक आहे, आता आपण यापैकी काही प्रश्नांची उत्तरे मिळवली आहेत, तर आपण ट्युटोरियलकडे वळूया. Alchemy च्या डिस्कॉर्ड् (नवीन टॅबमध्ये उघडते) मध्ये कधीही प्रश्न विचारण्यास संकोच करू नका!

7. सुरक्षित, गॅस-ऑप्टिमाइझ केलेले आणि खाजगी व्यवहार कसे पाठवायचे?

टीप: या मार्गदर्शकासाठी Alchemy खाते, इथेरियम पत्ता किंवा मेटामास्क वॉलेट, Node.js आणि npm स्थापित असणे आवश्यक आहे. नसल्यास, या पायऱ्यांचे अनुसरण करा:

  1. मोफत Alchemy खाते तयार करा (नवीन टॅबमध्ये उघडते)
  2. मेटामास्क खाते तयार करा (नवीन टॅबमध्ये उघडते) (किंवा इथेरियम पत्ता मिळवा)
  3. Node.js आणि npm स्थापित करा (नवीन टॅबमध्ये उघडते)

तुमचा व्यवहार पाठवण्याच्या पायऱ्या

1. Sepolia टेस्टनेटवर Alchemy ॲप तयार करा

तुमच्या Alchemy डॅशबोर्डवर (नवीन टॅबमध्ये उघडते) जा आणि तुमच्या नेटवर्कसाठी Sepolia (किंवा इतर कोणतेही टेस्टनेट) निवडून नवीन ॲप तयार करा.

2. Sepolia फॉसेटमधून ETH ची विनंती करा

ETH प्राप्त करण्यासाठी Alchemy Sepolia फॉसेटवरील (नवीन टॅबमध्ये उघडते) सूचनांचे पालन करा. तुमचा Sepolia इथेरियम पत्ता (मेटामास्क मधून) समाविष्ट केल्याची खात्री करा आणि दुसऱ्या नेटवर्कचा नाही. सूचनांचे पालन केल्यानंतर, तुम्हाला तुमच्या वॉलेटमध्ये ETH प्राप्त झाले आहे का ते पुन्हा तपासा.

3. नवीन प्रोजेक्ट डिरेक्टरी तयार करा आणि त्यात cd करा

कमांड लाईनवरून (मॅकसाठी टर्मिनल) नवीन प्रोजेक्ट डिरेक्टरी तयार करा आणि त्यात जा:

mkdir sendtx-example
cd sendtx-example

4. Alchemy Web3 (किंवा कोणतीही Web3 लायब्ररी) स्थापित करा

Alchemy Web3 (नवीन टॅबमध्ये उघडते) स्थापित करण्यासाठी तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये खालील कमांड चालवा:

लक्षात घ्या, जर तुम्हाला Ethers.js लायब्ररी वापरायची असेल, तर येथील सूचनांचे पालन करा (नवीन टॅबमध्ये उघडते).

npm install @alch/alchemy-web3

5. dotenv स्थापित करा

आपली API की आणि खाजगी की सुरक्षितपणे साठवण्यासाठी आपण .env फाईल वापरू.

npm install dotenv --save

6. .env फाईल तयार करा

तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये .env फाईल तयार करा आणि खालील गोष्टी जोडा ("your-api-url" आणि "your-private-key" बदलून)

  • तुमची Alchemy API URL शोधण्यासाठी, तुम्ही तुमच्या डॅशबोर्डवर नुकत्याच तयार केलेल्या ॲपच्या ॲप तपशील पृष्ठावर जा, वरच्या उजव्या कोपऱ्यात "View Key" वर क्लिक करा आणि HTTP URL घ्या.
  • मेटामास्क वापरून तुमची खाजगी की शोधण्यासाठी, हे मार्गदर्शक (नवीन टॅबमध्ये उघडते) तपासा.
API_URL = "your-api-url"
PRIVATE_KEY = "your-private-key"
.env कमिट करू नका! कृपया तुमची .env फाईल कोणाशीही शेअर किंवा उघड न करण्याची खात्री करा, कारण असे केल्याने तुम्ही तुमची गुपिते धोक्यात आणत आहात. जर तुम्ही व्हर्जन कंट्रोल वापरत असाल, तर तुमची .env एका gitignore फाईलमध्ये जोडा.

7. sendTx.js फाईल तयार करा

उत्तम, आता आपला संवेदनशील डेटा .env फाईलमध्ये सुरक्षित असल्याने, आपण कोडिंग सुरू करूया. आपल्या व्यवहार पाठवण्याच्या उदाहरणासाठी, आपण Sepolia फॉसेटला ETH परत पाठवणार आहोत.

एक sendTx.js फाईल तयार करा, जिथे आपण आपला उदाहरणादाखल व्यवहार कॉन्फिगर करू आणि पाठवू, आणि त्यात खालील कोडच्या ओळी जोडा:

ओळ 6 वरील पत्ता तुमच्या स्वतःच्या सार्वजनिक पत्त्याने बदलण्याची खात्री करा.

आता, हा कोड चालवण्यापूर्वी, आपण येथील काही घटकांबद्दल बोलूया.

  • nonce : नॉन्स स्पेसिफिकेशनचा वापर तुमच्या पत्त्यावरून पाठवलेल्या व्यवहारांच्या संख्येचा मागोवा ठेवण्यासाठी केला जातो. सुरक्षिततेच्या उद्देशाने आणि रिप्ले हल्ले (replay attacks) टाळण्यासाठी आपल्याला याची आवश्यकता असते. तुमच्या पत्त्यावरून पाठवलेल्या व्यवहारांची संख्या मिळवण्यासाठी आपण getTransactionCount (नवीन टॅबमध्ये उघडते) वापरतो.
  • transaction: व्यवहार ऑब्जेक्टमध्ये काही पैलू आहेत जे आपल्याला निर्दिष्ट करणे आवश्यक आहे
    • to: हा तो पत्ता आहे ज्यावर आपल्याला ETH पाठवायचे आहे. या प्रकरणात, आपण सुरुवातीला ज्या Sepolia फॉसेटमधून (नवीन टॅबमध्ये उघडते) विनंती केली होती, त्यालाच ETH परत पाठवत आहोत.
    • value: ही ती रक्कम आहे जी आपण पाठवू इच्छितो, जी Wei मध्ये निर्दिष्ट केली आहे जिथे 10^18 Wei = 1 ETH
    • gas: तुमच्या व्यवहारासोबत समाविष्ट करण्यासाठी गॅसची योग्य रक्कम ठरवण्याचे अनेक मार्ग आहेत. Alchemy webhooks (नवीन टॅबमध्ये उघडते) ला समर्थन देते जे तुम्हाला ऑनचेन क्रियाकलापांबद्दल सूचित करू शकतात. मुख्यनेट व्यवहारांसाठी, समाविष्ट करण्यासाठी गॅसची योग्य रक्कम ठरवण्यासाठी सध्याच्या गॅस परिस्थिती तपासणे ही एक चांगली सवय आहे. इथेरियमवरील ऑपरेशनसाठी किमान 21000 गॅस वापरला जातो, त्यामुळे आपला व्यवहार कार्यान्वित होईल याची खात्री करण्यासाठी आपण येथे 30000 टाकतो.
    • nonce: वरील नॉन्सची व्याख्या पहा. नॉन्स 0 पासून मोजणे सुरू करतो.
    • [पर्यायी] data: तुमच्या हस्तांतरणासोबत अतिरिक्त माहिती पाठवण्यासाठी, किंवा स्मार्ट कॉन्ट्रॅक्ट कॉल करण्यासाठी वापरला जातो, शिल्लक हस्तांतरणासाठी आवश्यक नाही, खालील टीप तपासा.
  • signedTx: आपल्या व्यवहार ऑब्जेक्टवर स्वाक्षरी करण्यासाठी आपण आपल्या PRIVATE_KEY सोबत signTransaction पद्धत वापरू
  • sendSignedTransaction: एकदा आपल्याकडे स्वाक्षरी केलेला व्यवहार आला की, आपण sendSignedTransaction वापरून तो पुढील ब्लॉकमध्ये समाविष्ट करण्यासाठी पाठवू शकतो

डेटावरील एक टीप इथेरियममध्ये पाठवले जाऊ शकणारे दोन मुख्य प्रकारचे व्यवहार आहेत.

  • शिल्लक हस्तांतरण: एका पत्त्यावरून दुसऱ्या पत्त्यावर ETH पाठवणे. कोणत्याही डेटा फील्डची आवश्यकता नाही, तथापि, जर तुम्हाला तुमच्या व्यवहारासोबत अतिरिक्त माहिती पाठवायची असेल, तर तुम्ही ती माहिती या फील्डमध्ये HEX फॉरमॅटमध्ये समाविष्ट करू शकता.
    • उदाहरणार्थ, समजा आपल्याला एखाद्या IPFS दस्तऐवजाचा हॅश इथेरियम चेनवर लिहायचा आहे जेणेकरून त्याला एक अपरिवर्तनीय टाइमस्टॅम्प देता येईल. तेव्हा आपले डेटा फील्ड असे दिसायला हवे data: web3.utils.toHex(‘IPFS hash‘). आणि आता कोणीही चेनवर क्वेरी करू शकतो आणि तो दस्तऐवज कधी जोडला गेला हे पाहू शकतो.
  • स्मार्ट कॉन्ट्रॅक्ट व्यवहार: चेनवर काही स्मार्ट कॉन्ट्रॅक्ट कोड कार्यान्वित करणे. या प्रकरणात, डेटा फील्डमध्ये तुम्ही कार्यान्वित करू इच्छित असलेले स्मार्ट फंक्शन, कोणत्याही पॅरामीटर्ससह असावे.

8. node sendTx.js वापरून कोड चालवा

तुमच्या टर्मिनल किंवा कमांड लाईनवर परत जा आणि चालवा:

node sendTx.js

9. मेमपूलमध्ये तुमचा व्यवहार पहा

तुमच्या Alchemy डॅशबोर्डमध्ये मेमपूल पृष्ठ (नवीन टॅबमध्ये उघडते) उघडा आणि तुमचा व्यवहार शोधण्यासाठी तुम्ही तयार केलेल्या ॲपनुसार फिल्टर करा. येथे आपण आपला व्यवहार प्रलंबित (pending) स्थितीमधून माईंड (mined) स्थितीत (यशस्वी झाल्यास) किंवा अयशस्वी झाल्यास वगळलेल्या (dropped) स्थितीत जाताना पाहू शकतो. ते "All" वर ठेवण्याची खात्री करा जेणेकरून तुम्ही "mined", "pending", आणि "dropped" व्यवहार कॅप्चर करू शकाल. तुम्ही 0x31b98d14007bdee637298086988a0bbd31184523 या पत्त्यावर पाठवलेले व्यवहार शोधून देखील तुमचा व्यवहार शोधू शकता.

एकदा तुम्हाला तुमचा व्यवहार सापडल्यानंतर त्याचे तपशील पाहण्यासाठी, tx हॅश निवडा, जे तुम्हाला अशा दिसणाऱ्या दृश्याकडे घेऊन जाईल:

मेमपूल वॉचर स्क्रीनशॉट

तेथून तुम्ही लाल वर्तुळ केलेल्या आयकॉनवर क्लिक करून तुमचा व्यवहार Etherscan वर पाहू शकता!

यिप्पी! तुम्ही नुकताच Alchemy वापरून तुमचा पहिला इथेरियम व्यवहार पाठवला आहे 🎉

या मार्गदर्शकाबद्दल अभिप्राय आणि सूचनांसाठी, कृपया Alchemy च्या डिस्कॉर्ड् (नवीन टॅबमध्ये उघडते) वर Elan ला संदेश पाठवा!

मूळतः Alchemy द्वारे प्रकाशित.