ابزارهای مشترک توسعه اتریوم – جلسه بیست و دوم (+ویدئو)

0 552

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

احتمال دارد شما با یک تیم از توسعه دهندگان و طراحان کار کنید. در همکاری با آنها ساختار برنامه را هم در front end  و هم در back end مشخص خواهید کرد. توسعه دهندگان تصمیم می­‌گیرند که چگونه مشکلات را به بهترین نحو حل کنند. اینکه آیا از یک بلاکچین موجود استفاده کنند یا یک بلاکچین جدید ایجاد کنند. اگر فرض کنیم بخواهند از بلاکچین اتریوم استفاده کنند، در ابتدا با برنامه­‌ریزی شروع کرده و سپس تمام عناصر سیستم را خواهند ساخت. از جمله این موارد، قراردادهای هوشمند هستند. در این خصوص، طراحان سیستم به احتمال زیاد از بلاکچین خصوصی که به صورت محلی روی کامپیوترشان نصب شده است استفاده خواهند کرد. بسیاری از ابزارها برای کمک به این امر، روی زیست­‌بوم اتریوم در دسترس هستند. توسعه دهندگان از گستره فناوری­‌ها، فریم­‌ورک­‌ها (چارچوب­‌ها) و زبان­‌ها برای توسعه دادن کل app غیرمتمرکز استفاده خواهند کرد. بعضی از ابزارهای مشترک توسعه که مخصوص اتریوم بوده و در حال حاضر ممکن است از آنها استفاده کنند عبارتند از: Metamask ،  Remix و Truffle.

 

قابلیت‌­های فریمورک Truffle در بلاکچین

قراردادهای هوشمند ، خودشان اغلب در قالب یک زبان به نام Solidity برنامه­‌نویسی شده‌­اند. Truffle، یک فریم­ورک برای توسعه است که هدف آن توسعه قراردادهای هوشمند در Swiss Army Knife می‌باشد. Truffle، کدنویسی و تلفیق قراردهای هوشمند را مدیریت کرده همچنین شامل ابزارهایی برای استقرار (Deployment) و آزمایش است و به شما امکان دسترسی به صدها بسته را برای گسترش قابلیت­‌هایش می‌­دهد. فریم‌­ورک Truffle همچنین با ابزار Ganache تشکیل گروه داده است که به منظور استقرار بلاکچین موضعی برای تست توسعه‌­ای مورد استفاده قرار می­‌گیرد. فریم‌­ورک Truffle با Drizzle نیز تشکیل گروه داده است که به توسعه دهندگان در ساخت front ends برای  dAapp ها کمک می‌­کند.

 

محیط برنامه‌نویسی Remix و Solidity

Remix یک محیط برنامه‌نویسی (IDE: Integrated Development Environment) آنلاین Solidity است. یک سیستم مبتنی بر وب است که به توسعه دهندگان برای ایجاد و تست قراردادهای هوشمندی که با Solidity ساخته شده­‌اند، کمک می‌کند. IDE، یک اپلیکیشن (برنامه کاربردی) است که به برنامه‌نویسان اجازه می‌­دهد بیشتر کارهای خود را در یک مکان انجام دهند.

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

 

روش تست کردن یک قرارداد هوشمند

سرانجام، توسعه‌­دهندگان با تلفیقی از ابزارها، مانند آنهایی که ذکر شدند و سایر ابزارها، از روی یکی از شبکه‌­های خصوصی به روی یکی از شبکه‌­های تست منتقل خواهند شد. شبکه­‌های تست صرفا برای ارائه یک محیط واقع­‌گرایانه ساخته شده‌­اند. از آنجا که اتر (Ether) روی شبکه‌های تست (Test Nets) به طور رایگان عرضه می­‌شود لذا هر dApp قرارداد هوشمند، پس از نوشته شدن، ابتدا بر روی این شبکه‌­ها تست می‌­شود تا منجر به از دست رفتن ارز واقعی نگردد. این شبکه‌ها از شبکه اصلی اتریوم کوچکتر هستند اما قادر هستند به طور کامل پیاده­‌سازی بلاکچین در حال کار را انجام بدهند. از طریق تکرار در شبکه‌های تست، می­‌توان اشکالات کد را اصلاح کرد و نسخه نهایی  dAppکه آماده عرضه به بازار باشد را به دست‌آورد.

سپس نوبت به شبکه اصلی (Main Net) می­‌رسد. شبکه اصلی، جایی است که در آن واقعیت اتفاق می‌­افتد. قراردادها برای همیشه مستقر شده‌اند و ارزش در اینجا واقعی است. هرگونه نقص در سیستم می‌­تواند توسط مشترکین شبکه مورد چالش و سوء استفاده قرار گیرد و اگر مشکلی در سیستم وجود داشته باشد منجر به تبعات پرداخت هزینه ارز واقعی خواهد شد!

درحال حاضر بعضی از روش‌های توسعه‌­ای وجود دارد که با استفاده از آنها می‌­توانید در صورت مشاهده خطا، نحوه کار قراردادتان را تغییر دهید اما این روش‌­ها هرگز نمی­‌توانند یک قرارداد موجود را ویرایش کنند. در عوض شامل kill switches و redirectors و چیزهایی هستند که به توسعه‌دهندگان اجازه می‌دهند منطق برنامه را با افزودن قراردادهای هوشمند جدید تغییر دهند. در حالیکه این اتفاق ها در حال رخ دادن است، طراحان و توسعه‌­دهندگان front-end ، در حال ساختن بخش‌هایی از dApp هستند که کاربر با آنها تعامل دارد.

در هم آمیختن HTML, CSS, JavaScript و سایر فناوری­‌ها در سراسر پشته مانند IPFS نیز یکی از روش­‌ها است.  این front end با back ends ادغام می‌­شود تا تجربه کامل کاربر را شکل دهد. و این اساسا نحوه توسعه یافتن یک dApp است.

سرانجام، با مثال ساده فوق که روشن کرد چگونه یک پروژه ساده توسعه می­‌یابد، این بخش را به پایان می­‌رسانیم.

با آنچه تاکنون آموخته­‌اید، می‌خواهیم برخی مطالعات موردی (Case Studies) در خصوص پروژه‌های توسعه یافته بر روی بلاکچین اتریوم را به شما نشان دهیم و به شما فرصت دهیم تا آن چیزهایی را که آموخته­‌اید بر روی این موارد پیاده کنید. وقتی بخش بعدی را شروع کردید سعی کنید این سوال را در ذهن داشته باشید: «چه ویژگی­‌هایی از این پروژه­‌ها برای بلاکچین کسب و کار ما مناسب است؟»

ممکن است شما دوست داشته باشید

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.