Commit Graph

44 Commits

Author SHA1 Message Date
Adrian Lanzafame
364a134eb5 Use go-fs-lock pkg
License: MIT
Signed-off-by: Adrian Lanzafame <adrianlanzafame92@gmail.com>
2018-03-26 19:28:47 +10:00
Hector Sanjuan
c231fe8060 Update libp2p and deps to correct versions
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-03-13 15:32:56 +01:00
Hector Sanjuan
36e7ea6496
gx publish 0.3.4
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-02-20 20:26:17 +01:00
Hector Sanjuan
33b2496438
gx publish 0.3.3
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-02-12 21:13:57 +01:00
Hector Sanjuan
a180f1a5c5
Merge pull request #291 from ipfs/feat/connectivity-graph
Feat/connectivity graph
2018-01-26 12:42:18 +01:00
Hector Sanjuan
27679926e8
gx publish 0.3.2
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2018-01-26 10:39:41 +01:00
Wyatt Daviau
d2ef32f48f Testing and polishing connection graph
Added go tests
Refactored cluster connect graph to new file
Refactored dot file printing to new repo
Fixed code climate issues
Added sharness test

License: MIT
Signed-off-by: Wyatt Daviau <wdaviau@cs.stanford.edu>
2018-01-22 10:03:37 -05:00
Hector Sanjuan
10331e2678
gx publish 0.3.1
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2017-12-11 14:11:28 +01:00
Wyatt
ad492d20ae fix #254, execution locking:
ipfs-cluster-service now locks before running the daemon and state
upgrade commands.  Locking mechanism heavily inspired by ipfs, see
go-ipfs fsrepo.  Unlock called on exit to free up repo.  one lockfile
per repo. A very simple sharness test checks that two service
invocations cannot occur.

A longstanding sharness/ci logging issue is addressed by exporting
verbose=t into the travis environment.  Now output of commands from
within sharness test strings are displayed during travis runs.

License: MIT
Signed-off-by: Wyatt Daviau <wdaviau@cs.stanford.edu>
2017-12-06 11:14:53 -05:00
Wyatt
47b744f1c0 ipfs-cluster-service state upgrade cli command
ipfs-cluster-service now has a migration subcommand that upgrades
    persistant state snapshots with an out-of-date format version to the
    newest version of raft state. If all cluster members shutdown with
    consistent state, upgrade ipfs-cluster, and run the state upgrade command,
    the new version of cluster will be compatible with persistent storage.
    ipfs-cluster now validates its persistent state upon loading it and exits
    with a clear error in the case the state format version is not up to date.

    Raft snapshotting is enforced on all shutdowns and the json backup is no
    longer run.  This commit makes use of recent changes to libp2p-raft
    allowing raft states to implement their own marshaling strategies. Now
    mapstate handles the logic for its (de)serialization.  In the interest of
    supporting various potential upgrade formats the state serialization
    begins with a varint (right now one byte) describing the version.

    Some go tests are modified and a go test is added to cover new ipfs-cluster
    raft snapshot reading functions.  Sharness tests are added to cover the
    state upgrade command.
2017-11-28 22:35:48 -05:00
Hector Sanjuan
ff698141f2
sign release commits too
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2017-11-15 23:54:31 +01:00
Hector Sanjuan
0c40d50497 gx publish 0.3.0
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2017-11-15 23:40:03 +01:00
Hector Sanjuan
848023e381 Fix #139: Update cluster to Raft 1.0.0
The main differences is that the new version of Raft is more strict
about starting raft peers which already contain configurations.

For a start, cluster will fail to start if the configured cluster
peers are different from the Raft peers. The user will have to
manually cleanup Raft (TODO: an ipfs-cluster-service command for it).

