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).