Skip to content

Road to 0.5 #6776

Closed
Closed
@Stebalien

Description

@Stebalien

[Living]

We're working towards a pretty large 0.5.0 go-ipfs release but still have some work remaining.

ETA: April 7th because apparently April 1st +/- a few days is reserved for jokes.

Release blockers

  • Working (small-data) content routing. That is, the DHT should be useful again for finding small data sets.

Landed features

  • Streaming pin ls results.
  • "internal" daemon plugin for perma-unstable plugins with direct access to go-ipfs internals.
  • Updated QUIC transport (backwards incompatible)
    • Updates the underlying QUIC protocol to draft 27. This should be the last breaking change to QUIC before it stabilizes.
    • Updates the handshake protocol to support ed25519 keys.
  • Significantly improved bitswap performance when serving data from high-latency disks.
  • Systemd support
    • Socket activation
    • Example unit files
    • Systemd startup/shutdown notifications
  • Support for .eth links in /ipns/.
  • A new and orders of magnitude faster (than rabin) content based chunker for ipfs add (buzhash).
  • Unix domain socket support for the HTTP API.
  • Identify Push - Libp2p now pushes announcements of address/protocol support changes made at runtime.
  • Significant extensions to the bitswap protocol PoC of Bitswap protocol extensions implementation go-bitswap#189
  • Async datastore writes in badger (2x performance improvements). NEEDS CONFIGURATION.
  • Write coalescing: We previously added support for batching small writes but ran into a significant bug (Write coalescing breaks against buggy secio  libp2p/go-libp2p#644) and had to pull out at the last minute. We have re-enabled this feature.
  • We will now prefer the TLS security transport over SECIO.

Next Up

  • QUIC by default. We've been working towards switching over to QUIC (a UDP-based transport) by default for quite some time. However, we've recently made some significant breaking changes to both the underlying protocol (bringing our implementation in-line with the draft spec) and the way in which we structure our QUIC TLS certificates.
  • Badger based datastore by default. We've been testing out badger for well over a year now and plan on switching over in the near future. However:
    • Badger just released a 2.0 with some significant changes and an incompatible database format.
    • Badger 1.0, in our current configuration, uses a lot of memory.
    • We still haven't thoroughly stress-tested badger.

Todo

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions