Skip to content

Commit 2eb4c86

Browse files
Merge pull request ipfs#4232 from ipfs/release-0.4.11-rc1
bump version to 0.4.11-rc1, update changelog
2 parents a8890f6 + f8c2b0a commit 2eb4c86

File tree

3 files changed

+122
-3
lines changed

3 files changed

+122
-3
lines changed

CHANGELOG.md

Lines changed: 120 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,124 @@
11
# go-ipfs changelog
22

3+
### 0.4.11-rc1 2017-09-14
4+
5+
Ipfs 0.4.11 is a larger release that brings many long-awaited features and
6+
performance improvements. These include new datastore options, more efficient
7+
bitswap transfers, circuit relay support, ipld plugins and more! Take a look
8+
at the full changelog below for a detailed list of every change.
9+
10+
The ipfs datastore has, until now, been a combination of leveldb and a custom
11+
git-like storage backend called 'flatfs'. This works well enough for the
12+
average user, but different ipfs usecases demand different backend
13+
configurations. To address this, we have changed the configuration file format
14+
for datastores to be a modular way of specifying exactly how you want the
15+
datastore to be structured. You will now be able to configure ipfs to use
16+
flatfs, leveldb, badger, an in-memory datastore, and more to suit your needs.
17+
See the new [datastore
18+
documentation](https://github.com/ipfs/go-ipfs/blob/master/docs/datastores.md)
19+
for more information.
20+
21+
Bitswap received some much needed attention during this release cycle. The
22+
concept of 'Bitswap Sessions' allows bitswap to associate requests for
23+
different blocks to the same underlying session, and from that infer better
24+
ways of requesting that data. In more concrete terms, parts of the ipfs
25+
codebase that take advantage of sessions (currently, only `ipfs pin add`) will
26+
cause much less extra traffic than before. This is done by making optimistic
27+
guesses about which nodes might be providing given blocks and not sending
28+
wantlist updates to every connected bitswap partner, as well as searching the
29+
DHT for providers less frequently. In future releases we will migrate over more
30+
ipfs commands to take advantage of bitswap sessions. As nodes update to this
31+
and future versions, expect to see idle bandwidth usage on the ipfs network
32+
go down noticably.
33+
34+
It is often said that NAT traversal is the hardest problem in peer to peer
35+
technology, we tend to agree with this. In an effort to provide a more
36+
ubiquitous p2p mesh, we have implemented a relay mechanism that allows willing
37+
peers to relay traffic for other peers who might not otherwise be able to
38+
communicate with each other. This feature is still pretty early, and currently
39+
users have to manually connect through a relay. The next step in this endeavour
40+
is automatic relaying, and research for this is currently in progress. We
41+
expect that when it lands, it will improve the perceived performance of ipfs by
42+
spending less time attempting connections to hard to reach nodes. A short guide
43+
on using the circuit relay feature can be found
44+
[here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#circuit-relay).
45+
46+
The last feature we want to highlight (but by no means the last feature in this
47+
release) is our new plugin system. There are many different workflows and
48+
usecases that ipfs should be able to support, but not everyone wants to be able
49+
to use every feature. We could simply merge in all these features, but that
50+
causes problems for several reasons: first off, the size of the ipfs binary
51+
starts to get very large very quickly. Second, each of these different pieces
52+
needs to be maintained and updated independently, which would cause significant
53+
churn in the codebase. To address this, we have come up with a system that
54+
allows users to install plugins to the vanilla ipfs daemon that augment its
55+
capabilities. The first of these plugins are a [git
56+
plugin](https://github.com/ipfs/go-ipfs/blob/master/plugin/plugins/git/git.go)
57+
that allows ipfs to natively address git objects and an [ethereum
58+
plugin](https://github.com/ipfs/go-ipld-eth) that lets ipfs ingest and operate
59+
on all ethereum blockchain data. Soon to come are plugins for the bitcoin and
60+
zcash data formats. In the future, we will be adding plugins for other things
61+
like datastore backends and specialized libp2p network transports.
62+
63+
In order to simplify its integration with fs-repo-migrations, we've switched
64+
the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users
65+
this will not be noticable, but if you've been building your own images based
66+
off this image, you'll have to update your dockerfile. We recommend a
67+
multi-stage dockerfile, where the build stage is based off of a regular Debian or
68+
other glibc-based image, and the assembly stage is based off of the ipfs/go-ipfs
69+
image, and you copy build artifacts from the build stage to the assembly
70+
stage. Note, if you are using the docker image and see a deprecation message,
71+
please update your usage. We will stop supporting the old method of starting
72+
the dockerfile in the next release.
73+
74+
Finally, I would like to thank all of our contributors, users, supporters, and
75+
friends for helping us along the way. Ipfs would not be where it is without
76+
you.
77+
78+
79+
- Features
80+
- Add `--pin` option to `ipfs dag put` ([ipfs/go-ipfs#4004](https://github.com/ipfs/go-ipfs/pull/4004))
81+
- Add `--pin` option to `ipfs object put` ([ipfs/go-ipfs#4095](https://github.com/ipfs/go-ipfs/pull/4095))
82+
- Implement `--profile` option on `ipfs init` ([ipfs/go-ipfs#4001](https://github.com/ipfs/go-ipfs/pull/4001))
83+
- Add CID Codecs to `ipfs block put` ([ipfs/go-ipfs#4022](https://github.com/ipfs/go-ipfs/pull/4022))
84+
- Bitswap sessions ([ipfs/go-ipfs#3867](https://github.com/ipfs/go-ipfs/pull/3867))
85+
- Create plugin API and loader, add ipld-git plugin ([ipfs/go-ipfs#4033](https://github.com/ipfs/go-ipfs/pull/4033))
86+
- Make announced swarm addresses configurable ([ipfs/go-ipfs#3948](https://github.com/ipfs/go-ipfs/pull/3948))
87+
- Reprovider strategies ([ipfs/go-ipfs#4113](https://github.com/ipfs/go-ipfs/pull/4113))
88+
- Circuit Relay integration ([ipfs/go-ipfs#4091](https://github.com/ipfs/go-ipfs/pull/4091))
89+
- More configurable datastore configs ([ipfs/go-ipfs#3575](https://github.com/ipfs/go-ipfs/pull/3575))
90+
- Add experimental support for badger datastore ([ipfs/go-ipfs#4007](https://github.com/ipfs/go-ipfs/pull/4007))
91+
- Improvements
92+
- Add better support for Raw Nodes in MFS and elsewhere ([ipfs/go-ipfs#3996](https://github.com/ipfs/go-ipfs/pull/3996))
93+
- Added file size to response of `ipfs add` command ([ipfs/go-ipfs#4082](https://github.com/ipfs/go-ipfs/pull/4082))
94+
- Add /dnsaddr bootstrap nodes ([ipfs/go-ipfs#4127](https://github.com/ipfs/go-ipfs/pull/4127))
95+
- Do not publish public keys extractable from ID ([ipfs/go-ipfs#4020](https://github.com/ipfs/go-ipfs/pull/4020))
96+
- Documentation
97+
- Adding documentation that PubSub Sub can be encoded. ([ipfs/go-ipfs#3909](https://github.com/ipfs/go-ipfs/pull/3909))
98+
- Add Comms items from js-ipfs, including blog ([ipfs/go-ipfs#3936](https://github.com/ipfs/go-ipfs/pull/3936))
99+
- Add Developer Certificate of Origin ([ipfs/go-ipfs#4006](https://github.com/ipfs/go-ipfs/pull/4006))
100+
- Add `transports.md` document ([ipfs/go-ipfs#4034](https://github.com/ipfs/go-ipfs/pull/4034))
101+
- Add `experimental-features.md` document ([ipfs/go-ipfs#4036](https://github.com/ipfs/go-ipfs/pull/4036))
102+
- Update release docs ([ipfs/go-ipfs#4165](https://github.com/ipfs/go-ipfs/pull/4165))
103+
- Add documentation for datastore configs ([ipfs/go-ipfs#4223](https://github.com/ipfs/go-ipfs/pull/4223))
104+
- General update and clean-up of docs ([ipfs/go-ipfs#4222](https://github.com/ipfs/go-ipfs/pull/4222))
105+
- Bugfixes
106+
- Fix shutdown check in t0023 ([ipfs/go-ipfs#3969](https://github.com/ipfs/go-ipfs/pull/3969))
107+
- Fix pinning of unixfs sharded directories ([ipfs/go-ipfs#3975](https://github.com/ipfs/go-ipfs/pull/3975))
108+
- Show escaped url in gateway 404 message ([ipfs/go-ipfs#4005](https://github.com/ipfs/go-ipfs/pull/4005))
109+
- Fix early opening of bitswap message sender ([ipfs/go-ipfs#4069](https://github.com/ipfs/go-ipfs/pull/4069))
110+
- Fix determination of 'root' node in dag put ([ipfs/go-ipfs#4072](https://github.com/ipfs/go-ipfs/pull/4072))
111+
- Fix bad multipart message panic in gateway ([ipfs/go-ipfs#4053](https://github.com/ipfs/go-ipfs/pull/4053))
112+
- Add blocks to the blockstore before returning them from blockservice sessions ([ipfs/go-ipfs#4169](https://github.com/ipfs/go-ipfs/pull/4169))
113+
- Various fixes for /ipfs fuse code ([ipfs/go-ipfs#4194](https://github.com/ipfs/go-ipfs/pull/4194))
114+
- General Changes and Refactorings
115+
- Require go 1.8 ([ipfs/go-ipfs#4044](https://github.com/ipfs/go-ipfs/pull/4044))
116+
- Change IPFS to use the new pluggable Block to IPLD decoding framework. ([ipfs/go-ipfs#4060](https://github.com/ipfs/go-ipfs/pull/4060))
117+
- Remove tour command from ipfs ([ipfs/go-ipfs#4123](https://github.com/ipfs/go-ipfs/pull/4123))
118+
- Add support for Go 1.9 ([ipfs/go-ipfs#4156](https://github.com/ipfs/go-ipfs/pull/4156))
119+
- Remove some dead code ([ipfs/go-ipfs#4204](https://github.com/ipfs/go-ipfs/pull/4204))
120+
- Switch docker image from musl to glibc ([ipfs/go-ipfs#4219](https://github.com/ipfs/go-ipfs/pull/4219))
121+
3122
### 0.4.10 - 2017-06-27
4123

5124
Ipfs 0.4.10 is a patch release that contains several exciting new features,
@@ -60,7 +179,7 @@ other requested improvements. See below for the full list of changes.
60179
- Add 'ipfs dht findprovs --num-providers' to allow choosing number of providers to find ([ipfs/go-ipfs#3966](https://github.com/ipfs/go-ipfs/pull/3966))
61180
- Make sure all keystore keys get republished ([ipfs/go-ipfs#3951](https://github.com/ipfs/go-ipfs/pull/3951))
62181
- Documentation
63-
- Adding documentation on PubSub encodedings ([ipfs/go-ipfs#3909](https://github.com/ipfs/go-ipfs/pull/3909))
182+
- Adding documentation on PubSub encodings ([ipfs/go-ipfs#3909](https://github.com/ipfs/go-ipfs/pull/3909))
64183
- Change 'neccessary' to 'necessary' ([ipfs/go-ipfs#3941](https://github.com/ipfs/go-ipfs/pull/3941))
65184
- README.md: add Nix to the linux package managers ([ipfs/go-ipfs#3939](https://github.com/ipfs/go-ipfs/pull/3939))
66185
- More verbose errors in filestore ([ipfs/go-ipfs#3964](https://github.com/ipfs/go-ipfs/pull/3964))

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,6 @@
469469
"language": "go",
470470
"license": "MIT",
471471
"name": "go-ipfs",
472-
"version": "0.4.11-dev"
472+
"version": "0.4.11-rc1"
473473
}
474474

repo/config/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ package config
44
var CurrentCommit string
55

66
// CurrentVersionNumber is the current application's version literal
7-
const CurrentVersionNumber = "0.4.11-dev"
7+
const CurrentVersionNumber = "0.4.11-rc1"
88

99
const ApiVersion = "/go-ipfs/" + CurrentVersionNumber + "/"

0 commit comments

Comments
 (0)