diff --git a/.gx/lastpubver b/.gx/lastpubver index 22468b931..985b0d740 100644 --- a/.gx/lastpubver +++ b/.gx/lastpubver @@ -1 +1 @@ -0.4.15: QmcKwjeebv5SX3VFUGDFa4BNMYhy14RRaCzQP7JN3UQDpB +0.4.16-rc2: QmYM2pipuZdMKKgU6m8wNN7F7sL64ipaCCf3p6VJpKHdb1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 26fcedadf..8269ad14a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,71 @@ # go-ipfs changelog +## 0.4.16 + +Ipfs 0.4.16 is a fairly small release in terms of changes to the ipfs codebase, +but it contains a huge amount of changes and improvements from libraries we +depend on, notably libp2p. This version of ipfs contains the changes for libp2p +v6.0.5, In that release, we made significant changes to the codebase to allow +for more easy integration of future transports and modules. We also improved +some of our dialing logic, fixed a couple issues in the DHT, and added +support for a new way to write ipfs multiaddrs. The transport refactor now +allows us to much more easily add in support for running libp2p (and by +extension, ipfs) over QUIC, or using TLS instead of secio for encrypting +connections. Our [QUIC +transport](https://github.com/libp2p/go-libp2p-quic-transport) currently +works, and can be plugged into libp2p manually (though note that it is +still experimental, as the upstream spec is still in flux). Further work is +needed to make enabling this inside ipfs easy and not require +recompilation. For more information on the refactor and libp2p v6.0.0, see +the [release blog post](https://ipfs.io/blog/39-go-libp2p-6-0-0/). Between +libp2p v6.0.0 and v6.0.5, there have been some changes worth pointing out +as well. The swarm dialer has been improved to have shortened timeouts when +dialing peers in 'local' subnets. This prevents large dial timeouts from +wasting dial time when the subnet you are dialing is not accessible. The +TCP handshake timeout has also been dropped to 5 seconds, improving the +performance of dials to non-existent addresses. In the DHT, we have fixed +the query code to put records to the K closest peers we can actually +connect to, which is a strict superset of the peers we previously put +records to: The peers we could connect to out of the K closest we learned +about. Finally, we are changing the way that people write 'ipfs' +multiaddrs. Currently, ipfs multiaddrs look something like +`/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ`. +But caling them 'ipfs' multiaddrs is a bit misleading, as this is actually +the multiaddr of a libp2p peer that runs ipfs. Other protocols using libp2p +right now still have to use multiaddrs that say 'ipfs', without actually +having anything to do with ipfs. Towards that, we are renaming them to +'p2p' multiaddrs. Moving forward these addresses will be written as: +`/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ`. +This release adds support for *parsing* both types of addresses into the +same binary format, and the binary format is remaining exactly the same. A +future release will have the ipfs daemon switch to *printing* out addresses +this way, once a large enough portion of the network has upgraded. + +On the ipfs side of things, we've added a few small features. The first of +which is moving to embedding public keys inside IPNS records. This allows +lookups to be faster, as we only need to fetch the record itself (and not the +public key separately), and also fixes an issue where DHT peers wouldnt store a +record for a peer if they didn't have their public key already. Combined with +some of the DHT and dialing fixes, this should improve the performance of IPNS +(once a majority of the network updates). + +The second feature added is the automatic inclusion of the git plugin in the +default build. With this, ipfs can ingest git repositories and other data +directly, and operate over it. For more information on this, see [the +go-ipld-git repo](https://github.com/ipfs/go-ipld-git). + +Various other changes were merged in this release, including great +documentation, a good number of smaller bugfixes, refactoring and a good bit +more. For the details, see the changelog below. + + +## 0.4.16-rc2 2018-07-05 +- Bugfixes + - Fix usage of file name vs path name in adder ([ipfs/go-ipfs#5167](https://github.com/ipfs/go-ipfs/pull/5167)) + - Fix `ipfs update` working with migrations ([ipfs/go-ipfs#5194](https://github.com/ipfs/go-ipfs/pull/5194)) +- Documentation + - Grammer fix in fuse docs ([ipfs/go-ipfs#5164](https://github.com/ipfs/go-ipfs/pull/5164)) + ## 0.4.16-rc1 2018-06-27 - Features - Embed public keys inside ipns records, use for validation ([ipfs/go-ipfs#5079](https://github.com/ipfs/go-ipfs/pull/5079)) diff --git a/package.json b/package.json index df1a4e0be..263115c9d 100644 --- a/package.json +++ b/package.json @@ -551,6 +551,6 @@ "language": "go", "license": "MIT", "name": "go-ipfs", - "version": "0.4.16-rc1" + "version": "0.4.16-rc2" } diff --git a/repo/config/version.go b/repo/config/version.go index 3b550bb90..465fd9d60 100644 --- a/repo/config/version.go +++ b/repo/config/version.go @@ -4,6 +4,6 @@ package config var CurrentCommit string // CurrentVersionNumber is the current application's version literal -const CurrentVersionNumber = "0.4.16-rc1" +const CurrentVersionNumber = "0.4.16-rc2" const ApiVersion = "/go-ipfs/" + CurrentVersionNumber + "/"