در این مقاله می خوام در مورد مراحل قرار دادن و کار با یک قرارداد هوشمند روی یک شبکه خصوصی (محلی) اتریوم که از قبل راه اندازی شده را توضیح بدهم. برای این کار اول از همه لازم است بدانیم یک شبکه خصوصی یا شخصی اتریوم چیست و چگونه راه اندازی می شود تا بتوانیم قرارداد هوشمند نوشته شده را روی این شبکه خصوصی یا شبیه سازی شده قرار دهیم و سپس با آن تعامل داشته باشیم.
1- راه اندازی شبکه خصوصی اتریوم: در ابتدا باید یک شبکه اتریوم را به صورت خصوصی راه اندازی کنیم. نحوه ایجاد یک شبکه خصوصی (محلی) اتریوم را می توانید در اینجا مشاهده کنید.
2- نصب پیش نیازها: بعد از ایجاد شبکه اتریوم نیاز به نصب موارد زیر در سیستم خود داریم:
برای نصب آخرین نسخه NodeJS در ubuntu ابتدا دستورات زیر را انجام می دهیم.
sudo apt install python3 curl curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
سپس ترمینال را ببندید و دوباره باز کنید و با دستور زیر از دانلود NVM مطمئن شوید.
nvm --version
حال می توانیم با استفاده از دستور زیر NodeJS را نصب کنیم تا جدید ترین نسخه nvm نصب شود. زیرا جدیدترین نسخه آن با نصب truffle به مشکل نمی خورد.
nvm install --lts sudo apt install make g++ sudo apt install npm
و با استفاده از دو دستور زیر از نسخه و نصب شدن NodeJS و NPM مطمئن شویم.
node -v npm -v
سپس با دستور زیر نصب Truffle انجام می شود.
npm install -g truffle
حال می توانیم کامپایلر زبان solidity را با استفاده از دستور زیر نصب کنیم.
sudo npm install -g solc
3- آغاز یا مقدار دهی اولیه Truffle: بعد از نصب Truffleبرای اینکه بتوانیم قرارداد را روی بلاکچین بگذاریم باید آن را راه اندازی اولیه (initiate) کنیم. با دستورات زیر می توانیم یک دایرکتوری به نام truffle را ایجاد و آن را initiate کنیم.
mkdir truffle cd truffle truffle init
این دستور فایل ها و دایرکتوری های ضروری برای پروژه Truffle ایجاد می کند که در تصویر زیر نشان داده شده:
3- تنظیمات شبکه برای Truffle: برای اینکه Truffle اطلاعاتی در مورد قرارداد و اتصال آن به شبکه ما داشته باشد، باید فایل truffle-config.js که در مسیر دایرکتوری truffle را براساس شبکه خودمان پیکره بندی کنیم. برای این کار باید ابتدا در مسیر دایرکتوری migrations (تصویر بالا) یک فایل به نام "2_deploy_contracts.js" ایجاد می کنیم و دستورات زیر را در آن قرار می دهیم و آن را ذخیره می کنیم.
var HelloWorld = artifacts.require("./HelloWorld.sol"); module.exports = function(deployer) { deployer.deploy(HelloWorld); };
برای اجرای truffle در شبکه خود، باید فایل “truffle_config.js” را در دایرکتوری “truffle” ویرایش کنیم. این فایل را باز و ورودی های زیر را مانند شکل زیر وارد می کنیم. قسمت from را باید آدرس گره ای که در ابتدای راه اندازی گره ایجاد کردیم قرار دهیم , قسمت مربوط به پورت در development باید همان پورت authtpc ایجاد شده برای گره باشد؟.
4- ایجاد قرارداد هوشمند: در مرحله سوم قرارداد هوشمند خود را ایجاد می کنیم. ما در این جا برای تست عملیات یک قرارداد ساده ی نمایش "!Hello World" را ایجاد می کنیم. برای این کار یک فایل متنی به نام HelloWorld.sol ایجاد می کنیم و کد های زیر را در آن کپی و با پسوند sol ذخیره می کنیم:
// SPDX-License-Identifier: MIT pragma solidity 0.8.20; contract HelloWorld { function sayHelloWorld() public pure returns (string memory) { return "Hello World!" } }
بعد ایجاد این فایل، آن را در دایرکتوری contracts در Truffle قرار می دهیم. بعد از ایجاد فایل حال باید آن را کامپایل کنیم. برای این کار در ترمینال در مسیر پوشه contracts دستور زیر را وارد می کنیم.
truffle compile
بعد از اجرای این دستور فولدری به نام build در محل پروژه Truffle شما ایجاد می شود که حاوی قراردادهای کامپایل شده با پسوند json خواهد بود.
* نکته: توجه داشته باشید که کد قرارداد شما باید با Truffle همخوانی داشته باشد در غیر این صورت با خطا زیر مواجه خواهید شد.
ادامه دارد ...