P2P swarm-inference engine over SLMs
built a p2p swarm inference engine over SLMs. users broadcast a prompt nodes join dynamically as executors (generators) or verifiers (score) peer-ranked consensus highest avg response wins Used floodsub as the pubsub router over my own rnet-p2p stack. similar space to what @fortytwonetwork is doing at scale. Repo - https://github.com/rnet-stack/rnet-inference
MPC randomess generator on top of rnet-p2p
Built a decentralized random number generator using multiparty-computation(MPC) on top of my own p2p stack, rnet-p2p, over the weekend. no trusted authority, no single point of bias, as long as 1 peer is honest, the output is unpredicatable. commit -> reveal -> reduce Repo: https://github.com/rnet-stack/rnet-drand
UDP transport layer for rnet-p2p
Wrote a UDP transport layer for rnet-p2p – connection management, handshake acknowlegements, and liveliness checks for dead peers (since no real time sockets in UDP). Was fun. PR: https://github.com/lla-dane/rnet/pull/8 PS: rnet-p2p now moved here: https://github.com/rnet-stack/rnet-p2p
Ping RTT benchmarks b/w rnet and libp2p
Did an RTT benchmark comparing my experimental p2p stack rnet vs libp2p rnet → ~220–300μs rust-libp2p → ~130–250μs py-libp2p → ~300–400μs Same machine, loopback libp2p: TCP + Noise + Yamux rnet: TCP + custom security (Deffie-Hellman based key-exchange) + Mplex rnet lagging behind by ~60μs implementation overhead from rust-libp2p rnet: https://github.com/lla-dane/rnet/
Built a secure transport layer for my p2p stack
Built a secure transport layer today for my p2p stack. Raw streams -> negotiated -> encrypted (Deffie Hellman + ChaCha20Poly1305). Feels good seeing the pieces come together. PR: https://github.com/lla-dane/rnet/pull/2
Introduced Prometheus metrics to libp2p(-py)
Introduced Prometheus/Grafana metrics to libp2p(-py), improving network observability for the core services like Gossipsub, Kad-DHT and connection lifecycle. PR: https://github.com/libp2p/py-libp2p/pull/1199
Kedarkantha Peak
Went first time trekking, to Kedarkantha peak. The elevation was around ~3800m, spent 3 days in the forest and then did river rafting in Rishikesh. Felt good to get away from code, from time to time.
Introduced AutoTLS in libp2p(-py)
Extended the TLS security module in libp2p(-py) to fetch CA authorized TLS certificates using the libp2p Auto-TLS client specification, rather than using self-signed ones. This will enable protocol execution via web-transport and browsers for libp2p(-py). PR: https://github.com/libp2p/py-libp2p/pull/1072
Implemented Floodsub from scratch
Wrote a Floodsub module for scratch in my experimental p2p stack. Learned a great deal how pubsub broadcasting systems behave under the hood with complex rust async designs. Getting ready to write Gossipsub now.
Rust async pattern -- single owner IO
Ran into an issue while building my experimental p2p stack in Rust – multiple parts of the code wanted &mut TcpStream. Turned out the design was improper. What worked for me was creating a single IO task owning the socket, with everything else communication via mpsc. Cleaner ownership, fewer borrow issues, and easier to reason about.