Nejprve Co je Soroban ?
Teoretický příklad
V oddílu jsme vytvořili jednoduchou smlouvu, která ukládá a načte data.
Smlouvy Soroban mají k dispozici úložiště pro trvalé ukládání dat.
Každý kus dat je spojen s klíčem, pomocí kterého se později data načtou.
Smlouva může modifikovat pouze svá vlastní data.
Všechna uložená data dobu životnosti – TTL.
Rozeberme si to detailněji
Víme, jak ukládat a načítat data v rámci Soroban ledgeru.
Vytvořili jsme smlouvu, která zvětšuje číslo o jedna a ukládá jeho hodnotu do úložiště – inkrementuje.
Klíčem pro uložení této hodnoty je proměnná pojmenovaná COUNTER.
Kdykoliv chceme hodnotu čísla načíst, použijeme tuto proměnnou.Uložená data mají také TTL (dobu životnosti) = počet ledgerů.
Ledger je záznam v blockchainu – účetní kniha.
Pokud TTL není pravidelně prodlužováno, data se „archivují“ a nelze je číst.
Např. funkciextend_ttl
k prodloužení TTL úložiště při každém zvětšení čísla.
Dodatečně bychom mohli například
Přidat do smlouvy funkci
get_current_value
, která vrací aktuální hodnotu čítače.
Přidat funkce jakodecrement
pro dekrementaci čítače neboreset
pro jeho resetování.
Jak nasadit smlouvu do Pi?
Smlouva je jakási datová věta, akorát v bajtech.
Abychom získali bajty je potřeba sestavit počítačové instrukce, tedy kompilovat – pomocípinetwork contract build
.
Abychom ji nahráli do sítě musíme provést instalaci pomocí příkazupinetwork contract install
.
Smlouva se musí po instalaci začlenit do oběhu – tedy existovat a existenci zajišťuje v programování nová instance.
Abychom řekli, že existuje je potřeba příkazpinetwork contract deploy
.
V ten moment se nám z naší smlouvy stane v podstatě konkrétní aplikace tedy smlouva je program.
Tím, že existuje získáme její ID s nasazenou smlouvou pomocí příkazupinetwork contract invoke
.
Zadáme ID smlouvy a název funkce, kterou chceme spustit.
