|
1 | 1 | # go-ipfs changelog
|
2 | 2 |
|
3 |
| -## 0.4.12-rc2 2017-10-26 |
| 3 | +## 0.4.12 2017-11-09 |
| 4 | + |
| 5 | +Ipfs 0.4.12 brings with it many important fixes for the huge spike in network |
| 6 | +size we've seen this past month. These changes include the Connection Manager, |
| 7 | +faster batching in `ipfs add`, libp2p fixes that reduce CPU usage, and a bunch |
| 8 | +of new documentation. |
| 9 | + |
| 10 | +The most critical change is the 'Connection Manager': it allows an ipfs node to |
| 11 | +maintain a limited set of connections to other peers in the network. By default |
| 12 | +(and with no config changes required by the user), ipfs nodes will now try to |
| 13 | +maintain between 600 and 900 open connections. These limits are still likely |
| 14 | +higher than needed, and future releases may lower the default recommendation, |
| 15 | +but for now we want to make changes gradually. The rationale for this selection |
| 16 | +of numbers is as follows: |
| 17 | + |
| 18 | +- The DHT routing table for a large network may rise to around 400 peers |
| 19 | +- Bitswap connections tend to be separate from the DHT |
| 20 | +- PubSub connections also generally are another distinct set of peers |
| 21 | + (including js-ipfs nodes) |
| 22 | + |
| 23 | +Because of this, we selected 600 as a 'LowWater' number, and 900 as a |
| 24 | +'HighWater' number to avoid having to clear out connections too frequently. |
| 25 | +You can configure different numbers as you see fit via the `Swarm.ConnMgr` |
| 26 | +field in your ipfs config file. See |
| 27 | +[here](https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#connmgr) for |
| 28 | +more details. |
| 29 | + |
| 30 | +Disk utilization during `ipfs add` has been optimized for large files by doing |
| 31 | +batch writes in parallel. Previously, when adding a large file, users might have |
| 32 | +noticed that the add progressed by about 8MB at a time, with brief pauses in between. |
| 33 | +This was caused by quickly filling up the batch, then blocking while it was |
| 34 | +writing to disk. We now write to disk in the background while continuing to add |
| 35 | +the remainder of the file. |
| 36 | + |
| 37 | +Other changes in this release have noticeably reduced memory consumption and CPU |
| 38 | +usage. This was done by optimising some frequently called functions in libp2p |
| 39 | +that were expensive in terms of both CPU usage and memory allocations. We also |
| 40 | +lowered the yamux accept buffer sizes which were raised over a year ago to |
| 41 | +combat a separate bug that has since been fixed. |
| 42 | + |
| 43 | +And finally, thank you to everyone who filed bugs, tested out the release candidates, |
| 44 | +filed pull requests, and contributed in any other way to this release! |
4 | 45 |
|
5 | 46 | - Features
|
6 | 47 | - Implement Connection Manager ([ipfs/go-ipfs#4288](https://github.com/ipfs/go-ipfs/pull/4288))
|
|
0 commit comments