MultiChain 2.1: متغیرها و کتابخانه ها

ساخت فیلترهای هوشمند بسیار هوشمندتر

امروز، ما خوشحالیم که MultiChain 2.1 را با دو ویژگی جدید مهم برای توسعه دهندگان MultiChain منتشر می کنیم.

یک سال و نیم پیش MultiChain 2.0 معرفی شد فیلترهای هوشمند، که منطق سفارشی را قادر می سازد تا در یک بلاک چین برای اعتبارسنجی تراکنش ها و داده ها تعبیه شود. فیلترهای هوشمند از نظر مفهومی شبیه به «قراردادهای هوشمند» ارائه شده توسط دیگر پلتفرم‌های بلاک چین هستند، اما طراحی متفاوتی برای تطبیق با مدل تراکنش سریع‌تر MultiChain دارند.

فیلترهای هوشمند در دو نوع وجود دارند - فیلترهای تراکنش و فیلترهای جریان. یک فیلتر تراکنش با بررسی ورودی‌ها، خروجی‌ها و ابرداده‌ها، تراکنش‌های زنجیره‌ای را به‌طور کامل تأیید می‌کند. اگر تراکنش از فیلتر عبور نکند، توسط هر گره در شبکه رد می شود. یک فیلتر جریان، موارد جداگانه نوشته شده در a را تأیید می کند جریان چند زنجیره ای، به کلید(های)، ناشر(ها) و داده های زنجیره ای یا خارج از زنجیره آنها، در قالب JSON، متن یا باینری نگاه می کنیم. اگر موردی از فیلتر عبور نکند، به‌عنوان نامعتبر علامت‌گذاری می‌شود و داده‌های آن توسط هر گره مشترک در جریان پنهان می‌شود.

هر دو نوع فیلتر هوشمند در جاوا اسکریپت نوشته شده اند و در یک نسخه قطعی از گوگل اجرا می شوند V8، موتور فوق سریع جاوا اسکریپت که Chrome، Node.js و بسیاری از پلتفرم های دیگر را تامین می کند. کدگذاری و درک فیلترهای ساده آسان است - برای مثال، در اینجا یک فیلتر جریانی وجود دارد که تأیید می کند موارد حداقل دو کلید دارند:

تابع filterstreamitem() { var item=getfilterstreamitem(); // تابع callback اگر (item.keys.length2) "حداقل دو کلید مورد نیاز" را برگرداند. }

به طور کلی، ما بازخوردهای خوبی در مورد فیلترهای هوشمند داشته ایم، اما همچنین بارها درباره دو روشی که می توانیم آنها را حتی بهتر کنیم، شنیده ایم. اولاً، بسیاری از کاربران فیلترهایی می خواهند که بتوانند اطلاعاتی را که در بلاک چین وجود دارد، اما در مورد تراکنش یا جریان در حال تأیید اعتبار نیست، بخوانند. موارد استفاده شامل تغییر لیست کشورهای مجاز، نرخ های ارز ارائه شده توسط یک "اوراکل" خارجی یا سوئیچ برای تغییر قوانین خاص است.

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

MultiChain 2.1 دو نوع جدید از موجودیت روی زنجیره را معرفی می کند، متغیرها و کتابخانه ها، برای پاسخ به این نیازها.

متغیر

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

خود مقدار متغیر می‌تواند شامل هر ساختار JSON، از جمله اعداد، رشته‌ها، بولیان، اشیاء تودرتو و آرایه‌ها باشد و در زنجیره کارآمد ذخیره می‌شود. UBJSON فرمت سریال سازی البته، فیلترهای هوشمند می توانند با استفاده از یک تابع پاسخ به تماس ساده، مقدار فعلی یک متغیر را پرس و جو کنند. اما از آنجایی که این یک بلاک چین است، تاریخچه کامل مقادیر و نویسندگان متغیر نیز موجود است و می‌توان آن را به‌صورت جزئی یا کامل با استفاده از یک تابع فراخوان دیگر بازیابی کرد. برای آسان‌تر کردن توسعه، این تماس‌ها از طریق API مربوط به برنامه نیز در دسترس هستند.

کتابخانه

بیایید به سراغ کتابخانه‌ها برویم، که خواهر و برادر بزرگ‌تر متغیرها هستند. همانند متغیرها، هر تعداد کتابخانه با نام را می توان در زنجیره بلوکی ایجاد کرد. اما کتابخانه‌ها مدل غنی‌تری برای به‌روزرسانی دارند، با سه حالت موجود: تغییر ناپذیر, فوریو موضوع تایید.

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

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

بسته شدن آن

مانند تمام ویژگی‌های مربوط به قوانین بلاک چین، متغیرها و کتابخانه‌ها در نسخه‌های Community و Enterprise MultiChain 2.1 در دسترس هستند. مستندات توسعه دهنده ما شرح مفصلی از جدید ارائه می دهد API های JSON-RPC و تماس های فیلتر هوشمند در دسترس. برای استفاده از ویژگی های جدید در بلاک چینی که از قبل در حال اجرا است، ابتدا گره ها را به MultiChain 2.1 منتقل کنید، سپس ارتقاء پروتکل زنجیره به نسخه 20012.

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

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

لطفا هر نظری را ارسال کنید در LinkedIn.

تمبر زمان:

بیشتر از چندتایی