مقایسه پروتکل استراتوم 1 و 2
0

مقایسه پروتکل استراتوم 1 و 2

بازدید : 130

در مطالب قبلی در مورد پروتکل های استخراج از جمله استراتوم 1 و 2 صحبت شد. در این مقاله به مقایسه پروتکل استراتوم 1 و 2 از نظر پارامترهای زیر می پردازیم:

مصرف پهنای باند (Bandwidth consumption)

Stratum V2 به دو روش برای کاهش مصرف پهنای باند بهینه سازی شده است:

اولاً ، برخلاف V1 که مبتنی بر JSON است  V2 کاملاً باینری است. از این رو حجم انتقال داده به حداقل می رسد. داشتن یک پروتکل باینری و نه متنی ، مصرف پهنای باند را به میزان قابل توجهی کاهش می دهد. ساخت پیام قابل خواندن برای انسان در Stratum V1 منجر به این شد كه بعضی از پیام ها تقریباً 2-3 برابر سنگین تر از حد ضروری باشند. و این پیام ها در V2 به حداقل اندازه رسیده اند. در V2حجم هر پیام بدون رمزگذاری 32 بایت و با رمزگذاری 48 بایت است. در V1 حجم هر پیام تقریبا 100 بایت است.

مقایسه پروتکل استراتوم 1 و 2
bandwidth

دوم ، با حذف داده های غیرضروری مانند پیام های زائد، مقدار کل انتقال داده ها نیز به حداقل می رسد. V1 شامل برخی از پیامها است که در کل غیرضروری هستند. مانند mining.subscribe. با حذف این موارد ، پیام های کمتری باید در کل منتقل شوند و مصرف پهنای باند حتی بیشتر کاهش می یابد.

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

استراتوم 1 و 2 – میزان بار پردازنده های سرور

همانطور که در مقاله قبلی گفته شد V2 یک سری کانال ارتباطی فراهم می کند. با معرفی کانالهای استاندارد و گروهی برای device های نهایی ، Stratum V2 حافظه پنهان کارآمدی را ارائه می کند. تا پردازنده های سرور برای هر ارسال share نیازی به محاسبه مجدد ریشه Merkle نداشته باشند. این مساله مسئولیت بیشتری را از دستگاهها به پروکسی هایی که از طریق کانالهای گسترده به استخرها متصل می شود منتقل می کند . V2 در حدود 70-80٪ بار CPU را در ارسال share کاهش می دهد.در V1 حافظه پنهان کارآمدی وجود ندارد و ریشه درخت مرکل برای هر ارسال مجدداً محاسبه می شود.

مقایسه پروتکل استراتوم 1 و 2
بار کاری cpu

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

میزان تاخیر در توزیع Job

استخرها حتی قبل از یافتن یک بلاک ، می توانند Job مربوط به بلوک های بعدی را برای ماینرها ارسال کنند . این نشان می دهد كه آنها باید بلافاصله كار در بلوك بعدی را شروع كنند. V2 این امکان را برای ماینرها فراهم می کند تا بعد از پیدا شدن یک بلاک ، سریعتر روی بلوک های جدید کار کنند. اما در V1 ممکن است استخرها بلاکهای خالی ارسال کنند.

استخرها با ارسال بلاک هایی حاوی برخی از داده های از پیش تعریف شده و همچنین برخی داده های متغیر که ماینرها  آنها را مدیریت می کنند ، Job ها را بین ماینرها توزیع می کنند.

مقایسه پروتکل استراتوم 1 و 2
میزان تاخیر

در Stratum V1 ، داده های از پیش تعریف شده شامل: هش بلاک قبلی و ریشه درخت مرکل برای تراکنشی است که باید در بلاک فعلی گنجانده شود. با این حال ، این دو قطعه داده قابل تفکیک نیستند. بنابراین انتقال داده ها با تاخیر ، برای توزیع Job جدید به محض یافتن و انتشار یک بلاک جدید لازم است .

در Stratum V2 ، می توان هش بلاک قبلی را از بقیه داده های بلاک جدا کرد . این کار این امکان را می دهد تا داده های بلاک قبل از در دسترس قرار دادن پیش نسخه جدید ارسال شود. در نتیجه ، هش بلاک قبلی به محض یافتن یک بلوک معتبر می تواند به تنهایی به صورت یک پیام ارسال شود. و این انتقال می تواند بسیار سریعتر انجام شود. زیرا پیام شامل داده های سنگین تر نیست. این کار ماینرها را قادر می سازد کار با Job جدید را با سرعت بیشتری نسبت به Stratum V1 شروع کنند.

هر میلی ثانیه ای که یک ماینر برای شروع کار باید منتظر بماند ، یک فرصت از دست رفته است. با جداسازی پیام هش قبلی از سایر پیامهای توزیع Job در V2 ، می توان آن میلی ثانیه های با ارزش را ذخیره کرد.

استراتوم 1 و 2 – باینری در مقابل غیر باینری

