طلوع EOS.IO

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

0 169

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

اثبات کارایی

اکنون که امکان به کارگیری نرم افزار EOS.IO با پیکربندی شبکه توزیع شده فراهم آمده می توانیم کارایی آن را محک بزنیم. آزمون داخلی ما نشان می‌دهد که این نرم افزار در حال حاضر قادر است در یک شبکه‌ی چند-گرهی بیش از ۱۰,۰۰۰ تراکنش پیچیده شده (threaded transactions) را در هر ثانیه به انجام رساند. EOS.IO با این ظرفیت می‌تواند در مکانزیم‌هایی با بیش از ۱۰۰ هسته CPU از بالای ۱ میلیون تراکنش در ثانیه پشتیبانی نماید.

طلوع EOS.IO
طلوع EOS.IO

پیشرفت‌ها در زمینه‌ی طراحی

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

دسترسی مشترک به دیتابیس

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

ذخیره محلی دیتای اپلیکیشن توسط کاربر

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

انتقال پیام درون برنامه‌ای (inline)

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

این رویه با رویکرد سنکرونس به کار رفته در پلتفرم‌های دیگر تفاوت دارد. گزارش تحویل پیام سنکرون تا زمانی که بازگردد اجرای thread جاری را متوقف می‌کند و همچنین وقوع باز – ورودهای (reentrancy) پیش بینی نشده را محتمل می سازد. باز – ورود تا کنون منشاء بروز باگ‌ها و سوء استفاده‌های گوناگونی شده زیرا توسعه دهندگان به سختی می‌توانند مطمئن شوند که پیش از دست زدن به یک اقدام سنکرون، قرارداد آن‌ها در وضعیت محکم و درستی قرار دارد. انتقال پیام به صورت درون برنامه‌ای، اجرا را تا پایان رسیدگی به تراکنش موجود به تاخیر می‌اندازد و در این حین توسعه‌دهنده‌ها می‌توانند پیامی ارسال کرده و با فرض موفقیت آمیز بودن اجرا ، اقدام نمایند. در صورتی که اجرا ناموفق باشد تمامی تراکنش بدون هیچ پیامد مضری گسسته می‌شود. این بدان معناست که گردانندگان پیام شما هرگز یک وضعیت متناقض را گزارش نداده‌اند.

انتقال پیام به صورت معوق

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

مقیاس‌دهی افقی نامحدود

آخرین پیشرفت‌های صورت گرفته در نرم افزار EOS.IO کارایی تک ماشینه‌ی بسیار بالایی را در اختیار توسعه دهندگان قرار می‌دهد. به این ترتیب پیش از نیاز به فراهم کردن معماری سنکرون پیچیده‌تر، می‌توان کسب و کارها را تا یک میلیون تراکنش بر ثانیه مقیاس‌دهی کرد. در عین حال، نرم افزار EOS.IO همچنان از انتقال پیام به صورت آسنکرون میان گروه‌های اپلیکیشن که نیازی به اشتراک وضعیت ندارند پشتیبانی می‌کند. انتقال پیام به صورت آسنکرون مزایای زیادی دارد (مانند پشتیبانی از خوشه جزیی) اما این مزایا هزینه‌ی هنگفتی دارند زیرا توسعه را به مراتب پیچیده‌تر می‌کنند. نرم افزار EOS.IO این شیوه را به خاطر کسب و کارهایی پشتیبانی می‌کند که نیازمند چند میلیون تراکنش در هر ثانیه هستند؛ در عین حال برای کسب و کارهایی که چنین نیازی ندارند یک رویکرد کلی ارائه نموده است.

نسل بعدی توپولوژی شبکه

نرم افزار EOS.IO طراحی شده تا تولیدکنندگان بلوک‌ها را تقویت کند و نوعی زیرساخت نامتمرکز با کارایی بالا را به عنوان یک سرویس ارائه دهد. توسعه دهندگان نرم افزار به چیزی بیش از یک گروه تولید‌کننده بلوک که تراکنش‌ها را روی هم می‌گذارند احتیاج دارد؛ این توسعه‌دهندگان نیازمند گره‌های API ، گره های سید (seed nodes)، ایندکس‌های دیتابیس (database indexes)، ذخیره (storage) و هاستینگ می‌باشند. بلاکچین‌هایی که کارایی بالا دارند مستلزم معماری شبکه با کارایی بالا هستند و مقتضیات آن‌ها با بلاکچین‌های موجود تفاوت زیادی دارد. در یک میلیون تراکنش بر ثانیه، هر گره باید در هر اتصال، ۱۰۰ مگابایت بر ثانیه آرشیو نماید. این میزان برای مراکز بزرگ دیتا جزیی به حساب می‌آید اما برای کاربران خانگی قابل توجه است.

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

