thrumdev / blobs

Blobchains on Polkadot and Kusama
https://docs-site-pi.vercel.app
Apache License 2.0
64 stars 8 forks source link

Ikura

Blobchains on Polkadot and Kusama

Project Structure

blobs: The Ikura monorepo.
├──adapters: Adapters for various rollup development kits (RDK).
│   ├── sovereign: An adapter connecting Sovereign to Ikura.
├──demo: Projects showcasing integration of RDKs with Ikura.
│   ├── rollkit: Rollkit's GM rollup.
│   ├── sovereign: Sovereign Demo Rollup.
|--docs-site: Documentation site source, using Docusaurus.
|──ikura: Ikura source code.
│   ├──ikura-chain: Implementation of the Ikura parachain.
│   ├──ikura-nmt: Namespaced Merkle Trie definitions.
│   ├──ikura-serde-util: Various utilities for serde.
│   ├──ikura-shim: Shim between ikura parachain RPC and RDK adapters.
│   ├──ikura-subxt: Bindings to Ikura RPC.

Running Demos

Prerequisites

In general you need to have the following components running:

build ikura-chain:

cd ikura/chain
cargo build --release

Make sure that zombienet binary and ikura-chain binary are in your PATH.

Now you can launch 2 polkadot validators and one ikura-chain collator

./zombienet.sh

Sovereign Demo

launch the ikura-shim with:

cargo run -p ikura-shim -- serve sov --submit-dev-alice

then launch the demo rollup with:

cd demo/sovereign/demo-rollup
cargo run

execute the test

cd demo/sovereign/demo-rollup
./test_create_token.sh

You should see at the end that a batch of two transactions was correctly pushed in the DA, fetched back and then executed in the rollup to create and mint 4000 new tokens

If you want to rerun the demo, you need to reset zombienet and the demo-rollup

rm -r zombienet
cd demo/sovereign/demo-rollup
# clean the ledger db
make clean

Rollkit Demo

cargo run -p ikura-shim -- serve rollkit --port 26650 --submit-dev-alice --namespace 01

Original instructions should work. Make sure to check them out for prerequisites and other details. Below is a quick summary for reference.

Make sure that go bin folder is in path.

export PATH=$PATH:$(go env GOPATH)/bin

go to the rollkit demo folder and launch ./init-local.sh

cd demo/rollkit
./init-local.sh

Then use the following command to get the demo keys:

gmd keys list --keyring-backend test

save them into environment variables:

export KEY1=gm1sa3xvrkvwhktjppxzaayst7s7z4ar06rk37jq7
export KEY2=gm13nf52x452c527nycahthqq4y9phcmvat9nejl2

then you can send a transaction and check the results:

# it will ask for confirmation, type "y" and press enter
gmd tx bank send $KEY1 $KEY2 42069stake --keyring-backend test \
--node tcp://127.0.0.1:36657

gmd query bank balances $KEY2 --node tcp://127.0.0.1:36657
gmd query bank balances $KEY1 --node tcp://127.0.0.1:36657

If you see the amounts:

10000000000000000000042069
9999999999999999999957931

that means it worked!

To reset the chain

rm -r zombienet
cd demo/rollkit
gmd tendermint unsafe-reset-all