Skip to content

Iroha Հատուկ հրահանգներ ​

Երբ մենք խոսում էինք ինչպես Iroha գործում է, մենք ասացինք, որ Iroha Հատուկ հրահանգները միակ միջոցն են համաշխարհային պետության փոփոխման համար: Ինչպիսի՞ հատուկ հրահանգներ ունենք: Եթե կարդացել եք այս ձեռնարկի լեզվական ուղեցույցները, Դուք արդեն տեսել եք մի քանի հրահանգներ. Register<Account> եւ Mint<Numeric>.

Iroha հատուկ հրահանգների ամբողջական ցանկը հետեւյալն է.

ՈւսուցումՆկարագրություն
Գրանցում/բացառությունՏվեք ID blockchain- ի նոր միավորին:
Mint/BurnՄինետ / այրում թվային ակտիվներ կամ կրկնումների առաջացման համար:
SetKeyValue/RemoveKeyValueԲլոկչեյնի օբյեկտային մետադատա թարմացրեք:
SetParameterՍահմանեք լայն շղթայով պարամետր:
Grant/RevokeՏվեք կամ հանեք թույլտվությունները եւ դերերը:
ՏրանսֆերՏրանսֆերային սեփականություն կամ ակտիվի արժեք:
Բնային պահպանումների եւ ակտիվների կոճակներըՓակեք թվային ակտիվները արձանագրության պահեստում:
ExecuteTriggerԳործադրեք գործարկիչները:
Լոգ/Մշակութային/ԱջատումԳրեք, երկարացրեք կամ բարելավեք վազման ժամանակի վարքագիծը:

Եկեք սկսենք Iroha հատուկ հրահանգների ամփոփմամբ, թե ինչ օբյեկտներ կարող են կանչվել յուրաքանչյուր հրահանգի համար եւ ինչ հրահանգներ կան յուրաքանչյուր օբյակի համար:

Ամփոփում ​

Յուրաքանչյուր հրահանգի համար կա այն օբյեկտների ցանկ, որոնց վրա այս հրահանգը կարող է գործարկվել: Օրինակ, փոխանցման տարբերակները ընդգրկում են սեփականատերական գրքի առարկաները եւ թվային ակտիվները, մինչդեռ մինթինգն ընդգրկում է թվային ակտիվներ եւ առաջացնում կրկնությունները:

Որոշ հրահանգներ պահանջում են նշանակման վայրը նշել: Օրինակ, եթե դուք փոխանցում եք ակտիվները, միշտ պետք է նշեք, թե որ հաշիվի վրա եք դրանք փոխանցում: Մյուս կողմից, երբ ինչ-որ բան գրանցում եք, ձեզ հարկավոր է միայն այն օբյեկտը, որը ցանկանում եք գրանցել:

ՈւսուցումՆյութերԿայքում
EnsureAliasսովորական տիրույթների, տվյալների տարածքի եւ հաշիվների կարգավորումը
Գրանցում/բացառությունհաշիվներ, ակտիվների սահմանումներ, NFTs, դերակատարություններ, առաջադրանքներ, զուգընկերներ; տիրույթի հեռացում
Mint/Burnթվային ակտիվներ, կրկնումներըհաշիվներ կամ գործարկիչներ
SetKeyValue/RemoveKeyValueայն օբյեկտները, որոնք ունեն մետադատա. տիրույթներ, հաշիվներ, ակտիվների սահմանումներ, NFTs, RWAs, գործարկիչներ
SetParameterշղթայի պարամետրեր
Grant/Revokeդեր, թույլտվությունների տոքերհաշիվներ կամ դերակատարություններ
Տրանսֆերտիրույթներ, ակտիվների սահմանումներ, թվային ակտիվներ, NFTsհաշվետվություններ
Բնային պահպանումների եւ ակտիվների կոճակներըթվային ակտիվների պահպանումներ, ակտիվների փակումներ, անանուն պահպանումի պարտավորություններգնորդներ, նպատակակետեր կամ վեճի բաժանումներ
ExecuteTriggerգործարկիչներ
Լոգ/Մշակութային/Աջատումօրագրեր, կատարողին հատուկ օգտակար բեռներ, կատարողի թարմացումներ

