Orphan synchronization
The gateway will now synchronize to peers who send it orphan blocks.
This required changing the function signatures of Synchronize
to take a peer.
I feel that the current relayblock/transaction design is pretty ugly. It would be much cleaner if the State had a Gateway and just announced blocks as they were accepted. It's not really possible to accomplish this with subscription because there's no way to synchronize to a peer who sent an orphan block.