Commit Graph

1436 Commits

Author SHA1 Message Date
Hector Sanjuan
3d49ac26a5 Feat: Split components into RPC Services
I had thought of this for a very long time but there were no compelling
reasons to do it. Specifying RPC endpoint permissions becomes however
significantly nicer if each Component is a different RPC Service. This also
fixes some naming issues like having to prefix methods with the component name
to separate them from methods named in the same way in some other component
(Pin and IPFSPin).
2019-05-04 21:36:10 +01:00
Hector Sanjuan
7e700e2338
Merge pull request #767 from ipfs/feat/user-allocs-type
Types: make UserAllocations []peer.ID instead of string
2019-05-02 14:08:59 +01:00
Hector Sanjuan
f140bdbdbc
Merge pull request #768 from ipfs/fix/732-pin-update
Proxy: hijack pin/update
2019-05-02 14:07:59 +01:00
Hector Sanjuan
036e3da7f1 Proxy pin/update: Respond with BadRequest when arguments missing 2019-05-02 10:32:13 +01:00
Hector Sanjuan
dfaa141bc0 fix label in bug report 2019-04-29 18:01:12 +02:00
Hector Sanjuan
93d464c6d5 Small fixes to issue template for bugs 2019-04-29 18:00:20 +02:00
Hector Sanjuan
552c59f008 Delete old issue template 2019-04-29 17:58:40 +02:00
Hector Sanjuan
5325f5a31a Update issue templates 2019-04-29 17:57:24 +02:00
Hector Sanjuan
da24114ae0 Proxy: hijack pin/update
The IPFS pin/update endpoint takes two arguments and usually
unpins the first and pins the second. It is a bit more efficient
to do it in a single operation than two separate ones.

This will make the proxy endpoint hijack pin/update requests.

First, the FROM pin is fetched from the state. If present, we
set the options (replication factors, actual allocations) from
that pin to the new one. Then we pin the TO item and proceed
to unpin the FROM item when `unpin` is not false.

We need to support path resolving, just like IPFS, therefore
it was necessary to expose IPFSResolve() via RPC.
2019-04-29 16:36:40 +02:00
Hector Sanjuan
2144f4bd42 Types: make UserAllocations []peer.ID instead of string
It seems we forgot to convert this after peer.IDs became serializable. This
fixes it.
2019-04-29 16:24:38 +02:00
Hector Sanjuan
543656aa83
Merge pull request #762 from ipfs/allocations_filter
Default allocations filter should be all
2019-04-24 20:51:16 +01:00
Kishan Mohanbhai Sagathiya
fa8d5c973c Invalid filter should throw BadRequest
- for GET `/allocations` and GET `/pins` an invalid filter now result
in BadRequest
- Added tests for the same
2019-04-24 21:54:12 +05:30
Kishan Mohanbhai Sagathiya
b2796b951a Default allocations filter should be all
Currently `curl -X GET http://localhost:9094/allocations` results in an
empty array, because no filter is provided. Solution to this would be
either 1) to consider filter as all if no filter is provided by the user
or 2) to make the `filter` parameter mandatory and reply with BadRequest
if no filter is provided

This commit makes the default filter as all
2019-04-24 20:24:08 +05:30
Hector Sanjuan
5a1dfc2a61
Merge pull request #685 from ipfs/feat/crdts
Consensus: add new "crdt" consensus component
2019-04-17 19:44:44 +02:00
Hector Sanjuan
acbd7fda60 Consensus: add new "crdt" consensus component
This adds a new "crdt" consensus component using go-ds-crdt.

This implies several refactors to fully make cluster consensus-component
independent:

* Delete mapstate and fully adopt dsstate (after people have migrated).
* Return errors from state methods rather than ignoring them.
* Add a new "datastore" modules so that we can configure datastores in the
   main configuration like other components.
* Let the consensus components fully define the "state.State". Thus, they do
not receive the state, they receive the storage where we put the state (a
go-datastore).
* Allow to customize how the monitor component obtains Peers() (the current
  peerset), including avoiding using the current peerset. At the moment the
  crdt consensus uses the monitoring component to define the current peerset.
  Therefore the monitor component cannot rely on the consensus component to
  produce a peerset.
* Re-factor/re-implementation of "ipfs-cluster-service state"
  operations. Includes the dissapearance of the "migrate" one.

The CRDT consensus component defines creates a crdt-datastore (with ipfs-lite)
and uses it to intitialize a dssate. Thus the crdt-store is elegantly
wrapped. Any modifications to the state get automatically replicated to other
peers. We store all the CRDT DAG blocks in the local datastore.

The consensus components only expose a ReadOnly state, as any modifications to
the shared state should happen through them.

