mycelium module #18

Closed
opened 2025-12-21 11:50:09 +00:00 by thabeta · 1 comment
Owner

Mycelium networking implementation for , providing IPv6 overlay networking, automatic peer discovery, and secure node-to-node communication.

Functionality

  • IPv6 overlay network across all nodes
  • Automatic peer discovery and management

Module API

Question: is following implemented?

Network Management

  • MyceliumNetwork::new(config: MyceliumConfig) -> Result<Self, MyceliumError> - Create network
  • MyceliumNetwork::get_address(&self) -> Option<Ipv6Addr> - Get IPv6 address
  • MyceliumNetwork::get_peers(&self) -> Result<Vec<PeerInfo>, MyceliumError> - Get peers
  • start_network_daemon(&self) -> Result<Child, MyceliumError> - Start daemon
  • stop_network_daemon(&self) -> Result<(), MyceliumError> - Stop daemon

Peer Management

  • add_peer(&self, peer: PeerConfig) -> Result<(), MyceliumError> - Add peer
  • remove_peer(&self, peer_id: &str) -> Result<(), MyceliumError> - Remove peer
  • discover_peers(&self) -> Result<Vec<DiscoveredPeer>, MyceliumError> - Discover peers
  • connect_to_peer(&self, peer: PeerInfo) -> Result<(), MyceliumError> - Connect peer
  • disconnect_peer(&self, peer_id: &str) -> Result<(), MyceliumError> - Disconnect peer

Metrics Collection

  • collect_metrics(&self) -> Result<NetworkMetrics, MyceliumError> - Collect metrics
  • get_bandwidth_usage(&self) -> Result<BandwidthUsage, MyceliumError> - Get bandwidth
  • get_latency_stats(&self) -> Result<LatencyStats, MyceliumError> - Get latency
  • get_connection_quality(&self, peer: &str) -> Result<QualityMetrics, MyceliumError> - Get quality
  • export_prometheus_metrics(&self) -> Result<String, MyceliumError> - Export metrics

Requirements

  • complete rhai wrappers
  • use builder pattern (for rust & rhai)

Implementation Details

  • QUESTION: wasn't there a client already, if yes, make sure its published on crates.io and use it here, is it complete?
  • IF NO: use the openrpc macro to get low level client
    • mycelium should expose all functionality over openrpc on unixsocket
    • there should be discover function of the openrpc spec
    • this means no coding required to get low level client, if needed improve macro carefully
Mycelium networking implementation for , providing IPv6 overlay networking, automatic peer discovery, and secure node-to-node communication. ## Functionality - IPv6 overlay network across all nodes - Automatic peer discovery and management ## Module API > Question: is following implemented? ### Network Management - `MyceliumNetwork::new(config: MyceliumConfig) -> Result<Self, MyceliumError>` - Create network - `MyceliumNetwork::get_address(&self) -> Option<Ipv6Addr>` - Get IPv6 address - `MyceliumNetwork::get_peers(&self) -> Result<Vec<PeerInfo>, MyceliumError>` - Get peers - `start_network_daemon(&self) -> Result<Child, MyceliumError>` - Start daemon - `stop_network_daemon(&self) -> Result<(), MyceliumError>` - Stop daemon ### Peer Management - `add_peer(&self, peer: PeerConfig) -> Result<(), MyceliumError>` - Add peer - `remove_peer(&self, peer_id: &str) -> Result<(), MyceliumError>` - Remove peer - `discover_peers(&self) -> Result<Vec<DiscoveredPeer>, MyceliumError>` - Discover peers - `connect_to_peer(&self, peer: PeerInfo) -> Result<(), MyceliumError>` - Connect peer - `disconnect_peer(&self, peer_id: &str) -> Result<(), MyceliumError>` - Disconnect peer ### Metrics Collection - `collect_metrics(&self) -> Result<NetworkMetrics, MyceliumError>` - Collect metrics - `get_bandwidth_usage(&self) -> Result<BandwidthUsage, MyceliumError>` - Get bandwidth - `get_latency_stats(&self) -> Result<LatencyStats, MyceliumError>` - Get latency - `get_connection_quality(&self, peer: &str) -> Result<QualityMetrics, MyceliumError>` - Get quality - `export_prometheus_metrics(&self) -> Result<String, MyceliumError>` - Export metrics ## Requirements - [ ] complete rhai wrappers - [ ] use builder pattern (for rust & rhai) ## Implementation Details - QUESTION: wasn't there a client already, if yes, make sure its published on crates.io and use it here, is it complete? - IF NO: use the openrpc macro to get low level client - mycelium should expose all functionality over openrpc on unixsocket - there should be discover function of the openrpc spec - this means no coding required to get low level client, if needed improve macro carefully
Owner

already exists, but some are missing
if some elements missing in mycelium we can add it

already exists, but some are missing if some elements missing in mycelium we can add it
despiegk added this to the now milestone 2025-12-21 20:38:43 +00:00
despiegk added this to the (deleted) project 2025-12-21 20:42:39 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_lib#18
No description provided.