4
4
5
5
Ipfs 0.4.11 is a larger release that brings many long-awaited features and
6
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.
7
+ bitswap transfers, greatly improved resource consumption, circuit relay
8
+ support, ipld plugins, and more! Take a look at the full changelog below for a
9
+ detailed list of every change.
9
10
10
11
The ipfs datastore has, until now, been a combination of leveldb and a custom
11
12
git-like storage backend called 'flatfs'. This works well enough for the
@@ -31,6 +32,22 @@ ipfs commands to take advantage of bitswap sessions. As nodes update to this
31
32
and future versions, expect to see idle bandwidth usage on the ipfs network
32
33
go down noticably.
33
34
35
+ The never ending effort to reduce resource consumption had a few important
36
+ updates this release. First, the bitswap sessions changes discussed above will
37
+ help with improving bandwidth usage. Aside from that there are two important
38
+ libp2p updates that improved things significantly. The first was a fix to a bug
39
+ in the dial limiter code that was causing it to not limit outgoing dials
40
+ correctly. This resulted in ipfs running out of file descriptors very
41
+ frequently (as well as incurring a decent amount of excess outgoing bandwidth),
42
+ this has now been fixed. Users who previously received "too many open files"
43
+ errors should see this much less often in 0.4.11. The second change was a
44
+ memory leak in the DHT that was identified and fixed. Streams being tracked in
45
+ a map in the DHT weren't being cleaned up after the peer disconnected leading
46
+ to the multiplexer session not being cleaned up properly. This issue has been
47
+ resolved, and now memory usage appears to be stable over time. There is still a
48
+ lot of work to be done improving memory usage, but we feel this is a solid
49
+ victory.
50
+
34
51
It is often said that NAT traversal is the hardest problem in peer to peer
35
52
technology, we tend to agree with this. In an effort to provide a more
36
53
ubiquitous p2p mesh, we have implemented a relay mechanism that allows willing
111
128
- Fix bad multipart message panic in gateway ([ ipfs/go-ipfs #4053 ] ( https://github.com/ipfs/go-ipfs/pull/4053 ) )
112
129
- Add blocks to the blockstore before returning them from blockservice sessions ([ ipfs/go-ipfs #4169 ] ( https://github.com/ipfs/go-ipfs/pull/4169 ) )
113
130
- Various fixes for /ipfs fuse code ([ ipfs/go-ipfs #4194 ] ( https://github.com/ipfs/go-ipfs/pull/4194 ) )
131
+ - Fix memory leak in dht stream tracking ([ ipfs/go-ipfs #4251 ] ( https://github.com/ipfs/go-ipfs/pull/4251 ) )
114
132
- General Changes and Refactorings
115
133
- Require go 1.8 ([ ipfs/go-ipfs #4044 ] ( https://github.com/ipfs/go-ipfs/pull/4044 ) )
116
134
- Change IPFS to use the new pluggable Block to IPLD decoding framework. ([ ipfs/go-ipfs #4060 ] ( https://github.com/ipfs/go-ipfs/pull/4060 ) )
0 commit comments