ISI-ի դիտարկման եւս մեկ տարբերակ կա, ըստ գրասենյակային օբյեկտի, որը նրանք դիպչում են.

Նպատակհրահանգներ
Հաշիվգրանցել/բացառել հաշիվներ, ստանալ ակտիվներ, թարմացնել հաշիվի մետադատները, տրամադրել/վերականգնել թույլտվությունները եւ դերը
Դոմեյնապահովել տիրույթի կարգավորումը, չեղարկել տիրույթները, փոխանցել տիրապետման սեփականությունը, թարմացնել տիրույթի մետադատաները
Աշունների սահմանումըգրանցման/հեղափոխման սահմանումները, տիրապետության փոխանցումը, մետադատաների թարմացումը
ԳույքԹվային քանակություն, տրանսֆերային քանակությունը
Հավաքագրությունբացել, ընդունել, նշել ուղարկված վճարումը, ազատ արձակել, չեղյալ հայտարարել, վեճ լուծել, հանել կամ լրանալ բնիկ պահապանության գրառումները
NFTգրանցում/բացառություն NFTs, տիրապետության փոխանցում, մետադատա թարմացում
RWAգրանցել խմբաքանակները, փոխանցել քանակությունը, պահել/բեռնել, սառեցնել/ազանգել, փոխհատուցել, միավորել, թարմացնել մետադատաները եւ վերահսկողությունները
Աջակցողգրանցել/լքել գրանցումը, մինետի / այրման սթրիկատոր կրկնությունները, գործարկել սթրիկը, թարմացնել սթրիքատոր մետադատները
Աշխարհըգրանցել/բացառել զուգընկերներ եւ դերակատարություններ, սահմանել պարամետրեր, կատարելագործել կատարողին

CLI Օրինակներ ​

Այս էջի օրինակները ենթադրում են, որ դուք գործարկում եք հրամաններ վերածնային Iroha աշխատանքային տարածքից նախնական տեղական հաճախորդի կարգավորման դեմ.

bash
cargo run --bin iroha -- --config ./defaults/client.toml <command>

Եթե դուք տեղադրել է iroha բինար, օգտագործեք iroha --config ./defaults/client.toml փոխարենը. Փոխանակել ստորեւ տեղակալները արժեքներով ձեր ցանցից:

bash
export ALICE="<ALICE_ACCOUNT_I105>"
export BOB="<BOB_ACCOUNT_I105>"
export ASSET_DEF="<ASSET_DEFINITION_BASE58>"
export PEER_KEY="<BLS_PUBLIC_KEY_MULTIHASH>"
export PEER_POP="<PROOF_OF_POSSESSION_HEX>"

When targeting the public Taira testnet, use a Taira client configuration. Before running fee-paying examples, save the faucet helper from Get Testnet XOR on Taira as taira_faucet_claim.py, and then claim testnet XOR from the faucete:

bash
export TAIRA_ACCOUNT_ID="<TAIRA_I105_ACCOUNT_ID>"
export TAIRA_FEE_ASSET="6TEAJqbb8oEPmLncoNiMRbLEK6tw"

curl -fsS https://taira.sora.org/v1/accounts/faucet/puzzle | jq .
python3 taira_faucet_claim.py "$TAIRA_ACCOUNT_ID"

iroha --config ./taira.client.toml ledger asset get \
  --definition "$TAIRA_FEE_ASSET" \
  --account "$TAIRA_ACCOUNT_ID"

Գազի գազով ֆինանսավորվող ակտիվը տեսանելի դարձնելուց հետո անհրաժեշտ գազային ակտիվների մետադատածները միացրեք գործարքները գրելու համար.

bash
printf '{"gas_asset_id":"%s"}\n' "$TAIRA_FEE_ASSET" > taira.tx-metadata.json

cargo run --bin iroha -- \
  --config ./taira.client.toml \
  --metadata ./taira.tx-metadata.json \
  <command>

EnsureAlias ​

