License: MIT Signed-off-by: Hector Sanjuan <code@hector.link>
18 KiB
ipfs-cluster changelog
v0.3.5 - 2018-03-29
This release comes full with new features. The biggest ones are the support for parallel pinning (using refs -r
rather than pin add
to pin things in IPFS), and the exposing of the http endpoints through libp2p. This allows users to securely interact with the HTTP API without having to setup SSL certificates.
-
Features
--no-status
foripfs-cluster-ctl pin add/rm
allows to speed up adding and removing by not fetching the status one second afterwards. Useful for ingesting pinsets to cluster | ipfs/ipfs-cluster#286 | ipfs/ipfs-cluster#329--wait
flag foripfs-cluster-ctl pin add/rm
allows to wait until a CID is fully pinned or unpinned ipfs/ipfs-cluster#338 | ipfs/ipfs-cluster#348 | ipfs/ipfs-cluster#363- Support
refs
pinning method. Parallel pinning | ipfs/ipfs-cluster#326 | ipfs/ipfs-cluster#331 - Double default timeouts for
ipfs-cluster-ctl
| ipfs/ipfs-cluster#323 | ipfs/ipfs-cluster#334 - Better error messages during startup | ipfs/ipfs-cluster#167 | ipfs/ipfs-cluster#344 | ipfs/ipfs-cluster#353
- REST API client now provides an
IPFS()
method which returns ago-ipfs-api
shell instance pointing to the proxy endpoint | ipfs/ipfs-cluster#269 | ipfs/ipfs-cluster#356 - REST http-api-over-libp2p. Server, client,
ipfs-cluster-ctl
support added | ipfs/ipfs-cluster#305 | ipfs/ipfs-cluster#349 - Added support for priority pins and non-recursive pins (sharding-related) | ipfs/ipfs-cluster#341 | ipfs/ipfs-cluster#342
- Documentation fixes | ipfs/ipfs-cluster#328 | ipfs/ipfs-cluster#357
-
Bugfixes
- Print lock path in logs | ipfs/ipfs-cluster#332 | ipfs/ipfs-cluster#333
There are no breaking API changes and all configurations should be backwards compatible. The api/rest/client
provides a new IPFS()
method.
We recommend updating the service.json
configurations to include all the new configuration options:
- The
pin_method
option has been added to theipfshttp
section. It supportsrefs
andpin
(default) values. Userefs
for parallel pinning, but only if you don't run automatic GC on your ipfs nodes. - The
concurrent_pins
option has been added to themaptracker
section. Only useful withrefs
option inpin_method
. - The
listen_multiaddress
option in therestapi
section should be renamed tohttp_listen_multiaddress
.
This release will require a state upgrade. Run ipfs-cluster-service state upgrade
in all your peers, or start cluster with ipfs-cluster-service daemon --upgrade
.
v0.3.4 - 2018-02-20
This release fixes the pre-built binaries.
- Bugfixes
- Pre-built binaries panic on start | ipfs/ipfs-cluster#320
v0.3.3 - 2018-02-12
This release includes additional ipfs-cluster-service state
subcommands and the connectivity graph feature.
-
Features
ipfs-cluster-service daemon --upgrade
allows to automatically run migrations before starting | ipfs/ipfs-cluster#300 | ipfs/ipfs-cluster#307ipfs-cluster-service state version
reports the shared state format version | ipfs/ipfs-cluster#298 | ipfs/ipfs-cluster#307ipfs-cluster-service health graph
generates a .dot graph file of cluster connectivity | ipfs/ipfs-cluster#17 | ipfs/ipfs-cluster#291 | ipfs/ipfs-cluster#311
-
Bugfixes
- Do not upgrade state if already up to date | ipfs/ipfs-cluster#296 | ipfs/ipfs-cluster#307
- Fix
ipfs-cluster-service daemon
failing withunknown allocation strategy
error | ipfs/ipfs-cluster#314 | ipfs/ipfs-cluster#315
APIs have not changed in this release. The /health/graph
endpoint has been added.
v0.3.2 - 2018-01-25
This release includes a number of bufixes regarding the upgrade and import of state, along with two important features:
-
Commands to export and import the internal cluster state: these allow to perform easy and human-readable dumps of the shared cluster state while offline, and eventually restore it in a different peer or cluster.
-
The introduction of
replication_factor_min
andreplication_factor_max
parameters for every Pin (along with the deprecation ofreplication_factor
). The defaults are specified in the configuration. For more information on the usage and behavour of these new options, check the IPFS cluster guide. -
Features
- New
ipfs-cluster-service state export/import/cleanup
commands | ipfs/ipfs-cluster#240 | ipfs/ipfs-cluster#290 - New min/max replication factor control | ipfs/ipfs-cluster#277 | ipfs/ipfs-cluster#292
- Improved migration code | ipfs/ipfs-cluster#283
ipfs-cluster-service version
output simplified (see below) | ipfs/ipfs-cluster#274- Testing improvements:
- Added tests for Dockerfiles | ipfs/ipfs-cluster#200 | ipfs/ipfs-cluster#282
- Enabled Jenkins testing and made it work | ipfs/ipfs-cluster#256 | ipfs/ipfs-cluster#294
- Documentation improvements:
- Guide contains more details on state upgrade procedures | ipfs/ipfs-cluster#270
- ipfs-cluster-ctl exit status are documented on the README | ipfs/ipfs-cluster#178
- New
-
Bugfixes
- Force cleanup after sharness tests | ipfs/ipfs-cluster#181 | ipfs/ipfs-cluster#288
- Fix state version validation on start | ipfs/ipfs-cluster#293
- Wait until last index is applied before attempting snapshot on shutdown | ipfs/ipfs-cluster#275
- Snaps from master not pushed due to bad credentials
- Fix overpinning or underpinning of CIDs after re-join | ipfs/ipfs-cluster#222
- Fix unmarshaling state on top of an existing one | ipfs/ipfs-cluster#297
- Fix catching up on imported state | ipfs/ipfs-cluster#297
These release is compatible with previous versions of ipfs-cluster on the API level, with the exception of the ipfs-cluster-service version
command, which returns x.x.x-shortcommit
rather than ipfs-cluster-service version 0.3.1
. The former output is still available as ipfs-cluster-service --version
.
The replication_factor
option is deprecated, but still supported and will serve as a shortcut to set both replication_factor_min
and replication_factor_max
to the same value. This affects the configuration file, the REST API and the ipfs-cluster-ctl pin add
command.
v0.3.1 - 2017-12-11
This release includes changes around the consensus state management, so that upgrades can be performed when the internal format changes. It also comes with several features and changes to support a live deployment and integration with IPFS pin-bot, including a REST API client for Go.
- Features
ipfs-cluster-service state upgrade
| ipfs/ipfs-cluster#194ipfs-cluster-test
Docker image runs withipfs:master
| ipfs/ipfs-cluster#155 | ipfs/ipfs-cluster#259ipfs-cluster
Docker image only runsipfs-cluster-service
(and not the ipfs daemon anymore) | ipfs/ipfs-cluster#197 | ipfs/ipfs-cluster#155 | ipfs/ipfs-cluster#259- Support for DNS multiaddresses for cluster peers | ipfs/ipfs-cluster#155 | ipfs/ipfs-cluster#259
- Add configuration section and options for
pin_tracker
| ipfs/ipfs-cluster#155 | ipfs/ipfs-cluster#259 - Add
local
flag to Status, Sync, Recover endpoints which allows to run this operations only in the peer receiving the request | ipfs/ipfs-cluster#155 | ipfs/ipfs-cluster#259 - Add Pin names | ipfs/ipfs-cluster#249
- Add Peer names | ipfs/ipfs-cluster#250
- New REST API Client module
github.com/ipfs/ipfs-cluster/api/rest/client
allows to integrate against cluster | ipfs/ipfs-cluster#260 | ipfs/ipfs-cluster#263 | ipfs/ipfs-cluster#266 - A few rounds addressing code quality issues | ipfs/ipfs-cluster#264
This release should stay backwards compatible with the previous one. Nevertheless, some REST API endpoints take the local
flag, and matching new Go public functions have been added (RecoverAllLocal
, SyncAllLocal
...).
v0.3.0 - 2017-11-15
This release introduces Raft 1.0.0 and incorporates deep changes to the management of the cluster peerset.
- Features
- Upgrade Raft to 1.0.0 | ipfs/ipfs-cluster#194 | ipfs/ipfs-cluster#196
- Support Snaps | ipfs/ipfs-cluster#234 | ipfs/ipfs-cluster#228 | ipfs/ipfs-cluster#232
- Rotating backups for ipfs-cluster-data | ipfs/ipfs-cluster#233
- Bring documentation up to date with the code ipfs/ipfs-cluster#223
Bugfixes:
- Fix docker startup | ipfs/ipfs-cluster#216 | ipfs/ipfs-cluster#217
- Fix configuration save | ipfs/ipfs-cluster#213 | ipfs/ipfs-cluster#214
- Forward progress updates with IPFS-Proxy | ipfs/ipfs-cluster#224 | ipfs/ipfs-cluster#231
- Delay ipfs connect swarms on boot and safeguard against panic condition | ipfs/ipfs-cluster#238
- Multiple minor fixes | ipfs/ipfs-cluster#236
- Avoid shutting down consensus in the middle of a commit
- Return an ID containing current peers in PeerAdd
- Do not shut down libp2p host in the middle of peer removal
- Send cluster addresses to the new peer before adding it
- Wait for configuration save on init
- Fix error message when not enough allocations exist for a pin
This releases introduces some changes affecting the configuration file and some breaking changes affecting go
and the REST APIs:
- The
consensus.raft
section of the configuration has new options but should be backwards compatible. - The
Consensus
component interface has changed,LogAddPeer
andLogRmPeer
have been replaced byAddPeer
andRmPeer
. It additionally providesClean
andPeers
methods. Theconsensus/raft
implementation has been updated accordingly. - The
api.ID
(used in REST API among others) object keyClusterPeers
key is now a list of peer IDs, and not a list of multiaddresses as before. The object includes a new keyClusterPeersAddresses
which includes the multiaddresses. - Note that
--bootstrap
and--leave
flags when callingipfs-cluster-service
will be stored permanently in the configuration (see ipfs/ipfs-cluster#235).
v0.2.1 - 2017-10-26
This is a maintenance release with some important bugfixes.
- Fixes:
- Dockerfile runs
ipfs-cluster-service
instead ofctl
| ipfs/ipfs-cluster#194 | ipfs/ipfs-cluster#196 - Peers and bootstrap entries in the configuration are ignored | ipfs/ipfs-cluster#203 | ipfs/ipfs-cluster#204
- Informers do not work on 32-bit architectures | ipfs/ipfs-cluster#202 | ipfs/ipfs-cluster#205
- Replication factor entry in the configuration is ignored | ipfs/ipfs-cluster#208 | ipfs/ipfs-cluster#209
- Dockerfile runs
The fix for 32-bit architectures has required a change in the IPFSConnector
interface (FreeSpace()
and Reposize()
return uint64
now). The current implementation by the ipfshttp
module has changed accordingly.
v0.2.0 - 2017-10-23
-
Features:
- Basic authentication support added to API component | ipfs/ipfs-cluster#121 | ipfs/ipfs-cluster#147 | ipfs/ipfs-cluster#179
- Copy peers to bootstrap when leaving a cluster | ipfs/ipfs-cluster#170 | ipfs/ipfs-cluster#112
- New configuration format | ipfs/ipfs-cluster#162 | ipfs/ipfs-cluster#177
- Freespace disk metric implementation. It's now the default. | ipfs/ipfs-cluster#142 | ipfs/ipfs-cluster#99
-
Fixes:
- IPFS Connector should use only POST | ipfs/ipfs-cluster#176 | ipfs/ipfs-cluster#161
ipfs-cluster-ctl
exit status with error responses | ipfs/ipfs-cluster#174- Sharness tests and update testing container | ipfs/ipfs-cluster#171
- Update Dockerfiles | ipfs/ipfs-cluster#154 | ipfs/ipfs-cluster#185
ipfs-cluster-service
: Do not run service with unknown subcommands | ipfs/ipfs-cluster#186
This release introduces some breaking changes affecting configuration files and go
integrations:
- Config: The old configuration format is no longer valid and cluster will fail to start from it. Configuration file needs to be re-initialized with
ipfs-cluster-service init
. - Go: The
restapi
component has been renamed torest
and some of its public methods have been renamed. - Go: Initializers (
New<Component>(...)
) for most components have changed to accept aConfig
object. Some initializers have been removed.
Note, when adding changelog entries, write links to issues as @<issuenumber>
and then replace them with links with the following command:
sed -i -r 's/@([0-9]+)/[ipfs\/ipfs-cluster#\1](https:\/\/github.com\/ipfs\/ipfs-cluster\/issues\/\1)/g' CHANGELOG.md