In order to filter nodes based on whether they follow chain params orIf a peer provides headers that do not match the checkpoint, ban them.
not, the seeder needs to be able to handle the `HEADERS`This will not only provide higher quality seeds but also make it easier to supply
messages after sending a `GETHEADERS` message. This diff allows the
seeder to receive and process the new type of message and identify nodes
that are following the correct chain. Specifically, a node must have at least
the block immediately after the most recent checkpoint to be considered a seed.
If a node responds with a `HEADERS` message where the first header's
`hashPrevBlock` is not the latest checkpoint or if the message was malformed, it is
banned. If it receives an empty `HEADERS`, then the node is marked `bad`, but not
banned. Otherwise, the header is marked as a good seed. In all cases, the seeder
will wait until it has received addrs from the node before disconnectingseeds for both BCHN and BCHA networks.
Depends on D5682 and D6283