کار با شبکه‌های آزمایشی و اصلی در سالیدیتی

ایجاد شده توسط دکتر مصطفی جلیلی در آموزش برنامه نویسی سالیدیتی 15 مه 2025
اشتراک گذاری

کار با شبکه‌های آزمایشی و اصلی در سالیدیتی | آموزش کامل اتصال، دیپلوی و تست قراردادها


یکی از مراحل مهم در توسعه قراردادهای هوشمند، تست، دیپلوی و تعامل با آن‌ها بر بستر شبکه‌های اتریوم است. برای اطمینان از عملکرد صحیح و جلوگیری از هزینه‌های گس اضافی، ابتدا باید قراردادها را روی شبکه‌های آزمایشی مستقر کرد و پس از تأیید نهایی، به شبکه اصلی (Mainnet) منتقل نمود.


در این راهنما با نحوه اتصال به شبکه‌های تستی مانند Sepolia، Goerli و (قبلاً) Rinkeby، نحوه دیپلوی قرارداد روی این شبکه‌ها و روش اتصال به قرارداد از طریق MetaMask آشنا خواهید شد.




آشنایی با شبکه‌های آزمایشی اتریوم


شبکه‌های آزمایشی (Testnets) به شما امکان می‌دهند قراردادهای هوشمند را بدون صرف اتر واقعی آزمایش کنید. این شبکه‌ها شبیه‌سازی‌ای از شبکه اصلی هستند، اما با توکن‌های بی‌ارزش. 

- شبکه Sepolia

- شبکه Goerli 

- شبکه Rinkeby




پیشنهاد فعلی: استفاده از شبکه Sepolia برای تست‌ها


اتصال به شبکه آزمایشی در Hardhat یا Remix


اگر از Hardhat یا Remix استفاده می‌کنید، اتصال به شبکه تستی بسیار ساده است.


پیکربندی Hardhat برای Sepolia:


// hardhat.config.js
require("@nomiclabs/hardhat-ethers");
module.exports = {
networks: {
sepolia: {
url: "https://sepolia.infura.io/v3/YOUR_INFURA_PROJECT_ID",
accounts: ["YOUR_PRIVATE_KEY"]
}
},
solidity: "0.8.20"
};

 در این پیکربندی:
- از Infura یا Alchemy برای اتصال استفاده می‌شود.
-کلید خصوصی باید از یک کیف‌پول با موجودی تستی باشد (بدون قرار دادن در Git!).


دیپلوی قرارداد روی شبکه آزمایشی


برای دیپلوی از ابزارهایی مثل Remix, Hardhat یا Truffle استفاده می‌شود. در مثال زیر، از Hardhat استفاده می‌کنیم.


کد دیپلوی:


async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying from:", deployer.address);
const Token = await ethers.getContractFactory("MyToken");
const token = await Token.deploy();
console.log("Contract deployed to:", token.address);
}
main().catch((error) => {
console.error(error);
process.exit(1);
});

سپس با دستور زیر قرارداد را روی Sepolia دیپلوی کنید:


npx hardhat run scripts/deploy.js --network sepolia

دریافت اتر تستی از فاست (Faucet)


برای اجرای تراکنش در شبکه‌های تستی، باید مقداری اتر تستی داشته باشید. برای Sepolia می‌توانید از فاست رسمی استفاده کنید:

https://sepoliafaucet.com

Alchemy Faucet


دیپلوی قرارداد روی شبکه اصلی (Ethereum Mainnet)


پس از تست کامل، می‌توانید قرارداد خود را روی شبکه اصلی اتریوم مستقر کنید. مراحل مشابه شبکه‌های تستی است، فقط باید به نکات زیر توجه کنید:

- استفاده از کلید خصوصی ایمن (ترجیحاً از کیف‌پول سخت‌افزاری)

- بررسی دقیق کد نهایی و حذف توابع mint, burn یا debug

- پرداخت گس واقعی با اتر اصلی


تغییر شبکه در Hardhat:


mainnet: {
url: "https://mainnet.infura.io/v3/YOUR_PROJECT_ID",
accounts: ["YOUR_PRIVATE_KEY"]
}

هشدار: تراکنش‌های Mainnet بازگشت‌ناپذیر هستند. قبل از دیپلوی، حداقل چند بار در شبکه تستی آزمایش انجام دهید.


اتصال متامسک به قرارداد و شبکه


MetaMask یکی از رایج‌ترین کیف‌پول‌ها برای تعامل با قراردادهای هوشمند است. پس از دیپلوی قرارداد، می‌توانید از متامسک برای:

- ارسال تراکنش

- خواندن داده‌ها

- تست عملکرد توکن‌ها یا DApp خود استفاده کنید.


مراحل اتصال:

1- نصب افزونه MetaMask و انتخاب شبکه (Sepolia/Mainnet

2- افزودن آدرس قرارداد و ABI در ابزارهایی مانند Remix یا رابط گرافیکی خودتان

3- تعامل از طریق دکمه‌هایی مانند "Buy", "Mint", "Transfer" یا سفارشی


جمع‌بندی


توسعه موفق قراردادهای هوشمند وابسته به تست و استقرار اصولی روی شبکه‌های اتریوم است. با استفاده از شبکه‌هایی مانند Sepolia می‌توان عملکرد قرارداد را بررسی کرد و پس از اطمینان، آن را به Mainnet منتقل کرد. همچنین ابزارهایی مانند Hardhat، Remix و MetaMask روند توسعه، دیپلوی و تعامل با قرارداد را ساده‌تر و مطمئن‌تر می‌کنند.

نظرات (0)

اشتراک گذاری

این پست را با دیگران به اشتراک بگذارید

تنظیمات GDPR

When you visit any of our websites, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and manage your preferences. Please note, that blocking some types of cookies may impact your experience of the site and the services we are able to offer.