EnsureAlias տիրույթների ստեղծման եւ դրանց SNS վարձակալության համար սովորական առաջին թողարկման ուղին է: Այն հայտարարաբար կապում է տվյալների ճշգրիտ տարածքը, սեփականատերը, վարձակալման ժամկետը եւ գծագրային պահապանը, այնուհետեւ ստեղծել կամ վերանորոգել բոլոր պահանջվող վիճակը ատոմիկորեն: Օգտագործեք վավերացված POST /v1/aliases/setup/plan վերջային կետը կամ համապատասխանող CLI աշխատանքային հոսքը.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  app alias setup plan \
  --intent-file ./domain.intent.json \
  --plan-file ./domain.plan.json

cargo run --bin iroha -- --config ./defaults/client.toml \
  app alias setup apply --plan-file ./domain.plan.json

Նպատակը եւ ծրագիրը գաղտնի են, բայց կիրառեք քայլային նշաններ եւ ուղարկեք սովորական գործարք կազմված հաշիվի հետ: Ծրագիրը կապված է իր շղթայով, լիազորությամբ, կենդանի վիճակի կապակցությամբ եւ ժամկետով: Երբեք մի օգտագործեք այն մեկ այլ ցանցում.

(Un) գրանցում ​

Գրանցումը եւ չգրանցումը օգտագործվում են ID ցուցակ տալու համար բլոկչեյնի վրա գտնվող նոր կազմակերպությանը:

Ամեն ինչ, որ կարող է գրանցվել, ինչպես Registrable եւ Identifiable, բայց ոչ թե ամեն ինչ, որ Identifiable է Registrable: Շատ բաները գրանցվում են ուղղակիորեն, սակայն որոշ դեպքերում բլոկչեյնի ներկայացումը զգալիորեն ավելի շատ տվյալներ ունի: Անվտանգության եւ կատարողական պատճառների համար մենք օգտագործում ենք տվյալների նման կառույցների կառուցիչներ (օրինակ, NewAccount), իսկ զուգընկերային գրանցումը ունի սեփականության ապացույցի հատուկ հրահանգ: Որպես կանոն, ամեն ինչ, որը կարող է գրանցվել, կարող է նաեւ չկառուցված լինել, բայց դա ոչ մի խիստ եւ արագ կանոն չէ.

Դուք կարող եք գրանցել հաշիվներ, ակտիվների սահմանումներ, NFTs, զուգընկերներ, դերակատարություններ եւ գործարկիչներ: Դոմեյնային կարգավորումը օգտագործում է EnsureAlias; հումքի բեռը Register::Domain պահվում է genesis/bootstrap- ի համար: Զուգընկերների գրանցումը օգտագործում էRegisterPeerWithPop, որը պարունակում է զուգընկերի բանալին սեփականության ապացույց: Ստուգեք մեր անվանման կոնվենցիաները ՝ պարզելու համար կազմակերպությունների անունների նկատմամբ սահմանված սահմանափակումները:

RWA խմբաքանակները ստեղծվում են հատուկ RegisterRwa հրահանգի միջոցով: Ներկայիս կոդը չի բացահայտում UnregisterRwa հրահանգը. օգտագործեք RedeemRwa ներկայացված քանակությունը հանելու համար:

INFO

Նշենք, որ կախված այն բանից, թե ինչպես եք որոշում տեղադրել ձեր ծննդային բլոկը genesis.json- ում (հատկապես ՝ արդյոք ներառել եք թույլտվության տոքերների գրանցումը), հաշիվի գրանցման գործընթացը կարող է շատ տարբեր լինել: Ընդհանուր առմամբ, մենք կարող ենք ամփոփել այն այսպես.

  • Հանրային բլոկչեյնում յուրաքանչյուրը կարող է գրանցել հաշիվ:
  • Անձնական բլոկչեյնում կարող է լինել հաշիվների գրանցման յուրահատուկ գործընթաց: Տիպիկ մասնավոր բլոկշեյնում, այսինքն ՝ առանց հաշիվների արձանագրման որեւէ յուրահատակ գործընթացի, դուք պետք է հաշիվ ունենաք մեկ այլ հաշիվ գրանցելու համար:

Մենք մանրամասն քննարկում ենք այս տարբերությունները, երբ մենք համեմատել մասնավոր եւ հանրային բլոկչեյներ.

INFO

