Networking code to connect to other peers and exchange block, transactions, etc.
Message types that transit over the network and related serialization code.
A no-op network adapter used for testing.
Data stored for any given peer we've encountered.
P2P server implementation, handling bootstrapping to find and connect to peers, receiving connections from other peers and keep track of all of them.