Stratum V2 باینری است ، به این معنی که پیام ها رمزگذاری می شوند تا ماشین ها بتوانند آنها را به طور کاراتر بخوانند و بنویسند ، اما برای مطالعه توسط انسان مناسب نیست. در نتیجه ، میزان انتقال داده ها بین استخراج کنندگان، پروکسی ها و اپراتورهای استخر به حداقل می رسد. انتقال داده های V2 توسط انسان قابل خواندن نیست ، اما به طور قابل توجهی کارآمدتر است.

مقایسه پروتکل استراتوم 1 و 2
فرمت باینری در مقابل غیرباینری

V1 داده های قابل خواندن توسط انسان (JSON) را ارسال می کند ، که تحلیل و اشکال زدایی آن آسان تر است، اما کارایی آن بسیار کمتر است.

این پروتکل قاب بندی ثابتی برای پیامها دارد و دیگر جایی برای تفسیرهای مختلف V2 مانند V1 وجود ندارد.

پیشگیری از حمله هکرها

برای اطمینان از محرمانه بودن و یکپارچگی داده های حساس ، Stratum V2 از یک طرح رمزگذاری قوی استفاده می کند. که از رمزگشایی داده ها توسط اشخاص ثالث مخرب جلوگیری می کند. این امکان از ماینرها در برابر حملات متعددی که در V1 امکان پذیر است ، محافظت می کند . از جمله حمله hash rate hijacking که در آن هکر ارتباط بین یک ماینر و استخر را رهگیری می کند .

Stratum V2 نوعی طرح رمزگذاری به نام AEAD (authenticated encryption with associated data) به معنی رمزگذاری تأیید شده با داده های مرتبط ، را برای پرداختن به جنبه های امنیتی تمام ارتباطات بین کلاینت و سرور به کار می گیرد. این امر هم محرمانه بودن و یکپارچگی را برای داده های رمزگذاری شده در حال انتقال و هم برای داده های مرتبط رمزگذاری نشده فراهم می کند.

مقایسه پروتکل استراتوم 1 و 2
مقایسه پروتکل استراتوم 1 و 2 از نظر پیشگیری از حمله هکرها

V1 ممکن است در معرض سه نوع حمله قرار می گیرد:

  • استراق سمع تمام ارتباطات بین استخرها و ماینرها
  • سرقت متا دیتا  از لاگ های مربوط به ISP
  • ربودن هش ریت

این حملات می توانند بدون اینکه به راحتی شناسایی شوند ، انجام شوند. Stratum V2 از رمزگذاری تأیید شده با داده های مرتبط (AEAD) استفاده می کند. تا هکرها نتوانند از داده های ارسال شده برای شناسایی ماینرهای خاص استفاده کنند . بنابراین حریم خصوصی ماینرها حفظ می شود و از آنها در برابر ربودن هش ریت محافظت می شود.

استراتوم 1 و 2 – حذف استخراج بلاک خالی

در Stratum V2 ، کارایی ارسال بلاک کامل با کارایی ارسال بلاک خالی برابر است. اما از آنجا که تاخیر اضافی در ارسال بلاک کامل وجود ندارد ، انگیزه ارسال بلاک خالی از بین می رود.پس در V2 تأخیر اضافی برای ارسال یک بلاک کامل در مقابل یک بلاک خالی وجود ندارد. اما در V1 سرعت ارسال بلاک کامل کندتر از یک بلاک خالی است.

از بین بردن انگیزه استخراج بلاک خالی به جدایی پیام هش بلاک قبلی از سایر داده های هدر بلاک منجر می شود.

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

مقایسه پروتکل استراتوم 1 و 2
حذف بلاک خالی در استخراج

با جداسازی این دو پیام در Stratum V2 ، اکنون برای استخرها امکان ارسال بلاک کامل به ماینرها قبل از پیام هش بلاک قبلی وجود دارد. به عبارت دیگر ، ماینرها می توانند آماده باشند. تا قبل از یافتن بلاک ، روی بلاک بعدی شروع به کار کنند .و تنها چیزی که آنها نیاز دارند ، پیام هش بلاک قبلی برای شروع کار در بلاک بعدی است. از آنجا که این پیام به همان اندازه زمان میگیرد. صرف نظر از اینکه استخر یک بلاک خالی یا یک بلاک کامل ارسال کرده است ، دیگر انگیزه ای برای استخراج در بلاک های خالی وجود ندارد.

مقایسه پروتکل استراتوم 1 و 2 از نظر انتخاب Job

ماینرها توانایی انتخاب Job خود را دارند. (مجموعه تراکنشها را خود انتخاب می کنند) . انتخاب Job توسط ماینرهای انتهایی ، جدا از پروتکل اصلی استخراج ، به عنوان جز اختیاری Stratum V2 لحاظ شده است. در واقع ، این فرآیند توسط سه پروتکل انجام می شود: پروتکل Job Negotiation، پروتکل Job Distributionو پروتکل Template Distribution.

