اگر اخبار تکنولوژی را دنبال کرده باشید از تأثیرات شگرف ارزهای دیجیتالی و بلاک چین و همچنین فرصتهای اقتصادی نهفته در آنها، آگاهید. ازلحاظ اقتصادی، بیت کوین تنها در 2017 با بیش از 2035 درصد افزایش قیمت همراه بوده که از نشان از اهمیت بالای تکنولوژیهای اینچنینی دارد. از طرفی بیت کوین ویترین پولهای مجازی است، پس با رشد بیت کوین، بقیه ارزها نیز دستخوش تغییرات قیمتی خواهند شد. اتریوم یکی از این ارزهاست که 6365.3 درصد رشد داشته، لایت کوین هم از دیگر ارزهایی است که 2775.49 درصد رشد را تجربه کرده است.
بیت کوین را میتوان بهنوعی پادشاه این بازار دانست، اما کاربرد اصلی آن تنها یک ارز، که برای پرداختهای روزمره بسیار مناسب است، میباشد، از طرفی ما چیزی بیش از این عملکرد را انتظار داریم. ما نیاز داریم تا نرمافزارهایی نوشته شوند که بر پایه شبکههای غیرمتمرکزی همچون بیت کوین اجرا شوند. به این منظور میبایست قراردادهای هوشمند بیت کوین را ایجاد کنیم؛ این قراردادها دارای زبانی محدودند و بهعلاوه توسعهپذیری چندانی ندارند.
برای حل این مشکلات و اجرای قراردادهای هوشمند در شبکه وسیعتر، قراردادهای هوشمند اتریوم به وجود آمدند. اتریوم به دلیل استفاده ماشین جازی تورینگ در یک بلاک چین برای اولین، موفق به ایجاد یک چیز بسیار خاص شده است. این یعنی قراردادهای هوشمند اتریوم ازلحاظ تئوری میتوانند از پس تمامی عملیاتهای محاسباتی بربیایند. بهعبارتدیگر، هر برنامهای را میتوان بر پایه اتریوم اجرا کرد.
آشنایی با قراردادهای هوشمند
در ادامه قصد داریم تا نحوه ایجاد یک قرارداد هوشمند ساده را برای شما شرح دهیم؛ این قرارداد بر پایه زبان برنامهنویسی «سالیدیتی» نوشته خواهد شد. سالیدیتی زبانی است که شباهتهای بسیاری به جاوا اسکریپت دارد.
دانلود نرم افزارهای مورد نیاز
برای شروع کار لازم است تا ابتدا Ganache را روی رایانه خود نصب کنید. با استفاده از این نرمافزار قادر خواهیم بود تا یک بلاک چین شخصی را بر روی دستگاه خود ایجاد کنیم؛ بهعلاوه وجود یک نسخه دانلودی از «مای اتر ولت» نیز ضروری است (نسخه وب کارساز نیست). به یاد داشته باشید که نسخهای که اقدام به دانلود آن میکنید v3.xx.x.x.zip باشد.
در سایت 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 returns (int) { return 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 پروژه ما هست