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 байткоды
  • детерминистік нұсқаулық үстіңгі қабатты
  • орындау іс-шараларының міндеттемесі
  • газ саясаты бойынша міндеттеме

Дәлелді орындалған байткодқа байланыстырады. Құбырдың саясатына қарай, растаушылар дәлелдемені тексеруге және қосымша қауіпсіздік тексерісі ретінде қайта ойнауға болады.

Қолданылған келісім-шарттық шақырулар

Executable::ContractCall орналастырылған келісімшарт инстантын мекенжайы бойынша шақырады. Келісімшарт коды бөлек тіркелсе және мәмілелер оны әрбір рет байткодымен бірге жүрудің орнына анықтама арқылы шақыру керек.

Операциялық нұсқаулық

  • Контракттардың мінез-құлқы жергілікті қабырға сағатына, хост файлдар жүйесінің күйіне, желілік шақыруларға немесе басқа да жергiлiктi кiрiстерге байланысты болмауы тиіс.
  • Пайдалы жүктемелерді ықшамдаңыз. Үлкен байткод транзакцияның көлемін және блоктың таралу құнын арттырады.
  • Кітаптық кітапшаның қарапайым өзгерістері үшін түрлендіру нұсқауларын артық көремін. Олар тексеруге оңай және орындау арзан.
  • Келісімшартты жаңарту және тіркеу рұқсаттарын жоғары тәуекелді операциялық бақылау ретінде қараңыз.

Сондай-ақ қараңыз: