Skip to content

Commit d04bb80

Browse files
authored
fix: recover setup.sh for devnet (#631)
1 parent da2d64b commit d04bb80

File tree

2 files changed

+78
-1
lines changed

2 files changed

+78
-1
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ lint: license $(patsubst %, lint/%, $(SUBTREES_ALL))
3333

3434
config-devnet:
3535
PATH="./target/release:$(PATH)" \
36-
./scripts/setup.sh
36+
./scripts/devnet_setup.sh
3737

3838
run-devnet-fendermint:
3939
rm -rf ~/.fendermint/data/rocksdb

scripts/devnet_setup.sh

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
export FM_NETWORK=test
6+
7+
# Clean up old network files
8+
rm -rf test-network
9+
mkdir test-network
10+
11+
## Setup data directory and copy default app config
12+
rm -rf "$HOME/.fendermint"
13+
mkdir -p "$HOME/.fendermint/data"
14+
cp -r ./fendermint/app/config "$HOME/.fendermint/config"
15+
16+
# Init CometBFT
17+
rm -rf "$HOME/.cometbft"
18+
cometbft init
19+
20+
# Build actors
21+
if [[ -z ${SKIP_BUILD+x} || "$SKIP_BUILD" == "" || "$SKIP_BUILD" == "false" ]]; then
22+
(cd builtin-actors && make bundle-mainnet)
23+
mkdir -p fendermint/builtin-actors/output
24+
cp builtin-actors/output/builtin-actors-mainnet.car fendermint/builtin-actors/output/bundle.car
25+
# These need to be built for release
26+
cargo build --release -p fendermint_actors
27+
fi
28+
cp fendermint/builtin-actors/output/bundle.car "$HOME/.fendermint/bundle.car"
29+
cp fendermint/actors/output/custom_actors_bundle.car "$HOME/.fendermint/custom_actors_bundle.car"
30+
31+
## Copy IPC contracts
32+
mkdir -p "$HOME/.fendermint/contracts"
33+
cp -r ./contracts/out/* "$HOME/.fendermint/contracts"
34+
35+
# Create a new Genesis file
36+
fendermint genesis --genesis-file test-network/genesis.json new --chain-name test --base-fee 1000 --timestamp 1680101412 --power-scale 3
37+
38+
# Create some keys
39+
mkdir test-network/keys
40+
for NAME in bob charlie dave; do
41+
fendermint key gen --out-dir test-network/keys --name $NAME;
42+
done
43+
44+
## Use fixed address for alice to make dev w/ ADM cli less painful
45+
## Private key hex: 1c323d494d1d069fe4c891350a1ec691c4216c17418a0cb3c7533b143bd2b812
46+
echo "HDI9SU0dBp/kyJE1Ch7GkcQhbBdBigyzx1M7FDvSuBI=" | tr -d '\n' > test-network/keys/alice.sk
47+
echo "Ayh506Z/KRZnDgtarffTZQympqQ8A4hfwse1gK9t0NJi" | tr -d '\n' > test-network/keys/alice.pk
48+
49+
# Add accounts to the Genesis file
50+
## A stand-alone account
51+
fendermint genesis --genesis-file test-network/genesis.json add-account --public-key test-network/keys/alice.pk --balance 1000 --kind ethereum
52+
## A multi-sig account
53+
fendermint genesis --genesis-file test-network/genesis.json add-multisig --public-key test-network/keys/bob.pk --public-key test-network/keys/charlie.pk --public-key test-network/keys/dave.pk --threshold 2 --vesting-start 0 --vesting-duration 1000000 --balance 30
54+
55+
# Add validators to the Genesis file
56+
fendermint genesis --genesis-file test-network/genesis.json add-validator --public-key test-network/keys/bob.pk --power 1
57+
58+
# Add ipc to the Genesis file
59+
fendermint genesis --genesis-file test-network/genesis.json ipc gateway --subnet-id /r31415926 --bottom-up-check-period 10 --msg-fee 1 --majority-percentage 65
60+
61+
# Seal Genesis file
62+
fendermint genesis --genesis-file test-network/genesis.json ipc seal-genesis --builtin-actors-path "$HOME/.fendermint/bundle.car" --custom-actors-path "$HOME/.fendermint/custom_actors_bundle.car" --artifacts-path "$HOME/.fendermint/contracts" --output-path test-network/sealed_genesis.car
63+
64+
## Convert the Genesis file
65+
mv "$HOME/.cometbft/config/genesis.json" "$HOME/.cometbft/config/genesis.json.orig"
66+
fendermint genesis --genesis-file test-network/genesis.json into-tendermint --app-state test-network/sealed_genesis.car --out "$HOME/.cometbft/config/genesis.json"
67+
## Convert the private key
68+
mv "$HOME/.cometbft/config/priv_validator_key.json" "$HOME/.cometbft/config/priv_validator_key.json.orig"
69+
fendermint key into-tendermint --secret-key test-network/keys/bob.sk --out "$HOME/.cometbft/config/priv_validator_key.json"
70+
71+
## Generate a network key for the IPLD resolver
72+
mkdir -p "$HOME/.fendermint/keys"
73+
fendermint key gen --out-dir "$HOME/.fendermint/keys" --name network
74+
75+
## Copy validator keys
76+
cp test-network/keys/bob.pk "$HOME/.fendermint/keys/validator.pk"
77+
cp test-network/keys/bob.sk "$HOME/.fendermint/keys/validator.sk"

0 commit comments

Comments
 (0)