بلاک چین اتریوم
آموزش بلاک چین اخبار ارز دیجیتال

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

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

اصطلاحات زیادی نظیر کیف پول ها و مرورگرهای غیرمتمرکز، ترافل (Truffle)، گاناش (Ganache)، اینفورا (Infura)، پریتی (Parity) و گث (Geth) وجود دارند که می‌توانند سردرگم کننده و مانعی در مسیر یادگیری بلاک چین باشند.

این راهنما فهرستی از بهترین ابزارهای توسعه موجود برای ایجاد برنامه های غیرمتمرکز و تعامل با بلاک چین اتریوم را ارائه می دهد.

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

زبان برنامه نویسی سالیدیتی (Solidity)

بلاک چین اتریوم

سالیدیتی (Solidity) محبوب ترین زبان برنامه نویسی برای نوشتن قراردادهای هوشمند بر بستر بلاک چین اتریوم می‌باشد. سالیدیتی یکی از زبان های برنامه نویسی سطح بالا می‌باشد و هنگامی که کامپایل می‌شود، به بایت کدهای EVM (ماشین مجازی اتریوم) تبدیل می‌شوند. سالیدیتی شباهت بسیار زیادی با اکوسیستم جاوا دارد که در آن، زبان هایی نظیر Scala، Groovy، Clojure، JRuby وجود دارد که در مجموع همه آنها کد byte را تولید می‌کنند که در JVM (ماشین مجازی جاوا) اجرا می‌شوند.

دیگر مقالات مرتبط با سالیدیتی (Solidity)

زبان برنامه نویسی سالیدیتی (Solidity) چیست

کاربرد Modifierها در Solidity

راهنمای جامع پیاده سازی قراردادهای هوشمند با اتریوم

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

کامپایلر سالیدیتی Solc

کد سالیدیتی ممکن است شبیه جاوا اسکریپت به نظر برسد اما شما هنوز باید آن را کامپایل کنید. Solc مترجم کدها از زبان قراردادهای هوشمند سالیدیتی به بایت کد اتریوم است و حتی می‌تواند در خط فرمان و برای وظایف سریع و تایید آنی توسعه ها اجرا شود.

ریمیکس، IDE تحت مرورگر

ریمیکس برای دیباگینیگ (اشکال زدایی) بسیار مناسب است و به شما این امکان را می‌دهد تا قرارداد را مستقیما وارد مرورگر کنید که بسیار مفید است. شما باید از ریمیکس استفاده کنید تا زمانی که dApp خود را بدون باگ و اشکالات کامپایل کنید سه گزینه برای تعامل ریمیکس با بلاک چین ها از طریق مرورگر وجود دارد که عبارتند از:

  • استفاده از ماشین مجازی جاوا اسکریپت (JVM)
  • وجود افزونه web3 (برای مثال افزونه متامسک برای مرورگر کروم)
  • اتصال به ارائه‌ دهنده web3 (مانند اینفورا)

ماشین مجازی جاوا اسکریپت (JVM) راهی برای شروع است. JVM محدودیت گس ندارد، به شما مقدار نامحدودی از اتر برای ۵ حساب ارائه می‌دهد و خیلی سریعتر به اشکال زدایی می رسد.

بلاک چین اتریوم

مرورگر غیرمتمرکز میست (Mist)

میست (Mist) مرورگری برای برنامه های غیرمتمرکز است. این مرورگر همانند کروم و فایرفاکس می‌باشد اما برای برنامه های غیرمتمرکز است. میست هنوز از امنیت کاملی برخوردار نیست، بنابراین نباید با برنامه های غیرمتمرکز غیر مطمئن استفاده شود.

کیف پول Ethereum

بلاک چین اتریوم

این یک نسخه از میست (Mist) است اما فقط برنامه غیرمتمرکز اتریوم والت را اجرا می‌کند. میست و اتریوم والت فقط رابط کاربری می‌باشند، بنابراین هم چنان به هسته ای نیاز داریم تا ما را به بلاک چین اتریوم متصل کند. شما می توانید از میست برای ایجاد کیف پول، ذخیره سازی اتر، ارسال تراکنش ها، اجرای قراردادها و امور دیگر استفاده کنید.