Ներկայումս զուգընկերների գրանցումը միակ միջոցն է ցանցին ավելացնելու համար այն զուգընկերը, որոնք չեն եղել սկզբնական վստահելի զուգընթացների մասը:

Օգտագործեք լեզվական հատուկ ուղեցույց ՝ բլոկչեյն օբյեկտների գրանցման համար.

ԼեզուԳլխավոր
CLIՕգտագործեք Iroha CLI տիրույթներ ստեղծելու եւ հաշիվների եւ ակտիվների գրանցման համար:
RustՕգտագործեք Rust դասընթացը.
Kotlin/JavaՕգտագործեք Kotlin/Java ձեռնարկը.
PythonՕգտագործեք Python դասընթացը.
JavaScript/TypeScriptՕգտագործեք JavaScript/TypeScript ձեռնարկը :

Պլանավորել եւ կիրառել սովորական տիրույթի կարգավորումը, այնուհետեւ վերագրեք տիրույթը, երբ այն այլեւս անհրաժեշտ չէ.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  app alias setup plan \
  --intent-file ./docs-domain.intent.json \
  --plan-file ./docs-domain.plan.json

cargo run --bin iroha -- --config ./defaults/client.toml \
  app alias setup apply --plan-file ./docs-domain.plan.json

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger domain unregister --id docs.universal

Գրանցման եւ չեղարկման հաշիվներ

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account register --id "$BOB"

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account unregister --id "$BOB"

Գրանցման եւ չեղարկման ակտիվների սահմանումները.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset definition register \
  --id "$ASSET_DEF" \
  --name docs_token \
  --alias docs_token#docs.universal \
  --scale 0

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset definition unregister --id "$ASSET_DEF"

Գրանցվել եւ չգրանցվել NFTs: NFT գրանցումը կարդում է իր բովանդակությունը JSON ստանդարտ մուտքի միջոցով.

bash
printf '{"kind":"badge","level":"intro"}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger nft register --id 'badge$docs.universal'

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger nft unregister --id 'badge$docs.universal'

Գրանցման եւ չեղարկման դեր:

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger role register --id operators

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger role unregister --id operators

Register եւ unregister triggers. Trigger գրանցման կարիք կա՛մ կազմված IVM բայթ կոդը, կա՛մ սերիալացված հրահանգների ցուցակ: Այս օրինակում կառուցվում է Log հրահանգի հետ CLI եւ խողովակներ այն դեպի trigger գրանցման:.

bash
cargo run --bin iroha -- --config ./defaults/client.toml -o \
  ledger transaction ping --log-level INFO --msg "hourly cleanup" |
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger trigger register --id hourly_cleanup \
  --instructions-stdin \
  --filter time \
  --time-start 5m \
  --time-period-ms 3600000

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger trigger unregister --id hourly_cleanup

Գրանցել եւ չեղարկել զուգընկերները: Ստեղծեք BLS բանալին եւ PoP ՝ kagami, եթե դուք դեռ չունեք դրանք.

bash
cargo run --bin kagami -- keys --algorithm bls_normal --pop --json

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger peer register --key "$PEER_KEY" --pop "$PEER_POP"

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger peer unregister --key "$PEER_KEY"

Մինտ/Բուրն ​

Մինթինգը եւ այրումը կարող են վերաբերել թվային ակտիվներին եւ առաջացնում են սահմանափակ կրկնությունների քանակով: Որոշ ակտիվներ կարող են հայտարարվել որպես ոչ-մինտացվող, ինչը նշանակում է, որ դրանք կարող են մինետվել միայն մեկ անգամ գրանցումից հետո:

Աշունները հաշվարկվում են հատուկ հաշիվ, սովորաբար այն հաշիվը, որը առաջին հերթին գրանցել է ակտիվը: Գույքի քանակությունը ոչ բացասական է, այնպես որ դուք երբեք չեք կարող ունենալ $-1.0 ակտիվի կամ այրել բացասական գումար եւ ստանալ mint.

Օգտագործեք լեզվական հատուկ ուղեցույց ՝ Mint blockchain ակտիվների համար.

Ահա այրվող ակտիվների օրինակներ.

