Skip to content

v0.4.0

Choose a tag to compare

@gmega gmega released this 30 Jun 18:29
8e0fb9f

Summary

This release brings new features and improvements, following our roadmap to the v0.2 Logos Testnet. Among the most important improvements:

  1. new block protocol - much more memory efficient, capable of fully utilizing libp2p throughput. It's already faster than what we had before, but should reach bittorent-level speeds once we move to QUIC;
  2. private DHT queries - as part of our effort towards anonymous filesharing, we are rolling out support for DHT queries over the new Logos mix network.

We will also roll out much more advanced support for NATs in a follow up release, so stay tuned.

What's Changed

  • fix(repostore): prevent underflow when deleting datasets by @emizzle in #1412
  • chore: cleanup dependencies by @2-towns in #1415
  • fix: nph build by @2-towns in #1419
  • fix: cleanup chronicles writer in close function by @2-towns in #1413
  • chore: update chronicles by @2-towns in #1422
  • feat: add a warning when private address only by @2-towns in #1423
  • chore: update nim 2.2.8 by @2-towns in #1424
  • chore: Block exchange protocol rewrite by @cnanakos in #1411
  • fix: re-seed DHT routing table when empty by @cnanakos in #1428
  • fix: Remove unused (and incorrect) verify call from Merkle tree by @gmega in #1416
  • chore: update nim 2.2.10 by @2-towns in #1425
  • fix: validate WantBlocks request ranges to prevent DoS by @cnanakos in #1434
  • feat: network presets by @gmega in #1437
  • feat: add testnet presets and no-bootstrap option by @gmega in #1438
  • chore: remove unused cache and make discovery IP limits configurable by @2-towns in #1435
  • chore: update nimbus build system by @2-towns in #1433
  • chore: add nim mcp server and CLAUDE.md by @emizzle in #1441
  • feat: end-to-end release test pipeline on GKE with structured logging by @emizzle in #1439
  • chore: include cancelled futures in failures by @2-towns in #1442
  • chore: update libp2p to 2.0.0 by @richard-ramos in #1443
  • feat(testing): Release tests -- force pod spread to one pod per node by @emizzle in #1445
  • fix(blockexchange): bounds per-message work by @emizzle in #1447
  • refactor(release): emptyDir volumes are now used over PVCs, so no need to clean up by @emizzle in #1444
  • fix: Merkle tree proof length check by @gmega in #1432
  • feat: simple test runner for libstorage tests by @gmega in #1450
  • fix(tools/mix): raise mix_relay_dht libp2p connection limit (--max-connections, default 160) by @cnanakos in #1457
  • fix: allFinishedFailed -> allDone to retain cancellations by @emizzle in #1451
  • feat: add metrics collector endpoint to libstorage by @gmega in #1454
  • feat(monitoring): daily heatlh check for bootstrap nodes by @emizzle in #1460
  • fix(discovery): togglePrivateQueries refuses enable when mix not set up by @cnanakos in #1462
  • fix: use output of build job to feed test job instead of re-guessing the tag by @gmega in #1463
  • fix(build): resolve mixVersion against git tags by @cnanakos in #1461
  • fix(storage): only enable private queries when DHT mix proxies are configured by @cnanakos in #1465
  • fix(ci): filter out dockerbuild artefacts by @emizzle in #1464
  • fix: harden linux release builds against GCC's -march=native bug on Zen4 by @emizzle in #1466
  • chore: unified REST and module debug info by @gmega in #1468
  • chore: update network presets by @emizzle in #1469
  • fix(openapi): make mixPubKey nullablle by @emizzle in #1470
  • fix: byte serialization of libp2p pubkey on debug endpoint by @gmega in #1472
  • refactor(dht-proxy): unify ResponseStatus+ErrorKind into single LookupCode enum by @cnanakos in #1473
  • feat: v0.2 presets by @gmega in #1478

New Contributors

Full Changelog: v0.3.2...v0.4.0