DHT and PubSub facilities must now be created outside of Cluster and passed in
so they can be re-used by different components.
2019-04-17 19:14:26 +02:00
Hector Sanjuan
a79662912b
Merge pull request #754 from ipfs/0.10.1/release
0.10.1/release
2019-04-10 15:56:09 +02:00
Hector Sanjuan
0f9ce4807c
Release 0.10.1 2019-04-10 12:04:43 +02:00
Hector Sanjuan
c36de4aa21 Do not do gx releases 2019-04-10 12:04:39 +02:00
Hector Sanjuan
45647345ff
Merge pull request #753 from ipfs/0.10.1/changelog
Changelog for 0.10.1
2019-04-10 11:55:15 +02:00
Hector Sanjuan
77260b8fbe
Merge pull request #752 from ipfs/fix/743-version-json
Fix #743: Use lowercase "version" in json version object
2019-04-10 11:54:26 +02:00
Hector Sanjuan
518d5bde87 Changelog for 0.10.1
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2019-04-10 11:44:52 +02:00
Hector Sanjuan
a25f4ecb10 Fix #743: Use lowercase "version" in json version object
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2019-04-10 11:15:56 +02:00
Hector Sanjuan
94a781ef21
Merge pull request #735 from jmank88/url-nocopy
support --nocopy when adding URLs
2019-03-27 15:18:08 +01:00
Hector Sanjuan
c863fc5ceb
Merge pull request #734 from chenminjian/refact/utils
refact: remove duplicative package
2019-03-27 13:41:33 +01:00
jmank88
76c798e313 support --nocopy when adding URLs 2019-03-26 10:22:37 -05:00
chenminjian
36d78e55c6 refact: remove duplicative package
License: MIT
Signed-off-by: chenminjian <727180553@qq.com>
2019-03-26 20:17:03 +08:00
Hector Sanjuan
1889ea06f1
Merge pull request #729 from ipfs/fix/add-enc-json
Fix: ctl: --enc=json shows empty output on "add"
2019-03-25 03:24:09 +01:00
Hector Sanjuan
2db0ca3125
Merge pull request #731 from jmank88/docker-cert
add certs to Dockerfile
2019-03-24 03:40:21 +01:00
jmank88
65b68bbb04 add certs to Dockerfile
Fixes #730
2019-03-23 20:58:12 -05:00
Hector Sanjuan
6531f56575 Fix: ctl: --enc=json shows empty output on "add" 2019-03-23 16:35:20 +00:00
Hector Sanjuan
9dbc75b86b
Merge pull request #728 from jmank88/nil-panic
fix nil pointer panic
2019-03-23 17:33:19 +01:00
jmank88
215458c0a6 fix nil pointer panic 2019-03-23 08:59:16 -05:00
Kishan Sagathiya
962d249e74
Remove basic monitor (#726)
Remove basic monitor

This commit removes `basic` monitor component, because it is not being
used by default since few releases ago pubsub monitor was introduced.

Issue #689
2019-03-21 22:48:40 +05:30
Hector Sanjuan
af4ccdc9bb
Merge pull request #719 from ipfs/issue_715
Bug fix: input isn't valid multihash
2019-03-19 18:11:47 +01:00
Kishan Mohanbhai Sagathiya
be50543fef Omitempty IPFSID 2019-03-19 22:23:02 +05:30
Kishan Mohanbhai Sagathiya
99a7528d85 Make make check pass 2019-03-18 19:50:42 +05:30
Kishan Mohanbhai Sagathiya
457ac13381 Merge branch 'issue_715' of github.com:ipfs/ipfs-cluster into issue_715 2019-03-18 18:26:19 +05:30
Kishan Mohanbhai Sagathiya
660109c147 Merge branch 'master' into issue_715 2019-03-18 18:25:22 +05:30
Kishan Mohanbhai Sagathiya
226953dd26 Make IPFSID pointer
Make IPFSID pointer so that it can be made nil when empty
2019-03-18 18:24:56 +05:30
Hector Sanjuan
ff8eab08cf
Merge pull request #723 from ipfs/fix-readme-download-link
docs: fix download link in readme
2019-03-18 12:29:31 +01:00
Oli Evans
de084fd119
docs: fix download link in readme 2019-03-18 09:42:43 +00:00
Adrian Lanzafame
9ae2442442
Merge pull request #712 from alekswn/fix/636-LimitMaxHeaderSize
fix #636: mitigate long header attack
2019-03-18 13:41:19 +10:00
Hector Sanjuan
9bfcaffef8
Merge pull request #720 from ipfs/fix/peers-ls-output
Fix ID output using shortened peer ID.
2019-03-15 19:33:33 +00:00
Kishan Mohanbhai Sagathiya
8a06936ccd Bug fix: input isn't valid multihash
Some command were failing with `input isn't valid multihash`, due to
empty peer.ID. This commit omit peer id from IPFSID when empty, thus
avoiding the error state
2019-03-14 18:28:36 +05:30
Hector Sanjuan
7bdf97b9da Fix ID output using shortened peer ID. 2019-03-11 23:08:51 +00:00
Alexey Novikov
a586548e62 fix #636: review nitpicks
License: MIT
Signed-off-by: Alexey Novikov <alexey@novikov.io>
2019-03-11 05:25:26 +00:00
Alexey Novikov
53d624e701 fix #636: mitingate long header attack
License: MIT
Signed-off-by: Alexey Novikov <alexey@novikov.io>
2019-03-10 21:16:26 +00:00
Hector Sanjuan
5081310811
Merge pull request #706 from ipfs/gomod
Enable go.mod for ipfs-cluster
2019-03-09 22:10:16 +00:00
Hector Sanjuan
55569f981f
Merge pull request #708 from ipfs/fix/uuid-pkg
Fix/UUID pkg
2019-03-09 21:22:18 +00:00
Adrian Lanzafame
0998f521ce
tidy go.mod
License: MIT
Signed-off-by: Adrian Lanzafame <adrianlanzafame92@gmail.com>
2019-03-09 14:08:55 +10:00