Skip to content

ہوشیار معاہدے

Iroha ٹرانزیکشنز Executable مفید بوجھ انجام دیتے ہیں۔ موجودہ ڈیٹا ماڈل کی حمایت کرتا ہے:

  • Executable::Instructions: Iroha خصوصی ہدایات کا ایک ترتیب دیا سیٹ
  • Executable::ContractCall: ایک تعینات معاہدے کی مثال کے لئے ایک ضمنی حوالہ کال
  • Executable::Ivm: Iroha VM بائٹ کوڈ
  • Executable::IvmProved: Iroha VM بائٹ کوڈ جس میں پہلے سے کمپیوٹرائزڈ ہدایات کی اوورلیپ اور ثبوت کے وعدے ہیں۔

Kotodama، Iroha کی اعلیٰ سطحی اسمارٹ کنٹریکٹ زبان ہے۔ .ko سورس فائل ڈیٹرمنسٹک IVM بائٹ کوڈ میں کمپائل ہوتی ہے، جسے عموماً تعیناتی کے لیے .to آرٹیفیکٹ کے طور پر محفوظ کیا جاتا ہے۔ Kotodama صرف IVM کو ہدف بناتی ہے۔ یہ RISC-V یا WebAssembly کو ہدف نہیں بناتی۔

پہلی ریلیز صرف ABI ورژن 1 کی معاونت کرتی ہے۔ syscall اور pointer-ABI پالیسی کو معاہدے کے داخلے اور عمل درآمد کے دوران غیر مشروط طور پر نافذ کیا جاتا ہے؛ رن ٹائم مطابقت کا کوئی ٹوگل موجود نہیں ہے۔

ہوشیار معاہدوں کا استعمال کب کرنا ہے

عام ہدایات کا استعمال کریں جب ٹرانزیکشن کو براہ راست بیان کیا جا سکے:

  • رجسٹرڈ یا غیر رجسٹر شدہ اشیاء
  • مائنٹ، برن یا ٹرانسفر اثاثے
  • اپ ڈیٹ میٹا ڈیٹا
  • اجازت دینا یا منسوخ کرنا
  • ایک ٹرگر انجام دیں
  • سلسلہ پر پیرامیٹرز مقرر کریں

اسمارٹ معاہدہ کا استعمال کریں جب ٹرانزیکشن کو پیکڈ منطق کی ضرورت ہو جو جامد ہدایات کے تسلسل کے طور پر بیان کرنا مشکل ہے ، یا جب کسی تعینات کردہ معاہدے کی مثال کو حوالہ کے ذریعہ بلایا جانا چاہئے۔

IVM قابل عمل

Executable::Ivm خام IVM بائٹ کوڈ لے جاتا ہے۔ نوڈس اس بائٹکوڈ کو سلسلہ کے لئے ترتیب شدہ رن ٹائم کی حدود کے اندر انجام دیتے ہیں۔ بائیٹکوڈ چھوٹا اور تعیناتی رکھیں؛ معاہدے لین دین کے نفاذ کا حصہ ہیں اور لہذا اتفاق رائے پر اثر انداز کرتے ہیں۔

Executable::IvmProved ثبوت لے جانے والے بہاؤ کے لئے ڈیزائن کیا گیا ہے۔ اس میں:

  • IVM بائٹکوڈ
  • ایک تعیناتی ہدایات کی overlay
  • ایک عملدرآمد کے واقعات کا عہد
  • گیس پالیسی کا عزم

ثبوت انجام دیئے گئے بائٹ کوڈ سے اوورلے کو منسلک کرتا ہے۔ پائپ لائن پالیسی کے مطابق ، تصدیق کنندہ ثبوت کی توثیق کرسکتے ہیں اور حفاظت کی اضافی جانچ کے طور پر دوبارہ پلے عملدرآمد کریں۔

تعینات کردہ معاہدے کی کالز

Executable::ContractCall ایڈریس کے ذریعہ ایک تعینات کردہ معاہدے کی مثال کا حوالہ دیتا ہے۔ جب معاہدہ کوڈ الگ سے رجسٹر کیا جاتا ہے تو اس کا استعمال کریں اور ٹرانزیکشنز کو ہر بار بائٹ کوڈ لے جانے کے بجائے اسے ریفرنس کے ذریعے بلانا چاہئے۔

آپریشنل رہنمائی

  • معاہدوں کو تعیناتی رکھیں۔ معاہدے کا رویہ مقامی دیوار کی گھڑی کے وقت ، میزبان فائل سسٹم کی حالت ، نیٹ ورک کالز یا دیگر ہم مرتبہ مقامی ان پٹ پر منحصر نہیں ہونا چاہئے۔
  • مفید بوجھ کو کمپیکٹ رکھیں. بڑے بائٹکوڈ سے ٹرانزیکشن کا سائز اور بلاک پھیلاؤ لاگت میں اضافہ ہوتا ہے.
  • لیجر کی سادہ تبدیلیوں کے لئے ٹائپ کردہ ہدایات کو ترجیح دیتے ہیں۔ ان کا آڈٹ کرنا آسان ہے اور عمل درآمد کرنا سستا ہے۔
  • معاہدے کو اپ گریڈ کرنے اور رجسٹریشن کی اجازتوں کو اعلی خطرہ آپریٹنگ کنٹرول کے طور پر علاج کریں۔

یہ بھی ملاحظہ کریں: