1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# 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.2] - 2026-03-25
### Added
- `BanList::unban()` to remove a specific ban and its failure history.
- `Node::unban()` public API to allow callers to clear bans for specific
addresses (needed for re-join after transient failures).
## [0.1.1] - 2026-03-25
### Fixed
- Remove stale peers from routing table when replacement cache is empty.
Previously, peers exceeding `STALE_THRESHOLD` failures would linger
indefinitely in small clusters where the cache rarely fills, causing
phantom peer accumulation.
## [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.
|