Additionally, this commit adds extra options to the consensus/raft
configuration section, adds tests and improves existing ones and
improves certain code sections.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-11-01 12:17:33 +01:00
Hector Sanjuan
073848257a gx publish 0.2.1
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-10-26 17:01:22 +02:00
Hector Sanjuan
934714b0ba gx publish 0.2.0
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-10-23 19:40:45 +02:00
Hector Sanjuan
7a908282db gx publish 0.1.0
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-07-29 14:21:19 +02:00
Hector Sanjuan
54db5f2bef Update go-libp2p-raft
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-07-27 16:57:04 +02:00
Hector Sanjuan
d94aa5ba4f Fix #138: Update raft/raft-boltdb/boltdb
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-07-27 16:28:56 +02:00
dgrisham
7bcf64f6b5 build succeeds, PNETs seem to work -- still need tests
License: MIT
Signed-off-by: David Grisham <dgrisham@mines.edu>
2017-06-27 10:30:15 -06:00
Hector Sanjuan
63e77d3a6f gx publish 0.0.12
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-30 14:03:15 +02:00
Hector Sanjuan
648e25c2bc gx publish 0.0.11
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-28 11:57:41 +02:00
Hector Sanjuan
ee4102e3e9 gx publish 0.0.10
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-09 15:04:48 +01:00
Hector Sanjuan
988afe9766 gx publish 0.0.9
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-09 13:15:23 +01:00
Hector Sanjuan
09ac792c15 gx publish 0.0.8
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-09 13:15:14 +01:00
Hector Sanjuan
25fe269322 gx publish 0.0.7
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-09 12:41:58 +01:00
Hector Sanjuan
3dd0c47724 gx publish 0.0.6
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-09 12:24:50 +01:00
Hector Sanjuan
9d6121c426 gx publish 0.0.5
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-07 17:39:00 +01:00
Hector Sanjuan
101720bd91 gx publish 0.0.4
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-03 18:49:52 +01:00
Hector Sanjuan
1c16b653a7 gx publish 0.0.3
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-03 15:08:51 +01:00
Hector Sanjuan
d0e2eaf12f Update libp2p and deps
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-03-02 17:05:21 +01:00
Hector Sanjuan
f7bf26237b Update deps to latest raft and gorpc
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-26 13:01:35 +01:00
Hector Sanjuan
d8d4a0094a Import latest go-libp2p-gorpc
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 13:16:40 +01:00
Hector Sanjuan
3b8d643f86 gx publish 0.0.2
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 13:10:53 +01:00
Hector Sanjuan
9eb88f892d Improve packages.json and add release script
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 13:09:36 +01:00
Hector Sanjuan
9a47e6dd1f Update go-libp2p-gorpc
Uses experimental version of multicodecs but should finally pin all deps

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 12:50:46 +01:00
Hector Sanjuan
85092ede9a Update libs. Make sure libp2p versions match
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 12:50:05 +01:00
Hector Sanjuan
8719d88e13 gx all dependencies
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-25 12:50:05 +01:00
Hector Sanjuan
8883ab3a74 Import cli in 1.19.1 tag
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-24 17:29:49 +01:00
Hector Sanjuan
1175f971fe Update cli import with the right author
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-24 17:23:07 +01:00
Hector Sanjuan
50de95d464 Issue-21: Use https://github.com/urfave/cli for cluster-ctl
Rewrote the app with better command and help support.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2017-01-24 16:25:53 +01:00
Hector Sanjuan
805b867651 Use go-libp2p-rpc. Tests updated.
The former RPC stuff had become a monster, really hard to have an overview
of the RPC api capabilities and with lots of magic.

go-libp2p-rpc allows to have a clearly defined RPC api which
shows which methods every component can use. A component to perform
remote requests, and the convoluted LeaderRPC, BroadcastRPC methods are
no longer necessary.

Things are much simpler now, less goroutines are needed, the central channel
handling bottleneck is gone, RPC requests are very streamlined in form.

In the future, it would be inmediate to have components living on different
libp2p hosts and it is way clearer how to plug into the advanced cluster rpc
api.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2016-12-27 18:19:54 +01:00
Hector Sanjuan
c1c354b177 Update go-libp2p-raft dependency
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2016-12-15 19:38:15 +01:00
Hector Sanjuan
0f31995bd6 consensus tests
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2016-12-14 15:31:50 +01:00
Hector Sanjuan
e0840df267 WIP: basic functionality 2016-12-02 19:33:39 +01:00