பிரதான உள்ளடக்கத்திற்குச் செல்

ஜாவாஸ்கிரிப்டில் எத்தேரியம் பிளாக்செயினைப் பயன்படுத்த web3.js-ஐ அமைக்கவும்

web3.js
ஜாவாஸ்கிரிப்ட்
தொடக்கநிலை
jdourlens
11 ஏப்ரல், 2020
2 நிமிட வாசிப்பு

இந்த வழிகாட்டியில், எத்தேரியம் பிளாக்செயினுடன் ஊடாட web3.js (opens in a new tab) உடன் எப்படி தொடங்குவது என்று காண்போம். பிளாக்செயினிலிருந்து தரவைப் படிக்க அல்லது பரிவர்த்தனைகளைச் செய்ய மற்றும் ஸ்மார்ட் ஒப்பந்தங்களை வரிசைப்படுத்தவும் Web3.js ஐ முகப்புமுனைகள் (frontends) மற்றும் பின்தளங்கள் (backends) இரண்டிலும் பயன்படுத்தலாம்.

உங்கள் திட்டத்தில் web3.js-ஐ சேர்ப்பதே முதல் படியாகும். ஒரு வலைப்பக்கத்தில் இதைப் பயன்படுத்த, JSDeliver போன்ற ஒரு CDN ஐப் பயன்படுத்தி நூலகத்தை நேரடியாக இறக்குமதி செய்யலாம்.

1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>

உங்கள் பின்தளம் அல்லது பில்டைப் பயன்படுத்தும் ஒரு முகப்புமுனைத் திட்டத்தில் பயன்படுத்த நூலகத்தை நிறுவ விரும்பினால், நீங்கள் அதை npm ஐப் பயன்படுத்தி நிறுவலாம்:

npm install web3 --save

பின்னர் ஒரு Node.js ஸ்கிரிப்ட் அல்லது Browserify முகப்புமுனைத் திட்டத்தில் Web3.js ஐ இறக்குமதி செய்ய, நீங்கள் பின்வரும் ஜாவாஸ்கிரிப்ட் வரியைப் பயன்படுத்தலாம்:

1const Web3 = require("web3")

இப்போது நாம் திட்டத்தில் நூலகத்தைச் சேர்த்துள்ளதால், அதை நாம் துவக்க வேண்டும். உங்கள் திட்டம் பிளாக்செயினுடன் தொடர்பு கொள்ளும் திறன் கொண்டிருக்க வேண்டும். பெரும்பாலான எத்தேரியம் நூலகங்கள் RPC அழைப்புகள் மூலம் ஒரு முனை உடன் தொடர்பு கொள்கின்றன. எங்கள் Web3 வழங்குநரைத் தொடங்க, வழங்குநரின் URL ஐ கட்டமைப்பாளராகக் கடத்தி, ஒரு Web3 நிகழ்வை உருவாக்குவோம். உங்கள் கணினியில் ஒரு முனை அல்லது ganache நிகழ்வு இயங்கினால் (opens in a new tab), அது இதுபோல இருக்கும்:

1const web3 = new Web3("http://localhost:8545")

நீங்கள் ஒரு ஹோஸ்ட் செய்யப்பட்ட முனையை நேரடியாக அணுக விரும்பினால், ஒரு சேவையாக முனைகள் என்பதில் விருப்பங்களைக் காணலாம்.

1const web3 = new Web3("https://cloudflare-eth.com")

எங்கள் Web3 நிகழ்வை சரியாக உள்ளமைத்துள்ளோமா என்பதைச் சோதிக்க, getBlockNumber செயல்பாட்டைப் பயன்படுத்தி சமீபத்திய பிளாக் எண்ணை மீட்டெடுக்க முயற்சிப்போம். இந்தச் செயல்பாடு ஒரு அளவுருவாக ஒரு கால்பேக்கை ஏற்றுக்கொள்கிறது மற்றும் பிளாக் எண்ணை ஒரு முழு எண்ணாக வழங்குகிறது.

1var Web3 = require("web3")
2const web3 = new Web3("https://cloudflare-eth.com")
3
4web3.eth.getBlockNumber(function (error, result) {
5 console.log(result)
6})

நீங்கள் இந்த நிரலை இயக்கினால், அது சமீபத்திய பிளாக் எண்ணை அச்சிடும்: அதாவது பிளாக்செயினின் உச்சி. உங்கள் குறியீட்டில் கால்பேக்குகளைக் கூடு கட்டுவதைத் தவிர்க்க await/async செயல்பாட்டு அழைப்புகளையும் நீங்கள் பயன்படுத்தலாம்:

1async function getBlockNumber() {
2 const latestBlockNumber = await web3.eth.getBlockNumber()
3 console.log(latestBlockNumber)
4 return latestBlockNumber
5}
6
7getBlockNumber()

Web3 நிகழ்வில் கிடைக்கக்கூடிய அனைத்து செயல்பாடுகளையும் அதிகாரப்பூர்வ web3.js ஆவணத்தில் (opens in a new tab) நீங்கள் காணலாம்.

பெரும்பாலான Web3 நூலகங்கள் ஒத்திசைவற்றவை, ஏனெனில் பின்னணியில் நூலகம் முனைக்கு JSON-RPC அழைப்புகளைச் செய்கிறது, அது முடிவைத் திருப்பி அனுப்புகிறது.

நீங்கள் உலாவியில் பணிபுரிகிறீர்கள் என்றால், சில பணப்பைகள் நேரடியாக ஒரு Web3 நிகழ்வைச் செலுத்துகின்றன, மேலும் நீங்கள் பரிவர்த்தனைகளைச் செய்ய பயனரின் எத்தேரியம் முகவரியுடன் ஊடாடத் திட்டமிட்டால், முடிந்தபோதெல்லாம் அதைப் பயன்படுத்த முயற்சிக்க வேண்டும்.

ஒரு MetaMask பணப்பை உள்ளதா என்பதைக் கண்டறிந்து, இருந்தால் அதை இயக்க முயற்சிப்பதற்கான துணுக்கு இதோ. இது பின்னர் பயனரின் இருப்பைப் படிக்கவும், எத்தேரியம் பிளாக்செயினில் நீங்கள் அவர்களைச் செய்ய விரும்பும் பரிவர்த்தனைகளைச் சரிபார்க்க அவர்களை இயக்கவும் அனுமதிக்கும்:

1if (window.ethereum != null) {
2 state.web3 = new Web3(window.ethereum)
3 try {
4 // தேவைப்பட்டால் கணக்கு அணுகலைக் கோரவும்
5 await window.ethereum.enable()
6 // கணக்குகள் இப்போது வெளிப்படுத்தப்பட்டுள்ளன
7 } catch (error) {
8 // பயனர் கணக்கு அணுகலை மறுத்துவிட்டார்...
9 }
10}
அனைத்தையும் காட்டு

Ethers.js (opens in a new tab) போன்ற web3.js-க்கான மாற்றுகளும் உள்ளன மற்றும் அவை பொதுவாகப் பயன்படுத்தப்படுகின்றன. அடுத்த வழிகாட்டியில், பிளாக்செயினில் புதிதாக வரும் பிளாக்குகளை எளிதாகக் கேட்டு, அவை என்ன கொண்டிருக்கின்றன என்பதைப் பார்ப்பது எப்படி (opens in a new tab) என்பதை நாம் காண்போம்.

பக்கத்தின் கடைசி புதுப்பிப்பு: 21 ஆகஸ்ட், 2025

இந்தப் பயிற்சி உதவியாக இருந்ததா?