بلاکچین سنتی (traditional blockchain) متشکل از یک مجموعه‌ی متغیر از گره‌ها است که به صورت رندوم به یک شبکه‌ی مش اتصال پیدا می‌کنند. این بلاکچین‌ها کاربران خانگی با پهنای باند محدود را هدف قرار می‌دهند و طوری طراحی شده‌اند تا از مودم‌های خانگی (NAT) عبور کنند و به صورت دینامیگ گره‌هایی را به شبکه بیفزایند. مشاهدات ما حاکی از آن است که این نوع معماری برای زیرساخت بلاکچین با کارایی بالا مناسب نیست.

نرم افزار EOS.IO با این فرض آغاز می‌شود که تمامی گره‌ها در سطح بین‌المللی به یکدیگر متصل هستند. اپراتورهای گره‌ها با یکدیگر همکاری می‌کنند تا مطمئن شوند توپولوژی شبکه ایمن و کارآمد و به خوبی طراحی شده است. به این ترتیب تولید‌کنندگان بلوک می‌توانند با یکدیگر اتصال مستقیم (و امن) داشته باشند و متجاوزین نمی‌توانند تمامی توپولوژی شبکه را در جستجوی گره‌هایی برای خاموش کردن اسکن کنند.

تولید‌کنندگان بلوک میزبان پایانه‌هایی خواهند بود که هر کس می‌تواند به آن‌ها متصل شود و هر زیرمجموعه‌ای از دیتای تراکنش را که بخواهد، متقبل شود. در نتیجه نیاز تمامی گره‌های کامل که عملیات آن‌ها توسط غیر بلوک‌سازان انجام شده، به پهنای باند به حداقل می‌رسد. گره‌هایی که نمی‌خواهند به یک تولید‌کننده‌ی بلوک اعتماد کنند می‌توانند یا در چند منبع مشارکت کنند و یا منتظر تایید دو سوم بلوک سازان بمانند (حدود ۴۵ ثانیه طول می کشد). مزیت این نوع از معماری آن است که گره‌های جدید می‌توانند با سرعت زیاد متصل  و همگام‌سازی شوند و این کار با پهنای باند بالای فراهم شده توسط تولید‌کنندگان بلوک صورت می‌گیرد. همچنین، این معماری به منظور تسهیل جریان‌سازی یک طرفه (unidirectional streaming) پربازده در مقابل پروتکل‌های یک طرفه‌ی کم بازده‌تر طراحی گردیده است.

از نظر مقیاس، تولیدکنندگان بلوک روی ستون فقرات یک اینترنت جدید کار می‌کنند که بر بستر نرم افزاری EOS.IO اجرا می‌شود. بلوک‌سازان همانند ارائه کنندگان اینترنت در لایه اول هستند که اتصالات فیبر نوری را میان قاره های مختلف ایجاد می‌نمایند. این تولید کنندگان روی مراکزی دیتایی کار خواهند کرد که مشترکان لایه دوم می توانند به آن متصل شوند. لایه اول شامل همه‌ی کسانی است که در پی اجرای یک گره کامل یا نسبی و یا یک اپلیکیشن بزرگ می‌باشند. برای نمونه، سرویس‌هایی مانند کاوشگران بلوک، کیف پول‌های وب سایتی و صرافی‌های ارزهای دیجیتال مشترکان، برای بلوک‌سازان مشترکان لایه دوم محسوب می‌شوند.

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

مسیر پیش رو

سپتامبر سال جاری شرکت block.one نسخه ی Dawn 1.0 از نرم افزار EOS.IO را منتشر خواهد کرد. این نسخه به قدر کافی پایدار خواهد بود و آنقدر خوب پیاده شده که هرکس بخواهد می‌تواند شبکه‌ی آزمایشی خود را روی آن راه اندازی کند؛ شبکه‌ای که اپلیکیشن‌ها روی آن تولید و اجرا می‌شوند. نسخه‌ی EOS.IO Dawn 1.0 نخستین عرضه اولیه از کیت توسعه نرم افزاری (SDK) EOS.IO محسوب می‌شود.

