mod listener;
pub mod router;
pub mod handlers;
pub mod onion_identity;
mod context;
use anyhow::Result;
use std::sync::Arc;
use crate::p2p::router::P2PMessageRouter;
use crate::p2p::listener::P2PListener;
use crate::p2p::handlers::add_data;
pub async fn setup() -> Result<()> {
let router = Arc::new(P2PMessageRouter::new());
let listener = P2PListener::new(3333);
router.register("AddDataMessage", add_data::AddDataMessageHandler).await;
tokio::spawn({
let router = router.clone();
async move {
if let Err(e) = listener.start(router).await {
eprintln!("🔥 P2P Listener error: {e}");
}
}
});
Ok(())
}