* fix disconnect reason encoding
* move disconnect to own file
* add encoding test for 0x80 in list
* rlp([0u8]) is a good test case to have because it is the RLP encoding
of a DisconnectRequested p2p message
* fix disconnect encoding and decoding
* directly decode the disconnect id to handle the 0x80 case of
DisconnectRequested
* the previous manual snappy encoding / decoding was incorrect - a
snappy encoded disconnect message is 4 bytes, not 3 bytes. The tests
and implementation are changed to reflect this.
* fix p2p message decoding
* had a similar issue to disconnect reason decoding where it would not
handle a 0x80 message id
* make invalid rlp header case more explicit
* cargo fmt
* refactor: move things to types
* feat(ethwire): bring in message type from ethp2p
30c11138d5/src/message.rs
* feat(ethwire): add eth-stream with Stream/Sink impls
* feat(ethwire): make Sink error an EthStreamError
* feat(ecies): expose util module
* add more deps
* feat: add broadcast newblockhashes
* fix: rlp serialize with message-id first
* chore: cleanup doc
* wip: test eth connection
* bump cargo lock
* feat: add rlp codec and get stream tests working
* fix: convert RlpCodec to PassthroughCodec
we were rlp encoding twice
* Revert "fix: convert RlpCodec to PassthroughCodec"
This reverts commit 6e6e0a58112c14d7ffba62dc83f9747ddc280641.
This does not handle framing, which would fail decoding if a partial
write happened to the socket.
* add tracing
* refactor: add handshake error
* feat(ethwire): add status handshake
* test(ethwire): handshake works
* refactor: expose EthStream::new
* chore: clippy lints
* fix: get rid of rlp codec
we can instead use LengthLimitedCodec from Tokio IO, which we re-export
as PassthroughCodec
* fix(eth): add handshake + msg error checks
1. 10MB message lengths
2. Same Genesis, Version, Chain on Status Handshake
* chore: ignore result_large_err
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>