متامسک (پلاگین مرورگر)

بلاک چین اتریوم

اگر در حال ساخت یک برنامه غیرمتمرکز هستید که کاربران از آن استفاده کنند، پس پشتیبانی از متامسک (MetaMask) یکی از نکاتی است که لازم می شود. می‌توانید متامسک را به عنوان پلی در نظر بگیرید که به شما امکان می‌دهد تا در مرورگر خود و با استفاده از این افزونه و بدون اجرای نود کامل اتریوم به مشاهده اینترنت توزیع شده بپردازید.

بلاک چین اتریوم

متامسک برای کروم، فایرفاکس، اپرا و بریو قابل نصب و اجراست و به کاربران امکان می‌دهد تا به طور ایمن به مدیریت حساب های اتریوم و کلیدهای خصوصی بپردازند و از این حساب ها برای تعامل با وبسایت هایی استفاده کنند که از web3.js استفاده کنند.

پس از نصب متامسک، مرورگر می‌تواند با تمام وبسایت هایی که با بلاک چین اتریوم ارتباط برقرار می‌کنند، تعامل داشته باشد.
نکته: متامسک از سرورهای اینفورا به عنوان ارائه دهنده Web3 استفاده می‌کند اما کاربران می‌توانند ارائه دهنده مورد نظر خود را انتخاب کنند.

رابط کاربری web3.js

بلاک چین اتریوم

رابط کاربری web3.js چیست؟

Web3.js یک رابط کاربری است که شما برای ارتباط با Blockchain استفاده می کنید. این یک کتابخانه جاوا اسکریپت است که می تواند برای ارتباط با یک گره Ethereum از DApp مبتنی بر وب مورد استفاده قرار گیرد. به یاد داشته باشید هر گره در شبکه شامل یک نسخه از blockchain است. وقتی میخواهید یک تابع را روی یک قرارداد هوشمند فراخوانی کنید، باید یکی از این گرهها را پرس و جو کنید و آدرس قرارداد هوشمند و عملکردی را که میخواهید تماس بگیرید، به آن بگویید.

نودهای اتریوم با زبانی به اسم JSON-RPC صحبت می‌کنند که قابل خوانش توسط انسان نیست. خوشبختانه Web3.js این مشکل را پنهان می‌کند و رابط کاربری جاوا اسکریپت آشناتری شبیه زیر ارائه می‌دهد.

MyTeam.methods.createRandomPerson(“Vitalik Nakamoto”).send({ from: “0xb60e8dd61c5d32be8058bb8eb970870f07233155”, gas: “3000000” })

ابتدا با جاواسکرپیت حاوی Web3 در پروژه شروع می‌کنیم:
می‌توانید Web3 را به پروژه اضافه کنید. یا می‌توانید فایل js. را از گیت هاب دانلود کنید و در پروژه خود قرار دهید.

<script language=”javascript” type=”text/javascript” src=”web3.min.js”></script>

سپس می‌توان با استفاده از ارائه دهنده Web3 با بلاک چین صحبت کنید:

تنظیم ارائه دهنده Web3 در web3.js به کد ما می‌گوید که با کدام نود باید صحبت کنیم تا خواندن و نوشتن را مدیریت کنیم. این امر تا حدودی مشابه با تنظیم URL سرور ریموت وب برای فراخوانی API در برنامه های اینترنتی سنتی است.

شما می‌توانید نود اتریوم خود را به عنوان ارائه دهنده میزبانی کنید. هرچند سرویس شخص ثالثی وجود دارد که زندگی شما را آسانتر می‌کند، از اینرو به حفظ نود اتریوم خود یا همان اینفورا نیازی ندارید.

اینفورا (زیرساخت به عنوان سرویس یا IaaS)

بلاک چین اتریوم

