على لغة نقل الميزان، 10 خطوط من التعليمات البرمجية لتحقيق أول عقد الذكي

الكاتب | ما تشاو

ذبيان | yugao

أنتجت | CSDN (ID: CSDNnews)

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

نقل الخصائص الرئيسية للغة

النصي معاملة نقل للبرمجة

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

يمكن أن عقود نقل الذكية ستكون وحدة مشتركة

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

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

أول من نقل الموارد

  • نقل الملامح الرئيسية هي القدرة على نوع الموارد المخصصة. أنواع الموارد مع البرمجة والأمن الغنية من خلال الترميز.
  • إنها لغة نوع قيمة الموارد المشتركة. ويمكن تخزينها على شكل هيكل البيانات التي تم تمريرها كمعلمة لهذه العملية، عملية العودة، وما شابه ذلك.
  • نقل النظام إلى توفير الأمن الخاص لضمان الموارد. لن يتم نسخها الموارد الخطوة، إعادة استخدامها أو التخلص منها. نوع المورد لا يمكن إلا أن تنشأ أو دمرت في تعريف نوع من الوحدة. نقل ويضمن الجهاز الظاهري بهذه ثابت التحقق بايت كود، نقل الجهاز الظاهري إلى القمامة لتشغيل لم يتم التحقق منها كود البرنامج بايت كود.
  • نفذت الميزان كنوع من العملة يسمى LibraCoin.T الموارد. LibraCoin.T أي وضع خاص في اللغة؛ كل الموارد الانتقال إلى التمتع بذات الحماية.

نقل لنقل اللغة إلى تفسير البلاغ اللغة

A، نقل هي لغة كتابتها بشكل ثابت، والتي هي لغة المكتوبة بشدة، في هذا الصدد نقل مماثلة إلى جاوة وC، سيكون هناك المزيد حول مسألة وقت التعرض الترجمة، والحد من فرص وقوع حادث يحدث في وقت التشغيل.

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

أول عقد ذكي

أولا، مجموعة تصل تحريك بيئة التصنيع، الأمر التالي

مؤتمر نزع السلاح ~ / libracargo بناء --bin مترجم

وعاد بتجميع البرمجية التالية بنجاح

تجميع مترجم v0.1.0 (/ الوطن / machao / برة / اللغة / المترجم) هدف ديف تشطيب (ق) في 57.23s

حسنا، لم يتحدث كثيرا، ونحن ننظر الأولى تبدو العقد مباشرة لدينا مثل. ملاحظة: التعليمة البرمجية التالية نقلها مباشرة من برة الموقع الرسمي https://learnblockchain.cn

// بسيط نظير نظير سبيل المثال الدفع. // 0x0 ... 0 (مع 64 أصفار) 0x0 هو اختزال أن منصات IR إلى // 256 بت بإضافة الرائدة zeroes.import 0x0.LibraAccount (64 أرقام)؛ استيراد 0x0.LibraCoin؛ الرئيسي (المستفيد: عنوان ، كمية: ... u64) {// إن بايت كود (وبالتالي، فإن IR) تمت كتابتها السكان المحليين نطاق // كل المحلي هو الإجراء بأكمله يجب // أن تكون جميع الإعلانات متغير المحلية في بداية الإجراء الإعلان و تهيئة // المتغيرات عمليات منفصلة، ولكن المدقق بايت كود سيمنع // أي محاولة لاستخدام متغير غير مهيأ السماح عملة: R # LibraCoin.T؛ // وR # جزءا من نوع سبق هو واحد من اثنين * النوع. الشرح * R # وV # // (الاختزال ل "موارد" و "القيمة المطلقة"). هذه الشروح // يجب أن تطابق نوع الإعلان نوع (على سبيل المثال، هل LibraCoin // تعلن وحدة `الموارد T` or` البنية T`؟). // الحصول على مورد LibraCoin.T مع قيمة `amount` من المرسل // حساب هذا وسوف تفشل إذا توازن المرسل هو أقل than` amount` عملة = LibraAccount.withdraw_from_sender (الخطوة (مبلغ))؛ .. // نقل . الموارد LibraCoin.T في حساب `payee` إذا لم يكن هناك // حساب في payee` address`، ستفشل هذه الخطوة LibraAccount.deposit (الخطوة (المستفيد)، ونقل (عملة))؛ يجب أن ينتهي // كل إجراء في `return` المترجم IR حرفية جدا: // فإنه يترجم مباشرة مصدر من المسلم به وهي لن تفعل الهوى // أشياء مثل إدخال return`s missing` العودة؛} ...

الثاني، مترجم

ملف جديد عن طريق نسخ الكود أعلاه البرنامج بين. الكاتب trans.m تحت الدليل اختبار، على سبيل المثال

مكدير testcd testgedit trans.m # عجينة اللزوجة فوق رمز إلى ملف

1. ترجمة العميل في الميزان

~ / الميزان / مخطوطات / المبادرة القطرية / start_cli_testnet.sh # ديف سطر الأوامر تنفيذ ج بعد القيادة /opt/libra/test/trans.m /opt/libra/test/trans.ir برة

2. يمكنك أيضا استخدام سطر الأوامر لتجميع

مؤتمر نزع السلاح ~ / برة / الهدف / التصحيح. / مترجم /opt/libra/test/trans.m -o /opt/libra/test/trans.ir

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

/opt/libra/test/trans.ir{"code":،"args":،"modules القط ":}

الرابط الأصلي:

https://blog.csdn.net/BEYONDMA/article/details/98501624

استنساخ اجتماع لمنظمة العفو الدولية الخاصة بها، وتبريده؟

السبب المصنعين يستخدمون لغة GO؟ قراءة من خلال الأقسام لغة GO

جائع التاريخ لمدة خمس سنوات لتطور ما في النظام التجاري

بكين الطريق الدائري الرابع ازدحام المرور بسبب فكرة عظيمة النقل الذكية

من Ngin إلى Pandownload، المبرمجين كيفية تجنب السجن لبرمجة؟

من Web1.0 Web3.0 ل: تحليل مفصل لتطوير هذه السنوات واتجاه مستقبل الإنترنت

فكاهي: ما هو وباء R0 وR؟

هذه التوصيات موجهة للمبرمجين من بعد

نفى علي أن علي نقلت إلى كبير جيانغ فان مجموعة الترفيه، فطر شارع الاستجابة لتسريح 14، الروبوت ستوديو 3.6.3 الافراج مستقرة | المهوسون العناوين

الجياع؟ نظام المعاملات لديه تاريخ 5 سنوات من التطور التطوري

المرتبة جافا سكريبت لأول مرة، وقانون VS الأكثر شعبية، ومطوري موضوعا ساخنا مكشوف

من الامن الى خط التجميع المرآة، قائمة عامل الميناء من أفضل الممارسات ونماذج مضادات

لماذا المصنعين يستخدمون لغة GO؟ قراءة من خلال الأقسام لغة GO

برمجة الناقل المهنية 21، الذي داس على بلدي حفرة

مبرمج البالغ من العمر 37 عاما أن تقطع! 120 يوم للعثور على عمل؟ لا أريد أن يكون القضاء عليها، وهذا يمكن أن تكون فرصتك الأخيرة

أي وعاء ساخن من Chongqing قوي ، يساعدك Python على استكشاف المتجر

واحد من 35 شخصا تقل أعمارهم عن 35 الابتكار العلمي والتكنولوجي، ومهمة الولايات المتحدة لفتح الدكتور AI غيض من فيض

تجنيد الناس! الخلية مقابلة المعرفة يجب السيطرة على ثماني نقاط