MultiChain 2.1: المتغيرات والمكتبات

عقدة المصدر: 1587135

جعل المرشحات الذكية أكثر ذكاءً

اليوم ، يسعدنا إصدار MultiChain 2.1 ، مع ميزتين جديدتين مهمتين لمطوري MultiChain.

منذ عام ونصف ، تم تقديم MultiChain 2.0 الفلاتر الذكية، والتي تمكن المنطق المخصص ليتم تضمينه في blockchain للتحقق من صحة المعاملات والبيانات. تشبه Smart Filters من الناحية المفاهيمية "العقود الذكية" التي توفرها منصات blockchain الأخرى ، ولكن لها تصميم مختلف ليناسب نموذج المعاملات الأسرع لـ MultiChain.

تأتي المرشحات الذكية في نوعين - مرشحات المعاملات وفلاتر التدفق. يقوم عامل تصفية المعاملات بالتحقق من صحة المعاملات على السلسلة بأكملها ، من خلال فحص مدخلاتها ومخرجاتها وبياناتها الوصفية. إذا لم تتجاوز المعاملة عامل التصفية ، فسيتم رفضها من قبل كل عقدة في الشبكة. يتحقق مرشح الدفق من صحة العناصر الفردية المكتوبة في ملف تيار متعدد السلاسل، بالنظر إلى المفاتيح والناشر (الناشرين) والبيانات المتصلة بالسلسلة أو خارج السلسلة ، بتنسيق JSON أو النص أو التنسيق الثنائي. إذا لم يجتاز أحد العناصر عامل التصفية ، فسيتم تمييزه على أنه غير صالح ويتم إخفاء بياناته بواسطة كل عقدة مشتركة في الدفق.

تمت كتابة كلا النوعين من المرشحات الذكية بلغة جافا سكريبت وتشغيلها ضمن إصدار محدد من جوجل V8، وهو محرك JavaScript فائق السرعة يعمل على تشغيل Chrome و Node.js والعديد من الأنظمة الأساسية الأخرى. من السهل ترميز وفهم عوامل التصفية البسيطة - على سبيل المثال ، يوجد مرشح دفق يتحقق من أن العناصر تحتوي على مفتاحين على الأقل:

وظيفة filterstreamitem () {var item = getfilterstreamitem () ؛ // وظيفة رد الاتصال إذا كانت (item.keys.length2) ترجع "مطلوب مفتاحين على الأقل" ؛ }

بشكل عام ، تلقينا تعليقات رائعة حول المرشحات الذكية ، لكننا سمعنا أيضًا مرارًا وتكرارًا عن طريقتين يمكننا تحسينهما. أولاً ، يريد العديد من المستخدمين مرشحات يمكنها قراءة المعلومات الموجودة على blockchain ولكن ليس ضمن المعاملة أو عنصر الدفق الذي يتم التحقق من صحته. تتضمن حالات الاستخدام قائمة متغيرة من البلدان المسموح بها ، وأسعار الصرف التي يوفرها "أوراكل" خارجي أو مفتاح للتبديل بين قواعد معينة.

ثانيًا ، يريد بعض المطورين استخدام مجموعة من وظائف JavaScript في عوامل تصفية متعددة ، دون تكرار التعليمات البرمجية. يريدون أيضًا أن يكونوا قادرين على تحديث هذه الوظائف ، لإصلاح خطأ أو تغطية بعض المواقف الجديدة ، دون تعطيل عوامل التصفية الحالية وإنشاء مرشحات جديدة في مكانهم. على سبيل المثال ، يمكن أن تحتوي التعليمات البرمجية المشتركة على منطق خاص بالتطبيق أو مكتبة جهة خارجية للتحقق من صحة JSONs أو تحليل محتويات ملف PDF.

MultiChain 2.1 تحديث يقدم نوعين جديدين من الكيانات على السلسلة ، المتغيرات و المكتباتللإجابة على هذه الاحتياجات.

المتغيرات

لنبدأ بمتغيرات MultiChain. هذه تعمل تمامًا مثل تلك الموجودة في لغات البرمجة العادية ، ولكن مع تطور blockchain. يمكن إنشاء أي عدد من المتغيرات المسماة على blockchain. يحتوي كل متغير على مجموعة ديناميكية من العناوين التي يُسمح لها بتحديث قيمتها ، ويتم إدارة هذه المجموعة بواسطة مسؤول متغير واحد أو أكثر (افتراضيًا ، منشئ المتغير فقط). يتم إنشاء المتغيرات أو تحديثها في معاملة blockchain ، والتي يمكن إرسالها باستخدام أمر API بسيط عالي المستوى. بدلاً من ذلك ، يمكن استخدام واجهات برمجة التطبيقات ذات المستوى الأدنى لإنشاء معاملات معقدة تحدد بشكل ذري متغيرًا واحدًا أو أكثر ، وكتابة عناصر الدفق ، ونقل الأصول ، وتغيير الأذونات ، وما إلى ذلك.

يمكن أن تحتوي القيمة المتغيرة نفسها على أي بنية JSON ، بما في ذلك الأرقام والسلاسل والوحدات المنطقية والكائنات والمصفوفات المتداخلة ، ويتم تخزينها في السلسلة بكفاءة أوبجسون تنسيق التسلسل. بالطبع ، يمكن للفلاتر الذكية الاستعلام عن القيمة الحالية للمتغير باستخدام وظيفة رد بسيطة. ولكن نظرًا لأن هذا هو blockchain ، فإن السجل الكامل لقيم المتغير وكتابه متاح أيضًا ، ويمكن استرداده جزئيًا أو كليًا باستخدام وظيفة رد اتصال أخرى. لتسهيل التطوير ، تتوفر عمليات الاسترجاعات هذه أيضًا من خلال واجهة برمجة التطبيقات التي تواجه التطبيق.

المكتبات

دعنا ننتقل إلى المكتبات ، وهي الأخ الأكبر للمتغيرات. كما هو الحال مع المتغيرات ، يمكن إنشاء أي عدد من المكتبات المسماة على blockchain. لكن المكتبات لديها نموذج أكثر ثراءً للتحديث ، مع ثلاثة أوضاع متوفرة - غير قابل للتغيير, لحظةو يخضع للموافقة.

عندما يكون غير قابل للتغيير تم إنشاء مكتبة ، لا يمكن تغيير رمزها أبدًا. مكتبة بها لحظة يمكن تغيير التحديثات مثل المتغير ، مع مجموعة من العناوين التي يمكن أن تحل بشكل فردي محل كودها. ولكن في مكتبة مع يخضع للموافقة التحديثات ، لا يتم تطبيق التحديث إلا بعد الموافقة عليه من قبل نسبة معينة من المسؤولين العالميين في blockchain. يوفر هذا الوضع الأخير مفاضلة رائعة بين الأمان والمرونة.

تتم كتابة التعليمات البرمجية للمكتبة بلغة JavaScript عادية ، وتحدد وظيفة واحدة أو أكثر لاستخدامها في Smart Filters. كما هو الحال مع المتغيرات ، يتم إنشاء المكتبات أو تحديثها في معاملة خاصة ، يتم إرسالها بسهولة باستخدام واجهة برمجة التطبيقات. عند إنشاء مرشح ذكي ، يتم توفير مكتباته المطلوبة في معلمة اختيارية. تعمل المكتبة دائمًا في سياق المرشح الذي يتطلبها ، لذلك يمكنها استخدام عمليات رد نداء Smart Filter عند الاقتضاء. يوفر MultiChain وظائف واسعة النطاق لاختبار المكتبات (والتراجع عنها) وتحديثاتها محليًا ، قبل إجراء تغيير على blockchain.

الاستنتاج

كما هو الحال مع جميع الميزات المتعلقة بقواعد blockchain ، تتوفر المتغيرات والمكتبات في كل من إصداري Community و Enterprise من MultiChain 2.1. توفر وثائق المطور لدينا وصفًا تفصيليًا لملف واجهات برمجة تطبيقات JSON-RPC و عمليات الاسترجاعات المرشح الذكي متاح. لاستخدام الميزات الجديدة على blockchain قيد التشغيل بالفعل ، قم أولاً بترحيل العقد إلى MultiChain 2.1 ، ثم ترقية بروتوكول السلسلة للإصدار 20012.

إذا ما هو التالي؟ خلال الأشهر المقبلة ، سنركز على بعض الأعمال التفصيلية والمكثفة تحت غطاء المحرك ، لتحسين الأداء والتزامن في MultiChain أثناء وجودها تحت عبء كبير. سيؤدي ذلك إلى زيادة استجابة التطبيقات التي تحتاج إلى الاستعلام عن عقدة بينما تستمر في معالجة مئات أو آلاف المعاملات الجديدة في الثانية.

في غضون ذلك ، نتمنى جميعًا في فريق MultiChain لمستخدمينا وعملائنا الصحة والعقل للعام المقبل. نحن نعلم أن هذه أوقات عصيبة للجميع ، ونتطلع إلى العودة إلى الإيقاع الطبيعي للاجتماعات والمؤتمرات بمجرد أن يصبح الوضع آمنًا.

يرجى نشر أي تعليقات على LinkedIn.

الطابع الزمني:

اكثر من متعدد السلاسل