mirror of
https://github.com/MAGICGrants/cuprate-for-explorer.git
synced 2026-01-09 19:47:59 -05:00
Abstract TCP methods under the Transport Trait. In workspace: - Added a new `cuprate-p2p-transport` crate that will later welcome complex or crate dependent transport implementations. (Arti for example.) In `cuprate-p2p-core`: - Implemented a new Transport trait that abstract methods to listen for or connect to other peers over a NetworkZone Z. - Reduced `NetworkZone` trait accordingly. - Added a new `BROADCAST_OWN_ADDR` to `NetworkZone` for anonymized networks. - Implemented `Tcp` transport for `ClearNet`. - Implemented `Dummy` transport for placeholder/testing purposes - Adapted definition of P2P components to the new `Transport` trait. - Changed original `InBoundStream` implementation to support two different but optional listeners (IPv4/IPv6) In `p2p-core/tests`: - Implemented `FragTcp` for fragmented message testing In `cuprated`: - Added `p2p.enable_inbound_v6` and `listen_on_v6` config field. - Added `From<&ClearNetConfig>` for `TransportConfig<ClearNet, Tcp>`. - Abstracted original `start_clearnet_p2p` to `start_zone_p2p` with a given `NetworkZone` and `Transport`. - Zone/NetworkInterface<Z> P2P initialization has been moved to `cuprated::p2p` in `initialize_zones_p2p` fn. - Defined `NetworkInterfaces` collection (useless at the moment).
Test Utils
This crate contains code that can be shared across multiple Cuprate crates tests, this crate should not be included in any Cuprate crate, only in tests.
It currently contains:
- Code to spawn monerod instances and a testing network zone
- Real raw and typed Monero data, e.g.
Block, Transaction - An RPC client to generate types from
cuprate_types - Raw RPC request/response strings and binary data