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 ҡулланылған килешеү экземпляр адресы буйынса саҡыра. был ҡулланма контракт коды айырым теркәлгән ваҡытта һәм транзакциялар һәр тапҡыр байт-код менән йөрөтөү урынына, уны референс аша саҡырырға тейеш була.

Операция буйынса күрһәтмәләр

  • Контракттарҙы детерминистик һаҡлағыҙ. Контракт тәртибе локаль стена сәғәтенә, хост файлдар системаһының торошона, селтәрҙәге шылтыратыуҙарға йәки башҡа урындағы бер-береһенә инеүҙәргә бәйле булмаҫҡа тейеш.
  • Яҡшы йөкләмәләрҙе компакт килеш һаҡлағыҙ. ҙур байткод транзакция күләмен һәм блоктар таралыу сығымдарын арттыра.
  • Леджорҙа ябай үҙгәрештәр өсөн яҙыу буйынса күрһәтмәләр өҫтөнлөк итә, уларҙы тикшереү еңелерәк һәм үтәү арзаныраҡ.
  • Контрактты яңыртыу һәм теркәлеү рөхсәттәре юғары хәүефле оператив контролдәр тип иҫәпләнә.

Шулай уҡ ҡарағыҙ: