mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
* 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>
44 lines
1009 B
Rust
44 lines
1009 B
Rust
#![allow(clippy::result_large_err)]
|
|
#![warn(missing_docs, unreachable_pub)]
|
|
#![deny(unused_must_use, rust_2018_idioms)]
|
|
#![doc(test(
|
|
no_crate_inject,
|
|
attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables))
|
|
))]
|
|
|
|
//! RLPx ECIES framed transport protocol.
|
|
|
|
pub mod algorithm;
|
|
pub mod mac;
|
|
pub mod stream;
|
|
pub mod util;
|
|
|
|
mod error;
|
|
pub use error::ECIESError;
|
|
|
|
mod codec;
|
|
|
|
use reth_primitives::H512 as PeerId;
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
/// Raw egress values for an ECIES protocol
|
|
pub enum EgressECIESValue {
|
|
/// The AUTH message being sent out
|
|
Auth,
|
|
/// The ACK message being sent out
|
|
Ack,
|
|
/// The message being sent out (wrapped bytes)
|
|
Message(bytes::Bytes),
|
|
}
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
/// Raw ingress values for an ECIES protocol
|
|
pub enum IngressECIESValue {
|
|
/// Receiving a message from a [`peerId`]
|
|
AuthReceive(PeerId),
|
|
/// Receiving an ACK message
|
|
Ack,
|
|
/// Receiving a message
|
|
Message(bytes::BytesMut),
|
|
}
|