This repository has been archived by the owner on Apr 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 48
post: add go-ipfs 0.7 post #478
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
ecf6a62
post: add go-ipfs 0.7 post
jacobheun 98eee4a
post: update 0.7 release post
jacobheun a02e6ed
post: cleanup and changelog link
jacobheun 20ffb1f
post: update 0.7 release feedback
jacobheun 0d71841
chore: more feedback updates
jacobheun e84dc38
post: update date
jacobheun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
--- | ||
date: 2020-09-24 | ||
url: /2020-09-24-go-ipfs-0-7-0/ | ||
title: IPFS 0.7.0, the SECIO retirement edition, is here! | ||
author: Jacob Heun & Adin Schmahmann | ||
tags: go-ipfs, release | ||
--- | ||
|
||
In August we announced the [deprecation of the SECIO security transport](https://blog.ipfs.io/2020-08-07-deprecating-secio/). In this release we have disabled SECIO by default, which will have an impact on older nodes on the network. The best way to mitigate the impact of this change is to [upgrade your IPFS nodes](https://docs.ipfs.io/recent-releases/go-ipfs-0-7/update-procedure) as soon as possible! Not only will upgrading ensure you're using the latest security transports, you'll get access to all of the [performance improvements](https://blog.ipfs.io/2020-07-20-dht-deep-dive/) we've made this year to content routing. | ||
|
||
With this release you will also start seeing more Peer IDs and IPNS Keys on the network that start with `1` instead of the typical `Qm`. This is due to a switch to ed25519 keys being used by default over RSA keys, which you can read more about in the highlights below. | ||
|
||
🚨 For those of you using plugins with IPFS there is a breaking change detailed below to the build process. | ||
|
||
# 🔦 Go-IPFS 0.7.0 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 Go IPFS older than 0.5 or JS IPFS older than 0.47, this may start to impact your performance on the public network, so we strongly encourage you to upgrade today! | ||
|
||
## 🗝️ 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, such as your Peer Records or in the future Signed Provider Records, which means we don't have to worry about storing bulky RSA public keys. | ||
|
||
### Rotating keys | ||
|
||
Along with switching the default key type, we've added support for rotating Identity 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 so that it can still be referenced for things like IPNS records. | ||
|
||
```console | ||
$ ipfs key rotate -o my-old-key -t ed25519 | ||
``` | ||
|
||
## 📦 Key export/import | ||
|
||
Speaking of backing up keys, we've added commands to allow you to export and import keys from the IPFS Keystore to a local .key file. This does not currently apply to the IPFS identity key, `self`, which is housed in the configuration file. | ||
|
||
```console | ||
$ 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](https://github.com/libp2p/specs/blob/master/peer-ids/peer-ids.md#string-representation) (e.g. `k51xyz...`) which also deals with the 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): | ||
|
||
|
||
```console | ||
$ ipfs key list -l --ipns-base b58mh | ||
12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK self | ||
$ ipfs key list -l --ipns-base base36 | ||
k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2 self | ||
``` | ||
|
||
## 📮 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: | ||
|
||
```console | ||
$ ipfs id --format "<id>" --peerid-base b58mh | ||
12D3KooWCjhz69LskTZEC5vFWs8eDpHo7kYbGzrC5EjU75BHSmVK | ||
$ ipfs id --format "<id>" --peerid-base base36 | ||
k51qzi5uqu5dh9ihj4p2v5sl3hxvv27ryx2w0xrsv6jmmqi91t9xp8p9kaipc2 | ||
``` | ||
|
||
## 🧮 `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. | ||
|
||
```console | ||
$ 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.io](https://dist.ipfs.io) (or `/ipns/dist.ipfs.io`) 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 [go-ipfs-example-plugin](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.io binary of go-ipfs and plugins should update their build processes accordingly. See [go-ipfs-example-plugin/pull/9](https://github.com/ipfs/go-ipfs-example-plugin/pull/9) for details. | ||
|
||
## The Changelog | ||
|
||
For a full list of updates included in this release you can review the Changelog at https://github.com/ipfs/go-ipfs/blob/v0.7.0/CHANGELOG.md#v070-2020-09-22. | ||
|
||
## Thank you contributors! | ||
|
||
A huge thank you to [everyone who contributed](https://github.com/ipfs/go-ipfs/blob/v0.7.0/CHANGELOG.md#contributors) patches and improvements in this release, all **53** of you! We couldn’t have made this happen without your help and feedback. ❤ | ||
|
||
## Install, upgrade, and join us! | ||
|
||
You can get started by [installing go-ipfs](https://dist.ipfs.io/#go-ipfs) or [upgrading to go-ipfs 0.7](https://docs.ipfs.io/recent-releases/go-ipfs-0-7/update-procedure). | ||
|
||
There are many ways to get involved with IPFS based on your skill set, interest, and availability. Please check out [our contribution page](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md) on GitHub for guidance and next steps. | ||
|
||
This is an exciting time for IPFS and the web in general. Join us! |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://docs.ipfs.io/recent-releases/go-ipfs-0-7/update-procedure is missing atm – @johnnymatthews is there a PR for adding it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There isn't a page for
recent-releases/go-ipfs-0-7
yet. I'll make it now though. Gonna steal heavily from this blog post. Hope that's ok.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll create a PR to the ipfs repo to include the update process docs in the release check list so we can make sure we start that update process earlier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delay. docs.ipfs.io/recent-releases/go-ipfs-0-7/ is now live-ish. I just pushed, so it might take about an hour or so to propagate through the interwebs.