آشنایی با قراردادهای هوشمند

خرید بک لینک

https://www.aparat.com/video/video/embed/videohash/0Ge8S/vt/frame

در ادامه قصد داریم تا نحوه ایجاد یک قرارداد مطلب هوشمند نیلوبلاگ ساده را برای شما شرح دهیم؛ این قرارداد بر پایه زبان برنامهنویسی «سالیدیتی» نوشته خواهد شد. سالیدیتی زبانی است که شباهتهای بسیاری به جاوا اسکریپت دارد.

دانلود نرم افزارهای مورد نیاز

برای شروع کار لازم است تا ابتدا Ganache را روی رایانه خود نصب کنید. با استفاده از این نرمافزار قادر خواهیم بود تا یک بلاک چین شخصی را بر روی دستگاه خود ایجاد کنیم؛ بهعلاوه وجود یک نسخه دانلودی از «مای اتر ولت» نیز ضروری است (نسخه وب کارساز نیست). به یاد داشته باشید که نسخهای که اقدام به دانلود آن میکنید v3.xx.x.x.zip باشد.

Download Ganache

Download MyEtherWallet V3.11.3.3

در سایت Ganache اگر سیستم عامل شما windows باشد نسخه ای که برای دانلود به شما پیشنهاد می شود دارای پسوند .appx است که قابل اجرا در windows 10 می باشد. قبل از نصب فایل باید تنظیماتی را در ویندوز اعمال کنید تا برنامه بتواند نصب شود.

تنظیمات ویندوز

پس از دانلود فایل نصبی Ganache در قسمت search ویندوز 10 جمله for developers settings را سرچ کنید و بروی نتیجه نمایش داده شده کلیک کنید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

پنجره settings بخش For developers باز می شود. هم اکنون گزینه Winsdows Store apps به صورت پیش فرض انتخاب شده ولی شما باید گزینه Sideload apps را انتخاب کنید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

پس از انتخاب گزینه Sideload apps پنجره ای به شما نمایش داده می شود. گزینه Yes را بزنید و کار تنظیمات ویندوز برای نصب Ganache تمام است.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا فایل نصبی Ganache اجرا نموده و نصب کنید.

 کد اولیه در ریمیکس

پس از نصب این نرمافزارها به این سایت وارد شوید تا این صفحه برای شما نمایش داده شود.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

این صفحه Remix نام دارد که یک کامپایلر (برنامه مترجم) برای زبان برنامهنویسی سالیدیتی است. به این وسیله میتوانیم کدهای مطلب قراردادهای نیلوبلاگ هوشمند خود را تدوین کنیم. در اولین بازدید این صفحه کدهایی از پیش برای شما نوشتهشده است. اما به چیزهایی که نوشتهشده نیازی نداریم، پس آنها را پاککرده و با کدهای زیر جایگزین میکنیم.

pragma solidity ^0.4.0;contract Counter {    int private count = 0;    function incrementCounter() public {        count += 1;    }    function decrementCounter() public {        count -= 1;    }    function getCount() public constant retus (int) {        retu count;    }}

همانطور که میبینید کد ما شامل یک متغیر و سه عملکرد است. متغیر «Count» یک عدد صحیح است که شخصی است؛ یعنی از بیرون از قرارداد امکان دسترسی به آن وجود ندارد. اولین عملکرد که با عنوان «incrementCounter()» مشخصشده، با افزایشش باعث تغییر مقدار count میشود.

از طرفی نیز با کاهش آن میزان count با جهش (mutation) مواجه خواهد شد. عملکرد سوم نیز getCount() است که با استفاده از آن میتوان به count دسترسی پیدا کرد و میزان آن را به هر چیز و هرکسی که از دستور استفاده کند بازخواهد گرداند.

پس از جایگذاری دستورها در Remix شکل صفحه باید بهمانند تصویر زیر باشد.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

در اینجا ما تب موردنظر را باز گذاشتیم تا در صورت نیاز به آن رجوع کنیم. حالا وقت آن رسیده که Ganache را بازکنیم. با باز کردن آن تصویر زیر دیده خواهد شد.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

بر روی صفحه میتوانید نوشته «RPC SERVER» را مشاهده کنید. مکان آن را به خاطر بسپارید که بهزودی لازممان خواهد شد.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا مای اتر ولت را از حالت فشرده خارج کنید و سپس پوشه موردنظر را بازکنید. با باز کردن فایل index.html بهوسیله مرورگر خود، صفحه زیر برایتان بازخواهد شد.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

اتصال MyEtherWallet به Ganache

در گوشه سمت راست صفحه میتوانید بخشی را ببینید که به شما میگوید به شبکه از اتریوم متصل هستید. بهصورت پیشفرض شما به شبکه اصلی اتریوم یا  Ethereum (ETH) متصل خواهید بود. با باز کردن ادامه لیست آن را تغییر میدهیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

بر روی Add Custom Node کلیک کنید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا اطلاعاتی را که پیشتر از Ganache و بخش RPC Server بهدست آورده بودیم را در این کادر وارد میکنیم. توجه داشته باشید که نام نود را هر چیزی که دوست داشته باشید میتوانید بگذارید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

