মূল কন্টেন্টে যান

জাভাস্ক্রিপ্টে ইথিরিয়াম ব্লকচেইন ব্যবহার করতে web3.js সেট আপ করুন

web3.js
JavaScript
শিক্ষানবিস
jdourlens
১১ এপ্রিল, ২০২০
3 মিনিট পড়া

এই টিউটোরিয়ালে, আমরা দেখব কীভাবে ইথিরিয়াম ব্লকচেইনের সাথে ইন্টারঅ্যাক্ট করতে web3.js (opens in a new tab)-এর ব্যবহার শুরু করা যায়। Web3.js ফ্রন্টএন্ড এবং ব্যাকএন্ড উভয় ক্ষেত্রেই ব্লকচেইন থেকে ডেটা পড়তে বা লেনদেন করতে এবং এমনকি স্মার্ট কন্ট্রাক্ট ডিপ্লয় করতে ব্যবহার করা যেতে পারে।

প্রথম ধাপ হলো আপনার প্রজেক্টে 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}
সব দেখান

web3.js-এর বিকল্প যেমন Ethers.js (opens in a new tab)-ও রয়েছে এবং এগুলোও সাধারণত ব্যবহৃত হয়। পরবর্তী টিউটোরিয়ালে আমরা দেখব কীভাবে ব্লকচেইনে নতুন আসা ব্লকস সহজে শোনা যায় এবং সেগুলোতে কী আছে তা দেখা যায় (opens in a new tab)

পেজ সর্বশেষ আপডেট: ৩ মার্চ, ২০২৬

এই টিউটোরিয়ালটি কি সহায়ক ছিল?