Hardhat چیست ؟ + آموزش
سلام دوست عزیز سالیدیتی کد! در مقاله قصد داریم تا با Hardhat آشنا بشیم و پس پاسخ به سوال Hardhat چیست به بررسی ویژگی های آن بپردازیم. پس همراه ما باش و هر سوالی داشتی زیر همین مقاله برامون بنویس. صنعت Web3 مدت زیادی نیست که سر زبون ها افتاده و در این مدت هم رشد بسیار خوبی در زمینه برنامه های غیرمتمرکز داشته. همانطور که حتما اطلاع دارید محبوب ترین و کاربردی ترین پلتفرم توسعه برای این برنامه ها هم اتریوم است و با توجه به اینکه توسعه دهندگان نیاز دارند تا فرایند توسعه این Dapp ها ساده تر و سریعتر باشد محیط های توسعه ای مثل Hardhat ایجاد شده اند. اما Hardhat چیست ؟ هاردهت در واقع یک محیط توسعه است که به توسعه دهندگان کمک می کند تا DApp های خود را ساده تر، سریعتر و بهتر توسعه دهند. اگر علاقه مند به یادگیری برنامه نویسی بلاکچین و قرارداد های هوشمند هستید پیشنهاد می کنم حتما آموزش سالیدیتی را ببینید و با یادگیری این مهارت پولساز از فرصت های بکر ایجاد شده نهایت استفاده را ببرید.
Hardhat چیست ؟
توسعه وب 3 بدون محیط های توسعه می تواند پیچیدگی های خاص خود را داشته باشد و کار را برای توسعه دهندگان دشوار کند به همین منظور پلتفرم هایی مثل هاردهت ایجاد شده اند تا این روند را تا حد امکان ساده کنند. در واقع برای تعریف ساده و مختصر Hardhat می توان گفت :
محیطی است که توسعه دهندگان بلاکچین برای آژمایش، کامپایل ، استقرار و اشکال زدایی برنامه های غیر متمرکز از آن استفاده می کنند.
این محیط به توسعه دهندگان کمک می کند تا مدیریت ساده تری بر فرایند های توسعه داشته باشند همچنین هاردهت برخی از این فرایند ها را به صورت خودکار انجام می دهد تا کار توسعه دهندگان برای توسعه DApp ها ساده تر شود.
Hardhat دارای یک شبکه محلی اتریوم از پیش ساخته شده است که با توسعه در هسته آن طراحی شده است. این شبکه روی اشکالزدایی Solidity تمرکز دارد و دارای ردیابی پشته ها، پیام هایی در هنگام شکست تراکنش های DApps، و غیره است. Hardhat ابزارهای ضروری را در اختیار توسعهدهندگان قرار می دهد تا بفهمند کجای یک برنامه خراب می شود و پاسخی برای حل آن ها در اختیار توسعه دهندگان قرار می دهد.
محیط با پلاگین هایی مشخص می شود که بسیاری از عملکردها از آن ها سرچشمه می گیرند. این بدان معناست که توسعهدهندگان می دانند دقیقاً کدام پلاگین ها را در فرآیند توسعه خود بگنجانند. با این وجود، Hardhat با پیشفرض های داخلی همراه است، اما همه آن ها می توانند نادیده گرفته شوند. این امر بدان معنی است که نرم افزار Hardhat اهمیتی نمی دهد که توسعه دهندگان از کدام ابزار استفاده می کنند.
Hardhat Runner دستوری مبتنی بر رابط خط فرمان (CLI) است که برای تعامل با Hardhat استفاده می شود. Hardhat Runner یک task runner است و گزینه ها و جایگزین های مختلفی را در اختیار کاربران قرار می دهد. طراحی task runner حول پلاگین ها و وظایف می چرخد. این به این معنی است که هر بار که یک توسعهدهنده Hardhat را از CLI اجرا می کند، وظیفهای را اجرا میکند. یک مثال را در ادامه مشاهده خواهید کرد:
npx hardhat compile
اجرای این دستور کار کامپایل داخلی را شروع می کند. علاوه بر این، یک کار می تواند وظیفه دیگری را فراخوانی کند، به این معنی که امکان توسعه و تعریف گردش کار پیچیده وجود دارد. همچنین این امکان برای کاربران Hardhat وجود دارد که وظایفی را که از قبل وجود داشته اند لغو کنند، به این معنی که گردش کار، قابل توسعه و سفارشی سازی است.
شبکه Hardhat
همانطور که اشاره شد این محیط توسعه با یک شبکه محلی اتریوم همراه است که این شبکه به Hardhat امکان توسعه را می دهد.Hardhat به توسعه دهندگان امکان می دهد کد و قراردادهای مکتوب خود را آزمایش، اجرا، اشکال زدایی و استقرار کنند.
شبکه Hardhat چگونه کار می کند؟
زمانی که تراکنشی اتفاق میافتد شبکه فورا یک بلوک را استخراج می کند. همراه با این ویژگی، شبکه توسط یک پیاده سازی EMV پشتیبانی می شود، که همان پیاده سازی است که توسط سایر برنامه ها مانند Remix، Ethereum Studio و ganache استفاده می شود. علاوه بر این، این شبکه از هارد فورک های مختلف مانند بیزانس، Constantinople و پترزبورگ نیز پشتیبانی می کند.
چگونه می توان از شبکه Hardhat استفاده کرد؟
نکته ای که باید در نظر داشته باشید این است که در صورتی که “defaultNetwork” روی Hardhat تنظیم شده باشد یا شبکه خالی باشد، Hardhat همیشه یک نمونه را شروع می کند. همچنین در نظر داشته باشید ، ما می توانیم از شبکه برای اجرای تست ها، وظایف و اسکریپت ها استفاده کنیم.
همچنین امکان افزودن پلاگین به شبکه Hardhat اتریوم نیز وجود دارد. برخی از پلاگین های قابل استفاده ethers.js، Waffle، Truffle و موارد دیگر هستند و می توانند مستقیماً به ارائه دهنده متصل شوند.
همچنین امکان اتصال مشتریان خارجی به شبکه وجود دارد. نمونه ای از یک مشتری خارجی MetaMask است. ما در ادامه مقاله آموزش خواهیم داد که چگونه Hardhat می تواند به MetaMask متصل شود.
Solidity Stack Traces
این شبکه بلاکچینی از Solidity با یک استاندارد درجه یک پشتیبانی می کند. بنابراین، شبکه می داند قراردادهایی که در حال اجرا هستند، قصد انجام چه کاری را دارند و در صورت شکست، دلیل نیز ارائه می دهد.
اگر تماس یا تراکنش با شکست مواجه شود، شبکه یک استثنا برای کاربران فراهم می کند. این استثنا یک ردیابی پشته ای ترکیبی Solidity و JavaScript را ایجاد می کند. این ویژگی بدان معنی است که ردیابی پشته در جاوا اسکریپت تا فراخوانی یک قرارداد، شروع می شود و سپس با یک پشته فراخوانی کامل Solidity ادامه می یابد. این امر بدان معنی است که ردیابی پشته ای که شبکه ارائه می دهد، دلیل شکست قرارداد یا تراکنش را به توسعه دهنده می دهد.
پیام های خطای خودکار
از آنجایی که شبکه همیشه این توانایی را دارد که بداند چه تراکنش ها یا تماس هایی با شکست مواجه می شوند و چرا ناموفق هستند، از این اطلاعات برای آسانتر کردن فرآیند اشکال زدایی استفاده می کند.
هنگامی که یک تراکنش بدون دلیل شناخته شده با شکست مواجه می شود، شبکه یک پیام واضح برای توضیح خطا در اختیار کاربران قرار می دهد. در ادامه چند نمونه از مواردی که شبکه یک پیام خطا برای کمک به فرآیند اشکال زدایی نمایش می دهد را بررسی خواهیم کرد:
وقتی شخصی ETH را بدون تابع دریافت یا بازگشت قابل پرداخت به یک قرارداد ارسال می کند.
فراخوانی یک تابع بدون پارامترهای مناسب.
فراخوانی یک تابع خارجی در یک حساب غیر قراردادی.
تلاش برای ارسال مقدار ناکافی ETH.
فراخوانی نادرست قرارداد از پیش کامپایل شده.
تلاش برای استقرار قراردادهایی در شبکه که از حد اندازه بیت کد فراتر می رود.
علاوه بر این، می توانید اطلاعات بیشتری در مورد شبکه Hardhat در سایت اصلی ببینید
در نهایت . . .
امیدواریم تا اینجای مقاله جواب سوال Hardhat چیست را گرفته باشی و با هاردهت بیشتر آشنا شده باشی در مقاله بعدی نکات باقی مانده از هاردهت را بررسی می کنیم
دیدگاهتان را بنویسید