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

স্মার্ট কন্ট্রাক্ট ল্যাঙ্গুয়েজ

পেজ সর্বশেষ আপডেট করা হয়েছে: 25 ফেব্রুয়ারী, 2026

Ethereum-এর একটি দারুণ দিক হলো স্মার্ট কন্ট্রাক্টগুলো তুলনামূলকভাবে ডেভেলপার-বান্ধব ল্যাঙ্গুয়েজ ব্যবহার করে প্রোগ্রাম করা যায়। আপনার যদি Python বা কোনো কার্লি-ব্র্যাকেট ল্যাঙ্গুয়েজ (opens in a new tab)-এর অভিজ্ঞতা থাকে, তবে আপনি পরিচিত সিনট্যাক্স সহ একটি ল্যাঙ্গুয়েজ খুঁজে পেতে পারেন।

সবচেয়ে সক্রিয় এবং রক্ষণাবেক্ষণ করা দুটি ল্যাঙ্গুয়েজ হলো:

  • Solidity
  • Vyper

Remix IDE, Solidity এবং Vyper উভয় ক্ষেত্রেই কন্ট্রাক্ট তৈরি এবং পরীক্ষা করার জন্য একটি বিস্তৃত ডেভেলপমেন্ট পরিবেশ প্রদান করে। কোডিং শুরু করতে ব্রাউজার-ভিত্তিক Remix IDE ব্যবহার করে দেখুন (opens in a new tab)

আরও অভিজ্ঞ ডেভেলপাররা হয়তো Yul ব্যবহার করতে চাইতে পারেন, যা ইথিরিয়াম ভার্চুয়াল মেশিন-এর জন্য একটি ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ, অথবা Yul+, যা Yul-এর একটি এক্সটেনশন।

আপনি যদি কৌতূহলী হন এবং এখনও ব্যাপকভাবে ডেভেলপমেন্টের অধীনে থাকা নতুন ল্যাঙ্গুয়েজগুলো পরীক্ষা করতে সাহায্য করতে চান, তবে আপনি Fe নিয়ে পরীক্ষা-নিরীক্ষা করতে পারেন, যা একটি উদীয়মান স্মার্ট কন্ট্রাক্ট ল্যাঙ্গুয়েজ এবং বর্তমানে এটি প্রাথমিক পর্যায়ে রয়েছে।

পূর্বশর্ত

প্রোগ্রামিং ল্যাঙ্গুয়েজ, বিশেষ করে JavaScript বা Python-এর পূর্ববর্তী জ্ঞান আপনাকে স্মার্ট কন্ট্রাক্ট ল্যাঙ্গুয়েজগুলোর পার্থক্য বুঝতে সাহায্য করতে পারে। ল্যাঙ্গুয়েজের তুলনার গভীরে যাওয়ার আগে আমরা আপনাকে একটি ধারণা হিসেবে স্মার্ট কন্ট্রাক্টগুলো বোঝার পরামর্শ দিই। স্মার্ট কন্ট্রাক্ট পরিচিতি

Solidity

  • স্মার্ট কন্ট্রাক্ট বাস্তবায়নের জন্য অবজেক্ট-ওরিয়েন্টেড, হাই-লেভেল ল্যাঙ্গুয়েজ।
  • কার্লি-ব্র্যাকেট ল্যাঙ্গুয়েজ যা C++ দ্বারা সবচেয়ে গভীরভাবে প্রভাবিত হয়েছে।
  • স্ট্যাটিক্যালি টাইপড (কম্পাইল করার সময় ভেরিয়েবলের টাইপ জানা যায়)।
  • সাপোর্ট করে:
    • ইনহেরিটেন্স (আপনি অন্যান্য কন্ট্রাক্ট এক্সটেন্ড করতে পারেন)।
    • লাইব্রেরি (আপনি পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে পারেন যা আপনি বিভিন্ন কন্ট্রাক্ট থেকে কল করতে পারেন – যেমন অন্যান্য অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজে স্ট্যাটিক ক্লাসের স্ট্যাটিক ফাংশন)।
    • জটিল ইউজার-ডিফাইনড টাইপ।