Մինետային եւ այրվող թվային ակտիվներ

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset mint \
  --definition "$ASSET_DEF" \
  --account "$ALICE" \
  --quantity 100

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset burn \
  --definition "$ASSET_DEF" \
  --account "$ALICE" \
  --quantity 10

Մինետի եւ այրման սխալի կրկնությունները.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger trigger mint --id hourly_cleanup --repetitions 5

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger trigger burn --id hourly_cleanup --repetitions 1

Փոխանցում ​

Փոխանցումները փոխանցում են սեփականությունը կամ արժեքը հաշիվների միջեւ: Գնավոր փոխանցման տարբերակները ընդգրկում են դոմեյներ, ակտիվների սահմանումներ, թվային ակտիվներ եւ NFTs: RWA քանակության շարժումը օգտագործում է հատուկ TransferRwa եւ ForceTransferRwa հրահանգները, որոնք նկարագրված են Real-World Assets.

Այս նպատակով պետք է տրվի հաշվետվություն ակտիվների փոխանցման թույլտվություն. Նշենք, թե ինչպես կարող են փոխանցվել ակտիվները CLI կամ Rust.

Թվային ակտիվների փոխանցում.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset transfer \
  --definition "$ASSET_DEF" \
  --account "$ALICE" \
  --to "$BOB" \
  --quantity 25

Տեղափոխման տիրույթը, ակտիվի սահմանումը եւ NFT սեփականությունը.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger domain transfer --id docs.universal --from "$ALICE" --to "$BOB"

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset definition transfer --id "$ASSET_DEF" --from "$ALICE" --to "$BOB"

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger nft transfer --id 'badge$docs.universal' --from "$ALICE" --to "$BOB"

Բնակչական գրավի եւ ակտիվների փակիչներ ​

Native escrow հրահանգները հաշիվային ակտիվների կողպեքը պահվում են գլխավոր գրքի կառավարվող արձանագրության պահպանման մեջ: Նրանք օգտագործվում են շուկայական ոճի կարգավորման, ընդհանուր ակտիվների կողոպուտների եւ անանուն պաշտպանված հոսքերի համար:

Շուկայի պահպանակների օգտագործումը OpenAssetEscrow, AcceptAssetEscrow, MarkEscrowPaymentSent, ReleaseAssetEscrow, CancelAssetEscrow, OpenEscrowDispute, եւ ResolveEscrowDispute. Գնացական ակտիվների փակման օգտագործումը OpenAssetLock, DrawdownAssetLock, CancelAssetLock, եւ ExpireAssetLock. Anonymous escrow արտացոլում է շուկայական կյանքի ցիկլը OpenAnonymousAssetEscrow, AcceptAnonymousAssetEscrow, MarkAnonymousEscrowPaymentSent, ReleaseAnonymousAssetEscrow, CancelAnonymousAssetEscrow, OpenAnonymousEscrowDispute, եւ ResolveAnonymousEscrowDispute.

Այս ISIs-ները ներկայումս չունեն առաջին դասի CLI հրամաններ: Օգտագործեք տիպված SDK կառուցապատողներ կամ շարականացված հրահանգների օգնական բեռներ, եւ տեսեք Native Asset Escrow ՝ կյանքի ցիկլի մանրամասների, թույլտվությունների, հարցումների, իրադարձությունների եւ Rust օրինակների համար.

Գրանտ/Վերահսկում ​

Հատկացման եւ վերացման հրահանգները օգտագործվում են հաշիվի թույլտվությունների եւ դերի համար :

Grant օգտագործվում է օգտվողին մշտապես տրամադրելու կամ՛ մեկ թույլտվություն, կամ՛ մի խումբ թույլտվություններ ("ռոլ") ։ տրված դերերը եւ թույլտվությունները կարող են հեռացվել միայն Revoke հրահանգի միջոցով: Այդպիսով, այս հրահանգները պետք է օգտագործվեն զգույշորեն:

Հաշվետու դերակատարություն տրամադրել եւ վերացնել:

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account role grant --id "$BOB" --role operators

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account role revoke --id "$BOB" --role operators

