This example shows a minimal NCN usage.
- The program initializes the vault connected to a NCN.
- The admin can ask operators to vote a certain message.
- Operators then vote with their token delegations.
- Finally, the admin checks the consensus and distributes rewards.
- Solana CLI
- Jito Restaking CLI (https://github.com/jito-foundation/restaking/blob/master/cli/getting_started.md#setup)
cd mini-ncn
anchor test
NOTE: User should just run anchor test
. This section is just showing steps in scripts/run_all.sh
.
```sh
# start validator
./scripts/start-localnet.sh
# prepare keypair
solana-keygen new -o ./keys/jito-admin.json
solana-keygen new -o ./keys/op0-admin.json
solana-keygen new -o ./keys/op1-admin.json
solana-keygen new -o ./keys/user.json
solana airdrop -u l -k ./keys/jito-admin.json 10
solana airdrop -u l -k ./keys/op0-admin.json 10
solana airdrop -u l -k ./keys/op1-admin.json 10
solana airdrop -u l -k ./keys/user.json 10
# alias for simpler cli
alias jito-admin="jito-restaking-cli --rpc-url http://127.0.0.1:8899 --keypair ./keys/jito-admin.json"
alias jito-op0="jito-restaking-cli --rpc-url http://127.0.0.1:8899 --keypair ./keys/op0-admin.json"
alias jito-op1="jito-restaking-cli --rpc-url http://127.0.0.1:8899 --keypair ./keys/op1-admin.json"
alias jito-user="jito-restaking-cli --rpc-url http://127.0.0.1:8899 --keypair ./keys/user.json"
```
```sh
jito-admin restaking config initialize
```
```sh
jito-admin restaking ncn initialize
```
```sh
jito-op0 restaking operator initialize 1000
```
```sh
jito-admin restaking ncn initialize-ncn-operator-state <NCN> <OPERATOR>
jito-admin restaking ncn ncn-warmup-operator <NCN> <OPERATOR>
jito-op0 restaking operator operator-warmup-ncn <OPERATOR> <NCN>
```
```sh
spl-token create-token
spl-token create-account <TOKEN_MINT> --owner <ADMIN>
spl-token mint <TOKEN_MINT> 1000 -- <TOKEN_ACCOUNT>
```
```sh
jito-admin vault vault initialize <TOKEN_MINT> 5 10 100 9 1000000000
```