راهنمای مبتدی برای Tendermint: موتور Blockchain تحمل کننده خطای بیزانس
نعناع فلفلی یک موتور بلاکچین سطح پایین است که تکرار حالت ایمن و سازگار را در بسیاری از ماشین ها فراهم می کند. این یک ابزار ضعیف همزمان (بیشتر ناهمگام) و بیزانس (FF) است که به عنوان اجماع پلاگین و بازی برای حالت های خودسرانه کاربرد و سیستم های توزیع شده استفاده می شود.
در ابتدا به عنوان یک سازوکار اجماع کارآمدتر و ایمن تر برای پروتکل اثبات کار Bitcoin ، Tendermint در طول وجود خود تکامل یافته و اکنون موتور اجماع اساسی شبکه Cosmos است..
پیش زمینه نعناع فلفلی
Tendermint یک پروژه منبع باز است که توسط Jae Kwon در سال 2014 در یک دانشگاه ارائه شده است انتشار که اکنون منسوخ شده است اما اگر وقت داشته باشید یک خوانش جذاب است. این مسئله به تکرار ایمن و سازگار در ماشین های دولتی می پردازد که دستیابی به آنها ذاتاً دشوار است.
در سیستم های بلاکچین ، نیاز به تحمل کنشگران مخرب در ایجاد خطر در گره ها و انتشار پیام های دروغین ، ویژگی مهمی است که به آنها امکان می دهد عملکرد و توافق صادقانه ای در مورد وضعیت شبکه داشته باشند. با این حال ، ابزارهای دستیابی به این اجماع با مدل اثبات بیت کوین ناکارآمد و دارای منابع زیادی هستند. Tendermint مدل جدید BFT را پیشنهاد کرد ، به ویژه همچنین بر اجازه دادن به موتور اجماع اولیه نرم افزار Tendermint برای استفاده در شبکه های مختلف بلاکچین و سازگاری جهانی با سایر زبان های برنامه نویسی.
بخوانید: اجماع ناکاموتو چیست?
در نتیجه ، مفهوم اولیه Tendermint در طول سالها بهینه سازی شده است تا استفاده از آن را به عنوان یک موتور اجماعی بلاکچین با هدف رابط کاربری اختصاصی تسهیل کند. در حال حاضر ، Tendermint موتور زیرساختی شبکه Cosmos است – یک بستر چارچوب چند زنجیره ای – که معمولاً با نام “اینترنت بلاک چین” شناخته می شود.
به طور کلی ، Tendermint از قابلیت های منحصر به فرد و فن آوری جذاب برخوردار است. بنابراین چگونه کار می کند?
چگونه کار می کند?
Tendermint یک موتور بلاکچین هدف کلی است که می تواند میزبان حالت های برنامه دلخواه باشد و در درجه اول از 2 جز major اصلی تشکیل شده است:
- هسته Tendermint – موتور توافق Tendermint BFT
- Application BlockChain Interface (ABCI) – امکان تکثیر BFT برنامه های نوشته شده به هر زبان برنامه نویسی را فراهم می کند
توابع نعناع به عنوان a اثبات سهام پروتکل BFT است. به عنوان یک ابزار پلاگین و بازی طراحی شده است ، استفاده از آن بصری است و هم برای قابلیت همکاری کارآمد ساخته شده است. می تواند به عنوان سازوکار اجماع برای هر شبکه بلاکچین به طور م effectivelyثر اجرا شود. ABCI مکانیسم اجماع را از لایه P2P حالت برنامه جدا می کند و یک رابط تمیز بین منطق برنامه و موتور اجماع را امکان پذیر می کند.
Tendermint از مکانیسم اثبات شرط بندی استفاده می کند ، که به خاطر سپردن آن هنگام خواندن بخش زیر بسیار مهم است. بیایید 2 م componentsلفه اصلی را بررسی کنیم.
هسته نعناع
موتور اجماع اساسی نرم افزار Tendermint به طور کلی ، Tendermint Core تضمین می کند که ماشین های موجود در شبکه توزیع شده ترتیب معاملات را به همان ترتیب ثبت می کنند. از آنجا که Tendermint یک سازوکار اجماع BFT است ، همان فرضیه های دیگر سیستم های BFT را نیز بیان می کند ، به طور خاص اینکه بیش از odes گره های شبکه در هر مورد خاص نمی توانند بیزانس باشند.
به طور مشابه ، از مکانیزم رأی گیری دور مانند سایر مکانیسم های BFT استفاده می کند. برای قرار دادن بهتر این مفهوم ، لیستی از مکانیک های مشابه BFT برای انتخاب گره رهبر در هر دور در زیر است:
- BFT عملی برای انتخاب گره رهبر برای هر دور از فرمت سبک دور گرد استفاده می کند.
- Proof of Elapsed Time از یک تایمر تصادفی در SGX برای فرآیند انتخاب رهبر خود استفاده می کند.
- بیت کوین از اجماع ناکاموتو استفاده می کند ، جایی که اثبات معمای محاسباتی کار در قالب قرعه کشی حل می شود تا رهبر هر دور را تعیین کند (استخراج).
Tendermint از نسخه بهینه شده ای استفاده می کند که برای مقیاس دهی به هزاران تراکنش در ثانیه طراحی شده است و امکان پلاگین و بازی آسان را دارد. ما می توانیم دور را در Tendermint BFT به 3 مرحله تقسیم کنیم:
- پیشنهاد بلوک
- قبل از رای گیری
- قبل از انجام
شرکت کنندگان در این پروتکل اعتبارسنج هستند. اعتبارسنجان بلوک های موجود در شبکه را بر اساس سهم کلی آنها در دور پیشنهاد می دهند و به آنها رأی می دهند. بنابراین ، فرض ⅓ BFT به جای ⅓ از کل گره های شرکت کننده ، بر “وزن” هر یک از اعتبارسنجان – تعیین شده توسط سهام همبسته آنها – پیش بینی شده است..
اعتبارسنج ها یک گره کاملاً مشتری را با کپی بلاکچین حفظ می کنند و از کلیدهای عمومی به عنوان شناسه خود استفاده می کنند. پیشنهاد بلوک مرحله زمانی است که یک اعتبار سنج بلوک جدیدی را در یک دور پیشنهاد می کند.
پیش رأی دادن مرحله جایی است که اعتبارسنجان به بلاک پیشنهادی رأی می دهند و اگر بیش از ⅔ سنجش کنندگان بلاک پیشنهادی را رأی دهند ، به مرحله قبل از تعهد می روند. این به عنوان a شناخته می شود پولکا.
در دور قبل از تعهد ، اگر بیش از the اعتبارسنجان بلوک از قبل رای داده شده را مرتکب شوند ، پس این بلوک به بلاکچین متعهد است. قابل ذکر است ، هر پیش انجام باید توسط یک پولکا در همان دور توجیه شود.
اعتبار سنجی هایی که بلوک های ناموفق را پیشنهاد می دهند یا بلوک های نامناسبی را امضا می کنند ، خطر سهام خود را دارند بریده شده. فرآیند 3 مرحله ای که در بالا تکرار شد ، یک دور در نظر گرفته می شود.
ترنج اکثراً ناهمزمان است (یا به طور ضعیف همزمان است) بنابراین ممکن است چندین مرحله طول بکشد تا یک بلوک ایجاد شود. روند پیشنهاد تا حدی همزمان است در حالی که روند رأی گیری ناهمزمان است. طبق Tendermint:
“معتبرین امر به دلایل دلخواه ممکن است در انجام بلوک کوتاهی کنند. به عنوان مثال ، ممکن است پیشنهاد دهنده فعلی آفلاین باشد یا شبکه ای تأخیر را تجربه کند. Tendermint اجازه می دهد تا از اعتبار سنجی رد شود. اعتبارسنج ها قبل از رأی گیری برای انتقال به دور بعدی ، زمان کمی را برای دریافت بلوک پیشنهادی کامل از پیشنهاد دهنده منتظر می مانند. این اتکا به وقفه زمانی است که Tendermint را به یک پروتکل همزمان همزمان تبدیل می کند تا یک ناهمگام. با این حال ، بقیه پروتکل ناهمزمان است و اعتبار سنج ها فقط پس از شنیدن بیش از ⅔ مجموعه اعتبار سنج پیشرفت می کنند. “
Tendermint به دلیل طراحی آن تضمین می کند که هرگز ایمنی نقض نخواهد شد ، بنابراین زنجیره بلوک Tendermint هرگز چنگال نخواهد زد. با این حال ، شبکه می تواند متوقف شود به این دلیل که یک اکثریت اعتبارسنجها 100٪ uptime دارند.
به طور کلی ، سازوکار اجماع درجه ای از زنده بودن را فدای ایمنی اجماع و نهایی بودن فوری می کند.
رابط برنامه BlockChain (ABCI)
ABCI یکی از اجزای مهم انعطاف پذیری Tendermint است و امکان نوشتن BFT برنامه ها را به هر زبان برنامه نویسی فراهم می کند..
Tendermint انگیزه پشت ABCI را به عنوان طراحی پشته یکپارچه سیستم عامل های ارز رمزپایه کنونی مانند بیت کوین و اتریوم توصیف می کند. طراحی های یکپارچه منجر به پیچیدگی های نگهداری پروتکل می شوند و توانایی تعامل سایر زبان های برنامه نویسی با بلاکچین را محدود می کنند. به عنوان مثال ، Ethereum از یک ماشین مجازی bytecode کامل Turing پشتیبانی می کند ، اما زبانهای برنامه نویسی محدود به زبانهایی هستند که می توانند به کد بایت دیگری مانند Solidity و Vyper کامپایل شوند..
اجرای اصلی ABCI پروتکل سوکت Tendermint (TSP) است و نحوه ارتباط Tendermint Core با برنامه است. در حالی که Tendermint Core مسئول حفظ و تأیید ترتیب متعارف معاملات در بلوک های بلاکچین است ، ABCI امضای رمزنگاری شده را تأیید می کند ، پایگاه داده معاملات را حفظ می کند و به مشتریان اجازه می دهد تا پایگاه داده معاملات را جستجو کنند..
ABCI از 3 نوع پیام اصلی استفاده می کند:
- DeliveTX
- CheckTX
- مرتکب شدن
DeliveTX پیام هر معامله در بلاکچین را همراهی می کند و فقط پس از تأیید اعتبار می تواند حالت برنامه را به روز کند.
CheckTX پیام برای تأیید معاملات است و اولین بار توسط یادداشت Tendermint Core تأیید می شود. فقط معاملات معتبر در سراسر شبکه منتشر می شوند.
مرتکب شدن پیام تعهد به وضعیت برنامه فعلی را محاسبه می کند ، این امکان را می دهد که مدارک مرکل در برابر یک هش بلوک که توسط یک امضا شده است ، تأیید شود حد نصاب.
ABCI اتصال محور است و Tendermint Core سه اتصال ABCI را با برنامه حفظ می کند.
- اتصال Mempool
- اتصال اجماع
- اتصال پرس و جو
اتصال Mempool از پیام CheckTX استفاده می کند و برای بررسی اینکه آیا تراکنش ها باید قبل از انجام مجدد انجام شوند ، انجام می شود.
اتصال اجماع معاملات انجام شده را انجام می دهد.
اتصال پرس و جو به مشتریان اجازه می دهد تا حالت برنامه را جستجو کنند.
ABCI یک جز dynamic پویای نرم افزار Tendermint است و یکپارچه در ظرفیت چارچوب چند زنجیره ای شبکه Cosmos است که از آن به عنوان موتور اصلی زنجیره بلوک شبکه استفاده می کند..
اعتبار تصویر – مستندات پیاز
نعناع فلفلی & شبکه کیهان
شبکه کیهان یک چارچوب بلاکچین چند زنجیره ای است که تمرکز آن پرداختن به موضوعات اصلی مقیاس پذیری و قابلیت همکاری سیستم های بلاکچین است.
بخوانید: قابلیت همکاری Blockchain: مشکلات & راه حل های آینده
این موتور از موتور بلاکچین کلاسیک Tendermint BFT تغذیه می کند و به عنوان یک ساختار گسترده تر برای بلاکچین های مستقل عمل می کند تا در یک محیط استاندارد ارتباطی متصل و کار کنند. این شبکه به بلاکچین های دولتی و خصوصی اجازه می دهد تا با یکدیگر ارتباط برقرار کرده و ارزش خود را مبادله کنند و از طریق سازوکار اثبات توافق سهام Tendermint از مقیاس پذیری قابل استفاده بهره می برد..
علاوه بر این ، ABCI Tendermint توسعه دهندگان را قادر می سازد تا به راحتی و با استفاده از هر زبان برنامه نویسی ، بلاکچین های متنوع را به عنوان بخشی از اکوسیستم بسازند. Cosmos SDK یک چارچوب ABCI است که به زبان برنامه نویسی Go نوشته شده است ، و لوسیون JS یک چارچوب ABCI است که در JavaScript نوشته شده است.
هیجان قابل توجهی در اطراف چارچوب های چند زنجیره ای مانند Cosmos و Polkadot وجود دارد. می توانید اطلاعات و منابع بیشتری در مورد Cosmos و ادغام آن با Tendermint در آنها پیدا کنید مستندات.
نتیجه
Tendermint نشان دهنده پیشرفت دیگری در تحقیق و توسعه تحمل خطای بیزانس در شبکه های توزیع شده ، به ویژه سیستم های بلاکچین است. این نوع نوآوری ها برای توسعه شبکه های بلاک چین مقیاس پذیر و با قابلیت همکاری بیشتر مانند Cosmos بسیار مهم هستند.
ضوابط مزایا و موارد مشابه در اجماع BFT نمونه های بسیار خوبی هستند که صنعت ارز رمزنگاری در فشار دادن فن آوری های پیشرفته تا چه اندازه پیموده است. برای دستیابی به پتانسیل واقعی آن ، ایده جدیدتری در پشت فناوری بلاکچین مورد نیاز است..