Solidity ভাষায় Smart Contract লেখা

Latest Technologies - ব্লকচেইন (Blockchain) - Smart Contract এবং তার ব্যবহার | NCTB BOOK

Solidity ভাষায় স্মার্ট কন্ট্র্যাক্ট লেখা

Solidity হলো স্মার্ট কন্ট্র্যাক্ট লেখার জন্য ব্যবহৃত একটি প্রোগ্রামিং ভাষা, যা ইথেরিয়াম ব্লকচেইনের জন্য বিশেষভাবে ডিজাইন করা হয়েছে। এটি একটি স্ট্যাটিক টাইপড (Static Typed) ভাষা এবং এটি জাভাস্ক্রিপ্ট, পাইথন, এবং সি++ এর মতো কিছু বৈশিষ্ট্য ধারণ করে। Solidity ব্যবহার করে স্মার্ট কন্ট্র্যাক্ট তৈরি করা যায়, যা স্বয়ংক্রিয়ভাবে চুক্তি কার্যকর করতে এবং ব্লকচেইনে লেনদেন সংরক্ষণ করতে সক্ষম।

Solidity এর মৌলিক গঠন

Solidity তে স্মার্ট কন্ট্র্যাক্ট লেখার জন্য কিছু মৌলিক গঠন এবং উপাদান রয়েছে:

  • প্রগমা নির্দেশিকা (Pragma Directive): এটি Solidity কম্পাইলারের জন্য ভার্সন নির্দেশ করে। উদাহরণ: pragma solidity ^0.8.0;
  • কন্ট্র্যাক্ট ডিক্লেয়ারেশন: একটি কন্ট্র্যাক্ট হলো স্মার্ট কন্ট্র্যাক্টের মূল কাঠামো, যেখানে সমস্ত লজিক এবং ফাংশন লেখা হয়।
  • স্টেট ভ্যারিয়েবল: স্মার্ট কন্ট্র্যাক্টে ডেটা সংরক্ষণ করার জন্য ব্যবহার করা হয়।
  • ফাংশন: স্মার্ট কন্ট্র্যাক্টে লজিক এবং কার্যক্রম নির্ধারণ করার জন্য ফাংশন ব্যবহার করা হয়।

Solidity ভাষায় একটি সহজ স্মার্ট কন্ট্র্যাক্ট উদাহরণ

Solidity ভাষায় একটি সাধারণ কন্ট্র্যাক্ট লেখা যা একটি সংখ্যা সংরক্ষণ করে এবং সেই সংখ্যাকে আপডেট করার সুবিধা দেয়:

// Solidity কম্পাইলারের ভার্সন নির্ধারণ pragma solidity ^0.8.0; // কন্ট্র্যাক্ট ঘোষণা contract SimpleStorage {    // একটি স্টেট ভ্যারিয়েবল যা একটি সংখ্যা সংরক্ষণ করবে    uint256 public storedNumber;    // একটি ফাংশন যা সংখ্যা সংরক্ষণ করবে    function set(uint256 _number) public {        storedNumber = _number;    }    // একটি ফাংশন যা সংরক্ষিত সংখ্যা ফেরত দিবে    function get() public view returns (uint256) {        return storedNumber;    } }

উদাহরণের বিশ্লেষণ:

  1. প্রগমা নির্দেশিকা: pragma solidity ^0.8.0; নির্দেশ করে যে এটি Solidity 0.8.0 বা এর পরবর্তী ভার্সন কম্পাইলারের জন্য উপযোগী।
  2. SimpleStorage কন্ট্র্যাক্ট: কন্ট্র্যাক্টটি SimpleStorage নামে ঘোষণা করা হয়েছে। এটি একটি স্মার্ট কন্ট্র্যাক্ট যা একটি সংখ্যা সংরক্ষণ এবং পুনরুদ্ধার করতে পারে।
  3. স্টেট ভ্যারিয়েবল: uint256 public storedNumber;—এটি একটি সংখ্যাকে (unsigned integer) স্টোর করার জন্য ব্যবহৃত হয়। এটি পাবলিক (public) হওয়ায় কেউ এটি পড়তে পারে।
  4. set ফাংশন: function set(uint256 _number)—এটি একটি ফাংশন যা নতুন সংখ্যা সংরক্ষণ করে। _number হলো একটি প্যারামিটার যা ব্যবহারকারী ইনপুট হিসেবে প্রদান করবে।
  5. get ফাংশন: function get()—এটি একটি ভিউ (view) ফাংশন যা কেবলমাত্র সংরক্ষিত সংখ্যাটি দেখায়। এটি ব্লকচেইনে কোন পরিবর্তন আনে না, তাই এটি বিনামূল্যে কল করা যায়।

Solidity তে স্মার্ট কন্ট্র্যাক্ট লেখার ধাপসমূহ

  1. Solidity কম্পাইলার সেটআপ: Solidity কোড কম্পাইল করতে Remix IDE ব্যবহার করা যেতে পারে যা একটি অনলাইন প্ল্যাটফর্ম। আপনি Remix IDE তে কোড লিখে এবং সেখান থেকেই কন্ট্র্যাক্ট ডিপ্লয় করতে পারেন।
  2. কোড লিখুন: Remix IDE তে একটি নতুন ফাইল তৈরি করে উপরের কোড লিখুন।
  3. কম্পাইল এবং ডিপ্লয় করুন: Solidity কম্পাইলার ব্যবহার করে কোডটি কম্পাইল করুন এবং তারপর Ethereum Virtual Machine (EVM) বা টেস্ট নেটওয়ার্কে কন্ট্র্যাক্টটি ডিপ্লয় করুন।
  4. ইন্টারঅ্যাক্ট করুন: একবার কন্ট্র্যাক্ট ডিপ্লয় হয়ে গেলে, Remix IDE থেকে set এবং get ফাংশনগুলো ব্যবহার করে কন্ট্র্যাক্টের সাথে ইন্টারঅ্যাক্ট করতে পারেন।

স্মার্ট কন্ট্র্যাক্টের অন্যান্য উদাহরণ

১. সিম্পল পেমেন্ট কন্ট্র্যাক্ট

নিচে একটি কন্ট্র্যাক্ট দেওয়া হলো যা ব্যবহারকারীদের কাছে অর্থ পাঠাতে এবং গ্রহণ করতে ব্যবহৃত হয়:

pragma solidity ^0.8.0; contract SimplePayment {    // পেমেন্ট প্রক্রিয়া ফাংশন    function pay() public payable {        // ফাংশনটি ফান্ড গ্রহণ করতে সক্ষম হবে    }    // কন্ট্র্যাক্টের ব্যালেন্স দেখতে    function getBalance() public view returns (uint256) {        return address(this).balance;    } }

২. ভ্যালিডেটর স্মার্ট কন্ট্র্যাক্ট

এটি একটি কন্ট্র্যাক্ট যা ইনপুট যাচাই করার কাজ করে:

pragma solidity ^0.8.0; contract Validator {    uint256 public minimumValue = 10;    function validate(uint256 _value) public view returns (bool) {        if (_value >= minimumValue) {            return true;        } else {            return false;        }    } }
Content added || updated By
Promotion