اینفورا یک محصول IaaS است که به توسعه دهندگان، مجموعه ابزاری برای اتصال برنامه ها به شبکه اتریوم و سایر پلتفرم های غیرمتمرکز ارائه می‌دهد. متامسک، کریپتوکیتی ها، UJO و uPort از API های اینفورا برای اتصال برنامه های خود به شبکه اتریوم استفاده می‌کنند. اینفورا زیرساخت مورد نیاز برای مدیریت صعودهای کوتاه مدت و راهکارهای مقیاس پذیری بلندمدت ارائه می‌دهد. اینفورا شامل API با استفاده آسان و ابزارهای توسعه دهندگان برای دسترسی ایمن، قابل اعتماد و مقیاس پذیر به اتریوم و IPFS می‌شود.

هم چنین می‌توانید برای استفاده از اینفورا به عنوان ارائه دهنده Web3 به صورت زیر عمل کنید:

var web3 = new Web3(new Web3.providers.WebsocketProvider("wss://mainnet.infura.io/ws"));

گث (Geth)؛ زبان برنامه نویسی گو – اتریوم

بلاک چین اتریوم

گث (Geth) کلاینت رسمی ارائه شده توسط بنیاد اتریوم است و با زبان برنامه نویسی گو (Go) نوشته شده است و کاربرد اصلی آن نیز متصل کردن شما به بلاک چین می‌باشد. گث هم چنین می‌تواند بلاک چین آزمایشی یا داخلی جدید ایجاد و قرارداد ایجاد کند، اتر استخراج کند و امور دیگری نیز انجام دهد. گث، کلاینت خط فرمان اصلی اتریوم است.

گث نقطه شروع ورود به اتریوم می‌باشد و قابلیت اجرا به عنوان نود کامل (به طور پیش فرض) نود بایگانی (ذخیره تمام وضعیت های گذشته) و نود سبک (دریافت زنده اطلاعات) را دارد.

سایر فرآیندها از گث می‌توانند به عنوان درگاهی به شبکه اتریوم از طریق اندپوینت های JSON RPC بر بستر HTTP، وب سوکت و یا انتقال دهنده های IPC استفاده کنند. گث علاوه بر آنکه تمام قابلیت های میست را دارد، هم چنین دارای عملکردهای مهمی نظیر اندپوینت RPC برای اتصال به بلاک چین بر بستر HTTP می‌باشد. گث دارای ۳ بخش اصلی است که شناخت آنها از اهمیت بیشتری برخوردار است.

۱- کلاینت دائمون (Daemon): این کلاینت به سایر کلاینت های شبکه (نودها) متصل می‌شود و نسخه ای از بلاک چین را دانلود می‌کند. دائمون همواره با سایر نودها در ارتباط است تا نسخه بلاک چین خود را به روز نگه دارد. هم چنین قابلیت استخراج بلاک ها و افزودن تراکنش ها به بلاک چین را دارد، تراکنش های موجود در بلاک را تایید می‌کند و هم چنین تراکنش ها را اجرا می‌کند.

۲- کنسول گث: کنسول گث یک ابزار خط فرمان است که به شما امکان می‌دهد تا به نود در حال اجرای خود متصل شوید و اقدامات مختلفی نظیر ایجاد و مدیریت حساب ها، درخواست از بلاک چین، امضا و ثبت تراکنش ها در بلاک چین و غیره انجام دهید.

۳- مرورگر میست: همانطور که توضیح داده شد، میست یک برنامه رایانه ای است و برای ارتباط با نود شما استفاده می‌شود. تمام اقداماتی که با استفاده از کنسول گث انجام می‌دهید را می‌توانید از طریق رابط کاربری گرافیکی (GUI) میست به دست آورید.

چارچوب ترافل (Truffle)

بلاک چین اتریوم

درست همانند چارچوبی که برای توسعه برنامه های تحت وب دارید، ترافل نیز محبوب ترین چارچوب مورد استفاده برای توسعه برنامه های غیرمتمرکز است. ترافل بسیاری از پیچیدگی های کامپایل کردن و اجرای قرارداد در بلاک چین را ساده می‌کند.

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

