من میدانم که هیچ نمیدانم.
گس Geth چیست؟ نودهای Geth
گس یکی از پیاده سازیهای رسمی اتریوم به زبان Go است. (علاوه بر زبان های سی پلاس پلاس و پایتون). در واقع به کمک واسط کاربری برخط Geth می توان یک full node اتریوم ایجاد کرد. هنگامی که شما نود اتریوم خصوصی خود را دارید، دیگر نیاز به استفاده از یک سرویس ثالث برای اتصال به شبکه اتریوم وجود ندارد و می توانید به نود خود اعتماد کنید.
بیشترین کاربرد geth برای ایجاد یک نود کامل و یا به اصطلاح کلاینت در شبکه اتریوم است. ایجاد یک نود کامل که تمام بلاک های زنجیره را در خود داشته باشد و مدام در حال بروزرسانی وضعیت خود باشد؛ می تواند مورد استفاده ماینرها قرار بگیرد؛ و یا می تواند صرفا به عنوان تامین کننده سرویس بلاکچین اتریوم استفاده گردد و یا توسط صرافی های آنلاین برای افزایش سرعت بروزرسانی تراکنش های خود استفاده شود.
بنابراین می توان گفت geth در فرآیند توسعه اپلیکیشن های غیرمتمرکز معمولا استفاده نمی شود. به دلیل فرآیند پیچیده و زمان بر بودن کار با آن. در واقع geth بیشتر جنبه آموزشی دارد و کار با آن موجب عمیق تر شدن دانش ما نسبت به بلاکچین خواهد شد.
بسیاری از اصطلاحات و مفاهیم جدید وجود دارد که باید آنها را درک کنید تا در سفر بلاک چین (BC) خود موفق شوید. «Geth» و «Geth node» قطعاً در این دسته قرار میگیرند. این دو دقیقا همان چیزی هستند که در این مقاله به آن خواهیم پرداخت.
در بخشهای زیر، اصول اولیه مربوط به یک نوع نود خاص اتریوم، نحوه استفاده از Geth و موارد دیگر را خواهید آموخت. به عنوان یک امتیاز، شما همچنین با روشی قدرتمند آشنا خواهید شد که می تواند به شما دیدی از بک اند بلاک چین بدهد، از جمله فکوس و توجه بر روی مفاهیم نود ها و تمرکز مستقیم بر روی فرانت اند آن.
امیدواریم هیجان زده باشید و برای آموختن این اطلاعات مفید آماده باشید.
آماده اید؟ بیایید به دنیای نودهای گس شیرجه بزنیم!
پیش نیازهایی برای درک Geth و نودهای Geth
بیایید با مفهوم شبکه همتا به همتا (P2P) شروع کنیم. در این مورد، "همتایان" به سیستم های رایانه ای اطلاق می شود که همه با استفاده از اینترنت به یکدیگر متصل هستند. این نوع شبکه به کاربران امکان می دهد تا داده ها را مستقیماً بین رایانه های متصل به شبکه به اشتراک بگذارند و انتقال دهند. همه اینها هم بدون نیاز به سرور مرکزی.
مفهوم شبکه P2P اساس فناوری بلاک چین است. در مواردی که همتایان توزیع شده و توسط یک گروه، نهاد یا سازمان کنترل نمی شوند، ما در مورد تمرکززدایی صحبت می کنیم.
دومین چیزی که باید به آن بپردازیم EVM است. آیا قبلا در مورد EVM شنیده اید؟ آیا می دانید مخفف چیست؟ ماشین مجازی اتریوم یا EVM اساسا یک پلتفرم نرم افزاری است که مبتنی بر بلاک چین است. اینجا جایی است که تمام حسابهای اتریوم و قراردادهای هوشمند قرار دارند و اجرا می شوند. علاوه بر این، این EVM است که قوانینی را برای اعتبارسنجی بلوک های جدید تعریف می کند.
در طول مقاله، باید سایر اصول اولیه بلاک چین را نیز در نظر داشته باشید. به عنوان مثال، دانستن اینکه اتریوم یک شبکه یا پلتفرم غیرمتمرکز است که قراردادهای هوشمند را اجرا می کند، بسیار ضروری است. و اینکه قراردادهای هوشمند برنامه های مبتنی بر بلاک چین هستند که بر اساس شرایط از پیش برنامه ریزی شده اجرا می شوند تا از خرابی، سانسور، تداخل شخص ثالث یا کلاهبرداری جلوگیری کنند.
توجه داشته باشید که با شروع سفر به "بلاک چین" تصمیم می گیرید در یک زمینه جدید و به سرعت در حال رشد شرکت کنید. به این ترتیب، توجه داشته باشید که یادگیری و رشد مداوم بخشی ضروری از آن است.
یک راه ساده تر - دانش عمیق Geth لازم نیست
با این حال، این همه رشد و یادگیری به هیچ وجه نباید دشوار باشد. همه این ها را می توان به طور طبیعی در حین کار روی یک پروژه جالب، ساختن چیزی که به آن اهمیت می دهید، به دست آورد. قبل از پرداختن به سایر اصطلاحات مرتبط با Geth، میخواهیم در مورد یک فرصت شگفتانگیز به شما بگوییم.
اگر شما یک توسعه دهنده front-end هستید یا تیمی از افراد با مهارت های کدنویسی دارید، می توانید از یک میانبر استفاده کنید. Moralis به شما امکان دسترسی به یک پلتفرم زیرساخت قدرتمند Web3 را میدهد که به شما امکان میدهد با استفاده از یک خط کد از تمام توسعههای خستهکننده Web3 صرف نظر کنید. با استفاده از Moralis، نیازی نیست نگران Geth یا Geth Node باشید. دانستن جاوا اسکریپت به تنهایی می تواند شما را قادر سازد تا اپلیکیشن های مبتنی بر بلاک چین را بر روی چندین بلاک چین بسازید.
کلاینت چیست؟
وقتی صحبت از کلاینتها در حوزه بلاکچین میشود، در مورد Geth در زنجیره اتریوم، این اصطلاح به قطعات نرم افزاری اشاره دارد. علاوه بر این، کلاینت ها قادر به ایجاد کانال های ارتباطی P2P با سایر کلاینت ها هستند. این امر امکان پخش و امضای تراکنش ها، استخراج، استقرار و تعامل با قراردادهای هوشمند و تأیید سایر عملیات بلاک چین را فراهم میکند.
علاوه بر این، انواع مختلف کلاینت اتریوم در زبان های برنامه نویسی مختلف از جمله Rust، JavaScript، Python، C#.Net و Java وجود دارد. علیرغم زبان های برنامه نویسی مختلف، همه کلاینت های اتریوم از همان مشخصات رسمی تعریف شده در Yellow Paper اتریوم پیروی می کنند.
نود چیست؟
خطوط بین کلاینتها و نودها معمولاً بسیار مبهم است. بسیاری از مردم تمایل دارند این دو اصطلاح را به جای هم استفاده کنند.
با این حال، در واقعیت، نود ها به قطعات در حال اجرا نرم افزار کلاینت اشاره دارند.
نکته:
- کلاینتها = قطعات نرم افزاری در بلاک چین
- نودها = کلاینت های در حال استفاده یا اجرای قطعات نرم افزار بر روی یک بلاک چین خاص.
همه می توانند کلاینت های فعال را بررسی کنند
آیا به یاد دارید که شفافیت کامل یکی از عناصر کلیدی فناوری بلاکچین است؟ با در نظر گرفتن این موضوع، قطعاً نباید تعجب کنید که می توانید به راحتی شرایط شبکه اتریوم را با نگاه کردن به نقشه نودها مشاهده کنید.
اکنون به اندازه کافی می دانید که گام بعدی را برای درک Geth بردارید. بگذارید به این سوال برسیم که Go Ethereum چیست.
Go Ethereum چیست؟
پروتکل اتریوم دارای سه پیاده سازی اصلی است که شامل ++Python، C و Go Ethereum می شود. همانطور که از نام آن پیداست، Go Ethereum از زبان برنامه نویسی Go (Golang) استفاده می کند. مانند بسیاری از زبان های برنامه نویسی، Go کاملا متن باز است. تحت مجوز GNU LGL v3 است.
خب، چرا Go Ethereum برای درک Geth مهم است؟ زیرا Geth چیزی نیست جز یک کلاینت مستقل که Go Ethereum از طریق آن در دسترس است. در عمل، مردم اغلب به Geth به عنوان مخفف Go Ethereum اشاره می کنند. با این حال، این از نظر فنی کاملاً دقیق نیست. به خصوص به این دلیل که کاربران ممکن است از Go Ethereum به عنوان کتابخانه استفاده کنند، که قبلاً در پروژه Android، iOS یا Go خود تعبیه کرده اند.
Geth و Geth Node
اجازه دهید یک خلاصه کوتاه قبل از پرداختن به موضوع انجام دهیم.
- Geth (به همراه Parity) یکی از محبوب ترین مشتریان اتریوم است. این بر اساس زبان برنامه نویسی Go (Golang) عمل می کند.
- هنگامی که یک کلاینت قابل اجرا باشد (در حال استفاده توسط یک کامپیوتر جداگانه متصل به شبکه اتریوم)، تبدیل به یک نود می شود.
- به عنوان بخشی از سادهسازی (که باعث سردرگمی افراد مبتدی میشود)، توسعهدهندگان و کل جامعه بلاک چین تمایل دارند از اصطلاحات «Geth» و «Geth Node» به جای یکدیگر استفاده کنند. این به دنبال قابلیت تعویض اصطلاحات کلی «کلاینت» و «نود» است.
در ادامه مقاله تصویر واضح تری از چیستی Geth Node و نحوه استفاده از Geth دریافت می کنید. انواع نود های Geth چیزی است که در ادامه به آن می پردازیم.
انواع نود در Geth
انواع بسیاری از نودهای اتریوم وجود دارد، با این حال، با تمرکز بر گرههای Geth، سه گزینه وجود دارد. اینها شامل لایت نود یا گرههای سبک و فول نود یا گرههای کامل هستند که دو نوع اصلی هستند. علاوه بر این، سومین نوع نود Geth وجود دارد - یک آرشیو نود ، که یک مورد خاص از یک فول نود است.
بیایید نگاهی دقیق تر به فول نودها و لایت نودها بیندازیم.
فول نودها تضمین میکنند که تراکنشهای موجود در بلاکها تمام قوانین تعریفشده در yellow paper اتریوم را رعایت میکنند. با انجام این کار، آنها اساساً بلوک هایی را که در شبکه پخش می شوند تأیید می کنند. آنها هر بلوک یا تراکنش را تأیید می کنند. با این فرآیند تأیید، گرههای کامل وضعیت فعلی کل شبکه را مطابق با مشخصات اتریوم حفظ میکنند.
در مواردی که فول نود کل تاریخ تراکنش را حفظ می کنند، به عنوان نودهای بایگانی کامل برچسب گذاری می شوند. این نوع نودها برای اطمینان از سلامت شبکه ضروری هستند.
در مقابل، لایت نودها هر بلوک را تأیید نمیکنند، که به این معنی است که ممکن است نسخهای از وضعیت فعلی بلاکچین اتریوم نداشته باشند. بنابراین، آنها برای ارائه آن اطلاعات به فول نودها متکی هستند. مزایای اجرای لایت نودها شامل زمان کوتاه تر راه اندازی و راه اندازی آنها، مصرف کمتر ذخیره سازی و نیازهای محاسباتی/حافظه کمتر است. نقطه ضعف آشکار آنها این است که به دلیل تکیه بر فول نودها، خودکفا نیستند. عنصر اعتماد نیز برای لایت نودها بسیار کمتر است.
اکنون میدانید Geth چیست، اما چرا میخواهید آن را اجرا کنید؟ این همان چیزی است که در بخش بعدی به آن می پردازیم.
چرا یک نود اتریوم را اجرا کنیم؟
آیا می دانید چرا ممکن است در وهله اول بخواهید یک نود اتریوم را اجرا کنید؟ اگر نه، نگران نباشید، ما اینجا هستیم تا کمک کنیم. ما مزایای این عمل را در زیر بیان می کنیم.
واضح ترین مزیت اجرای یک نود اتریوم این واقعیت است که به کاربر حریم خصوصی و خودکفایی واقعی در شبکه می دهد. این قدرت را به کاربر می دهد تا بر نیاز به اعتماد به شبکه غلبه کند زیرا کلاینت کاربر تأیید را انجام می دهد. علاوه بر این، با اجرای یک نود Geth (یا هر نوع دیگری از نودهای اتریوم) از اکوسیستم پشتیبانی می شود.
برای استفاده حداکثری از اجرای یک نود، توصیه می کنیم روی اجرای یک نود کامل اتریوم تمرکز کنید.
مزایای کلیدی (برای کاربران) اجرای یک نود اتریوم:
یک کاربر مجبور نیست به شبکه تکیه کند یا کاملاً به آن اعتماد کند. نود کاربر تمام تراکنش ها و بلوک ها را تأیید می کند.
کاربرانی که یک نود را اجرا می کنند از افشای آدرس ها و موجودی های خود به نودهای تصادفی اجتناب می کنند. کلاینت خود آنها می تواند بررسی را انجام دهد.
dApp های کاربران می توانند خصوصی تر و ایمن تر باشند.
کاربران به راحتی می توانند MyEtherWallet، MetaMask و برخی کیف پول های دیگر را به نود محلی خود نشان و اتصال دهند.
مزایای کلیدی (برای شبکه) اجرای یک فول نود اتریوم:
هرچه مجموعه نودها متنوعتر باشد، شبکه سالمتر، امنتر و از نظر عملیاتی انعطافپذیرتر است.
از آنجایی که تمام لایت نودها به فول نودها متکی هستند، کاربرانی که فول نودها را اجرا می کنند برای کل شبکه ضروری هستند.
استفاده از Node Provider به جای اجرای Geth Node خودتان
با این حال، به خاطر داشته باشید که استفاده از یک ارائه دهنده نود، مانند Moralis، به شما این فرصت را می دهد که نگران اجرای نود خود نباشید و به طور کامل روی فرانت-اند تمرکز کنید. اما قبل از انتخاب از میان ارائه دهندگان نود بلاکچین، باید مطمئن شوید که تحقیقات خود را انجام دهید، زیرا همه گزینه های موجود چنین خط مشی رازداری گسترده ای را تنظیم نمی کنند که مورالیس دارد. Moralis درخواست های شما یا آدرس IP کاربران را ثبت نمی کند. هیچ چیز ذخیره نمی شود. با این اوصاف، هنگام استفاده از Moralis، میدانید که کاربران شما ایمن هستند، که قطعاً باید یکی از اولویتهای شما باشد. علاوه بر این، Moralis از فناوری هایی مانند IPFS پشتیبانی می کند. (این مقاله تبلیغ سایت Moralis نیست وصرفا مقاله از این سایت ترجمه شده است.)
با این حال، اگر دلایل کافی برای اجرای Geth Node خود دارید، مطمئن شوید که تجهیزات و آمادگی های مناسب را در اختیار دارید.
الزامات سخت افزاری Geth Node
شما نباید اجرای نود اتریوم را با ماینینگ اشتباه بگیرید. اینها دو مقوله متفاوت هستند. در میان این دو، اجرای یک نود به قدرت محاسباتی بسیار کمتری نسبت به استخراج نیاز دارد. با این حال، هرچه سخت افزار قدرتمندتر باشد، عملکرد بهتر و زمان همگام سازی سریعتر هنگام اجرای یک نود خواهد بود.
فراموش نکنید که حتی قبل از اینکه نود اتریوم خود را نصب و اجرا کنید، مطمئن شوید که رایانه شما الزامات را برآورده می کند. اینها از نوع کلاینت به نوع کلاینت متفاوت است، اما می توانید دستورالعمل های کلی را در زیر بیابید.
حداقل الزامات:
- 2-core (or more) CPU
- 8 Mbit/s bandwidth
- 4 GB or more RAM for SSD or 8 GB or more for HDD
مشخصات پیشنهادی:
- 16 GB or more RAM
- 25 Mbit/s or faster bandwidth
- Fast CPU with 4 cores or more
- Fast SSD with 500 GB of free storage or more
به عنوان یک کاربر Geth، ممکن است به گزینه همگام سازی سریع علاقه مند باشید. اگر چنین است، باید روی اندازه دیسک با 400 گیگابایت فضای خالی یا بیشتر تمرکز کنید. علاوه بر این، اگر می خواهید یک فول آرشیو نود را اجرا کنید، باید دیسک هایی با 6 ترابایت یا بیشتر را هدف قرار دهید.
Ethereum Mist – رابط Geth
قبل از درک عمیق تر در یادگیری نحوه استفاده از Geth، همچنین باید در مورد اصول اولیه Ethereum Mist بشنوید.
احتمالاً بهترین راه برای توصیف Ethereum Mist این است که آن را به عنوان یک رابط Geth دوستداشتنی معرفی کنیم که در سال 2018 معرفی شد. این یک برنامه افزودنی extension (برنامه) است که کاربران را قادر میسازد از استفاده از گزینه خط فرمان اجتناب کنند و در نتیجه به توسعهدهندگان کمتجربه یک رویکرد بسیار کاربر پسندتر را میدهد.
همانطور که Ethereum Mist در پسزمینه به Geth متصل میشود، به عنوان یک رابط برای کیف پول نیز عمل میکند. این Geth است که تمام کارهای سنگین را انجام می دهد (با بارگیری داده های آن با بلاک چین عمومی همگام می شود) - به عنوان یک نود و یک کیف پول عمل می کند. با این حال، Ethereum Mist است که ارتباط با Geth را پیچیده تر می کند.
استفاده از Ethereum Mist به کاربران امکان میدهد تا نیاز به وارد کردن دستورات پیچیده را با استفاده از خط فرمان سنتی دور بزنند.
Ethereum Mist به صورت عمومی در دسترس است و همه کاربران می توانند آن را به راحتی دانلود کنند.
باید بدانید که بخش بزرگی از کل پروژه "Mist" مرورگر Ethereum Mist بود. قرار بود به عنوان بخشی جدایی ناپذیر از اکوسیستم dApps شبکه اتریوم عمل کند. با این حال، در سال 2019، این پروژه منسوخ شد زیرا سایر ارائه دهندگان راه حل های بهتری ارائه کردند.
این واقعیت که مرورگر Mist منسوخ شده بود نیز تأثیر منفی بر کیف پول و برنامه رابط Ethereum Mist داشت زیرا بهروزرسانی دیگری منتشر نشد. با این اوصاف، اکنون دیگر گزینه های رابط کاربری Geth در دسترس هستند.
نحوه استفاده از Geth
هدف اصلی تمام بخشهای بالا، تجهیز شما به دانش پیشزمینه مورد نیاز برای اجرای موفقیتآمیز آنچه در پاراگرافهای زیر پوشش داده میشود، بود. این استفاده از Geth است که در آن ارزش واقعی نهفته است.
شما واقعاً یاد خواهید گرفت که چگونه از Geth استفاده کنید تنها پس از اینکه تئوری را عملی کنید و در واقع خودتان از این نوع نود اتریوم استفاده کنید.
نصب Geth
شما نمی توانید نحوه استفاده از Geth را بدون نصب آن بر روی رایانه یاد بگیرید. از آنجایی که راه های زیادی برای نصب Geth وجود دارد، این مقاله مراحل نصب دقیق را پوشش نمی دهد. میتوانید Geth را از طریق مدیریت بستههای مختلف، با دانلود یک باینری از پیش ساخته شده مستقل، ساختن خود، یا اجرای آن بهعنوان یک داکر کانتینر docker container، نصب کنید.
برای نصب موفقیتآمیز Geth، باید مراحل نصب مربوط به سیستمعامل رایانهتان (macOS، Windows یا Linux) را دنبال کنید.
برای دریافت دستورالعمل های دقیق نصب، از GitHub استفاده کنید و سپس روشی را انتخاب کنید که برای مورد شما مناسب است.
استفاده از Clef
استفاده از Clef برای یادگیری نحوه استفاده از Geth ضروری نیست. شما می توانید از ابزارهای زیادی برای امضای تراکنش ها با Geth بهره برداری کنید. البته، مدیریت حساب Geth به تنهایی یک گزینه ممکن است. با این حال، از آنجایی که Clef را geth.ethereum.org به عنوان یک ابزار ترجیحی فهرست میکند، این مقاله بر روی آن گزینه تمرکز میکند تا به بهترین شکل برای اکثر توسعهدهندگان مناسب باشد.
مرحله 1: Clef را راه اندازی کنید
برای استفاده از Geth با Clef، ابتدا باید Clef (فرمان: clef init) را با استفاده از یک مستر seed تصادفی مقداردهی اولیه کنید. با رمز عبور 10 کاراکتری (یا بیشتر) که شما تعریف می کنید رمزگذاری می شود.
مرحله دوم: ایجاد حساب
قدم بعدی در لیست کارهای شما ایجاد دو حساب با استفاده از دستور "clef newaccount" است. سپس باید یک رمز عبور برای هر یک از دو حساب تنظیم کنید. فراموش نکنید که آدرس عمومی هر حساب را یادداشت کنید.
توجه: Clef یک پیام اشکالزدایی مربوط به «Failed to reload keystore contents» را برمیگرداند. مراحل بعدی شما این مشکل را برطرف میکند.
قبل از شروع Geth
برای استفاده از Geth باید آن را به یک شبکه متصل کنید. این کار را با وارد کردن نام شبکه به عنوان آرگومان انجام میدهید. چندین شبکه در دسترس شما هستند. اینها شامل یک شبکه خصوصی است که می توانید ایجاد کنید، شبکه اصلی اتریوم و سه شبکه آزمایشی (Ropsten، Rinkeby و Görli).
مطابق با انواع نودها، همگام سازی Geth سه گزینه (حالت های همگام سازی) را ارائه می دهد. اینها عبارتند از حالت کامل، حالت سریع و حالت سبک. انتخاب نوع حالت همگامسازی که با ترجیحات شما مطابقت دارد بسیار مهم است زیرا نوع نود را تعیین میکند.
توجه: دستورات و مقادیر دقیقی که باید وارد کنید بر اساس انتخاب شبکه متفاوت است. به این ترتیب، مقاله بر دستورالعمل های کلی تمرکز دارد.
مراحل استفاده از Geth
- اول - Start Clef : برای پیش رفتن، باید Clef را راه اندازی کنید و keystore و شناسه زنجیره را برای شبکه ای که انتخاب کرده اید تنظیم کنید.
- دوم - Start Geth : باید یک خط فرمان را وارد کنید که شامل نام شبکه است، Clef را به عنوان امضاکننده تراکنش تنظیم کنید (اگر این گزینه ای است که شما انتخاب کرده اید) و حالت همگام سازی را فعال کنید. در این مرحله همچنین ممکن است شامل دستوری باشد که رابط Geth RPC را فعال می کند.
- سوم - Get ETH : بسته به نوع شبکه ای که انتخاب کرده اید، باید از ETH واقعی یا آزمایش اتریوم برای اجرای تراکنش ها استفاده کنید. در مورد شبکه های آزمایشی، می توانید از یک faucet برای ارسال ETH استفاده کنید.
- چهارم - اتصال به Geth با RPC یا IPC : دو روش برای تعامل با Geth وجود دارد - یا از طریق کنسول جاوا اسکریپت از طریق IPC یا با اتصال به نود از راه دور از طریق HTTP. دومی با استفاده از RPC انجام می شود. هر روشی مزایا و معایب خود را دارد. به عنوان مثال، IPC به شما پیشنهاد می کند کارهای بیشتری انجام دهید، به خصوص از دیدگاه ایجاد/تعامل با حساب، اما به دسترسی مستقیم محدود می شود. از سوی دیگر، RPC دسترسی از راه دور را ارائه می دهد اما با محدودیت ها و محدودیت های امنیتی متعددی همراه است.
بسته به روش IPC یا RCP، باید از دستورات مختلفی برای اقدامات استاندارد استفاده کنید، مانند:
- Connecting to console/RPC
- Checking account balance
- Sending ETH to account
برای یافتن دستورالعملهای دقیق برای تنظیم دقیق و انتخاب شبکه، نوع نود و موارد دیگر، باید از وبسایت سازمان رسمی Go Ethereum دیدن کنید.
منبع : moralis
مطلبی دیگر از این انتشارات
نهنگ بیت کوین کیست؟
مطلبی دیگر از این انتشارات
بررسی توابع IIFE ( Immediately Invoked Function Expressions) در جاوااسکریپت
مطلبی دیگر از این انتشارات
چگونه کد عضویت در StepN پیدا کنیم؟