What's Changed
Transaction Broadcasting V2
@danield9tqh in #1803 rewrote our transaction broadcasting by adding support for broadcasting transactions by hash in addition to broadcasting full transactions. Transactions are relatively large, so we expect this to generally reduce bandwidth usage. After the same work is done for block broadcasting, it'll allow us to no longer continuously fetch the list of peers from all connected nodes.
chain:prune
command
@NullSoldier in #1948 added a chain:prune
command to delete forks from the chain and compact the database. It doesn't yet reduce the size of the database as much as we'd like, so we're planning to make further improvements here.
Rust box/unbox message
@mat-if in #1872 moved message encryption from the JavaScript worker pool to Rust. We expect this to reduce the frequency of WebRTC signaling timeouts when a node's worker pool is under load, and will monitor to make sure it doesn't significantly increase load on the main thread.
Other Changes
- Fixed referencing wrong @ironfish/rust-nodejs version in ironfish by @mat-if in #1966
- Fixed a potential missing event unsubscription when downloading snapshots by @NullSoldier in #1974
- Add telemetry for transaction creation by @danield9tqh in #1981
- Attempt to fix createWriteStream error by @NullSoldier in #1980
- Allow for only uploading the accounts DB as a backup by @NullSoldier in #2002
- accounts:transactions: show expiration by default by @hamza-siddiq in #2005
- Remove short-hand -d for --dry in chain:prune and migrations:start by @mat-if in #2007
- Use same logic for verifying single transactions as batches of transactions by @mat-if in #1875
- Add list of routes with pending rpc requests to rpc:status by @hughy in #2006
- Allow submitting telemetry without fields by @danield9tqh in #2001
Full Changelog: v0.1.43...v0.1.44