0

اولین قرارداد هوشمند اتریوم خود را با سالیدیتی بسازید (قسمت اول)

آیا شما می خواهید یک قرارداد هوشمند بسازید؟ شاید شما می خواهید نحوه کار آنها را بفهمید ، شاید می خواهید Dapp(برنامه غیرمتمرکز) خود را بسازید. صرف نظر از اهداف شما ، یادگیری نحوه کار قراردادهای هوشمند بسیار ارزشمند است. پلتفرم اتریوم

پتانسیل بسیار زیادی برای ایجاد Dapps دارد که می تواند نحوه تعامل ما در وب را در دهه های آینده تغییر دهد. در حالی که اتریوم  قراردادهای هوشمندی را اجرا می کند که تقریباً مانند یک معامله بلاکچین استاندارد کار می کنند ، آنها بیانیه ای مشروط ارائه می

دهند که باید قبل از اجرای تابع (ها) تضمین شود. از قراردادهای هوشمند می توان برای رای گیری ، سرمایه گذاری گسترده ، حراج های ، کیف پول های چند امضایی و بسیاری موارد دیگر استفاده کرد.

 

یک نمونه قرارداد سریع هوشمند:

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

دارند و به ویژه باب بطور معمول به فروش قاچاق آهن می پردازد. باب قراردادی را تنظیم می کند که در آن زمانی که موجودی آهن قراضه او به یک محدوده خاص رسید ، او به طور خودکار برای X پوند آهن قراضه به قیمت  Y  اتر به ازای هر تن به اریک ارسال می

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

اینکه اریک تصمیم دارد اتر نگه دارد یا به یوان تبدیل کند ، انتخاب اوست ، اما به هر ترتیب اکنون می تواند این سرمایه را فوراً به کار بگیرد!

 

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

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

 

خب،ولی ما قرار است چه چیزی را یاد بگیریم؟

به قول معروف ، “قبل از راه رفتن باید خزیده باشی”. قبل از شروع قرارداد اول خود ، مهم است که چند اصل را یاد بگیریم. مهمتر از همه ، من می خواهم به این نکته اشاره کنم که پلتفرم  اتریوم در سال 2016 راه اندازی شد. در حالی که در آن زمان هنوز در مراحل

ابتدایی خود قرار داشت ، ولی اکنون زمان مناسب برای شروع یادگیری در مورد قراردادهای هوشمند است.

در این آموزش می خواهیم موارد زیر را بیاموزیم:

  • نود های اتریوم
  • ایجاد یک شبکه خصوصی بلاکچین
  • پلاگین متامسک
  • مرورگر Mist
  • کیف پول اتریوم
  • api web3 در جاوا اسکریپت
  • Remix Web Browser IDE
  • رابط خط فرمان Geth (Go Ethereum)
  • زبان برنامه نویسی Solidity

 

مهم: اگر در هر مرحله با اجرای برنامه به مشکلی برخوردید ، با کلیک راست روی آن و انتخاب “Run as administrator” آن را به عنوان دسترسی ادمین راه اندازی کنید.

 

راه اندازی یک نود Ethereum

در ساده ترین شکل ، گره اتریوم هر دستگاهی است که پروتکل اتریوم (بلاکچین) را اجرا می کند. در حالی که گره ها معمولاً روی رایانه های رومیزی و لپ تاپ ها اجرا می شوند ، توسعه برای تلفن همراه نیز در حال انجام است. وقتی به پروتکل Ethereum متصل

می شویم ، در شبکه بلاک چین Ethereum هستیم و یک گره در حال اجرا داریم. با اجرای یک گره Ethereum می توانیم به گره های دیگر شبکه متصل شویم ، به بلاکچین دسترسی مستقیم داشته باشیم و حتی کارهایی مانند بلاک های ماین ، ارسال تراکنش و

استقرار قراردادهای هوشمند را انجام دهیم.

گره ها در Go (Go Ethereum / Geth) ، C و ++c و Python نوشته می شوند. در این آموزش ما به محبوب ترین بین این سه مورد ، میپردازیم. همچنین لازم به ذکر است که با دانلود Geth ، ما بلاکچین کامل Ethereum را بارگیری می کنیم. با این اوصاف ، قبل از

ادامه کار ، مطمئن شوید که 35 گیگابایت گیگابایت حافظه ذخیره بر روی هارد دیسک دارید.

1.به وب سایت زیر بروید و Geth را نصب کنید

به اینجا مراجعه کنید.

2. آخرین نسخه Geth (در حال حاضر 1.8.7) را برای ویندوز(یا سیستم عامل های دیگر خود) بارگیری کنید ، حتماً نسخه 64 بیتی را بارگیری کنید.

 

