TODO - already in another PR
network_protocol.rs
- contains types, which are part of network protocol, they should be changed with care.
All of them derive BorshSerialize
/ BorshDeserialize
types.rs
- TODOconfig.rs
- TODOactix.rs
- TODOnear-network-primitives
near-network-primitives
is a package that contains network types that are meant to be shared
between multiple crates, without having to import near-network
.
Note that, the current split doesn't follow that logic.
We have a few use cases:
- Messages used by ClientActor
, ViewClientActor
, near-network
.
- external packages, which want to analyze traffic, they don't need to import near-network
, importing just network types should be enough for them
Dependencies:
- deepsize
- optional - provides api for counting sizes of structs
- actix
- required - provides implementation actix
Message
- we could make it optional
- borsh
- required - serialization / deserialization of network messages - could be made optional
near-network
near-network
exports the following to the outside:
- PeerManagerActor
- PeerManagerActor
related Actix
messages
- Part of borsh
serialized network messages exchanged between nodes.
Actors below, their related messages, are considered private:
- PeerActor
- RoutingTableActor
- EdgeValidatorActor
near-network-primitives
near-network-primitives
provides
- ClientActor
related Actix
messages
- ViewClientActor
related Actix
messages
- Part of borsh
serialized network messages exchanged between nodes.
- NetworkConfig
- its logic is split between utils.rs
and types.rs
.