Skip to content

Releases: savoirfairelinux/opendht

2.0.0rc2

13 Feb 22:12
Compare
Choose a tag to compare
  • 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

05 Feb 16:15
Compare
Choose a tag to compare
2.0.0rc1 Pre-release
Pre-release
  • 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 to true,
    or with dhtnode 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

17 Dec 20:10
2dbf57d
Compare
Choose a tag to compare
  • 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 many make 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

07 Nov 17:08
Compare
Choose a tag to compare
2.0.0beta2 Pre-release
Pre-release

Since 2.0.0beta1:

  • dhtrunner: added cancelPut with value argument instead of id
  • dhtrunner: added permanent argument for putSigned and putEncrypted
  • 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

22 Oct 14:59
Compare
Choose a tag to compare
2.0.0beta1 Pre-release
Pre-release
  • 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

03 Aug 01:08
Compare
Choose a tag to compare
  • dhtrunner: add method bootstrap("host:service")
  • cleanup

1.10.0

12 Jul 13:29
Compare
Choose a tag to compare
dhtrunner: run shutdown on op queue

1.10.0rc4

01 Jul 21:44
Compare
Choose a tag to compare
1.10.0rc4 Pre-release
Pre-release
  • API breaking change: thread pool: getShared returns shared_future instead of shared_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

09 Jun 13:16
Compare
Choose a tag to compare
1.10.0rc1 Pre-release
Pre-release
  • Added support for pluggable network transport
    • To use custom transport, extend the class dht::net::DatagramSocket. The default implementation is dht::net::UdpSocket.
    • Give your instance to dht::DhtRunner::run as part of the context (field dht::DhtRunner::Context::sock).
  • 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

1.9.5

04 Jun 19:54
Compare
Choose a tag to compare
  • dhtrunner: add new run() method with Context argument allowing to pass custom logger or peer discovery instance on node startup
  • peer discovery: fix various issues