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

آموزش کار با (Go Ethereum)GETH- بخش اول

Geth یکی از پیاده سازی های رسمی اتریوم به زبان Go است. (علاوه بر زبان های C++و پایتون). در واقع به کمک واسط کاربری برخط Geth می توان یک full node اتریوم ایجاد کرد. هنگامی که شما نود اتریوم خصوصی خود را دارید، دیگر نیاز به استفاده از یک سرویس ثالث برای اتصال به شبکه اتریوم وجود ندارد و می توانید به نود خود اعتماد کنید.

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

بنابراین می توان گفت geth در فرآیند توسعه اپلیکیشن های غیرمتمرکز معمولا استفاده نمی شود. به دلیل فرآیند پیچیده و زمان بر بودن کار با آن. در واقع geth بیشتر جنبه آموزشی دارد و کار با آن موجب عمیق تر شدن دانش ما نسبت به بلاکچین خواهد شد.

قابلیت ها

با نصب و اجرای geth می توانیم به شبکه اصلی اتریوم متصل شویم، همچنین geth قابلیت های دیگری دارد که با آن می توانیم:

  1. اتر حقیقی ماین کنیم
  2. بین آدرس ها انتقال اتر انجام دهیم
  3. ایجاد قرارداد و ارسال تراکنش انجام دهیم
  4. تاریخچه بلاک ها را مشاهده کنیم
  5. و بسیاری موارد دیگر

واسط کاربری

Geth دارای چندین واسط کاربری برای ارتباط با نود اتریوم است؛ از جمله:

  1. کنسول جاوااسکریپت: این واسط یک محیط تعاملی در اختیار ما قرار می دهد؛ که دارای یک محیط اجرایی جاوااسکریپت برای ارتباط با نود اتریوم است

  2. سرور JSON_RPC: به کمک این واسط می توانیم geth را با یک سرور JSON-RPC اجرا کنید، که امکان دسترسی به یک کتابخانه JSON-RPC را به شما می دهد.

  3. گزینه های خط فرمان: خود geth یک سری دستورات و گزینه ها دارد که برای مشاهده کامل تمام دستورات و گزینه های آن ها می توانید به لینک داده شده مراجعه کنید.

نصب

آخرین نسخه geth رو می تونید از اینجا دانلود کنید. برای چگونگی نصب geth بر روی سیستم عامل های مختلف از جمله لینوکس، مک و ویندوز می توانید به لینک زیر مراجعه کنید: Installing Geth | Go Ethereum

برای اطمینان از نصب موفق یک پنجره ترمینال باز کنید و دستور زیر را اجرا کنید:

$ 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 می توان به هر شبکه دلخواهی وصل شد.

لینک های مرتبط

10 Likes

سلام ببخشید من دانلود کردم ولی


این رو میارع
طبق چیزی گفتید باید ctrl c رو بزنیم
ولی من میزنم میدره بیرون

مشکلی نداره، برای توقف عملیات سینک و فرآیند دانلود بلاک ها، کلید ctl+c زده میشه، با متوقف شدن فرآیند از کنسول geth هم خارج میشه.

1 Likes

سلام وقت بخیر
من تا اینجا پیش رفتم
ممنون میشم ادامه شو راهنماییم کنید

سلام، وقت شما هم بخیر
من روی مک نصب نکردم تا به حال. ولی اگر دستور brew help روی ترمینال سیستم تون کار میکنه، یعنی Homebrew روی سیستم تون نصب شده. مرحله بعدی طبق لینک ای فرستاده بودم، اجرای دو دستور زیر هست در ترمینال:

$ brew tap ethereum/ethereum 
$ brew install ethereum
1 Likes

پس چجوری باهاش بلاک چینمو درست کنم

میشه من دو شنبه ازتون کمک بخوام برای نحوه ی نصب این ؟لطفا

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

بله، حتما، هر سوالی دارین می تونین بپرسین.


سلام مجدد
brew help رو وارد کردم ولی دستورو پیدا نکرد
ممنون بابت کمکتون

چیزی که به نظر میرسه اینکه brew در مسیر opt/homebrew/bin/brew/ نصب شده. میتونید brew رو از این مسیر اجرا کنید.اگر که اجرا بشه، مسیر نصب brew صرفا باید در مسیر باینری های سیستم عامل قرار بگیره تا بتونید فقط با اجرای دستور brew اون رو از هر جایی اجرا کنید. که توی عکسی که فرستادین قسمت next steps گفته شده نحوه انجامش رو.

سلام من برای نصب geth مشکلی دارم اینکه انتهای نصب به من پیغام path not update.
مشکل چیه؟


من هرچی سعی میکنم نمیتونم دانلود کنم

سلام خسته نباشید. وقتی فایل genesis میسازم فرمتش همون txt میمونه و تغییر نمیکنه به jason مشکل چیه؟

موقع سیو فرمت txt رو به jason دستی خودت وارد کن

راستی تونستی geth رو دانلود کنی از سایتش ؟

منم نمیتونم چطوری باید دانلود کرد ؟؟

باید از قسمت folder option پسوند فایل هاتو به نمایش بزاری تا بعد بتونی پسوندش رو تغییر بدی

1 Likes

من تغییر دادم…
تبدیل به json شد…
ولی با چی باید بازش کنم؟؟
??open with

با notepad میتونی بازش کنی

1 Likes

الان من چک کردم سایت اکیه، ببین میتونی دانلود کنی؟
https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.15-8be800ff.exe
این لینکم تست کن شاید جواب بده

1 Likes