Overview
We're happy to announce the Boost v1.6.1 release. This release contains several fixes and improvements for Boost 1.6.0, users are highly encouraged to upgrade.
See the Boost and Lotus compatibility matrix for up to date information, and to plan your upgrade.
🌟 Highlights
🚀 Improved performance for retrievals over graphsync
We have simplified how unpaid retrievals over graphsync work. This results in significantly less calls to the Lotus API, and legacy code paths, which have improved download speeds and overall retrieval performance. All paid deals, or custom voucher types, will fallback to the old retrieval path.
A highlight of some of the key improvements:
- Resolved a potential memory leak that could occur from improperly terminated retrievals in the old code path.
- Reduced the frequency of timeout errors in popular retrieval clients, such as Lassie, by up to 30x. Improvements were more pronounced with higher parallelism.
- Reduced total memory utilization of retrieval by 40%
- While there is significant variance in retrieval performance due to latency, block size of the data being retrieved, size of retrieval, and number of parallel retrievals, we saw significant gains in performance over the existing code:
- On a production SP with 30ms of latency we saw a minimum 20% improvement in retrieval speed
- The benefit was less pronounced for higher latency, and larger retrievals, seeing on average an improvement of 5% with 120ms of latency
- In a 0 latency test environment, retrieval speeds increased more than 35x
- Unpaid graphsync retrievals now use the same lightweight cache as booster-bitswap, which will improve performance for spikes in retrieval for the same content. This should help with performance when serving to retrieval clusters. Note, you don't need to be running booster-bitswap for this, as the cacheing layer is shared via boostd process.
💾 Online backup
Boost now supports online backups, so you no longer have to stop your node first.
boostd backup <backup directory>
See the backup and restore docs for more details.
What's Changed
- feat: make deal over json-rpc by @LexLuthr in #1262
- fix: set cancel log to debug level by @LexLuthr in #1275
- chore(deps): bump webpack from 5.72.1 to 5.76.1 in /react by @dependabot in #1278
- Simple graphsync retrieval server by @dirkmc in #1236
- async contract monitor by @nonsense in #1282
- feat: Online backup by @LexLuthr in #1265
- Dont log errors when the transfer event queue is full by @dirkmc in #1291
- fatally fail contract deals on publish errors by @nonsense in #1294
- better logs for deal id by @nonsense in #1298
- timer for eth_call by @nonsense in #1299
- print protos as part of boostx stats by @nonsense in #1300
- fixed "unknown actor code" constantly appearing in the boost logs via lotus upgrade @jacobheun in #1293
- Set user agent from boost build version instead of lotus by @dirkmc in #1305
- boostx stats: output agent version and retrieval protocols by @dirkmc in #1304
- fixed a potential panic in go-graphsync by @dirkmc in #1313
- fixed an issue where free storage space could be miscalculated after a config change by @LexLuthr in #1315
New Contributors
- @brossetti1 made their first contribution in #1302
Full Changelog: v1.6.0...v1.6.1