سالیدیتی (Solidity) زبان برنامهنویسی اصلی برای نوشتن قراردادهای هوشمند در شبکه اتریوم و سایر شبکههای مبتنی بر ماشین مجازی اتریوم (EVM) است. این زبان سطح بالا، شبیه به جاوااسکریپت طراحی شده و یادگیری آن برای کسانی که سابقه برنامهنویسی وب دارند نسبتاً ساده است.
دلایل اهمیت سالیدیتی:
زبان اصلی توسعه قراردادهای هوشمند روی اتریوم
پشتیبانی توسط اکثر ابزارها و کیفپولها
پشتیبانی از استانداردهای معروف مثل ERC-20 و ERC-721
جامعه توسعهدهندگان فعال و منابع آموزشی زیاد
با یادگیری سالیدیتی، میتوانید پروژههای غیرمتمرکز (dApp)، توکنهای دیجیتال، NFT و سیستمهای رأیگیری یا حتی اپلیکیشنهای مالی غیرمتمرکز (DeFi) بسازید.
برای شروع کدنویسی با سالیدیتی، چند ابزار کلیدی وجود دارد:
۱. Remix IDE (آنلاین)
Remix یک محیط توسعه تحتوب است که نیازی به نصب ندارد. با آن میتوانید به راحتی:
کد سالیدیتی بنویسید و اجرا کنید
تست و کامپایل انجام دهید
قراردادها را روی شبکه آزمایشی دیپلوی کنید
مناسب برای مبتدیها و تست سریع ایدهها.
۲. Hardhat
Hardhat یک فریمورک قدرتمند برای توسعه حرفهای قراردادهای هوشمند است. امکانات:
نوشتن تستهای خودکار
دیپلوی روی شبکههای مختلف
استفاده از پلاگینهای متنوع (مثلاً Ethers.js)
برای نصب:
npm install --save-dev hardhatnpx hardhat
۳. Truffle
Truffle یکی از قدیمیترین فریمورکهای توسعه بلاکچین است. ویژگیها:
پشتیبانی از تست و اسکریپت دیپلوی
تعامل با Web3.js
مناسب برای پروژههای بزرگ
نصب با:
npm install -g truffletruffle init
پیشنهاد: برای شروع با Remix شروع کنید و بعد به Hardhat مهاجرت کنید.
حالا بیایید یک قرارداد ساده بنویسیم:
مرحله ۱: ورود به Remix
وارد Remix IDE شوید.
مرحله ۲: ایجاد فایل
در سمت چپ، روی “+” کلیک کنید و یک فایل جدید با نام MyFirstContract.sol بسازید.
مرحله ۳: نوشتن کد
// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract MyFirstContract {string public message;constructor(string memory _msg) {message = _msg;}function setMessage(string memory _newMsg) public {message = _newMsg;}}
مرحله ۴: کامپایل و اجرا
از بخش “Solidity Compiler” کامپایل کنید.
در “Deploy & Run Transactions” قرارداد را دیپلوی کرده و تابعها را تست کنید.
تبریک! شما اولین قرارداد هوشمندتان را نوشتید!
فایلهای سالیدیتی با پسوند .sol ذخیره میشوند. ساختار کلی آن به شکل زیر است:
// کامنت لایسنس// SPDX-License-Identifier: MIT// تعیین نسخه کامپایلرpragma solidity ^0.8.0;// تعریف قراردادcontract Sample {// متغیرهای حالت (State Variables)uint public value;// سازنده (Constructor)constructor(uint _val) {value = _val;}// توابع عمومیfunction setValue(uint _newVal) public {value = _newVal;}function getValue() public view returns (uint) {return value;}}
اجزای کلیدی فایل:
SPDX-License-Identifier: مجوز کد، معمولاً MIT
pragma: تعیین نسخه سالیدیتی مورد استفاده
contract: بدنه اصلی قرارداد
constructor: تابعی که هنگام دیپلوی اجرا میشود
state variables: دادههایی که در بلاکچین ذخیره میشوند
functions: اعمال قابل اجرا توسط کاربران یا قراردادها
در این بخش یاد گرفتیم که سالیدیتی چیست، چرا یادگیری آن حیاتی است و با ابزارهای مختلف توسعه مثل Remix، Hardhat و Truffle آشنا شدیم. همچنین یک قرارداد هوشمند ساده نوشتیم و با ساختار فایلهای سالیدیتی آشنا شدیم. در ادامه مسیر، وارد مفاهیم پیشرفتهتر مانند متغیرها، توابع، و تعامل با شبکههای واقعی خواهیم شد.