# Functions
HandleHandshake sets up the new_handshake protocol - It sends a version message and waits for an incoming version message, as well as a verack for the sent version.
ReceiveVersion waits for the peer to send a version message, sends a verack in response, and updates its info accordingly.
SendVersion sends a version to a peer and waits for verack.
# Interfaces
HandleHandshakeContext is the interface for the context needed for the HandleHandshake flow.