You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're happy to announce go-ipfs v0.7.0, it has a number of user facing changes so if you're wondering what happened to SECIO or why you're starting to see more peers with peerIDs that don't start with Qm checkout the highlights.
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.
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.
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.
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 (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 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 ipfs/go-ipfs-example-plugin#9 for details.
Changelog
Full Changelog
github.com/ipfs/go-ipfs:
chore: bump webui version
fix: remove the (empty) alias for --peerid-base
Release v0.7.0-rc2
fix: use override GOFLAGS changes from 480defa but keep trimpath usage as is
Revert "fix: override GOFLAGS"
fix: remove the (empty) alias for --ipns-base
refactor: put all --ipns-base options in one place
docs: update config to indicate SECIO deprecation
fix: ipfs dht put/get commands now work on keys encoded as peerIDs and fail early for namespaces other than /pk or /ipns
All changes to date including pause requests & start paused, along with new adds for cleanups and checking of execution (DHT use new net #75) (ipfs/go-graphsync#75)
chore: switch from go-multiaddr-net to go-multiaddr/net
Use crypto/rand for generating random prefixes
feat: when using the diversity filter for ipv6 addresses if the ASN cannot be found for a particular address then fallback on using the /32 mask of the address as the group name instead of simply rejecting the peer from routing table
Fork a new branch (release-vX.Y.Z) from master and make any further release related changes to this branch. If any "non-trivial" changes (see the footnotes of docs/releases.md for a definition) get added to the release, uncheck all the checkboxes and return to this stage.
Follow the RC release process to cut the first RC.
Bump the version in version.go in the master branch to vX.(Y+1).0-dev.
Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
Reach out to the IPFS early testers listed in docs/EARLY_TESTERS.md for testing this release (check when no more problems have been reported). If you'd like to be added to this list, please file a PR.
Reach out to on IRC for beta testers.
Run tests available in the following repos with the latest beta (check when all tests pass):
The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs channel on Freenode, which is also accessible through our Matrix bridge.
go-ipfs 0.7.0 Release
We're happy to announce go-ipfs v0.7.0, it has a number of user facing changes so if you're wondering what happened to SECIO or why you're starting to see more peers with peerIDs that don't start with Qm checkout the highlights.
🗺 What's left for release
🚢 Estimated shipping date
~ Sept 22, 2020
🔦 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.
📦 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.#️⃣ 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-baseoption 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-baseoption to many functions that output peerIDs.🧮
dag statInitial support has been added for the
ipfs dag statcommand. 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.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 (or
/ipns/dist.ipfs.io) to use the simpler and more reliable-trimpathflag 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.io binary of go-ipfs and plugins should update their build processes accordingly see ipfs/go-ipfs-example-plugin#9 for details.
Changelog
Full Changelog
failed to fetch repo
.Addrs(set proper UID and GID on fuse filesystems #988) (libp2p/go-libp2p#988)ipfs id <id>fails #381) (libp2p/go-libp2p-pubsub#381)ipfs tour#171) (libp2p/go-libp2p-quic-transport#171)ID()method on connections and streams + record opening time (refactor(blockservice, merkledag, namesys) deprecate u.ErrNotFound #224) (libp2p/go-libp2p-swarm#224)✅ Release Checklist
For each RC published in each stage:
version.gohas been updated (in therelease-vX.Y.Zbranch).vX.Y.Z-rcNChecklist:
release-vX.Y.Z) frommasterand make any further release related changes to this branch. If any "non-trivial" changes (see the footnotes of docs/releases.md for a definition) get added to the release, uncheck all the checkboxes and return to this stage.version.goin themasterbranch tovX.(Y+1).0-dev.make test)make test_go_lint)./bin/mkreleaselogto generate a nice starter listversion.gohas been updated.release-vX.Y.Zinto thereleasebranch.releasebranch) withvX.Y.Z.releasebranch back intomaster, ignoring the changes toversion.go(keep the-devversion from master).❤️ Contributors
Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:
help wantedlabel in the go-ipfs repoThe best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the
#ipfschannel on Freenode, which is also accessible through our Matrix bridge.