The Slush SDK allows you to spin up L3s on Starknet.
For now this entails running Tendermint nodes and linking them to light clients on Starknet. This repo contains the modified Tendermint files as well as the Cairo contracts (modelled on Tendermint-Sol).
Send transactions to tendermint with the ABCI-CLI.
Tool | version |
---|---|
Go | 1.17 |
Cairo | 0.10.3 |
Starknet Devnet | 0.4.2 |
Protostar | 0.9.1 |
Python (with pyenv) | 3.9 |
Before installing Starknet Devnet on M1 check this thread.
Clone this repo
git clone https://github.com/slushsdk/slush.git && cd slush
Build the binary:
make build
If using testnet (alpha-goerli):
Write your Argent/Braavos wallet account's private key in hex format into a file called
pkey
:echo "0x..." > pkeyUse the init command with the
--network testnet
and--account-address
flags:./build/slush init validator --home ./valdata --network testnet --account-address 0x...
If using local devnet (starknet-devnet):
Start Starknet devnet with
--seed 42
:starknet-devnet --seed 42Write the first pre-deployed account's private key into a file called
seed42pkey
:echo "0xbdd640fb06671ad11c80317fa3b1799d" > seed42pkeyUse the init command with:
./build/slush init validator --home ./valdata
Start the local node:
./build/slush start --proxy-app=kvstore --home ./valdata
Cleanup:
make clean && rm -rf ./valdata
You can deploy on alpha-goerli testnet.
On your chosen validator node:
Write your Argent/Braavos wallet private key into pkey file:
echo "0x..." > pkeyBuild the binary:
make build
Init:
./build/slush init validator --home ./valdata --network testnet --account-address 0x...Run the inputs for the non-validator nodes. Execute the output on the non-validator nodes:
python multiple-non-validator-node-steps.pyAnd you also need to start the validator node on the original machine, with:
./build/slush start --home ./valdata --proxy-app=kvstore
Initialize a non-validator node with the outputs of the multiple-non-validator-node-steps.py script. These will look like:
Initialize the non-validator node.
./build/slush init full --home ./valdata
Copy the content of the valdata/config/genesis.json file from the validator node to the valdata/config folder of the other non-validator computers.
Run the following command to start a non-validator node:
./build/slush start --home ./valdata --proxy-app=kvstore --p2p.persistent-peers "SOME-LONG-ADDRESS@SOME-IP:26656"
Cleanup:
make clean && rm -rf ./valdata
Our roadmap is here.
We are looking for exciting engineers to join!