উদাহরণ কন্ট্রাক্ট

এই উদাহরণটি আপনাকে Solidity কন্ট্রাক্ট সিনট্যাক্স কেমন তা সম্পর্কে একটি ধারণা দেবে। ফাংশন এবং ভেরিয়েবলগুলোর আরও বিস্তারিত বর্ণনার জন্য, ডকুমেন্টেশন দেখুন (opens in a new tab)

Vyper

  • পাইথনিক প্রোগ্রামিং ল্যাঙ্গুয়েজ
  • স্ট্রং টাইপিং
  • ছোট এবং বোধগম্য কম্পাইলার কোড
  • দক্ষ বাইটকোড জেনারেশন
  • কন্ট্রাক্টগুলোকে আরও সুরক্ষিত এবং অডিট করা সহজ করার লক্ষ্যে ইচ্ছাকৃতভাবে Solidity-এর চেয়ে কম ফিচার রাখা হয়েছে। Vyper যা সাপোর্ট করে না:
    • মডিফায়ার
    • ইনহেরিটেন্স
    • ইনলাইন অ্যাসেম্বলি
    • ফাংশন ওভারলোডিং
    • অপারেটর ওভারলোডিং
    • রিকার্সিভ কলিং
    • ইনফিনিট-লেংথ লুপ
    • বাইনারি ফিক্সড পয়েন্ট

আরও তথ্যের জন্য, Vyper-এর যৌক্তিকতা পড়ুন (opens in a new tab)

উদাহরণ

এই উদাহরণটি আপনাকে Vyper কন্ট্রাক্ট সিনট্যাক্স কেমন তা সম্পর্কে একটি ধারণা দেবে। ফাংশন এবং ভেরিয়েবলগুলোর আরও বিস্তারিত বর্ণনার জন্য, ডকুমেন্টেশন দেখুন (opens in a new tab)

Yul এবং Yul+

আপনি যদি ইথিরিয়ামে নতুন হন এবং এখনও স্মার্ট কন্ট্রাক্ট ল্যাঙ্গুয়েজ দিয়ে কোনো কোডিং না করে থাকেন, তবে আমরা Solidity বা Vyper দিয়ে শুরু করার পরামর্শ দিই। শুধুমাত্র তখনই Yul বা Yul+ দেখুন যখন আপনি স্মার্ট কন্ট্রাক্ট নিরাপত্তার সর্বোত্তম অনুশীলন এবং EVM-এর সাথে কাজ করার সুনির্দিষ্ট বিষয়গুলোর সাথে পরিচিত হবেন।

Yul

  • ইথিরিয়ামের জন্য ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ।
  • EVM এবং Ewasm (opens in a new tab) (একটি ইথিরিয়াম ফ্লেভারড WebAssembly) সাপোর্ট করে এবং এটি উভয় প্ল্যাটফর্মের একটি ব্যবহারযোগ্য সাধারণ ডিনোমিনেটর হিসেবে ডিজাইন করা হয়েছে।
  • হাই-লেভেল অপ্টিমাইজেশন ধাপগুলোর জন্য ভালো টার্গেট যা EVM এবং Ewasm উভয় প্ল্যাটফর্মকে সমানভাবে উপকৃত করতে পারে।

Yul+

  • Yul-এর একটি লো-লেভেল, অত্যন্ত দক্ষ এক্সটেনশন।
  • প্রাথমিকভাবে একটি অপ্টিমেস্টিক রোলআপ কন্ট্রাক্টের জন্য ডিজাইন করা হয়েছে।
  • Yul+-কে Yul-এর একটি পরীক্ষামূলক আপগ্রেড প্রস্তাব হিসেবে দেখা যেতে পারে, যা এতে নতুন ফিচার যোগ করে।

উদাহরণ কন্ট্রাক্ট