در پروتکل Job Negotiation همانطور که از نامش پیداست ، انتخاب Job در واقع یک روند مذاکره بین یک ماینر و استخر است. ماینر یک قالب بلاک را پیشنهاد می کند که پذیرش یا رد آن به استخر بستگی دارد. هنگامی که یک قالب مورد مذاکره پذیرفته شد ، نتایج را می توان برای هر تعداد دستگاه استخراج ، حتی صدها هزار دستگاه ، استفاده کرد. دلیل جدا بودن آن از پروتکل اصلی استخراج این است که به استخرها اجازه می دهد، اتصالات زیرساخت جداگانه را از پروتکل اصلی استخراج قطع کنند تا هیچ تاثیری بر کارایی ارسال نداشته باشد.

استراتوم 2 – استخراج هدر به تنهایی

این امکان یک نسخه سبک از پروتکل استخراج است که به سیستم عامل دستگاه اجازه می دهد پیچیدگی کمتری داشته باشد . و از پهنای باند و CPU کمتری استفاده کند. سریعتر و ارزانتر از نسخه کامل است. اما برخی از انعطاف پذیری ها را از دست می دهد. بنابراین فقط برای استفاده در دستگاه های استخراج نهایی در نظر گرفته شده است.

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

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

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

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

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

مقایسه پروتکل استراتوم 1 و 2
مالتی پلکسینگ:ارتباط از طریق یک کانال

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

اشتراک گذاشتن job به صورت ضمنی

Stratum V2 با فرض ضمنی اینکه باز بودن یک کانال استخراج نشانه ای از آماده بودن استخراج کننده برای تعیین job است . برخی از پیام های غیرضروری را از V1 حذف می کند.

V2 پیام mining.subscribe را از بین می برد.

V1 دو پیام دارد: mining.subscribe و mining.autorize

هنگامی که یک ماینر ارتباطی را با یک استخر (کلاینت -> سرور) در Stratum V1 برقرار می کند ، آنها یک پیام mining.aohorize  را ارسال می کنند. هنگامی که درخواست مجوز موفقیت آمیز باشد ، ماینر یک پیام mining.subscribe  را ارسال می کند. که نشان می دهد آنها می خواهند job تعیین شده توسط استخر را شروع کنند (یا از سر بگیرند). به عبارت دیگر ، ماینرها باید صراحتا تقاضای تعیین تکلیف کنند.

در Stratum V2 ، به طور ضمنی و نه صریح فرض می شود که باز بودن یک کانال استخراج نشانه ای از آماده بودن استخراج کننده برای تعیین job است .

اشتراک گذاری کار به صورت ضمنی باعث بهبود كارآیی نسبی پروتكل می شود.

مقایسه پروتکل استراتوم 1 و 2 از نظر version rolling

هدر بلاک بیت کوین شامل یک فیلد version است. که می توان از بیت های آن برای گسترش فضای جستجو یک ماینر آزادانه استفاده کرد. به این فرآیند version rolling گفته می شود. با توجه به قدرت هش ماشین های ASIC مدرن، می توان فیلد نانس 32 بیتی را در کمتر از 100 میلی ثانیه به پایان رساند. هر زمان این اتفاق می افتد ، کنترل کننده روی دستگاه باید job های جدید را به هر تراشه استخراج توزیع کند. با این کار پهنای باند و بار CPU زیادی مصرف می شود. بیت های version rolling می تواند فرکانس توزیع hob جدید را تا حد زیادی کاهش دهد

ورژن rolling به عنوان یک افزونه (BIP 310) به Stratum V1 اضافه شد. اما در V2  یک قسمت اساسی استخراج است. و مستقیماً از نسخه rolling توسط ماینرها بدون نیاز به افزونه پشتیبانی می شود.

سویچینگ با تاخیر صفر( Zero-time backend switching)

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

V2 از دریافت job از چندین منبع پشتیبانی می کند. V1 دارای پسوند غیراستاندارد است که به استخراج کنندگان اجازه می دهد استخر خود را تغییر دهند . اما دستگاه نهایی باید صریحاً از آن پشتیبانی کند.

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

انواع مختلف job در یک اتصال

به ماینرها اجازه می دهد تا  job های مختلف را از طریق یک اتصال استخراج کنند. به عنوان مثال ، برخی از ماشین های استخراج می توانند Bitcoin را استخراج کنند. در حالی که دیگران در حال استخراج Bitcoin Cash هستند و آنها می توانند از همان اتصال استفاده کنند.

کانالهای مختلف V2در یک اتصال می توانند job های مختلفی داشته باشند. در V1 همه دستگاه های موجود در یک اتصال همیشه یک job مشابه دارند.

اضافه کردن قابلیت های بیشتر به پروتکل های استخراج

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

نتیجه مطلب مقایسه پروتکل استراتوم 1 و 2

در این مطلب به مقایسه پروتکل استراتوم 1 و 2  از منظر پارامترهای مهم استخراج پرداخته شد.استراتوم 2 اساسا برای بهینه کردن قابلیت های استراتوم 1 ارائه شده است.

 

0
0
برای اینکه به فکت این مقاله کمک کنید روی دکمه زیر کلیک کنید و تا افراد بیشتری آن را دنبال کنند
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه نظرات
محل تبلیغ
محاسبه‌گر ارزهای دیجیتال
ارز معادل
تومان

محاسبه با مبلغ تتر : تومان

0
نظر خود را بنویسید !x