# nu-p2p — CLAUDE.md P2P ağ katmanı. `nu-node`'dan ayrı tutulur — test ederken network mock'lanabilir. ## Stack - `libp2p 0.54` — Gossipsub, Kademlia DHT, Identify, Ping - Tokio async runtime ## Modüller | Dosya | Sorumluluk | |-------|-----------| | `behaviour.rs` | libp2p `NetworkBehaviour` kompozisyonu | | `messages.rs` | Gossip topic sabitleri + mesaj tipleri | | `peer.rs` | PeerRegistry (max 50 bağlantı) | | `config.rs` | Listen addr, bootstrap peers, max peers | ## Gossip Topics ``` nu/blocks/1 → BlockAnnounce, BlockRequest, BlockResponse nu/txs/1 → TxGossip nu/votes/1 → VoteAnnounce nu/validators/1 → ValidatorHeartbeat ``` ## nu-node Entegrasyonu nu-p2p ayrı bir process olarak çalışır. nu-node, `--p2p-api` flag'i ile bu servisin HTTP adresini alır ve mesajları `POST /publish` üzerinden iletir. ```bash # Nu-p2p başlat (publish API dahil) cargo run --bin nu-p2p -- \ --listen /ip4/0.0.0.0/tcp/30333 \ --api-addr 127.0.0.1:30334 # Nu-node'u P2P'ye bağlı başlat cd ../nu-node && cargo run -- --dev --validator --p2p-api http://127.0.0.1:30334 # İki node gossip testi cargo run --bin nu-p2p -- \ --listen /ip4/0.0.0.0/tcp/30335 \ --api-addr 127.0.0.1:30336 \ --bootstrap /ip4/127.0.0.1/tcp/30333 ```