ویژگی هایی که ترافل ارائه می‌دهد عبارتند از:

  • مجموعه ای از قراردادهای هوشمند، اتصال و اجرای آنها.
  • آزمایش خودکار قراردادها برای توسعه سریعتر آنها.
  • چارچوب اجرای توسعه پذیر.
  • اجرای نامحدود شبکه های خصوصی و عمومی.
  • بسته مدیریتی با EthPM و NPM.
  • کنسول تعاملی برای ارتباط مستقیم قراردادها.
  • کانال ارتباطی قابل تنظیم.

هم چنین ترافل دارای بلاک‌ چین شخصی می‌باشد که برای آزمایش می‌توان از آن استفاده کرد.

این بلاک چین فقط در سیستم‌ شما وجود دارد و با شبکه اصلی اتریوم تعامل برقرار نمی‌کند. می‌توانید با استفاده از فرمان توسعه ترافل، این بلاک‌ چین را ایجاد کنید و با آن تعامل داشته باشید. این امر، بلاک‌ چین توسعه ای در پورت ۹۵۴۵ ایجاد خواهد کرد.

گاناش: بلاک چین آزمایشی شخصی

بلاک چین اتریوم

از آنجایی که نوشتن در بلاک‌ چین با هزینه کردن اتر همراه است، آزمایش قراردادهای هوشمند در بلاک چین آزمایشی که در آن، اترهای آزمایشی هزینه می‌کنید ایده خوبی می‌تواند باشد.

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

بلاک چین اتریوم

گاناش برای سیستم عامل های ویندوز، مک و لینوکس در دسترس می‌باشد. قبلاً به گاناش، TestRPC می‌گفتند اما پس از ترکیب آن با مجموعه ترافل، به گاناش تغییر نام داد.

پریتی (Parity)؛ کلاینت نوشته شده با زبان برنامه نویسی Rust

بلاک چین اتریوم

پریتی (Parity) یکی از کلاینت های اتریوم است که با زبان برنامه نویسی سطح پایین راست (Rust) نوشته شده است.

پریتی یک کلاینت غیررسمی است و متعلق به شرکت پریتی است. این شرکت توسط دکتر گاوین وود، مدیر ارشد فنی سابق اتریوم تاسیس شده است. این کلاینت، روشی سریع و سبک برای اجرای نودهای اتریوم است. پریتی یک ارتقای چشمگیر از گث می‌باشد و کاملا از اول نوشته شده است و تاکید اصلی آن بر کارایی و راندمان می‌باشد. تمام  واحد‌های منطقی مهم آن ۱۰۰ درصد آزمایش شده اند، تمام API های عمومی ثبت شده اند و تمام کدهای آن توسط چندین نود مورد بررسی قرار گرفته اند.

زپلین (Zeppelin)؛ متن باز برای نوشتن قراردادهای هوشمند ایمن

بلاک چین اتریوم

اگر قرارداد هوشمندی می‌نویسید که با پول سایر کاربران سروکار دارد، باید مطمئن شوید که این قرارداد هوشمند کاملا ایمن است. زپلین (Zeppelin) کتابخانه ای برای نوشتن قراردادهای هوشمند است. اگر با ترافل کار کرده باشید که زپلین برای شما بسیار آسان تر خواهد بود.

فایل سیستم بین سیاره ای یا IPFS

فایل سیستم بین سیاره ای یا IPFS یک سیستم ذخیره سازی غیرمتمرکز است. این سیستم ارتباط مستقیم با اتریوم ندارد اما می‌تواند با اتریوم ترکیب شود. می‌توانید شباهت ها و تفاوت های IPFS و سوارم (Swarm) را در آدرس زیر مطالعه کنید:

github.com

بلاک چین اتریوم

به طور خلاصه می‌توان گفت که IPFS از لحاظ بلوغ کدی، مقیاس پذیری، پذیرش، وجود جامعه های مختلف و تعامل با جامعه های توسعه دهندگان بسیار پیشرفته تر است.

Short link : https://arzmonitor.com/?p=5106

پاسخی بگذارید

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