3. پس از اتمام بارگیری ، گزینه ی نصب را بزنید و روی “I Agree” کلیک کنید.

 

4. اطمینان حاصل کنید که کادر Geth علامت گذاری شده است و “بعدی” را کلیک کنید

 

5- از شما خواسته می شود که یک پوشه مقصد را برای بارگیری خود انتخاب کنید. به طور پیش فرض ، Geth تحت C:\Program Files\Geth نصب می شود.

6. بعد از اتمام مراحل نصب،پنجره  را ببندید.

7. خط فرمان را باز کنید (من از Git Bash استفاده خواهم کرد – از اینجا بارگیری کنید- ، مطمئن شوید که هنگام نصب به متغیرهای PATH اضافه می کنید) و با نوشتن “cd” به دایرکتوری Geth بروید C:\Program Files\ Geth ”

 

 

 

 

8. با تایپ کردن “Geth” همگام سازی با بلاکچین اتریوم را شروع کنید. از آنجا که این اولین همگام سازی شماست ، بلاکچین کامل را از سایر peers بارگیری خواهید کرد. کمی طول می کشد بنابراین راحت باشید …

 

انجام شد؟ بله! شما اکنون دارید یک گره اتریوم اجرا می کنید…

ایجاد شبکه خصوصی اتریوم شخصی ما

 

اکنون که از طریق گره خود به پروتکل Ethereum دسترسی پیدا کرده ایم ، قصد داریم سرور خصوصی خود را برای توسعه و استقرار قرارداد هوشمند خود راه اندازی کنیم. توجه داشته باشید که هیچ یک از اینها واقعاً در بلاکچین اتریوم مستقر نمی شوند ، در

عوض ما در بلاک چین خود مستقر می شویم. ما با جنریت کردن اولین بلوک در زنجیره بلوک خود ،  genesis  بلوک (genesis.json) شروع خواهیم کرد.

پوشه جدیدی روی میز کار خود ایجاد کنید به نام “Private Chain”.

خط فرمان را در این پوشه باز کنید و با تایپ کردن “Mkdir chaindata” یک پوشه  داده برای chaindata ما ایجاد کنید. با نگه داشتن شیفت و کلیک راست می توانید یک خط فرمان در این پوشه باز کنید ، سپس “open command window here” را انتخاب کنید

.
در مرحله بعدی ، ما باید بلوک genesis.json خود را در پوشه Private Chain خود ایجاد و ذخیره کنیم ، زیرا بلوک genesis برای شروع شبکه خصوصی ما و ذخیره داده ها در پوشه دایرکتوری داده “chaindata” استفاده می شود.

ادیتور خود را باز کنید ، کد زیر را در پرونده جدیدی به نام “genesis.json” کپی و جایگذاری کنید و این پرونده را در پوشه Private Chain خود ذخیره کنید.

میخواهید درباره پارامترهای genesis.json بیشتر بدانید؟ به اینجا مراجعه کنید.

 

{
 "coinbase" : "0x0000000000000000000000000000000000000001",
 "difficulty" : "0x20000",
 "extraData" : "",
 "gasLimit" : "0x2fefd8",
 "nonce" : "0x0000000000000042",
 "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "timestamp" : "0x00",
 "alloc": {},
 "config": {
 "chainId": 15,
 "homesteadBlock": 0,
 "eip155Block": 0,
 "eip158Block": 0
 }
}

 

5. اکنون می خواهیم شبکه خصوصی خود را با استفاده از فایل genesis.json در پوشه chaindata راه اندازی کنیم. ما می خواهیم به Geth بگوییم که ما می خواهیم دایرکتوری داده ها را در دایکتوری “chaindata” و جایی که فایل genesis.json  را می توان پیدا

کرد (مطمئن شوید که genesis.json در دایرکتوری chaindata نیست). دستور زیر را در خط cmd با اشاره به پوشه Private Chain تایپ کنید.

geth --datadir=./chaindata/ init ./genesis.json

6. سپس باید ببینید که حالت genesis با موفقیت نوشته شده است.

 

7. اکنون می توانیم Geth را شروع کرده و به زنجیره خصوصی خود متصل شویم. همانطور که می بینید در اتصال سوکت نقطه نهایی geth.ipc باز می شود و همچنین پورت 30303  باز می شود.

 

geth --datadir=./chaindata/

هر زمان که Geth را ران می کنیم ، endpoint IPC باز می شود ، که برای پردازش اتصالات به Geth با برنامه هایی مانند MetaMask ، Ethereum Wallet ، Mist یا برای باز کردن کنسول Geth Javascript API استفاده می شود. در ادامه همه  را بحث خواهیم کرد.

 

 

 

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *