اگر توسعه دهنده تازه واردی در اتریوم یا بلاکچین هستید، احتمالا تلاش کردهاید که تمام ابزارها و فناوری های موجود در اکوسیستم اتریوم را یاد بگیرید. به همین خاطر تصمیم گرفتهایم در این مقاله به طور مختصر به توضیح محتواهای مختلفی که در مسیر یادگیری سر راه شما قرار میگیرند بپردازیم. امیدواریم این مقاله، دید بزرگتری از اکوسیستم اتریوم و نحوه کنار هم قرار گرفتن اجزای آن به شما بدهد.
۱- اتریوم
اتریوم یک بلاک چین قرارداد هوشمند است که میتوانید بر بستر آن، برنامه های غیرمتمرکز ایجاد کنید (که به آنها قراردادهای هوشمند میگویند). اگر در زمینه فناوری فعالیت میکنید، وایت پیپر اتریوم با آدرس https://github.com/ethereum/wiki/wiki/White-Paper ارزش مطالعه دارد.
اگر قبلا برنامههای تحت وب ایجاد کردهاید، میتوانید از مطالب مقایسه بلاک چین اتریوم با معماری برنامه های تحت وب استفاده کنید تا اتریوم را در سطح بالاتری بیاموزید.
۲- گث Geth
گث نرم افزار کلاینت رسمی ارائه شده توسط بنیاد اتریوم است. این نرم افزار با زبان برنامه نویسی گو (Go) نوشته شده است. این نرم افزار شامل مجموعه ای از محتواهای مختلف است که دانستن آنها مفید است. این محتواها عبارتند از:
کلاینت دائمون (Client Daemon)
هنگامی که این کلاینت را اجرا میکنید، به سایر کلاینت های داخل شبکه (که به آنها نود نیز میگویند) متصل میشوید و نسخهای از بلاک چین را دانلود میکنید. این کلاینت دائما با سایر نودها در ارتباط است تا نسخه بلاک چین خود را به روز نگه دارد. هم چنین قابلیت استخراج بلاکها و افزودن تراکنشها به بلاک چین، تایید تراکنش موجود در بلاک و هم چنین اجرای تراکنشها را دارد. هم چنین با در دسترس قرار دادن API هایی که میخواهید از طریق RPC با آنها تعامل داشته باشید، به عنوان سرور نیز عمل میکنند.
کنسول گث
این مورد یک ابزار خط فرمان است که اتصال به نود فعال و اجرای عملیات مختلف نظیر ایجاد و مدیریت حسابها، جستجو و بررسی بلاک چین، امضا و تایید تراکنشها و سایر امور را امکان پذیر میسازد.
مرورگر میست (Mist)
مرورگر میست یک برنامه رایانهای است که برای ارتباط با نودهای خود میتوانید از آن استفاده کنید. تمام کارهایی که با کنسول گث میتوانید انجام دهید، در مرورگر میست نیز با رابط کاربری گرافیکی قابل دستیابی و انجام است.
۳- پریتی Parity
پریتی یکی دیگر از پیاده سازی های خوب پروتکل اتریوم است و با زبان برنامه نویسی راست (Rust) نوشته شده است. پریتی یک کلاینت غیر رسمی است و توسط شرکت پریتی اداره میشود. هرکسی میتواند یک نرم افزار کلاینت پیاده سازی کند و به شبکه اتریوم بپیوندد.
۴- کتابخانه جاوااسکریپت Web3.js
درست همانند اینکه برای ارتباط با نودهای اتریوم، ابزارهایی مانند گث، مرورگر میست و غیره را در اختیار دارید، کتابخانه جاوااسکریپتی نیز به نام Web3.js وجود دارد که برای تعامل با نودها میتوان از آن استفاده کرد. از آنجایی که Web3.js یک کتابخانه جاوااسکریپت است، میتوان از آن برای ایجاد برنامههای غیرمتمرکز مبتنی بر وب استفاده کرد.
۵- سالیدیتی (Solidity)
سالیدیتی محبوب ترین زبان برنامه نویسی مورد استفاده برای نوشتن قراردادهای هوشمند و اجرای آنها بر بستر بلاک چین اتریوم است. سالیدیتی یک زبان برنامه نویسی سطح بالا است که پس از کامپایل شدن، به کد بایتی EVM (ماشین مجازی اتریوم) تبدیل میشود. این زبان برنامه نویسی بسیار مشابه با دنیای جاوا است که شامل زبان های برنامه نویسی JVM نظیر اسکالا، گرووی، کلوژر، جی روبی و غیره است. تمام این زبانهای برنامه نویسی به طور کل، کد بایتی تولید میکنند که در JVM (ماشین مجازی جاوا) اجرا میشود. تا زمانی مطابق با مشخصات فنی موجود پیش روید و زبان برنامه نویسی شما به کد بایت معتبر EVM کامپایل شود، میتوانید یک زبان برنامه نویسی ایجاد کنید.
هم چنین IDE تحت مرورگر بسیار خوبی وجود دارد که میتوانید با استفاده از آن و در آدرس زیر، قراردادها را بنویسید و بلاک چین را کامپایل و اجرا کنید.
۶- ترافل (Truffle) /امبارک (Embark)
درست همانند اینکه چارچوبهایی برای توسعه برنامه های تحت وب نظیر روبی، پایتون/جانگو و غیر وجود دارد، ترافل و امبارک نیز محبوبترین چارچوبهای مورد استفاده در توسعه برنامههای غیرمتمرکز است. این دو چارچوب، بسیاری از پیچیدگیهای کامپایل کردن و اجرای قراردادها بر بستر بلاک چین را از بین میبرند.
۷- متامسک (Metamask)
اگر بیش از یک هفته در جامعه اتریوم حضور داشته باشید، با متامسک مواجه شده اید. متامسک یکی از پلاگینهای کروم است که برای تعامل با نودهای اتریوم مورد استفاده قرار میگیرد. این موضوع برای تمام افراد غیرواقعی جلوه میکند که نودی برای تعامل با بلاک چین اجرا کنند. بنابراین افراد حاضر در متامسک میزبان چندین نود هستند تا دیگر شما مجبور به این کار نباشید. تنها کاری که باید انجام دهید این است که متامسک را نصب کنید و به طور خودکار به نودهای مورد نظر خود متصل شوید.
۸- سیستم نامگذاری اتریوم یا ENS
سیستم نامگذاری اتریوم یک DNS برای دنیای اتریوم است. همانند اختصاص دادن آدرس IP به اسم قابل خوانش انسانی، میتوانید هر آدرس کیف پول یا قرارداد اتریوم را به اسم قابل خوانش انسانی اختصاص دهید.
برای مثال آدرس http://146.115.22.177 متعلق به سایت google.com است. به جای تایپ کردن آدرس IP در مرورگر، Google.com را تایپ میکنید که جانشین آدرس IP مورد نظر است.
مثال دیگر 0x80C013d980aB049471c88E1603b8b4a60E03295C است که آدرس کیف پول است. اگر بخواهید به این آدرس اتر ارسال کنید، لازم نیست این آدرس را حفظ کنید. پس از عرضه ENS، میتوان این آدرس را در mvmurthy.eth ذخیره و از آن برای ارسال راحتتر استفاده کرد.
۹- سوارم (Swarm)
بلاک چین برای ذخیره اطلاعات کم مناسب است. اما اگر بخواهید سابقه بیمار، سابقه فروش یا فایلهای بزرگی که به طور عمومی دارای سابقه زمانی هستند را ذخیره کنید چه میشود؟ ذخیره سازی چنین اطلاعاتی در بلاک چین گران است و مقیاس پذیر نیست. سوارم برای حل کردن این مشکل مورد استفاده قرار میگیرد. سوارم یک سیستم ذخیره سازی غیرمتمرکز و سرویس توزیع اطلاعات است. میتوانید سوارم را به عنوان CDN در نظر بگیرید اما به جای آنکه کل CDN بر روی سرور یک شرکت میزبانی شود، بر روی رایانه های سراسر اینترنت توزیع میشود. همانند آنکه نود اتریوم را اجرا کنید میتوانید نود سوارم را برای اتصال به شبکه سوارم اجرا کنید.
هنگامی که قرارداد اتریوم را بر بستر بلاک چین اجرا میکنید، آدرس اجرا شده و رابط کاربری ABI دریافت میکنید. اگر میخواهید افراد دیگری از قرارداد شما استفاده کنند، باید آدرس اجرا شده و ABI را به آنها بدهید. در آینده، ABI در سوارم ذخیره خواهد شد تا کاربران فقط با بررسی آدرس اتریوم به ABI برسند.
۱۰- فایل سیستم بین سیاره ای یا IPFS
فایل سیستم بین سیاره ای یا IPFS از نظر مفهومی دقیقا مشابه با سوارم است و سیستم ذخیره سازی غیر متمرکز است. IPFS به طور مستقیم به اتریوم مرتبط نیست اما میتواند وارد اتریوم شود.
میتوانید تفاوت های بین سوارم و IPFS را در این لینک مطالعه کنید: https://github.com/ethersphere/go-ethereum/wiki/IPFS-&-SWARM
۱۱- ویسپر (Whisper)
اطلاعات زیادی از ویسپر نشنیدهاید اما جالب است بدانید این فناوری فناوری جالبی در اکوسیستم اتریوم است. ویسپر یک پروتکل ارتباطی برای برنامههای غیر متمرکز است تا با یکدیگر تعامل داشته باشند. میتوانید در لینک زیر جزییات بیشتری از ویسپر مطالعه کنید.
و در آخر تمام قسمتهای اکوسیستم اتریوم را در یک عکس نشان میدهیم:
آخرین به روز رسانی: ۱۳۹۹/۲/۳۱