stratisproject / StratisBitcoinFullNode

Bitcoin full node in C#
https://stratisplatform.com
MIT License
783 stars 315 forks source link

[FN] Additional handling for malformed peers.json #4192

Closed zeptin closed 3 years ago

zeptin commented 3 years ago

I have carefully re-reviewed the logic around peer discovery; I do not actually see how a node with acceptable network connectivity can remain without peers for an extended period even if the peers.json somehow got corrupted.

Nevertheless, this traps for any exceptions (if the deserialisation of the JSON happens to throw any - this is somewhat doubtful), and initialises an empty list if the deserialised object is ever null.

The expected behaviour if this occurs is that the PeerDiscoveryLoop will in any case run almost immediately after startup and determine that there are no known peers. It will then add the DNS seeds & seed nodes as discovery candidates, which should elicit some connectable peers.