Grant եւ revocate թույլտվությունների տոքեր. թույլտվության հրամանները ընթերցում են թույլտվություն օբյեկտը ստանդարտ մուտքի:

bash
printf '{"name":"CanSetParameters","payload":null}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account permission grant --id "$BOB"

printf '{"name":"CanSetParameters","payload":null}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account permission revoke --id "$BOB"

Դասերի համար թույլտվություններ տրամադրել եւ վերացնել.

bash
printf '{"name":"CanRegisterDomain","payload":null}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger role permission grant --id operators

printf '{"name":"CanRegisterDomain","payload":null}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger role permission revoke --id operators

SetKeyValue/RemoveKeyValue ​

Այս հրահանգները թարմացնում են օբյեկտ մետադատա: Օգտագործեք SetKeyValue ՝ մետադատայի մուտք գործելու կամ փոխարինելու համար, եւ RemoveKeyValue ՝ մեկը ջնջելու համար:

Metadata set հրամանները կարդում են JSON արժեքը ստանդարտ մուտքի միջոցով.

bash
printf '"production"\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger domain meta set --id docs.universal --key environment

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger domain meta remove --id docs.universal --key environment

Նույն ձեւը հասանելի է հաշվետվությունների, ակտիվների սահմանումների, NFTs, RWAs եւ գործարկիչների համար.

bash
printf '{"display_name":"Alice"}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger account meta set --id "$ALICE" --key profile

printf '{"issuer":"docs"}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger asset definition meta set --id "$ASSET_DEF" --key issuer

printf '{"color":"blue"}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger nft meta set --id 'badge$docs.universal' --key traits

printf '{"owner":"ops"}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger trigger meta set --id hourly_cleanup --key owner

SetParameter ​

SetParameter փոխում է ակտիվ տվյալների մոդելի եւ կատարողի կողմից բացահայտված ողջ շղթայի պարամետրերը:

Սահմանեք պարամետր' ստանդարտ մուտքի ժամանակ անցնելով մեկ պարամետրային JSON օբյեկտ.

bash
printf '{"Sumeragi":{"BlockTimeMs":1000}}\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger parameter set

ExecuteTrigger ​

Այս հրահանգը օգտագործվում է գործարկիչների կատարման համար:

CLI-ը կարող է գրանցել գործարկիչները եւ ուղղակիորեն բաժանորդագրվել գործարկման իրադարձություններին: Այն չի տրամադրում տիպված execute trigger հրաման, ուստի պետք է ուղարկի ձեռագիր ExecuteTrigger հրահանգ. Սերիալացված InstructionBox ստեղծում է SDK կամ կատարող գործիքով եւ արդյունաբերված JSON շարքը անցնում ledger transaction stdin:

bash
printf '["<BASE64_EXECUTE_TRIGGER_INSTRUCTION_BOX>"]\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger transaction stdin

cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger events trigger-execute --timeout 30s

Այլ հրահանգներ ​

Iroha բացատրում է նաեւ վարման ժամանակի եւ կատարողի ինտեգրման համար ավելի ցածր մակարդակի հրահանգները.

  • Log: իրականացման ընթացքում արձանագրություն թողարկեք
  • CustomInstruction: իրականացնողին հատուկ JSON օգտակար բեռներ տեղափոխել:
  • Upgrade: ակտիվացրեք կատարողի թարմացումը

Պինգի օգնականին Log հրահանգ ուղարկեք.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger transaction ping --log-level INFO --msg "hello from docs"

Ներկայացրեք անհատական կատարողի հրահանգ ՝ որպես սերիալացված InstructionBox: Օգտակար բեռի ձեւը հատուկ է կատարողի համար, այնպես որ առաջադրեք հրահանգը համապատասխանող SDK կամ կատարողի գործիքային սարքավորմամբ.

bash
printf '["<BASE64_CUSTOM_INSTRUCTION_BOX>"]\n' |
  cargo run --bin iroha -- --config ./defaults/client.toml \
  ledger transaction stdin

Բարձրացրեք կատարողը կազմված IVM բայթքոդային ֆայլից.

bash
cargo run --bin iroha -- --config ./defaults/client.toml \
  ops executor upgrade --path ./target/ivm/executor.ivm