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

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

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

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

প্রথম ধাপ হলো আপনার প্রজেক্টে web3.js অন্তর্ভুক্ত করা। একটি ওয়েব পেজে এটি ব্যবহার করতে, আপনি JSDeliver-এর মতো একটি CDN ব্যবহার করে সরাসরি লাইব্রেরিটি ইমপোর্ট করতে পারেন।

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

আপনি যদি আপনার ব্যাকএন্ড বা বিল্ড ব্যবহার করে এমন কোনো ফ্রন্টএন্ড প্রজেক্টে ব্যবহারের জন্য লাইব্রেরিটি ইনস্টল করতে পছন্দ করেন, তবে আপনি npm ব্যবহার করে এটি ইনস্টল করতে পারেন:

npm install web3 --save

তারপর একটি Node.js স্ক্রিপ্ট বা Browserify ফ্রন্টএন্ড প্রজেক্টে Web3.js ইমপোর্ট করতে, আপনি JavaScript-এর নিচের লাইনটি ব্যবহার করতে পারেন:

const Web3 = require("web3")

এখন যেহেতু আমরা প্রজেক্টে লাইব্রেরিটি অন্তর্ভুক্ত করেছি, আমাদের এটি ইনিশিয়ালাইজ করতে হবে। আপনার প্রজেক্টকে ব্লকচেইনের সাথে যোগাযোগ করতে সক্ষম হতে হবে। বেশিরভাগ ইথেরিয়াম লাইব্রেরি RPC কলের মাধ্যমে একটি নোড-এর সাথে যোগাযোগ করে। আমাদের Web3 প্রোভাইডার শুরু করতে, আমরা প্রোভাইডারের URL-কে কনস্ট্রাক্টর হিসেবে পাস করে একটি Web3 ইনস্ট্যান্স তৈরি করব। আপনার কম্পিউটারে যদি কোনো নোড বা ganache ইনস্ট্যান্স চলতে থাকে (opens in a new tab), তবে এটি দেখতে এমন হবে:

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

আপনি যদি সরাসরি কোনো হোস্টেড নোড অ্যাক্সেস করতে চান, তবে আপনি নোডস অ্যাজ আ সার্ভিস-এ বিকল্পগুলো খুঁজে পেতে পারেন।

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

আমরা আমাদের Web3 ইনস্ট্যান্সটি সঠিকভাবে কনফিগার করেছি কিনা তা পরীক্ষা করতে, আমরা getBlockNumber ফাংশন ব্যবহার করে সর্বশেষ ব্লক নম্বরটি পুনরুদ্ধার করার চেষ্টা করব। এই ফাংশনটি প্যারামিটার হিসেবে একটি কলব্যাক গ্রহণ করে এবং ব্লক নম্বরটিকে একটি ইন্টিজার হিসেবে রিটার্ন করে।

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

web3.eth.getBlockNumber(function (error, result) {
  console.log(result)
})

আপনি যদি এই প্রোগ্রামটি এক্সিকিউট করেন, তবে এটি কেবল সর্বশেষ ব্লক নম্বরটি প্রিন্ট করবে: ব্লকচেইনের শীর্ষভাগ। আপনার কোডে নেস্টেড কলব্যাক এড়াতে আপনি await/async ফাংশন কলও ব্যবহার করতে পারেন:

async function getBlockNumber() {
  const latestBlockNumber = await web3.eth.getBlockNumber()
  console.log(latestBlockNumber)
  return latestBlockNumber
}

getBlockNumber()

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

বেশিরভাগ Web3 লাইব্রেরি অ্যাসিনক্রোনাস হয় কারণ ব্যাকগ্রাউন্ডে লাইব্রেরিটি নোডে জেসন-আরপিসি কল করে যা ফলাফল ফেরত পাঠায়।


আপনি যদি ব্রাউজারে কাজ করেন, তবে কিছু ওয়ালেট সরাসরি একটি Web3 ইনস্ট্যান্স ইনজেক্ট করে এবং আপনার যখনই সম্ভব এটি ব্যবহার করার চেষ্টা করা উচিত, বিশেষ করে যদি আপনি ট্রানজ্যাকশন করার জন্য ব্যবহারকারীর ইথেরিয়াম ঠিকানার সাথে ইন্টারঅ্যাক্ট করার পরিকল্পনা করেন।

মেটামাস্ক ওয়ালেট উপলব্ধ আছে কিনা তা শনাক্ত করার এবং থাকলে তা এনাবল করার চেষ্টা করার জন্য এখানে একটি স্নিপেট দেওয়া হলো। এটি পরবর্তীতে আপনাকে ব্যবহারকারীর ব্যালেন্স পড়তে এবং ইথেরিয়াম ব্লকচেইনে আপনি তাদের দিয়ে যে ট্রানজ্যাকশনগুলো করাতে চান তা যাচাই করতে সক্ষম করবে:

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