আপনার প্রথম স্মার্ট কন্ট্রাক্ট ডিপ্লয় করা
আমি ধারণা করছি যে আপনিও আমাদের মতো ইথিরিয়াম ব্লকচেইন-এ আপনার প্রথম স্মার্ট কন্ট্রাক্ট ডিপ্লয় করতে এবং এর সাথে ইন্টারঅ্যাক্ট করতে অনেক বেশি আগ্রহী।
চিন্তা করবেন না, যেহেতু এটি আমাদের প্রথম স্মার্ট কন্ট্রাক্ট, তাই আমরা এটি একটি লোকাল টেস্টনেট-এ ডিপ্লয় করব যাতে এটি ডিপ্লয় করতে আপনার কোনো খরচ না হয় এবং আপনি যত খুশি এটি নিয়ে কাজ করতে পারেন।
আমাদের কন্ট্রাক্ট লেখা
প্রথম ধাপ হলো Remix-এ যাওয়া (opens in a new tab) এবং একটি নতুন ফাইল তৈরি করা। Remix ইন্টারফেসের উপরের বাম দিকে একটি নতুন ফাইল যোগ করুন এবং আপনার পছন্দমতো ফাইলের নাম দিন।
নতুন ফাইলে, আমরা নিচের কোডটি পেস্ট করব।
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;3
4contract Counter {5
6 // কাউন্টের সংখ্যা রাখার জন্য unsigned int টাইপের পাবলিক ভেরিয়েবল7 uint256 public count = 0;8
9 // যে ফাংশনটি আমাদের কাউন্টার বৃদ্ধি করে10 function increment() public {11 count += 1;12 }13
14 // কাউন্টের মান পাওয়ার জন্য অপ্রয়োজনীয় গেটার15 function getCount() public view returns (uint256) {16 return count;17 }18
19}আপনি যদি প্রোগ্রামিংয়ের সাথে পরিচিত হন, তবে এই প্রোগ্রামটি কী করে তা সহজেই অনুমান করতে পারবেন। নিচে লাইন বাই লাইন ব্যাখ্যা দেওয়া হলো:
- লাইন 4: আমরা
Counterনামের একটি কন্ট্রাক্ট ডিফাইন করেছি। - লাইন 7: আমাদের কন্ট্রাক্টটি
countনামের একটি আনসাইনড ইন্টিজার (unsigned integer) স্টোর করে, যা 0 থেকে শুরু হয়। - লাইন 10: প্রথম ফাংশনটি কন্ট্রাক্টের স্টেট পরিবর্তন করবে এবং আমাদের
countভেরিয়েবলটিকেincrement()করবে। - লাইন 15: দ্বিতীয় ফাংশনটি হলো একটি গেটার (getter), যা স্মার্ট কন্ট্রাক্ট-এর বাইরে থেকে
countভেরিয়েবলের মান পড়তে সাহায্য করে। মনে রাখবেন, যেহেতু আমরা আমাদেরcountভেরিয়েবলটিকে পাবলিক হিসেবে ডিফাইন করেছি, তাই এটি অপরিহার্য নয়, তবে এটি একটি উদাহরণ হিসেবে দেখানো হয়েছে।
আমাদের প্রথম সাধারণ স্মার্ট কন্ট্রাক্ট-এর জন্য এতটুকুই। আপনি হয়তো জানেন, এটি Java বা C++ এর মতো OOP (অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং) ভাষার ক্লাসের মতো দেখতে। এখন আমাদের কন্ট্রাক্ট নিয়ে কাজ করার সময়।
আমাদের কন্ট্রাক্ট ডিপ্লয় করা
যেহেতু আমরা আমাদের প্রথম স্মার্ট কন্ট্রাক্ট লিখে ফেলেছি, তাই এখন আমরা এটি ব্লকচেইন-এ ডিপ্লয় করব যাতে আমরা এটি নিয়ে কাজ করতে পারি।
ব্লকচেইন-এ স্মার্ট কন্ট্রাক্ট ডিপ্লয় করা বলতে মূলত কোনো প্রাপক নির্দিষ্ট না করেই কম্পাইল করা স্মার্ট কন্ট্রাক্ট-এর কোড সম্বলিত একটি লেনদেন পাঠানোকে বোঝায়।
আমরা প্রথমে বাম দিকের কম্পাইল আইকনে ক্লিক করে কন্ট্রাক্টটি কম্পাইল করব:
এরপর কম্পাইল বাটনে ক্লিক করুন:
আপনি চাইলে "Auto compile" অপশনটি নির্বাচন করতে পারেন, যাতে টেক্সট এডিটরে কন্টেন্ট সেভ করার সাথে সাথেই কন্ট্রাক্টটি স্বয়ংক্রিয়ভাবে কম্পাইল হয়ে যায়।
এরপর "deploy and run transactions" স্ক্রিনে যান:
"deploy and run transactions" স্ক্রিনে যাওয়ার পর, আপনার কন্ট্রাক্টের নাম দেখাচ্ছে কিনা তা ভালোভাবে চেক করুন এবং Deploy-এ ক্লিক করুন। পৃষ্ঠার উপরের দিকে দেখতে পাবেন, বর্তমান এনভায়রনমেন্ট হলো "JavaScript VM", যার মানে হলো আমরা একটি লোকাল টেস্ট ব্লকচেইন-এ আমাদের স্মার্ট কন্ট্রাক্ট ডিপ্লয় করব এবং এর সাথে ইন্টারঅ্যাক্ট করব, যাতে কোনো ফি ছাড়াই দ্রুত টেস্ট করা যায়।
"Deploy" বাটনে ক্লিক করার পর, আপনি নিচে আপনার কন্ট্রাক্টটি দেখতে পাবেন। বাম দিকের অ্যারোতে ক্লিক করে এটি এক্সপ্যান্ড করুন যাতে আমরা আমাদের কন্ট্রাক্টের কন্টেন্ট দেখতে পারি। এখানে আমাদের counter ভেরিয়েবল, increment() ফাংশন এবং getCounter() গেটার রয়েছে।
আপনি যদি count বা getCount বাটনে ক্লিক করেন, তবে এটি কন্ট্রাক্টের count ভেরিয়েবলের কন্টেন্ট নিয়ে আসবে এবং তা প্রদর্শন করবে। যেহেতু আমরা এখনও increment ফাংশনটি কল করিনি, তাই এটি 0 দেখাবে।
চলুন এখন বাটনে ক্লিক করে increment ফাংশনটি কল করি। আপনি উইন্ডোর নিচের দিকে সম্পন্ন হওয়া লেনদেনগুলোর লগ দেখতে পাবেন। আপনি লক্ষ্য করবেন যে, increment বাটনের পরিবর্তে ডেটা রিট্রিভ করার বাটনে ক্লিক করলে লগগুলো ভিন্ন হয়। এর কারণ হলো ব্লকচেইন-এ ডেটা পড়ার জন্য কোনো লেনদেন (রাইটিং) বা ফি-এর প্রয়োজন হয় না। কারণ শুধুমাত্র ব্লকচেইন-এর স্টেট পরিবর্তন করার জন্যই লেনদেন করার প্রয়োজন হয়:
ইনক্রিমেন্ট বাটনে চাপ দেওয়ার পর, যা আমাদের increment() ফাংশন কল করার জন্য একটি লেনদেন তৈরি করবে, আমরা যদি আবার count বা getCount বাটনে ক্লিক করি, তবে আমরা আমাদের স্মার্ট কন্ট্রাক্ট-এর নতুন আপডেট হওয়া স্টেট দেখতে পাব, যেখানে count ভেরিয়েবলের মান 0 এর চেয়ে বড় হবে।
পরবর্তী টিউটোরিয়ালে, আমরা আলোচনা করব কীভাবে আপনি আপনার স্মার্ট কন্ট্রাক্ট-এ ইভেন্ট যোগ করতে পারেন। ইভেন্ট লগ করা হলো আপনার স্মার্ট কন্ট্রাক্ট ডিবাগ করার এবং কোনো ফাংশন কল করার সময় কী ঘটছে তা বোঝার একটি সুবিধাজনক উপায়।
পেজ সর্বশেষ আপডেট: 3 মার্চ, 2026







