۱۰ ابزار برتر در زمینه برنامهنویسی زنجیره بلوکی
بیشتر انرژی و اشتیاق دنیای زنجیره بلوکی صرف رمزارزها میشود. اغلب سازمانها هم بیسرو صدا از این تحولات بهره برداری میکنند. بعضی از این شرکتها تمایل دارند از رمزارزها به جای واحدهای پولی رایج مانند دلار و یورو در مبادلات خود استفاده کرده و از مزایای آن بهرهمند شوند. برخی دیگر به قدرت فراهم شده توسط رمزنگاری پیشرفته زنجیره بلوکی علاقمندند. آنها میخواهند از ریاضی و علم استفاده کنند تا کارها و فعالیتهای درون سازمانی خود را تقویت کنند. در زمان ساخت اپلیکیشنهای زنجیره بلوکی سازمانی این کتابخانههای ارزشمند کار شما را راحت میکنند. حتی اگر به استفاده از رمزارزها تمایلی نداشته باشید و بخواهید از نقش پایدار قابلیت ردیابی و تایید اعتبار تراکنشها بهرهمند شوید، باز هم باید از رمزنگاری به درستی استفاده کنید. چنین کاری با سفارشیسازی کدهای اصلی قابل انجام نیست و بهتر است که از یک کتابخانه خوشساخت مخصوص این کار استفاده شود
BigChainDB
www.bigchaindb.com
پایگاههای داده و زنجیره بلوکی اطلاعات را ذخیرهسازی میکنند. بعضی از مردم علاقه دارند درباره تفاوت آنها بحث کنند. شرکت سازنده BigChainDB سعی دارد تا با ساخت یک پایگاه داده توزیع شده با ویژگیهای تغییرناپذیر زنجیره بلوکی این مفاهیم را با هم ترکیب کند. این سیستم پاسخگوی زبان کوئرینویسی MongoDB است و یک معماری مجوز پیچیده را برای فراهم کردن انواع مختلفی از رکوردهای تغییرناپذیر ارائه میکند. این ابزار به همراه یک مجوز منبعباز در دسترس است و شما میتوانید از خدمات این شرکت برای مشاوره و پشتیبانی تولید بهره بگیرید.
Bitcoin Core
www.bitcoin.org/en/bitcoin-core
پروتکل بیت کوین به گونهای طراحی شده تا غیرمتمرکز باشد. توسعهدهندگان حرفهای که قصد دارند با بیتکوین کار کنند باید نودهای کامل را اجرا کنند که برای اضافه کردن بلوکهای جدید به زنجیره به طور کامل در فرآیند ایجاد اجماع مشارکت میکنند.
Bitcoin Core نسخه مرجع قطعی این نرمافزار است اما کلونهایی مانند Bcoin هم وجود دارد که یک کتابخانه جاوا اسکریپت برای کاربران
Node.js فراهم میکند که میخواهند در استخراج و تراکنشها مشارکت داشته باشند. یک Bcoin Cash هم برای کسانی که میخواهند با این محل انشعاب کار کنند، وجود دارد. اگر شما فعالانه تراکنشها را تفتیش میکنید، کتابخانه (/BPanel (https://bpanel.org از گروه Bcoin بهعنوان یک BMS یا یک سیستم مدیریت بیتکوین با تمام ویژگیهای استاندارد موجود در یک سیستم مدیریت محتوا مثل وردپرس و دروپال رفتار میکند.
BPanel (https://bpanel.org/)
Coinbase
www.coinbase.com
بسیاری از کسانی که به کار با رمزارزها نیاز دارند نمیخواهند با چالشها و دردسرهای درگیر شدن با تراکنشها مواجه شوند. آنها مایلند تا فرد دیگری این کار را انجام دهد. یکی از بزرگترین و بهترین مبادلات موجود Coinbase است. شرکتی که APIهایی را برای کسانیکه میخواهند تراکنشها را از طریق آنها پردازش کنند، فراهم کرده است. شما میتوانید کتابخانههای Coinbase را برای Ruby, PHP و Node در اختیار داشته باشید. این پلتفرم از چهار پول دیجیتال رایج Bitcoin, Bitcoin Cash, Litecoin و Ethereum پشتیبانی میکند.
Corda
www.corda.net
پروژه منبع باز Corda بخشی از مشارکت در صنعت بانکداری جنبش زنجیره بلوکی است. این یک پول رایج یا جایگزینی برای بانکها نیست، زیرا بانکها قبلا یک لایه پیچیده اعتماد برای پیادهسازی سیستم پرداخت ارائه کردهاند. این بیشتر کتابخانهای برای ساخت دفتر حساب توزیع شده شخصی شما است.
ایدهای متفاوت که اغلب همان کارهای یکسان را انجام میدهد. گروههایی از شرکتها یا مردم میتوانند قراردادهای هوشمند را ایجاد کرده و از این دفتر حسابرسی برای ردگیری مالکیت داراییها استفاده کنند. این کد بیشتر از کنار گذاشتن صنعت مالی بر تشکیلات اقتصادی متمرکز است.
Embark
www.embark.status.im
ساخت یک قرارداد هوشمند یا یک اپلیکیشن توزیع شده برای زنجیره بلوکی Ethereum مقدار مناسبی از هماهنگی را طلب میکند. ابتدا این کد باید کامپایل شده، بعد مورد آزمایش قرار گیرد و در نهایت روی یک شبکه مستقر شود. Embark، از مجموعهای از کتابخانهها و ابزارهای گوناگون تشکیل شده که شامل یک ویرایشگر کد، یک رابط کاربری تحت وب و یک کاوشگر تراکنش به همراه تعدادی پلاگین اضافی است. تمام اینها شبیه یک IDE برای دنیای Ethereum کار میکند.
Ethereum
www.ethereum.org
توسعهدهندگانی که میخواهند قراردادهای هوشمند ایجاد کنند میتوانند از یک زبان قدرتمندتر برای ساخت موافقتنامههای پیچیده در زنجیره بلوکی استفاده کنند. منابع رسمی پیادهسازی این پروژهها که به زبان Go نوشته شده، بسیار پرکاربرد هستند و از طریق وب اجرا میشوند. کسانیکه میخواهند یک نود را در شبکه Ethereum اجرا کنند میتوانند آن را بهصورت کامل یا به عنوان یک کتابخانه ایجاد کنند. Ethereum شامل تعدادی ابزار برای توسعهدهندگان کد است که میخواهند قراردادهای دیجیتال را مانند یک نسخه از ماشین مجازی که آنها را اجرا خواهد کرد، تعریف کنند.
طرفداران زبانهای خاص میتوانند نسخههایی از پشته Ethereum را پیدا کنند که یا به طور مستقیم کد Ethereum را اجرا میکند یا بخشی از ساختار آن را به خدمت میگیرد. برای نمونه، Pyethereum یک کتابخانه مرکزی به همراه رابط خط فرمان است که از آن برای استفاده از پایتون برای تعامل با زنجیره Ethereum استفاده میشود. توسعهدهندگانی که به پایتون علاقه دارند و میخواهند قراردادهای هوشمند اختصاصی خود را بنویسند، میتوانند به سراغ Vyper که یک زبان متمرکز بر امنیت برای توسعه قراردادها است، بروند. کتابخانههای مشابه دیگری برای سایر زبانها وجود دارد که از آن جمله میتوان به Web3.js برای جاوا اسکریپت و Nethereum برای .Net اشاره کرد.
GUN
www.github.com/amark/gun
به سختی میتوان عبارت زنجیره بلوکی را در اسناد GUN پیدا کرد، اما شباهتهای زیادی در آن وجود دارد. در معرفی رسمی آن آمده که GUN یک ابزار کاملا غیرمتمرکز برای همگامسازی دادههای پیرامون یک شبکه است. هیچ کنترلی روی منابع راستیآزمایی و پروتکل اجماع (تفاوت اصلی با زنجیره بلوکی سنتی) وجود ندارد. اما GUN همچنان یک زیربنای قدرتمند برای ساخت اپلیکیشنهای توزیع شده محسوب میشود، زیرا اطلاعات به راحتی و به سرعت از طریق شبکه جریان پیدا میکند و طبق مطالب مندرج در اسناد GUN از دست رفتن اطلاعات مهم تقریبا غیرممکن است.
اگر الگوریتم شما به مذاکره در مورد برخی از قواعد اجماع بر صحت ندارد (چیزی که اغلب در شبکههای اجتماعی و جایی که هر عضو مستقل در نظر گرفته میشود، اتفاق میافتد) یک ابزار مثل GUN میتواند بسیاری از مزایای توزیع شده را که ما در زنجیره بلوکی شاهد آن هستیم، بدون زمان و هزینه اضافی برای هر گونه الگوریتم اثباتی فراهم کند.
Hyperledger
www.hyperledger.org/projects
یکی از بزرگترین پروژههای منبع باز برای ساخت زنجیره بلوکی Hyperledger است که از مجموعه بزرگی از ابزارها و فریمورکها برای حفظ یک زیرساخت گسترده برای همگرا شدن با یک واقعیت مشترک تشکیل شده است. تمام ابزارهای به کار گرفته شده در این مجموعه با هدف پشتیبانی از پیادهسازیهای مستقل درون سازمانی در نظر گرفته شده است. برای نمونه، Grid به منظور تشکیل دادن یک زنجیره بلوکی که جریان اجزا و پرداختها را در شبکههای تامین کننده ردگیری میکند، در نظر گرفته شده است. کتابخانههای موجود در این مجموعه انواع مختلفی از دادهها و فرمتهای مختلف از پیش تعریف شده را ارائه میکنند که میتوان آنها را برای صنایع تولیدی خاص سفارشیسازی کرد. بسیاری از زیر پروژهها مانند Irora و Sawtooth بهصورت ماژولار طراحی شدهاند و به توسعهدهندگان اجازه میدهند تا ترکیبی از کنترل مجوزها و ساخت اجماع را در اختیار داشته باشند.
Quorum
www.github.com/jpmorganchase/quorum
ماهیت عمومی بسیاری از دادهها در زنجیره بلوکی همیشه با یک قابلیت و یک چالش همراه بوده است. Quorum یک زیرمجموعه از Ethereum محسوب میشود و گزینههایی را برای حفظ حریم خصوصی و راهکار موثر برای رسیدن به یک اجماع به شیوهای بهتر فراهم میکند. زنجیرههای بلوکی خاص ساخته شده در داخل شرکتها یا در بین اعضای کنسرسیوم میتوانند از Quorum برای ساخت زنجیرههای بلوکی کوچکتر، سریعتر و سادهتر بدون صرف هزینه و زمان اضافه استفاده کنند.
برای نمونه مدل Raft تصمیمات نهایی را در مورد محتوای زنجیره ایجاد کرده و از نودهایی که اینگونه تصمیمات را میپذیرند، دنبالهروی میکند. سرعت تراکنشها در این روش بسیار بالا است و طی چند میلیثانیه نهایی میشود. مدل Istanbul تحمل خطای بیزانسی (Byzantine Fault Tolerance) را برای شبکههای پیچیدهتر با اعتماد کمتر ارائه میکند.
Quorum یک مکانیسم مبتنی بر مجوز برای ایجاد تراکنشهای خصوصی و پنهان کردن جزئیات از سایر اعضای کنسرسیوم ارائه میکند. نودهای مستقل ساختار درختیهای جداگانه Merkle را برای دادههای عمومی و خصوصی نگهداری میکند و باعث میشود تا آنها مکمل یکدیگر باشند.
Truffle
www.github.com/trufflesuite/truffle
ساخت یک قرارداد هوشمند شخصی با یک IDE برای یک وظیفه بهینهسازی شده به مراتب راحتتر است. Truffle ساختهشده تا امکان تولید، آزمایش و پیادهسازی قراردادهای نوشته شده در Solidity را فراهم کند. Solidity، یکی از معروفترین زبانهای زنجیره بلوکی Ethereum است. Truffle IDE کدها را در حالی که با پکیجهای Ethereum دیگری که با EthPM مدیریت شده، یکپارچهسازی و کامپایل میکند.
آزمایشها در یک محیط کنترل شده با استفاده از یک نسخه خصوصی از زنجیره بلوکی Ethereum به نام Ganache که بهصورت محلی در حال اجرا است، آغاز میشود. این آزمایش با زبان Solidity برای آزمایش رفتار درون دنیای زنجیره بلوکی و با زبان جاوا اسکریپت یا تایپ اسکریپت برای شبیهسازی نحوه تعامل قراردادها با خارج از دنیای زنجیره بلوکی نوشته میشود. پروژه Truffle شامل یک مجموعه از ابزارهای مدیریت داده React/Redux به نام Drizzle است که ساخت اپلیکیشنهای وب را کمی سادهتر میکند.