**آپدیت: بعد از تغییر الگوریتم اجماع اتریوم به POS نرم افزارهای کلاینت اتریوم دو دسته شدن execution و consensys ,نرم افزار geth ورژن جدید فقط بخش execution رو انجام میده و بخش پروتکل اجماع اش از کار افتاده. یعنی برای راه اندازی نود اتریوم باید از geth به همرا ه یه نرم افزار consensys مثل lighthouse استفاده کنید و دو اپلیکیشن را همزمان در حال اجرا داشته باشین. آموزش پیش رو مربوط به نسخه POW اتریوم یا قبل از The Merge است.بعضی مراحل آن مشابه نسخه جدید است:
Geth یکی از پیاده سازی های رسمی اتریوم به زبان Go است. (علاوه بر زبان های C++و پایتون). در واقع به کمک واسط کاربری برخط Geth می توان یک full node اتریوم ایجاد کرد. هنگامی که شما نود اتریوم خصوصی خود را دارید، دیگر نیاز به استفاده از یک سرویس ثالث برای اتصال به شبکه اتریوم وجود ندارد و می توانید به نود خود اعتماد کنید.
پیش از شروع به کار با این ابزار، به این نکته توجه داشته باشید که بیشترین کاربرد geth برای ایجاد یک نود کامل و یا به اصطلاح کلاینت در شبکه اتریوم است. ایجاد یک نود کامل که تمام بلاک های زنجیره را در خود داشته باشد و مدام در حال بروزرسانی وضعیت خود باشد؛ می تواند مورد استفاده ماینرها قرار بگیرد؛ و یا می تواند صرفا به عنوان تامین کننده سرویس بلاکچین اتریوم استفاده گردد و یا توسط صرافی های آنلاین برای افزایش سرعت بروزرسانی تراکنش های خود استفاده شود.
بنابراین می توان گفت geth در فرآیند توسعه اپلیکیشن های غیرمتمرکز معمولا استفاده نمی شود. به دلیل فرآیند پیچیده و زمان بر بودن کار با آن. در واقع geth بیشتر جنبه آموزشی دارد و کار با آن موجب عمیق تر شدن دانش ما نسبت به بلاکچین خواهد شد.
قابلیت ها
با نصب و اجرای geth می توانیم به شبکه اصلی اتریوم متصل شویم، همچنین geth قابلیت های دیگری دارد که با آن می توانیم:
- اتر حقیقی ماین کنیم
- بین آدرس ها انتقال اتر انجام دهیم
- ایجاد قرارداد و ارسال تراکنش انجام دهیم
- تاریخچه بلاک ها را مشاهده کنیم
- و بسیاری موارد دیگر
واسط کاربری
Geth دارای چندین واسط کاربری برای ارتباط با نود اتریوم است؛ از جمله:
-
کنسول جاوااسکریپت: این واسط یک محیط تعاملی در اختیار ما قرار می دهد؛ که دارای یک محیط اجرایی جاوااسکریپت برای ارتباط با نود اتریوم است
-
سرور JSON_RPC: به کمک این واسط می توانیم geth را با یک سرور JSON-RPC اجرا کنید، که امکان دسترسی به یک کتابخانه JSON-RPC را به شما می دهد.
-
گزینه های خط فرمان: خود geth یک سری دستورات و گزینه ها دارد که برای مشاهده کامل تمام دستورات و گزینه های آن ها می توانید به لینک داده شده مراجعه کنید.
نصب
آخرین نسخه geth رو می تونید از اینجا دانلود کنید. برای چگونگی نصب geth بر روی سیستم عامل های مختلف از جمله لینوکس، مک و ویندوز می توانید به لینک زیر مراجعه کنید: Installing Geth | go-ethereum
برای اطمینان از نصب موفق یک پنجره ترمینال باز کنید و دستور زیر را اجرا کنید:
$ geth
در صورت اجرای دستور بالا، چنین چیزی مشاهده خواهید کرد:
با اجرای این دستور، درواقع geth شروع به جستجو و اتصال به سایر نودهای اتریوم می کند. زمانی که geth یک نود در همسایگی خود پیدا کند؛ شروع به سینک کردن داده های بلاکچین می کند. اطلاعات بلاک ها در پوشه geth که برای اولین بار ایجاد می شود در مسیر مشخصی از سیستم عامل ذخیره می شود. برای متوقف کردن این فرآیند، می توان از کلید Ctrl+C
استفاده کرد.
همانطور که گفته شد با اجرای دستور geth به صورت پیش فرض یک نود mainnet اتریوم ایجاد می شود. محل ذخیره سازی داده های مربوط به این زنجیره به صورت پیش فرض با توجه به نوع سیستم عامل متفاوت است.
- Windows
C:\Users\[USERNAME]\AppData\Local\Ethereum
or
%APPDATA%\Ethereum
- Linux:
~/.ethereum
- Mac:
~/Library/ethereum
در مسیر مشخص شده دو پوشه با نام های geth و keystore وجود دارد. پوشه geth اطلاعات مربوط به وضعیت زنجیره و بلاک ها را ذخیره می کند؛ و پوشه keystore محل نگه داری اکانت های مربوط به بلاکچین است.
هچنین geth از طریق ایجاد یک بستر IPC امکان اتصال به نود مشخصی را فراهم می کند.
$ geth attach [path to the ipc endpoint]
به طور مثال برای اتصال به نود ایجاد شده برروی سیستم خود دستور زیر استفاده می شود:
geth attach geth.ipc
مسیر فایل تنظیمات برای اتصال به نود ایجاد شده، بر روی سیستم عامل های مختلف متفاوت است. به عنوان مثل مسیر پیشفرض برای فایل سوکت geth در سیستم عامل های لینوکس و مک در اینجا قرار دارد:
~/.ethereum/geth.ipc
و در ویندوز از این طریق در دسترس است:
\\.\pipe\geth.ipc
از طریق دستور زیر می توان هم زمان با اجرای geth وارد کنسول جاوااسکریپت نیز شد:
$ geth console
در این صورت هم زمان کنسول جاوااسکریپت اجرا خواهد شد. نمایش لاگ ها در پنجره کنسول هم چنان ادامه دارد، که این ی تواند در هنگام کار با کنسول آزاردهنده باشد؛ برای حذف نمایش لاگ ها دستور زیر را در کنسول تایپ کنید:
debug.verbosity(0)
همچنین برای خروج از کنسول جاوااسکریپت در کنسول دستور exit
را اجرا کنید.
هنگامی که دستور geth را اجرا می کنیم، به طور پیش فرض با شبکه اصلی اتریوم ارتباط برقرار می شود ولی به کمک ابزار geth می توان به هر شبکه دلخواهی وصل شد.