ప్రధాన కంటెంట్‌కి స్కిప్ చేయండి

Web3 ఉపయోగించి లావాదేవీలను పంపడం

లావాదేవీలు
web3.js
alchemy
ప్రారంభ
Elan Halpern
4 నవంబర్, 2020
8 నిమిషం పఠనం

Web3 ఉపయోగించి ఇతీరియము లావాదేవీలను పంపడానికి ఇది ఒక ప్రారంభ స్నేహపూర్వక మార్గదర్శి. ఇతీరియము బ్లాక్‌చైన్‌కు లావాదేవీని పంపడానికి మూడు ప్రధాన దశలు ఉన్నాయి: సృష్టించడం, సంతకం చేయడం మరియు ప్రసారం చేయడం. మేము ఈ మూడింటినీ చర్చిద్దాం, మీకు ఉండగల ఏవైనా ప్రశ్నలకు సమాధానం ఇస్తామని ఆశిస్తున్నాము! ఈ ట్యుటోరియల్‌లో, మా లావాదేవీలను ఇతీరియము చైన్‌కు పంపడానికి మేము Alchemy (opens in a new tab)ని ఉపయోగిస్తాము. మీరు ఇక్కడ ఉచిత Alchemy ఖాతాను సృష్టించవచ్చు (opens in a new tab).

గమనిక: ఈ మార్గదర్శి మీ యాప్ కోసం బ్యాకెండ్ లో మీ లావాదేవీలపై సంతకం చేయడానికి ఉద్దేశించబడింది. మీరు ఫ్రంటెండ్‌లో మీ లావాదేవీలపై సంతకం చేయడాన్ని ఇంటిగ్రేట్ చేయాలనుకుంటే, బ్రౌజర్ ప్రొవైడర్‌తో Web3ని ఇంటిగ్రేట్ చేయడం (opens in a new tab) చూడండి.

ప్రాథమిక అంశాలు

చాలా మంది బ్లాక్‌చైన్ డెవలపర్‌ల వలె, వారు మొదటిసారి ప్రారంభించినప్పుడు, మీరు ఒక లావాదేవీని ఎలా పంపాలనే దానిపై కొంత పరిశోధన చేసి ఉండవచ్చు (చాలా సులభంగా ఉండాల్సిన విషయం) మరియు అనేక మార్గదర్శకాలను చూసి ఉండవచ్చు, ప్రతిదీ వేర్వేరు విషయాలు చెప్పడంతో మీరు కొద్దిగా నిరుత్సాహపడి, గందరగోళానికి గురై ఉండవచ్చు. మీరు ఆ పరిస్థితిలో ఉంటే, చింతించకండి; మనమందరం ఏదో ఒక సమయంలో అలానే ఉన్నాము! కాబట్టి, మనం ప్రారంభించడానికి ముందు, కొన్ని విషయాలను స్పష్టం చేసుకుందాం:

1. Alchemy మీ ప్రైవేట్ కీలను నిల్వ చేయదు

  • దీని అర్థం Alchemy మీ తరపున లావాదేవీలపై సంతకం చేసి పంపలేదు. దీనికి కారణం భద్రతా ప్రయోజనాలు. Alchemy మీ ప్రైవేట్ కీని పంచుకోమని మిమ్మల్ని ఎప్పటికీ అడగదు, మరియు మీరు మీ ప్రైవేట్ కీని హోస్ట్ చేయబడిన నోడ్‌తో (లేదా ఆ విషయానికి వస్తే ఎవరితోనైనా) ఎప్పుడూ పంచుకోకూడదు.
  • మీరు Alchemy యొక్క కోర్ APIని ఉపయోగించి బ్లాక్‌చైన్ నుండి చదవవచ్చు, కానీ దానికి రాయడానికి, మీరు మీ లావాదేవీలను Alchemy ద్వారా పంపే ముందు వాటిపై సంతకం చేయడానికి వేరేదాన్ని ఉపయోగించాల్సి ఉంటుంది (ఇది ఏదైనా ఇతర నోడ్ సేవకు కూడా వర్తిస్తుంది).

2. “సంతకం చేసేవారు” అంటే ఎవరు?

  • సంతకం చేసేవారు మీ ప్రైవేట్ కీని ఉపయోగించి మీ కోసం లావాదేవీలపై సంతకం చేస్తారు. ఈ ట్యుటోరియల్‌లో మా లావాదేవీపై సంతకం చేయడానికి మేము Alchemy web3 (opens in a new tab) ని ఉపయోగిస్తాము, కానీ మీరు ఏదైనా ఇతర web3 లైబ్రరీని కూడా ఉపయోగించవచ్చు.
  • ఫ్రంటెండ్‌లో, సంతకం చేసేవారికి ఒక మంచి ఉదాహరణ MetaMask (opens in a new tab), ఇది మీ తరపున లావాదేవీలపై సంతకం చేసి పంపుతుంది.

3. నేను నా లావాదేవీలపై ఎందుకు సంతకం చేయాలి?

  • ఇతీరియము నెట్‌వర్క్‌లో లావాదేవీని పంపాలనుకునే ప్రతి వినియోగదారుడు లావాదేవీ యొక్క మూలం ఎవరో ధృవీకరించడానికి, లావాదేవీపై (వారి ప్రైవేట్ కీని ఉపయోగించి) సంతకం చేయాలి.
  • ఈ ప్రైవేట్ కీని రక్షించడం చాలా ముఖ్యం, ఎందుకంటే దీనికి ప్రాప్యత కలిగి ఉండటం మీ ఇతీరియము ఖాతాపై పూర్తి నియంత్రణను ఇస్తుంది, ఇది మిమ్మల్ని (లేదా ప్రాప్యత ఉన్న ఎవరినైనా) మీ తరపున లావాదేవీలను నిర్వహించడానికి అనుమతిస్తుంది.

4. నా ప్రైవేట్ కీని నేను ఎలా రక్షించుకోవాలి?

  • మీ ప్రైవేట్ కీని రక్షించడానికి మరియు లావాదేవీలను పంపడానికి దానిని ఉపయోగించడానికి అనేక మార్గాలు ఉన్నాయి. ఈ ట్యుటోరియల్‌లో మేము .env ఫైల్‌ను ఉపయోగిస్తాము. అయితే, మీరు ప్రైవేట్ కీలను నిల్వ చేసే ప్రత్యేక ప్రొవైడర్‌ను కూడా ఉపయోగించవచ్చు, కీస్టోర్ ఫైల్‌ను లేదా ఇతర ఎంపికలను ఉపయోగించవచ్చు.

5. eth_sendTransaction మరియు eth_sendRawTransaction మధ్య తేడా ఏమిటి?

eth_sendTransaction మరియు eth_sendRawTransaction రెండూ ఇతీరియము API ఫంక్షన్‌లు, ఇవి ఇతీరియము నెట్‌వర్క్‌కు లావాదేవీని ప్రసారం చేస్తాయి, తద్వారా ఇది భవిష్యత్తు బ్లాక్‌కు జోడించబడుతుంది. అవి లావాదేవీలపై సంతకం చేయడాన్ని నిర్వహించే విధానంలో విభిన్నంగా ఉంటాయి.

  • eth_sendTransaction (opens in a new tab) సంతకం చేయని లావాదేవీలను పంపడానికి ఉపయోగించబడుతుంది, దీని అర్థం మీరు పంపుతున్న నోడ్ మీ ప్రైవేట్ కీని నిర్వహించాలి, తద్వారా అది చైన్‌కు ప్రసారం చేయడానికి ముందు లావాదేవీపై సంతకం చేయగలదు. Alchemy వినియోగదారుల ప్రైవేట్ కీలను కలిగి ఉండదు కాబట్టి, వారు ఈ పద్ధతికి మద్దతు ఇవ్వరు.
  • eth_sendRawTransaction (opens in a new tab) ఇప్పటికే సంతకం చేసిన లావాదేవీలను ప్రసారం చేయడానికి ఉపయోగించబడుతుంది. దీని అర్థం మీరు మొదట signTransaction(tx, private_key) (opens in a new tab) ని ఉపయోగించాలి, ఆ తర్వాత ఫలితాన్ని eth_sendRawTransaction లోకి పంపాలి.

web3ని ఉపయోగిస్తున్నప్పుడు, web3.eth.sendSignedTransaction (opens in a new tab) ఫంక్షన్‌ను కాల్ చేయడం ద్వారా eth_sendRawTransaction యాక్సెస్ చేయబడుతుంది.

ఈ ట్యుటోరియల్‌లో మనం ఉపయోగించబోయేది ఇదే.

6. web3 లైబ్రరీ అంటే ఏమిటి?

  • Web3.js అనేది ప్రామాణిక JSON-RPC కాల్స్ చుట్టూ ఉన్న ఒక వ్రాపర్ లైబ్రరీ, ఇది ఇతీరియము అభివృద్ధిలో ఉపయోగించడం చాలా సాధారణం.
  • వివిధ భాషల కోసం అనేక web3 లైబ్రరీలు ఉన్నాయి. ఈ ట్యుటోరియల్‌లో మనం జావాస్క్రిప్ట్‌లో వ్రాసిన Alchemy Web3 (opens in a new tab)ని ఉపయోగిస్తాము. మీరు ethers.js (opens in a new tab) వంటి ఇతర ఎంపికలను ఇక్కడ (opens in a new tab) చూడవచ్చు.

సరే, ఇప్పుడు మనకు ఈ ప్రశ్నలలో కొన్నింటికి సమాధానం దొరికింది, ట్యుటోరియల్‌కు వెళ్దాం. Alchemy discord (opens in a new tab)లో ఎప్పుడైనా ప్రశ్నలు అడగడానికి సంకోచించకండి!

7. సురక్షితమైన, గ్యాస్-ఆప్టిమైజ్ చేయబడిన, మరియు ప్రైవేట్ లావాదేవీలను ఎలా పంపాలి?

  • Alchemy ట్రాన్సాక్ట్ APIల సూట్‌ను కలిగి ఉంది (opens in a new tab). బలోపేతం చేయబడిన లావాదేవీలను పంపడానికి, లావాదేవీలు జరగడానికి ముందే వాటిని అనుకరించడానికి, ప్రైవేట్ లావాదేవీలను పంపడానికి, మరియు గ్యాస్-ఆప్టిమైజ్ చేయబడిన లావాదేవీలను పంపడానికి మీరు వీటిని ఉపయోగించవచ్చు
  • మీ లావాదేవీ మెమ్‌పూల్ నుండి తీసివేయబడి, చైన్‌కు జోడించబడినప్పుడు హెచ్చరించబడటానికి మీరు Notify API (opens in a new tab)ని కూడా ఉపయోగించవచ్చు

గమనిక: ఈ మార్గదర్శికి Alchemy ఖాతా, ఒక ఇతీరియము చిరునామా లేదా MetaMask వాలెట్, NodeJs, మరియు npm ఇన్‌స్టాల్ చేయబడి ఉండాలి. లేకపోతే, ఈ దశలను అనుసరించండి:

  1. ఉచిత Alchemy ఖాతాను సృష్టించండి (opens in a new tab)
  2. MetaMask ఖాతాను సృష్టించండి (opens in a new tab) (లేదా ఒక ఇతీరియము చిరునామా పొందండి)
  3. NodeJs మరియు NPM ఇన్‌స్టాల్ చేయడానికి ఈ దశలను అనుసరించండి (opens in a new tab)

మీ లావాదేవీని పంపే దశలు

1. Sepolia టెస్ట్‌నెట్‌లో Alchemy యాప్‌ను సృష్టించండి

మీ Alchemy డాష్‌బోర్డ్ (opens in a new tab) కు నావిగేట్ చేసి, మీ నెట్‌వర్క్ కోసం Sepolia (లేదా ఏదైనా ఇతర టెస్ట్‌నెట్) ను ఎంచుకుని కొత్త యాప్‌ను సృష్టించండి.

2. Sepolia ఫాసెట్ నుండి ETH అభ్యర్థించండి

ETH స్వీకరించడానికి Alchemy Sepolia faucet (opens in a new tab)లోని సూచనలను అనుసరించండి. మీ Sepolia ఇతీరియము చిరునామాను (MetaMask నుండి) చేర్చారని మరియు మరొక నెట్‌వర్క్‌ది కాదని నిర్ధారించుకోండి. సూచనలను అనుసరించిన తర్వాత, మీ వాలెట్‌లో ETH స్వీకరించారని రెండుసార్లు తనిఖీ చేసుకోండి.

3. కొత్త ప్రాజెక్ట్ డైరెక్టరీని సృష్టించి, దానిలోకి cd అవ్వండి

కమాండ్ లైన్ (macs కోసం టెర్మినల్) నుండి కొత్త ప్రాజెక్ట్ డైరెక్టరీని సృష్టించి, దానిలోకి నావిగేట్ చేయండి:

1mkdir sendtx-example
2cd sendtx-example

4. Alchemy Web3 (లేదా ఏదైనా web3 లైబ్రరీ) ని ఇన్‌స్టాల్ చేయండి

Alchemy Web3 (opens in a new tab)ని ఇన్‌స్టాల్ చేయడానికి మీ ప్రాజెక్ట్ డైరెక్టరీలో కింది కమాండ్‌ను అమలు చేయండి:

గమనిక, మీరు ethers.js లైబ్రరీని ఉపయోగించాలనుకుంటే, ఇక్కడి సూచనలను అనుసరించండి (opens in a new tab).

1npm install @alch/alchemy-web3

5. dotenv ఇన్‌స్టాల్ చేయండి

మా API కీ మరియు ప్రైవేట్ కీని సురక్షితంగా నిల్వ చేయడానికి మేము .env ఫైల్‌ను ఉపయోగిస్తాము.

1npm install dotenv --save

6. .env ఫైల్‌ను సృష్టించండి

మీ ప్రాజెక్ట్ డైరెక్టరీలో .env ఫైల్‌ను సృష్టించి, కింది వాటిని జోడించండి (“your-api-url" మరియు "your-private-key" లను భర్తీ చేస్తూ)

  • మీ Alchemy API URL ను కనుగొనడానికి, మీ డాష్‌బోర్డ్‌లో మీరు ఇప్పుడే సృష్టించిన యాప్ యొక్క యాప్ వివరాల పేజీకి నావిగేట్ చేయండి, కుడి ఎగువ మూలలోని “View Key” పై క్లిక్ చేసి, HTTP URLని తీసుకోండి.
  • MetaMask ఉపయోగించి మీ ప్రైవేట్ కీని కనుగొనడానికి, ఈ మార్గదర్శి (opens in a new tab)ని చూడండి.
1API_URL = "your-api-url"
2PRIVATE_KEY = "your-private-key"

7. sendTx.js ఫైల్‌ను సృష్టించండి

గొప్పది, ఇప్పుడు మన సున్నితమైన డేటా .env ఫైల్‌లో రక్షించబడింది, కోడింగ్ ప్రారంభిద్దాం. మా లావాదేవీ పంపే ఉదాహరణ కోసం, మేము ETHని Sepolia ఫాసెట్‌కు తిరిగి పంపుతాము.

sendTx.js ఫైల్‌ను సృష్టించండి, ఇక్కడే మేము మా ఉదాహరణ లావాదేవీని కాన్ఫిగర్ చేసి పంపుతాము మరియు దానికి కింది కోడ్ లైన్‌లను జోడించండి:

1async function main() {
2 require('dotenv').config();
3 const { API_URL, PRIVATE_KEY } = process.env;
4 const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
5 const web3 = createAlchemyWeb3(API_URL);
6 const myAddress = '0x610Ae88399fc1687FA7530Aac28eC2539c7d6d63' //TODO: replace this address with your own public address
7
8 const nonce = await web3.eth.getTransactionCount(myAddress, 'latest'); // nonce starts counting from 0
9
10 const transaction = {
11 'to': '0x31B98D14007bDEe637298086988A0bBd31184523', // faucet address to return eth
12 'value': 1000000000000000000, // 1 ETH
13 'gas': 30000,
14 'nonce': nonce,
15 // optional data field to send message or execute smart contract
16 };
17
18 const signedTx = await web3.eth.accounts.signTransaction(transaction, PRIVATE_KEY);
19
20 web3.eth.sendSignedTransaction(signedTx.rawTransaction, function(error, hash) {
21 if (!error) {
22 console.log("🎉 The hash of your transaction is: ", hash, "\n Check Alchemy's Mempool to view the status of your transaction!");
23 } else {
24 console.log("❗Something went wrong while submitting your transaction:", error)
25 }
26 });
27}
28
29main();
అన్నీ చూపించు

లైన్ 6 లోని చిరునామాను మీ స్వంత పబ్లిక్ చిరునామాతో భర్తీ చేయాలని నిర్ధారించుకోండి.

ఇప్పుడు, ఈ కోడ్‌ను అమలు చేయడానికి ముందు, ఇక్కడ ఉన్న కొన్ని భాగాల గురించి మాట్లాడుకుందాం.

  • nonce : మీ చిరునామా నుండి పంపిన లావాదేవీల సంఖ్యను ట్రాక్ చేయడానికి నాన్స్ స్పెసిఫికేషన్ ఉపయోగించబడుతుంది. భద్రతా ప్రయోజనాల కోసం మరియు రీప్లే దాడులను (opens in a new tab) నివారించడానికి మాకు ఇది అవసరం. మీ చిరునామా నుండి పంపిన లావాదేవీల సంఖ్యను పొందడానికి మేము getTransactionCount (opens in a new tab)ని ఉపయోగిస్తాము.
  • transaction: లావాదేవీ ఆబ్జెక్ట్ కొన్ని అంశాలను కలిగి ఉంది, వాటిని మేము పేర్కొనాలి
    • to: ఇది మేము ETH పంపాలనుకుంటున్న చిరునామా. ఈ సందర్భంలో, మేము మొదట అభ్యర్థించిన Sepolia faucet (opens in a new tab)కు ETHని తిరిగి పంపుతున్నాము.
    • value: ఇది మేము పంపాలనుకుంటున్న మొత్తం, Wei లో పేర్కొనబడింది, ఇక్కడ 10^18 Wei = 1 ETH
    • gas: మీ లావాదేవీతో చేర్చడానికి సరైన గ్యాస్ మొత్తాన్ని నిర్ణయించడానికి అనేక మార్గాలు ఉన్నాయి. గ్యాస్ ధర ఒక నిర్దిష్ట పరిమితిలోకి పడిపోయినప్పుడు మీకు తెలియజేయడానికి Alchemyకి గ్యాస్ ధర వెబ్‌హుక్ (opens in a new tab) కూడా ఉంది. Mainnet లావాదేవీల కోసం, చేర్చవలసిన సరైన గ్యాస్ మొత్తాన్ని నిర్ణయించడానికి ETH గ్యాస్ స్టేషన్ (opens in a new tab) వంటి గ్యాస్ ఎస్టిమేటర్‌ను తనిఖీ చేయడం మంచి పద్ధతి. 21000 అనేది ఇతీరియములో ఒక ఆపరేషన్ ఉపయోగించే కనీస గ్యాస్ మొత్తం, కాబట్టి మా లావాదేవీ అమలు చేయబడుతుందని నిర్ధారించుకోవడానికి మేము ఇక్కడ 30000 పెట్టాము.
    • nonce: పైన ఉన్న నాన్స్ నిర్వచనం చూడండి. నాన్స్ సున్నా నుండి లెక్కించడం ప్రారంభిస్తుంది.
    • [ఐచ్ఛికం] డేటా: మీ బదిలీతో అదనపు సమాచారాన్ని పంపడానికి లేదా స్మార్ట్ కాంట్రాక్ట్‌ను కాల్ చేయడానికి ఉపయోగించబడుతుంది, బ్యాలెన్స్ బదిలీలకు అవసరం లేదు, కింద ఉన్న గమనికను చూడండి.
  • signedTx: మా లావాదేవీ ఆబ్జెక్ట్‌పై సంతకం చేయడానికి, మేము మా PRIVATE_KEYతో signTransaction పద్ధతిని ఉపయోగిస్తాము
  • sendSignedTransaction: మన వద్ద సంతకం చేసిన లావాదేవీ ఉన్న తర్వాత, sendSignedTransactionని ఉపయోగించి దాన్ని తదుపరి బ్లాక్‌లో చేర్చడానికి పంపవచ్చు

డేటాపై ఒక గమనిక ఇతీరియములో పంపగల రెండు ప్రధాన రకాల లావాదేవీలు ఉన్నాయి.

  • బ్యాలెన్స్ బదిలీ: ఒక చిరునామా నుండి మరొక చిరునామాకు ETH పంపండి. డేటా ఫీల్డ్ అవసరం లేదు, అయితే, మీరు మీ లావాదేవీతో పాటు అదనపు సమాచారాన్ని పంపాలనుకుంటే, మీరు ఆ సమాచారాన్ని ఈ ఫీల్డ్‌లో HEX ఫార్మాట్‌లో చేర్చవచ్చు.
    • ఉదాహరణకు, మనం ఒక IPFS పత్రం యొక్క హాష్‌ను ఇతీరియము చైన్‌కు రాయాలనుకుంటున్నామని అనుకుందాం, దానికి మార్పులేని టైమ్‌స్టాంప్ ఇవ్వడానికి. అప్పుడు మా డేటా ఫీల్డ్ ఇలా ఉండాలి: web3.utils.toHex(‘IPFS hash‘). ఇప్పుడు ఎవరైనా చైన్‌ను క్వెరీ చేసి, ఆ పత్రం ఎప్పుడు జోడించబడిందో చూడవచ్చు.
  • స్మార్ట్ కాంట్రాక్ట్ లావాదేవీ: చైన్‌పై కొంత స్మార్ట్ కాంట్రాక్ట్ కోడ్‌ను అమలు చేయండి. ఈ సందర్భంలో, డేటా ఫీల్డ్‌లో మీరు అమలు చేయాలనుకుంటున్న స్మార్ట్ ఫంక్షన్, ఏవైనా పారామీటర్‌లతో పాటు ఉండాలి.

8. node sendTx.js ఉపయోగించి కోడ్‌ను అమలు చేయండి

మీ టెర్మినల్ లేదా కమాండ్ లైన్‌కు తిరిగి వెళ్లి అమలు చేయండి:

1node sendTx.js

9. Mempoolలో మీ లావాదేవీని చూడండి

మీ Alchemy డాష్‌బోర్డ్‌లో Mempool పేజీ (opens in a new tab)ని తెరిచి, మీ లావాదేవీని కనుగొనడానికి మీరు సృష్టించిన యాప్ ద్వారా ఫిల్టర్ చేయండి. ఇక్కడే మన లావాదేవీ పెండింగ్ స్థితి నుండి మైన్డ్ స్థితికి (విజయవంతమైతే) లేదా విఫలమైతే డ్రాప్డ్ స్థితికి మారడాన్ని మనం చూడవచ్చు. “mined”, “pending”, మరియు “dropped” లావాదేవీలను మీరు క్యాప్చర్ చేయడానికి దాన్ని “All” పై ఉంచారని నిర్ధారించుకోండి. 0x31b98d14007bdee637298086988a0bbd31184523 చిరునామాకు పంపిన లావాదేవీల కోసం వెతకడం ద్వారా కూడా మీరు మీ లావాదేవీని శోధించవచ్చు .

మీరు దాన్ని కనుగొన్న తర్వాత మీ లావాదేవీ వివరాలను వీక్షించడానికి, tx హాష్‌ను ఎంచుకోండి, ఇది మిమ్మల్ని ఇలా కనిపించే వీక్షణకు తీసుకువెళుతుంది:

Mempool వాచర్ స్క్రీన్‌షాట్

అక్కడ నుండి మీరు ఎరుపు రంగులో చుట్టబడిన ఐకాన్‌పై క్లిక్ చేయడం ద్వారా Etherscanలో మీ లావాదేవీని వీక్షించవచ్చు!

భలే! మీరు ఇప్పుడే Alchemy ఉపయోగించి మీ మొదటి ఇతీరియము లావాదేవీని పంపారు 🎉**

ఈ మార్గదర్శి గురించి అభిప్రాయం మరియు సూచనల కోసం, దయచేసి Alchemy యొక్క Discord (opens in a new tab)లో Elanకు సందేశం పంపండి!

మొదట https://docs.alchemyapi.io/tutorials/sending-transactions-using-web3-and-alchemy (opens in a new tab) వద్ద ప్రచురించబడింది

పేజీ చివరి అప్‌డేట్: 18 డిసెంబర్, 2025

ఈ ట్యుటోరియల్ ఉపయోగపడిందా?