کسانی که نقشه راه EOS.IO ما را دنبال کرده‌اند، خوشحال خواهند شد اگر بدانند ما جلوتر از برنامه هستیم. فاز ۱، محیط آزمایشی دوام حداقلی (Minimal Viable Testing Environment) شامل یک گره مستقل (standalone node)، قراردادهای محلی، ماشین مجازی API، رابط RPC، ابزارهای خط فرمان (eosc) و مجموعه‌ی کاملی از مستندات توسعه‌دهنده مبتدی می‌باشد. ما یک عرضه‌ی برچسب‌دار با عنوان EOS.IO Dawn 1.0 منتشر خواهیم کرد. این فاز طوری برنامه‌ریزی شده تا در تابستان ۲۰۱۷ پایان یابد و در نتیجه روز ۲۲ سپتامبر تمام می‌شود.

ما تاکنون نیمی از فاز ۲ یعنی شبکه آزمایشی دوام حداقلی (the Minimal Viable Test Network) را به پایان رسانده‌ایم. برنامه‌ریزی این فاز به گونه‌ای است که در پاییز ۲۰۱۷ پایان می‌یابد و شامل کار روی کدهای شبکه سازی، سندباکس کردن ماشین مجازی، محدود سازی استفاده از منبع و نرخ، وارد کردن نحوه تشکیل و ارتباطات میان بلاکچینی می‌باشد. ما اطمینان داریم که فاز ۲ را طبق برنامه به اتمام خواهیم رساند.

EOS.IO Dawn 2.0 نسخه ی اولیه بعدی است که تا پایان سال بیرون می‌آید. EOS.IO Dawn 2.0 دارای چندین قابلیت حیاتی است که در نسخه ی EOS.IO Dawn 1.0 وجود ندارد، از جمله:

  1. محدودسازی نرخ منبع (پیشگیری از اسپم / سوء استفاده)
  2. ایجاد درخت مرکل (Merkle Tree) (برای ارتباطات میان زنجیره ای)
  3. ارتقاء اداره و مدیریت
  4. SDK گسترده‌تر
  5. پیشرفت‌هایی در زیرساخت کلی
  6. عکس نمونه از توکن‌های ERC20

هدف از EOS.IO Dawn 2.0 رساندن کارکرد به سطحی است که فرد بتواند یک بلاکچین فعال را راه‌اندازی کند.

ذخیره ی EOS.IO

برای نخستین بار توسعه‌دهندگان قادر خواهند بود اپلیکیشن‌های نامتمرکز و رابط‌های کاربری وب بسازند و پیاده نمایند و از بابت هزینه‌های پهنای باند، ذخیره‌سازی نگرانی نداشته باشند. آن‌ها حتی می‌توانند استینگ هر سروری را خود انجام دهند، به این ترتیب امکان میزبانی مدل‌های نامتمرکز و نوآورانه‌ی کسب و کار همچون یوتیوب نامتمرکز، ساندکلاد نامتمرکز یا هر پروژه دیگر با ذخیره سازی زیاد فراهم می‌شود. افزون بر مزیت پهنای باند کامپیوتری، صاحبان توکن بلاکچین‌های مبتنی بر EOS.IO اکنون می‌توانند از طریق IPFS / HTTPS به ذخیره‌سازی ابری، هاستینگ و پهنای باند دانلود دسترسی داشته باشند؛ این دسترسی نیازی به مصرف یا انتقال توکن ندارد. به این منظور، بلوک‌سازان فایل‌هایی را در IPFS برای کاربران پشتیبانی می‌کنند و به کاربران دیگر اجازه می‌دهند این فایل‌ها را دانلود نمایند. منابع ذخیره سازی با انتشار سهام از طریق بلاکچین پرداخت می‌شوند و نرخ آن‌ها برای دارندگان توکن نسبت به دارایی‌هایشان محدودیت دارد. همانند پهنای باند EOS.IO، ذخیره‌سازی نیازمند صرف توکن‌های بلاکچین‌های مبتنی بر نرم افزار EOS.IO نیست و به مرور زمان با ارتقاء پیدا کردن سخت افزار بلوک سازان، ظرفیت ذخیره بر حسب توکن افزایش پیدا خواهد کرد.

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

سلب مسئولیت

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

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

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