Releases: savoirfairelinux/opendht
Releases · savoirfairelinux/opendht
2.0.0rc2
- dht: fixed long-standing memory leak affecting permanent put operations
- dht: the above fix also results in significant performance improvements for permanent put operations
- securedht: putSigned and putEncrypted now fail immediately if no key is configured
- tools: added
perftest
for simple single-process benchmarking - tools: added
durl
to test the http client stack
2.0.0rc1
-
dht/net: now using exponential backoff and randomized timing for packet re-transmission.
- previous implementation was transmitting max. 3 times at 1 second intervals (final timeout after 3 seconds).
- new implementation retransmits max. 3 times after 1, 2 and 4 seconds, plus some random time for each request (final timeout after 7 to 9 seconds)
- Some DHT operations might be sightly slower to complete, however the current design mitigates this effect, and for most workloads, this change should generally mean better network resilience for a minor operation completion delay increase and almost no increase in value transmission time
-
dht: significant performance improvements
-
dht: reduced memory usage
-
dht: added "stable, public" node configuration, for long-running nodes with a public IP address. In this mode:
listen
refresh time is increased to 5 min from 30 seconds (which is usually required for potentially NATed nodes to maintain routes)- disabled automatic DHT connectivity change detection, which not relevant for this use-case
This new mode can be enabled by setting the new configuration field
dht::Config::public_stable
totrue
,
or withdhtnode
with the new argument flag-P
or--public-stable
-
proxy: performance improvements, various fixes
-
dhtnode: better display of durations and plaintext values
2.0.0beta3
- dht: allow to configure or disable rate limiting
- dht: added value priority, used for push notification priority
- dht:
shutdown()
now waits for pending get/put operations to complete before calling the user callback - tests: updated unit tests and dockerfiles
- autotools: fix
make dist
and manymake distcheck
issues - peer discovery: revamped, now makes use of asio, performance improvements
- proxy: many client/server bug fixes and performance improvements
- cmake/autotools: allow to build without peer discovery
- dht: minor performance improvements
2.0.0beta2
Since 2.0.0beta1:
- dhtrunner: added
cancelPut
with value argument instead of id - dhtrunner: added
permanent
argument forputSigned
andputEncrypted
- c: improved wrapper
- rust: improved wrapper
- proxy/http: fix crash when cancelling a request before it's sent
- proxy: updated restinio dependency
- proxy client: various bug fixes and cleanups
- crypto: improved AES encryption/decryption performance
2.0.0beta1
- added C bindings
- added Rust bindings
- improved Python bindings
- dht proxy: dependency change: now using Restinio instead of Restbed
- dht proxy: added simple HTTP/HTTPS client library using ASIO, Restinio and http_parser
- dht proxy: cleanup
1.10.1
1.10.0
1.10.0rc4
- API breaking change: thread pool:
getShared
returnsshared_future
instead ofshared_ptr<future>
- dhtrunner: threaded mode is now the default
- dhtrunner: avoid starting peer discovery for unused address families
- dhtrunner: fix data race when using push notifications
- net/udp: when port to use is not provided, attempt to use the same port for IPv4 and IPv6
- minor performance improvements
- minor memory use reduction
1.10.0rc1
- Added support for pluggable network transport
- To use custom transport, extend the class
dht::net::DatagramSocket
. The default implementation isdht::net::UdpSocket
. - Give your instance to
dht::DhtRunner::run
as part of the context (fielddht::DhtRunner::Context::sock
).
- To use custom transport, extend the class
- Peer discovery: use organization-local multicast scope for Windows compatibility.
- tools/dhtnode: allow to specify certificate and private key files to use for the node identity (with
--certificate
,--privkey
and--privkey-password
). - tools/dhtnode: allow to save the node identity generated with
-i
to file with--save-identity
. - tools/dhtnode: improve manpage