Libp2p is replacing all multiaddrs of the form /ipfs/QmFoo
(old-style) with /p2p/QmFoo
(new-style). The /ipfs
prefix his an historical artifact from the days before libp2p was split out of IPFS.
All libp2p implementations have supported parsing new-style multiaddrs for at least 5 months (see the timeline). We are now entering the second phase of this transition and will:
- Deprecate the old-style (without removing support).
- Start formatting addresses using the new-style by default.
Impact
- This change does not affect the network or binary representation of multiaddrs, just the textual representation.
- This change will not affect network interoperability.
- Old nodes (see below) will not be able to parse textual new-style multiaddrs. Specifically,
ipfs swarm connect /p2p/QmFoobar
will not work on go-ipfs releases before 0.4.16 or js-ipfs releases before 0.34.
Timeline
Phase 1: Parsing Support
- go-libp2p - June 26, 2018 (tag gx/v6.0.5)
- go-ipfs - July 13, 2018 (0.4.16)
- rust-libp2p - Since the beginning.
- js-libp2p - April 12, 2019 (0.25.0)
- js-ipfs - May 22, 2019 (0.36.0)
Phase 2: Default
- go-libp2p
- go-ipfs (landing in 0.5.0)
- rust-libp2p - always
- js-libp2p
- js-ipfs