I am trying to spin up a small BABE PoS network of four nodes and not able to get GRANDPA to start.
It's hard to know what exact pieces of information to provide, here are some notes.
A few notes:
- I am inserting the session keys immediately with the --alice, --bob, etc flags for testing, for now, and I can confirm the expected keys are set via RPC.
- Blocks produce, authored by any validator running,but don't finalize. All the nodes are peered correctly.
- In a previous configuration, I noted at least Alice could get finalization to start GRANDPA not finalizing with 2 of 3 nodes on network. Then I switched to four nodes due to that answer.
- I note every node spits out the following grandpa log message endlessly
DEBUG tokio-runtime-worker grandpa: Casting prevote for round 1
DEBUG tokio-runtime-worker grandpa: Announcing block 0xb0d7…cad6 to peers which we voted on in round 1 in set 0
TRACE tokio-runtime-worker grandpa: Round 1: Got incoming message
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWBWC4U9DsmbrDHqDBvUbk9o6xbxnSZaDyXpzpPsJm6GVe /ip4/172.18.0.1/tcp/30334
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWBWC4U9DsmbrDHqDBvUbk9o6xbxnSZaDyXpzpPsJm6GVe /ip4/10.0.0.143/tcp/30334
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWBWC4U9DsmbrDHqDBvUbk9o6xbxnSZaDyXpzpPsJm6GVe /ip4/172.17.0.1/tcp/30334
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWBWC4U9DsmbrDHqDBvUbk9o6xbxnSZaDyXpzpPsJm6GVe /ip4/172.23.0.1/tcp/30334
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
ERROR tokio-runtime-worker sub-libp2p: add_set_reserved_peer with unknown protocol: /b0d742dbbf156179748027452dcd7c57c4eec99183ddab43f8def5c2b8bfcad6/grandpa/1
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWCtSAfr4yMvLZDXvid8vLPHKWyG5JLYi6MUFPj93nXbd2 /ip4/10.0.0.143/tcp/30335
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWCtSAfr4yMvLZDXvid8vLPHKWyG5JLYi6MUFPj93nXbd2 /ip4/172.23.0.1/tcp/30335
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWCtSAfr4yMvLZDXvid8vLPHKWyG5JLYi6MUFPj93nXbd2 /ip4/172.18.0.1/tcp/30335
INFO tokio-runtime-worker libp2p_mdns::behaviour: discovered: 12D3KooWCtSAfr4yMvLZDXvid8vLPHKWyG5JLYi6MUFPj93nXbd2 /ip4/172.17.0.1/tcp/30335
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
ERROR tokio-runtime-worker sub-libp2p: add_set_reserved_peer with unknown protocol: /b0d742dbbf156179748027452dcd7c57c4eec99183ddab43f8def5c2b8bfcad6/grandpa/1
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
TRACE tokio-runtime-worker grandpa: Polling round 1, state = State { prevote_ghost: None, finalized: None, estimate: None, completable: false }, step = Some(Prevoted)
Here is an example of the response from the roundState RPC. Any of the nodes report three keys in missing prevotes, and four in missing precommits, though I don't understand what to do with that information.
{
setId: 0
best: {
round: 1
totalWeight: 4
thresholdWeight: 3
prevotes: {
currentWeight: 1
missing: [
0x3544624b6A684E4c707158337A715a644e426339
0x35454354777636635a356e4a51506b3674576661
0x354641396e51445667323637444564386d315A79
]
}
precommits: {
currentWeight: 0
missing: [
0x3544624b6A684E4c707158337A715a644e426339
0x35454354777636635a356e4a51506b3674576661
0x354641396e51445667323637444564386d315A79
0x35476F4e6b66365764627843466E5064416E5959
]
}
}
background: []
}
You can see the code here I am starting the nodes like:
./target/release/my-node --chain ./dev.json --node-key="3a9a7f43c5e6415106d09334fe698a33eda6c204667524a7127b475630e3953b" --alice --in-peers 256 --validator --ws-external --rpc-external --rpc-cors all --rpc-methods=unsafe --base-path="./data/node1"
./target/release/my-node --chain ./dev.json --bob --in-peers 256 --validator --ws-external --rpc-external --rpc-cors all --rpc-methods=unsafe --base-path="./data/node2"
and so on...
-lafg=debug
?--node-
for Bob, and a different--node-key
for Alice than what you're using in your repo [here][1], so I suggest removing that from your question to remove confusion.