veilid/CHANGELOG.md
2024-07-07 12:27:55 -05:00

194 lines
8.7 KiB
Markdown

**Changed in Veilid 0.3.3**
- Fix set_dht_value and watch_value
- Watching values incorrectly categorized 'owner' keys as anonymous watchers
- Setting a dht value with the same sequence number as what is on the network, but with a conflicting value, did not result in the current value being returned to the api caller as it should have been
- DHT cleanup
- Proper application of DHT capabilities
- Fanout debugging log target
- Performance measurement / timing of veilid_api log target
- Fix DHT Rust integration test
- ValueChanged Optional
- Allow value changed data to be optional in rpc schema
- Make valuechanged update no longer happen when value hasn't changed or is older
- Implement closest peers refresh
- Implement closest peers refresh. Closes issue #372.
- Find_self/find_target can use capability check
- Fix offline subkey write reporting to eliminate spurious notifications
- Add more detail to public address check
- Improved punishment and state
- Create 'reasons' for dead and unreliable states
- Make 'punished' its own state
- Closes issue #281
- Fixes an issue with reliable nodes being marked as 'dead' unjustly
- _Community Contributions_
- Fixed memory leak in Windows DNS resolver @kyanha
**Changed in Veilid 0.3.2**
- DHT optimization and bugfixes
- Support for offline write status in DHTRecordReport
- Fix deprecated functions
- Improve fanout seeding to ensure records are reached as quickly as possible
- Native IPV4-IPV6 bridging support
- fix bug where messages sent to a private route without a safety route would not receive replies
- fix verbose-tracing feature flag
- improve route allocation to avoid co-located nodes
- fix contact method for nodes on the same ipblock
- add support for maintaining AddressType-translation relays
- Removed NDK related hotfix, as this has been integrated into cargo-ndk already
- Open sourced the CICD build scripts
- Fixes for watchvalue
- Refactor low level network
**Changed in Veilid 0.3.1**
- DHT cleanup
- Proper application of DHT capabilities
- Fanout debugging log target
- Performance measurement / timing of veilid_api log target
- ValueChanged Optional
- Allow value changed data to be optional in rpc schema
- Make valuechanged update no longer happen when value hasn't changed or is older
- Clippy fixes and cleanup
- _Community Contributions_
- Changed VeilidAPI::parse_as_target to a sync function -- @sashanoraa
- fix dht rust integration test -- @ssurovsev
**Changed in Veilid 0.3.0**
- API BREAKING CHANGES:
- WatchValue RPC support
- InspectRecord RPC support
- RoutingContext now defaults to Reliable and EnsureOrdered modes
- generate_shared_secret added that abstracts DH and ensures domain separation
- Closed #357 - AppCall and AppMessage now have private route information
- Logging: Log facilities now can be enabled and disabled at runtime
- Logging: Log facility added for DHT, network results, and API calls
- CLI: Closed #358 - veilid-cli now has 'interactive' (-i), 'log viewer' (-l) and 'execute command' (-e) command line options
- Testing: veilid-flutter now has integration tests of its own that work like the veilid-python unit tests
- Network: Failures to hole-punch UDP or reverse-connect TCP or UDP now falls back to inbound relaying
- Bugfix: Signal handling for unix-like platforms was not handling SIGTERM correctly
- Bugfix: Restarting veilid-server quickly might result in failures to bind()
- Bugfix: Closed #359 - Block node identity from DHT record schema owner/writer
- Bugfix: Closed #355 - Fixed memory error reading macos/ios interfaces list
- _Community Contributions_
- Made private route allocation bidirectional by default @kyanha
- Use $CI_REGISTRY_IMAGE for the registry path @SalvatoreT
- Add VeilidConfigInner-based VeilidAPI startup @SalvatoreT
- rebrand trust-dns-resolver to hickory-resolver @kyanha
**Changed in Veilid 0.2.5**
- API BREAKING CHANGES:
- on `RoutingContext`: `with_privacy()` renamed to `with_default_safety()`
- on `RoutingContext`: `with_custom_privacy()` renamed to `with_safety()`
- on `RoutingContext`: `safety()` method added that returns the current `SafetySelection`
- Routing contexts are now safety-route-enabled by default. To disable, use `with_safety()` with `SafetySelection::Unsafe`.
- WASM now works better with updated connection manager code
- Async-std flavor of veilid-core now builds correctly again
- Safety route allocation is bidirectional
- Connection table LRU cache now has protection for relays and in-use RPC question/answers
- Dead route notifications are now sent only for manually allocated routes
- Allocated routes that fail tests now have their nodes marked as 'failure to send' so they go 'unreliable' and get re-tested. Also the same route will not immediately be reallocated as a result.
- DHT tests ported from Python to Rust
- Rustls updated to latest release
- Protected connections (such as relays) that drop result in marking the node as 'failure to send' so a different relay gets chosen
**Changed in Veilid 0.2.4**
- Fixed issue with client API failing when ipv6 was disabled
- Android fixed so it can move out of invalid network state
- Numerous WASM binding fixes
- IGD/UPNP fixes for Windows
- Reduce network downtime when local ip addresses change (ipv6 temporary addresses)
- Fix support for Android emulator
- Bootstrap is more robust in environments where some dialinfo won't work, like inbound UDP being firewalled off
- CLI has timestamps in the log output
- Base64 fixes for encoding
- IPv6 capability detection for native platforms
**Changed in Veilid 0.2.3**
- Security fix for WS denial of service
- Support for latest Rust 1.72
**Changed in Veilid 0.2.2**
- Capnproto 1.0.1 + Protobuf 24.3
- DHT set/get correctness fixes
- Connection table fixes
- Node resolution fixes
- More debugging commands (appmessage, appcall, resolve, better nodeinfo, etc)
- Reverse connect for WASM nodes
- Better Typescript types for WASM
- Various script and environment cleanups
- Earthly build for aarch64 RPM
- Much improved and faster public address detection
**Changes in Veilid 0.2.1**
- Crates are separated and publishable
- First publication of veilid-core with docs to crates.io and docs.rs
- Avoid large logs of 127.0.0.1:5959 attack payloads
- Use getrandom in WASM for RNG
- Increase privacy for WASM builds by rewriting internal paths
- Translations
- Fix python update schema script
- Earthfile cleanup
**Changes in Veilid 0.2.0**
- Rustdoc builds now
- API visibility changes
- Android JNI update
- Fix DHT record data housekeeping
- Public address detection improvement
- Manual port forwarding detection
- lock_api dependency fix
- DialInfo failover when some dial info does not work
Note: Windows builds may be broken in this release. Please test and let us know by opening an issue.
**Changes in Veilid 0.1.10**
- BREAKING CHANGE: ALL MUST UPDATE
* VLD0 now adds a BLAKE3 hash round on the DH output to further separate it from the raw key exchange
* Bootstraps are fixed now due to DH issue
- Windows crate update caused build and nul termination issues for DNS resolver
- Fix for network key on the veilid-server command line
- Strict verification for Ed25519 enabled
- Domain separation for VLD0 signing and crypt
**Changes in Veilid 0.1.9**
- SECURITY FIX
* DESCRIPTION: Decompression was occurring in an unbounded way upon envelope receipt.
* IMPACT: Node crashes resulting in downtime. There was no risk of RCE or compromise due to Rust's memory protections and no use of unsafe code near the site of the error.
* INDICATIONS: This resulted in an out-of-memory abort on nodes. Issue first identified on the bootstrap servers.
* REMEDIATION: Length check added to decompression on envelopes.
- Earthfile support for generating a debug executable
**Changes in Veilid 0.1.8**
- Fix Python Install Instructions
- Fix to get server version from crate
- Move dev setup into its own folder
- Setup support for Fedora
- Make submodule paths absolute
- veilid-flutter improvements for crypto and timestamp, and endianness bugfix
- Offline subkey writes for DHT
- Fix WASM compilation
- Improve server port allocation
- Add more punishments
- Clap derive refactor for command line args
- gitignore emacs backup files
- Various typos
- Fanout debugging for DHT
**Changes in Veilid 0.1.7**
- Fix for connection table crash
- Fix for incorrect set_dht_value return value
- Python test updates
- Various VeilidChat-prompted veilid-flutter updates
**Changes in Veilid 0.1.6**
- Fix for 'find_node' too many nodes returned issue
**Changes in Veilid 0.1.5**
- Added Changelog
- Fix detachment issue with suspending network interfaces during operation
- Fix incorrect punishment on relayed undecryptable messages
- Minor API feature adds
- Relay bugfixes