We want to automate the launch of our bootnodes for our parachain. We generated a spec file with an IP address as well as an identity that are repeatable. We used the --node-key
to get a repeatable identity and each IP address has a unique nodekey
The issue is that when a node downloads the spec file which has its identity as part of the bootnodes inside the spec file we receive the below error
2022-07-29 11:35:19 [Parachain] 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ` with `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ`:`Dialer { address: "/ip4/13.59.92.128/tcp/30333/p2p/12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ", role_override: Dialer }`.
2022-07-29 11:35:22 [Relaychain] ⚙️ Syncing 668.6 bps, target=#1255136 (36 peers), best: #116194 (0xd001…c67d), finalized #115761 (0xa114…c722), ⬇ 8.5MiB/s ⬆ 8.7kiB/s
2022-07-29 11:35:23 [Parachain] 💤 Idle (4 peers), best: #4654 (0x62d2…3104), finalized #0 (0x32ab…a5aa), ⬇ 0.2kiB/s ⬆ 0.5kiB/s
2022-07-29 11:35:24 [Parachain] 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ` with `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ`:`Dialer { address: "/ip4/13.59.92.128/tcp/30333/p2p/12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ", role_override: Dialer }`.
2022-07-29 11:35:27 [Relaychain] ⚙️ Syncing 1025.2 bps, target=#1255135 (37 peers), best: #121320 (0x4854…ce41), finalized #121081 (0xeeb5…6510), ⬇ 14.3MiB/s ⬆ 12.9kiB/s
2022-07-29 11:35:28 [Parachain] 💤 Idle (4 peers), best: #4654 (0x62d2…3104), finalized #0 (0x32ab…a5aa), ⬇ 0.2kiB/s ⬆ 0.2kiB/s
2022-07-29 11:35:29 [Parachain] 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ` with `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ`:`Dialer { address: "/ip4/13.59.92.128/tcp/30333/p2p/12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ", role_override: Dialer }`.
2022-07-29 11:35:31 [Parachain] ✨ Imported #4668 (0x5840…8332)
2022-07-29 11:35:31 [Parachain] ✨ Imported #4668 (0xabba…cad3)
2022-07-29 11:35:31 [Parachain] ✨ Imported #4668 (0x3ffa…be31)
2022-07-29 11:35:31 [Parachain] ✨ Imported #4668 (0xa2dd…f089)
2022-07-29 11:35:32 [Relaychain] ⚙️ Syncing 923.2 bps, target=#1255136 (38 peers), best: #125936 (0x4f02…11e3), finalized #125810 (0xe9b6…04f5), ⬇ 10.4MiB/s ⬆ 10.0kiB/s
2022-07-29 11:35:34 [Parachain] 💤 Idle (4 peers), best: #4654 (0x62d2…3104), finalized #0 (0x32ab…a5aa), ⬇ 5.9kiB/s ⬆ 0.4kiB/s
2022-07-29 11:35:34 [Parachain] 💔 The bootnode you want to connect provided a different peer ID than the one you expect: `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ` with `12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ`:`Dialer { address: "/ip4/13.59.92.128/tcp/30333/p2p/12D3KooWJp6SAVLsc2aoEAwP3D9ETEcBKW9tvV1ZvfDqXBUw74zQ", role_override: Dialer }`.
Please note that despite the error, the bootnode does discover the other boot nodes and syncs successfully.
So the question is how do we automate the launching of bootnodes, this same spec file works fine when you are launching a node that connects to these bootnodes but it assumes the bootnode is already running
how do you automate the launch of the bootnodes themselves if they are not running on the same instance?