Discovery

Node discovery (mainly same with bitcoin, for blockchain project)

Discovery behavior

On the current NAT forwarding network environment, whether it is self-discovery or the discovery behavior of the other party is not completely accurate, it is certain that the address received by the user is not 100% available.

There are two actions in this protocol:

Message type

``` /// request for address list GetNodes { version: Uint32, count: Uint32, listen_port: PortOpt, }

/// response address list Nodes { announce: Bool, items: NodeVec, } ```