ایجاد قرارداد هوشمند جدید

مای اتر ولت، حالا به همان هاستی وصل شده که شما به وسیله نرمافزار Ganache ایجاد کرده بودید. حالا با استفاده از مای ولت اتر، قرارداد هوشمندی که به وسیله Counter ایجاد کردید را در درون بلاک چین خود آپلود میکنیم. به این منظور بر روی Contracts کلیک کرده و Deploy Contract را انتخاب میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

همانطور که مشاهده میکنید، مای اتر ولت از شما بایت کد قرارداد را میخواهد. برای پیدا کردن آن به Remix IDE برمیگردیم و بر روی گزینه Details کلیک میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا و در صفحه بازشده اطلاعات بسیاری را در مورد قرارداد خود میبینید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا باید رشته ی جلوی کلمه Object را کپی کنید که در واقع bytecode پروژه ما هست.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا به مای اتر ولت برگشته و بایت کد را در درون کادر مربوطه وارد میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

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

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

با کلیک بر روی آن، صفحهای به شکل مقابل برای شما نمایش داده میشود که حاوی کلیدهای خصوصی این حساب کاربری است.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا میتوانید این کلیدها را در بخش مای اتر ولت جایگذاری نمایید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

با کلیک بر روی گزینه Unlock، مای اتر ولت از شما میپرسد که آیا قصد تائید تراکنش و قرار دادن قرارداد را دارید. با انتخاب گزینه بله آن را تائید کنید.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

اگر تمام مراحل را درست طی کرده باشید، Ganache در بخش Current Block اعدادی را به نمایش درخواهد آورد که تعداد اکانت هایی است که در داخل قرارداد، گنجاندهایم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

تست قرارداد هوشمند

قرارداد ما در بلاک چین به ثبت رسیده. برای کار کردن با آن و تعیین میزان counter، به مای اتر ولت بازگشته و گزینه Interact With Contract را انتخاب میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

حالا مای اتر ولت از شما آدرس قراردادی که بهتازگی واردشده و ABI قرارداد را از ما میخواهد. برای پیدا کردن آدرس به Ganache باز میگردیم و از بخش Transactions  این آدرس ها را پیدا میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

در این صفحه میتوانیم تراکنشی را که پیشتر ایجاد کردیم ببینیم. همانطور که مشخص است، Ganache آدرسی را که قرارداد را در آن قراردادیم به نمایش نشان میدهد که این همان آدرس قرارداد بلاک چین ماست. اطلاعات بیشتری نیز در این بخش قابلمشاهده است. با کلیک بر روی تراکنش، آدرس را کپی نموده و در مای اتر ولت جایگذاری میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

در اینجا تنها جای ABI خالی مانده است. به را پیدا کردن این بخش کافی است به Remix برگردیم و با کلیک روی گزینه کپی که درست در کنار  INTERFACE – ABI قرار دارد آن را کپی کنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

در این مرحله ABI را وارد و بر روی گزینه Access کلیک میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

با کلیک بر روی گزینه Select a function میتوانیم با قرارداد خود کارکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

در بخش کد نویسی مقدار اولیه count را صفر تعیین نمودیم. برای آزمایش اینکه آیا قرارداد درستکار میکند یا نه دستور getCount()  را اجرا میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

اگر با تصویر بالا روبهرو شدید قرارداد شما نیز به خوبی کار میکند. دو دستور دیگر نیز در کد ما وجود داشت برای تست دستور ncrementCounter()  iرا وارد میکنیم. با انتخاب عملکرد موردنظر از کادر پایین، گزینه incrementCounter را انتخاب میکنیم و یک تراکنش جدید ایجاد میکنیم.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

بدین ترتیب باعث افزایش میزان count شدیم. حالا دوباره دستور getCount()    را اجرا میکنیم تا ببینیم که آیا این مقدار تغییر کرده یا نه.

آموزش قدم به قدم ساخت قرارداد هوشمند اتریوم

همانطور که میبینید مقدار count به عدد 1 تغییر کرد. پس عملکرد incrementCount()  کارکرده. به همین منوال عملکرد decrementCount()   نیز قابل آزمایش است.

جمع بندی

در این مقاله قصد بر این بود تا یک قرارداد هوشمند ساده را در محیط اتریوم به شما معرفی کنیم. چنین قراردادهایی بسیار به طرز کار کلی اتریوم شبیهاند اما باکمی تفاوت در نحوه عملکرد و کد نویسی های لازم. درصورتیکه بخواهید دیگران نیز در این قرارداد با شما سهیم باشند، تنها کافی است قرار داد خود را از طریق شبکه اتریوم یا اینترنت با آنها به اشتراک بگذارید. بدین ترتیب قرارداد شما بر روی دستگاههای دیگر نیز قابلاجرا خواهد بود؛ اما به یاد داشته باشید که افراد کلاهبردار میتوانند از این طریق مبالغ تقلبی برای شما ارسال کنند.

آسان سافت...

ما را در سایت آسان سافت دنبال می‌کنید

برچسب: نویسنده: بازدید: 95 تاريخ: دوشنبه 24 آذر 1399 ساعت: 12:36

صفحه بندی