Back to Kubo

go-ipfs changelog v0.7

docs/changelogs/v0.7.md

0.41.046.3 KB
Original Source

go-ipfs changelog v0.7

v0.7.0 2020-09-22

Highlights

Secio is now disabled by default

As part of deprecating and removing support for the Secio security transport, we have disabled it by default. TLS1.3 will remain the default security transport with fallback to Noise. You can read more about the deprecation in the blog post, https://blog.ipfs.io/2020-08-07-deprecating-secio/. If you're running IPFS older than 0.5, this may start to impact your performance on the public network.

Ed25519 keys are now used by default

Previously go-ipfs generated 2048 bit RSA keys for new nodes, but it will now use ed25519 keys by default. This will not affect any existing keys, but newly created keys will be ed25519 by default. The main benefit of using ed25519 keys over RSA is that ed25519 keys have an inline public key. This means that someone only needs your PeerId to verify things you've signed, which means we don't have to worry about storing those bulky RSA public keys.

Rotating keys

Along with switching the default, we've added support for rotating keys. If you would like to change the key type of your IPFS node, you can now do so with the rotate command. NOTE: This will affect your Peer Id, so be sure you want to do this! Your existing identity key will be backed up in the Keystore.

bash
ipfs key rotate -o my-old-key -t ed25519

Key export/import

We've added commands to allow you to export and import keys from the IPFS Keystore to a local .key file. This does not apply to the IPFS identity key, self.

bash
ipfs key gen mykey
ipfs key export -o mykey.key mykey # ./<name>.key is the default path
ipfs key import mykey mykey.key # on another node

IPNS paths now encode the key name as a base36 CIDv1 by default

Previously go-ipfs encoded the key names for IPNS paths as base58btc multihashes (e.g. Qmabc...). We now encode them as base36 encoded CIDv1s as defined in the peerID spec (e.g. k51xyz...) which also deals with encoding of public keys. This is nice because it means that IPNS keys will by default be case-insensitive and that they will fit into DNS labels (e.g. k51xyz...ipns.localhost) and therefore that subdomain gateway redirections (e.g. from localhost:8080/ipns/{key} to {key}.ipns.localhost) will look better to users in the default case.

Many commands will accept a --ipns-base option that allows changing command outputs to use a particular encoding (i.e. base58btc multihash, or CIDv1 encoded in any supported base)

Multiaddresses now accept PeerIDs encoded as CIDv1

In preparation for eventually changing the default PeerID representation multiaddresses can now contain strings like /p2p/k51xyz... in addition to the default /p2p/Qmabc.... There is a corresponding --peerid-base option to many functions that output peerIDs.

dag stat

Initial support has been added for the ipfs dag stat command. Running this command will traverse the DAG for the given root CID and report statistics. By default, progress will be shown as the DAG is traversed. Supported statistics currently include DAG size and number of blocks.

bash
ipfs dag stat bafybeihpetclqvwb4qnmumvcn7nh4pxrtugrlpw4jgjpqicdxsv7opdm6e # the IPFS webui
Size: 30362191, NumBlocks: 346

Plugin build changes

We have changed the build flags used by the official binary distributions on dist.ipfs.tech (or /ipns/dist.ipfs.tech) to use the simpler and more reliable -trimpath flag instead of the more complicated and brittle -asmflags=all=-trimpath="$(GOPATH)" -gcflags=all=-trimpath="$(GOPATH)" flags, however the build flags used by default in go-ipfs remain the same.

The scripts in https://github.com/ipfs/go-ipfs-example-plugin have been updated to reflect this change. This is a breaking change to how people have been building plugins against the dist.ipfs.tech binary of go-ipfs and plugins should update their build processes accordingly see https://github.com/ipfs/go-ipfs-example-plugin/pull/9 for details.

Changelog

Contributors

ContributorCommitsLines ±Files Changed
Marten Seemann156+16428/-42621979
hannahhoward42+15132/-9819467
Eric Myhre114+13709/-6898586
Steven Allen55+1211/-271495
Adin Schmahmann54+1660/-783117
Petar Maymounkov23+1677/-67175
Aarsh Shah10+1926/-34139
Raúl Kripalani17+1134/-53753
Will1+841/-09
rendaw3+425/-19512
Will Scott8+302/-22915
vyzo22+345/-16623
Fazlul Shahriar7+452/-4419
Peter Rabbitson1+353/-1185
Hector Sanjuan10+451/-314
Marcin Rataj9+298/-10616
Łukasz Magiera4+329/-5112
RubenKelevra9+331/-712
Michael Muré2+259/-696
jstordeur1+252/-25
Diederik Loerakker1+168/-357
Tiger3+138/-528
Kevin Neaton3+103/-219
Rod Vagg1+50/-404
Oli Evans4+60/-96
achingbrain4+30/-305
Cyril Fougeray2+34/-242
Luke Tucker1+31/-12
sandman2+23/-73
Alan Shaw1+18/-92
Jacob Heun4+13/-34
Jessica Schilling3+7/-73
Rafael Ramalho4+9/-44
Jeromy Johnson2+6/-64
Nick Cabatoff1+7/-21
Stephen Solka1+1/-71
Preston Van Loon2+6/-22
Jakub Sztandera2+5/-22
llx1+3/-31
Adrian Lanzafame1+3/-31
Yusef Napora1+3/-21
Louis Thibault1+5/-01
Martín Triay1+4/-01
Hlib1+2/-21
Shotaro Yamada1+2/-11
phuslu1+1/-11
Zero King1+1/-11
Rüdiger Klaehn1+2/-01
Nex1+1/-11
Mark Gaiser1+1/-11
Luflosi1+1/-11
David Florness1+1/-11
Dean Eigenmann1+0/-11