নিচের সহজ উদাহরণটি একটি পাওয়ার ফাংশন বাস্তবায়ন করে। এটি solc --strict-assembly --bin input.yul ব্যবহার করে কম্পাইল করা যেতে পারে। উদাহরণটি input.yul ফাইলে সংরক্ষণ করা উচিত।

আপনি যদি ইতিমধ্যে স্মার্ট কন্ট্রাক্ট সম্পর্কে বেশ অভিজ্ঞ হন, তবে Yul-এ একটি সম্পূর্ণ ERC20 ইমপ্লিমেন্টেশন এখানে (opens in a new tab) পাওয়া যাবে।

Fe

  • ইথিরিয়াম ভার্চুয়াল মেশিন (EVM)-এর জন্য স্ট্যাটিক্যালি টাইপড ল্যাঙ্গুয়েজ।
  • Python এবং Rust দ্বারা অনুপ্রাণিত।
  • শেখা সহজ হওয়ার লক্ষ্য রাখে -- এমনকি ইথিরিয়াম ইকোসিস্টেমে নতুন ডেভেলপারদের জন্যও।
  • Fe ডেভেলপমেন্ট এখনও প্রাথমিক পর্যায়ে রয়েছে, ল্যাঙ্গুয়েজটির আলফা রিলিজ 2021 সালের জানুয়ারিতে হয়েছিল।

উদাহরণ কন্ট্রাক্ট

নিচে Fe-তে বাস্তবায়িত একটি সহজ কন্ট্রাক্ট দেওয়া হলো।

কীভাবে বেছে নেবেন

অন্য যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজের মতো, এটি মূলত সঠিক কাজের জন্য সঠিক টুল বেছে নেওয়ার পাশাপাশি ব্যক্তিগত পছন্দের বিষয়।

আপনি যদি এখনও কোনো ল্যাঙ্গুয়েজ চেষ্টা না করে থাকেন তবে এখানে কিছু বিষয় বিবেচনা করার আছে:

Solidity-এর ভালো দিক কী?

  • আপনি যদি একজন শিক্ষানবিস হন, তবে সেখানে অনেক টিউটোরিয়াল এবং শেখার টুল রয়েছে। কোডিংয়ের মাধ্যমে শিখুন বিভাগে সে সম্পর্কে আরও দেখুন।
  • ভালো ডেভেলপার টুলিং উপলব্ধ।
  • Solidity-এর একটি বড় ডেভেলপার কমিউনিটি রয়েছে, যার মানে আপনি খুব দ্রুত আপনার প্রশ্নের উত্তর খুঁজে পাওয়ার সম্ভাবনা বেশি।

Vyper-এর ভালো দিক কী?

  • স্মার্ট কন্ট্রাক্ট লিখতে চান এমন Python ডেভেলপারদের জন্য শুরু করার দারুণ উপায়।
  • Vyper-এ ফিচারের সংখ্যা কম যা এটিকে আইডিয়াগুলোর দ্রুত প্রোটোটাইপিংয়ের জন্য দারুণ করে তোলে।
  • Vyper-এর লক্ষ্য হলো অডিট করা সহজ এবং সর্বাধিক মানব-পাঠযোগ্য হওয়া।

Yul এবং Yul+-এর ভালো দিক কী?

  • সহজ এবং কার্যকরী লো-লেভেল ল্যাঙ্গুয়েজ।
  • র (raw) EVM-এর অনেক কাছাকাছি যাওয়ার অনুমতি দেয়, যা আপনার কন্ট্রাক্টগুলোর গ্যাস ব্যবহার অপ্টিমাইজ করতে সাহায্য করতে পারে।

ল্যাঙ্গুয়েজের তুলনা

বেসিক সিনট্যাক্স, কন্ট্রাক্ট লাইফসাইকেল, ইন্টারফেস, অপারেটর, ডেটা স্ট্রাকচার, ফাংশন, কন্ট্রোল ফ্লো এবং আরও অনেক কিছুর তুলনার জন্য Auditless-এর এই চিটশিটটি দেখুন (opens in a new tab)

আরও পড়াশোনা

এই নিবন্ধটি কি সহায়ক ছিল?