Repository navigation
v3.0.2
Community Technical Preview 3.
Added
- Introduce a pluggable
CryptoProviderSPI with Bouncy Castle as the default implementation, improving crypto extensibility and compatibility. - Add libsodium-compatible
crypto_secretstream_xchacha20poly1305support for streaming encryption and decryption. - Add Equihash-based asymmetric proof-of-work primitives to support permissionless registration.
- Add permissionless registration proof-of-work gate in Director to provide Sybil resistance without requiring mandatory OAuth-based registration.
- Add new Vert.x-style in-memory asynchronous
ReadStreamandWriteStreamimplementations. - Add
crypto_kdfcompatible key derivation API and expose raw key bytes support throughCryptoBox.keyBytes(). - Add built-in on-the-fly encryption/decryption support in the IonStore client.
- Add object integrity verification when uploading data to IonStore.
- Add messaging client readiness watchdog to automatically detect and recover unhealthy connections during connection setup.
- Add super node QR code support to simplify mobile client discovery and onboarding.
- Add public API for querying super node identity information.
Changed
- Change self-signed TLS certificate generation from Ed25519 certificates to ECDSA certificates to ensure better compatibility.
- Improve crypto compatibility by moving certificate generation into the crypto provider layer and expanding compatibility tests between Bouncy Castle and libsodium.
- Improve node address management:
- Support multiple address families(IPv4 and IPv6).
- Resolve interface bindings to live addresses during startup.
- Hide low-level network details from public APIs for improved developer experience.
- Replace the IonStore client legacy overloaded
put()andget()APIs with new fluent APIs supporting different data sources and built-in stream encryption/decryption. - Improve HTTP connection reliability in the IonStore client by configuring keep-alive timeout for pooled connections.
- Improve super node setup utility to automatically detect public IP addresses or domain names.
- Improve Director configuration templates and service defaults.
- Improve messaging client message delivery status by leveraging early acknowledgements.
- Improve MQTT session management:
- Pin active sessions in cache while endpoints are attached.
- Improve session takeover handling and stale endpoint cleanup.
- Return more precise MQTT error codes for invalid client connections.
- Improve messaging persistence architecture by introducing a unified repository abstraction.
- Improve Java compatibility for client modules.
Fixed
- Fix MQTT session takeover race conditions and stale endpoint handling.
- Fix incorrect messaging session active address handling.
- Fix unexpected crypto context closure issues.
- Fix sending failures caused by disconnected messaging clients returning unexpected exceptions.
- Fix messaging client retry behavior by returning failed futures for unrecoverable connection errors.
- Fix JSON serialization issues on Android API level 33 by replacing DTO records with regular immutable classes.
- Fix missing channel information after fresh contact synchronization.
- Fix messaging contact event callback issues.
- Fix IonStore cache expiration behavior to prevent serving expired objects beyond their remaining TTL.
- Fix avatar cache and routing issues in Director.
- Fix various stability issues, test failures, documentation issues, and minor bugs.