Skip to content

Commit

Permalink
Merge pull request #5196 from ipfs/release-0.4.16-rc2
Browse files Browse the repository at this point in the history
Ipfs 0.4.16 release candidate 2
  • Loading branch information
whyrusleeping authored Jul 5, 2018
2 parents 48577e0 + 0bde02e commit e7938a1
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .gx/lastpubver
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.15: QmcKwjeebv5SX3VFUGDFa4BNMYhy14RRaCzQP7JN3UQDpB
0.4.16-rc2: QmYM2pipuZdMKKgU6m8wNN7F7sL64ipaCCf3p6VJpKHdb1
66 changes: 66 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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))
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,6 @@
"language": "go",
"license": "MIT",
"name": "go-ipfs",
"version": "0.4.16-rc1"
"version": "0.4.16-rc2"
}

2 changes: 1 addition & 1 deletion repo/config/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 + "/"

0 comments on commit e7938a1

Please sign in to comment.