From 9821aabf0b50d2487b07502d3d2cd89e7d62bdbe Mon Sep 17 00:00:00 2001 From: murilo ijanc Date: Tue, 24 Mar 2026 15:04:03 -0300 Subject: Initial commit NAT-aware Kademlia DHT library for peer-to-peer networks. Features: - Distributed key-value storage (iterative FIND_NODE, FIND_VALUE, STORE) - NAT traversal via DTUN hole-punching and proxy relay - Reliable Datagram Protocol (RDP) with 7-state connection machine - Datagram transport with automatic fragmentation/reassembly - Ed25519 packet authentication - 256-bit node IDs (Ed25519 public keys) - Rate limiting, ban list, and eclipse attack mitigation - Persistence and metrics - OpenBSD and Linux support --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 CHANGELOG.md (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3d5c3f2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,34 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0] - 2026-03-24 + +### Added + +- Kademlia DHT with iterative FIND_NODE, FIND_VALUE, and STORE operations. +- NAT type detection (global, cone NAT, symmetric NAT). +- DTUN hole-punching for cone NAT traversal. +- Proxy relay for symmetric NAT nodes. +- Reliable Datagram Protocol (RDP) with 3-way handshake, sliding windows, + cumulative ACK, EACK/SACK, retransmission, and graceful close. +- Datagram transport with automatic fragmentation and reassembly. +- Ed25519 packet authentication (reject unsigned packets). +- 256-bit node IDs derived from Ed25519 public keys. +- Address advertisement for routing table updates. +- Rate limiting per source address. +- Ban list for misbehaving peers. +- Eclipse attack mitigation via bucket diversity checks. +- Persistence for routing table and DHT storage. +- Metrics collection (message counts, latency, peer churn). +- Configurable parameters via `Config` builder. +- Event-based API for async notification of DHT events. +- OpenBSD (`kqueue`) and Linux (`epoll`) support via mio. +- Examples: `join`, `put_get`, `dgram`, `rdp`, `two_nodes`, `network`, + `remote_get`, `tesserasd`. +- Integration, scale, and lossy-network test suites. +- Fuzz harness for wire protocol parsing. +- Benchmark suite. -- cgit v1.2.3