Skip to content

Java IPFS implementation (Nabu), block metadata db, versioned S3 buckets.

Compare
Choose a tag to compare
@ianopolous ianopolous released this 08 Dec 20:48
· 513 commits to master since this release

This is an exciting new release that means we finally control our whole stack as we switch to a Java implementation of IPFS (that we wrote). We introduce a blockmetadata store that stores for each cid the size, links and BATs. This massively speeds up GC, space usage updates, and read authorizations.

Features:

  • Switch from Golang based ipfs-nucleus to Java based Nabu
  • Support versioned S3 buckets
  • Introduce block metadata db to massively speed up many operations
  • infini filter (infinitely expandable bloom filter)
  • only use authWrites for raw blocks, and send the BATs for these
  • store BATs in block metadata store

Privacy improvements

  • don't broadcast block retrievals to DHT or bitswap
  • don't provide blocks to DHT unless we are running a mirror (also reduces CPU and bandwidth)

Optimisations:

  • 10x less bandwidth usage when idle
  • faster peer dials to get blocks
  • less CPU and RAM usage
  • inline p2p block get authorization
  • block repeated block get attempts with invalid auth
  • huge speed up to cacheless delete (e.g. in incognito mode)
  • use owner to lookup peer to retrieve block from in the common case
  • improve sign up oplog from 10 pointer updates and 29 blocks to, 2 pointer updates and 10 blocks
  • upgrade HTTP client in JavaPoster

Fixes:

  • timezone issue in BAT verification
  • fix handling of writable secret links
  • Bulk delete on B2 (which is not S3 compliant)
  • CAS exception making social post
  • support Ed25519 PKI peer id
  • event loading in calendar

Release commit:
web-ui/59c4fa5820dd7964a70d992c7bec97ff252e98ea