Commit Graph

613 Commits

Author SHA1 Message Date
Antonio Navarro Perez
d1b9e41fc2
feat: Delegated routing with custom configuration. (#9274)
New multi-router configuration system based on https://hackmd.io/G1KRDEX5T3qyfoBMkIrBew#Methods

- Added a new routing type: "custom"
- Added specific struct types for different Routers (instead of map[string]interface{})
- Added `Duration` config type, to make easier time string parsing
- Added config documentation.
- Use the latest go-delegated-routing library version with GET support.
- Added changelog notes for this feature.

It:
- closes #9157
- closes #9079
- closes #9186
2022-09-22 15:47:45 +02:00
Jorropo
196887cbe5 chore: bump go-libp2p v0.22.0 & go1.18&go1.19
Fixes: #9225
2022-09-09 17:09:38 +02:00
Antonio Navarro Perez
92c4dc61a8
feat(routing): Delegated Routing (#8997)
* Delegated Routing.

Implementation of Reframe specs (https://github.com/ipfs/specs/blob/master/REFRAME.md) using go-delegated-routing library.

* Requested changes.

* Init using op string

* Separate possible ContentRouters for TopicDiscovery.

If we don't do this, we have a ciclic dependency creating TieredRouter.
Now we can create first all possible content routers, and after that,
create Routers.

* Set dht default routing type

* Add tests and remove uneeded code

* Add documentation.

* docs: Routing.Routers

* Requested changes.

Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>

* Add some documentation on new fx functions.

* Add changelog entry and integration tests

* test: sharness for 'dht' in 'routing' commands

Since 'routing' is currently the same as 'dht' (minus query command)
we need to test both, that way we won't have unnoticed divergence
in the default behavior.

* test(sharness): delegated routing via reframe URL

* Add more tests for delegated routing.

* If any put operation fails, the tiered router will fail.

* refactor: Routing.Routers: Parameters.Endpoint

As agreed  in https://github.com/ipfs/kubo/pull/8997#issuecomment-1175684716

* Try to improve CHANGELOG entry.

* chore: update reframe spec link

* Update go-delegated-routing dependency

* Fix config error test

* use new changelog format

* Remove port conflict

* go mod tidy

* ProviderManyWrapper to ProviderMany

* Update docs/changelogs/v0.14.md

Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
2022-07-07 17:10:25 -04:00
Hector Sanjuan
54d87b4ce0 Extract: routing package to github.com/ipfs/go-ipfs-routing
This extracts the routing package to its own repository
(https://github.com/ipfs/go-ipfs-routing). History has
been preserved. The new module has been gx'ed and published.

Imports have been rewritten and re-ordered accordingly.

An internal dependency to go-ipfs/repo has been removed
by substituting it with the go-datastore.Batching interface.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-14 18:33:52 +01:00
Hector Sanjuan
c9080f99e8 Import re-ordering
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-12 22:51:42 +01:00
Hector Sanjuan
7406a5f1b2 Extract: thirdparty/ds-help submodule
It has been moved to its own repository:

    * github.com/ipfs/go-ipfs-ds-help

History has been preserved. It has been published
with gx. Imports have been updated and re-ordered
accordingly.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-12 22:51:03 +01:00
Hector Sanjuan
fd04905adb Extract: flags and thirdparty/delay submodules
They have been moved to their own repositories:

* github.com/ipfs/go-ipfs-delay
* github.com/ipfs/go-ipfs-flags

History has been preserved. They have been published
with gx'ed. Imports have been updated and re-ordered
accordingly.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-12 22:51:03 +01:00
Hector Sanjuan
953d7d4672 Doc: golint-ify routing module
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-02-09 13:10:06 +01:00
Łukasz Magiera
dcfcfc5e8e "fix" routing/mock tests on windows
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-02-04 01:12:53 +01:00
Steven Allen
b2cbfd299c gx: update go-log
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-31 21:54:22 -08:00
Steven Allen
fe8846fcd7 gx: mass update
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-01-24 15:58:44 -08:00
Steven Allen
dfe7ef4fcf gx: update go-multihash
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-12-14 13:09:51 -08:00
Łukasz Magiera
6401a9191e gx: Update go-datastore to 1.4.0
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-12-02 14:55:26 -08:00
Steven Allen
76e1da02a8 gx: massive update
Note: This commit is technically broken. However, I need to make a bunch of
cmds changes to make this work and I'd rather not bundle both changes into a
single commit.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-11-20 22:20:27 -08:00
keks
0d9d21875c compatible to js-ipfs-api
License: MIT
Signed-off-by: keks <keks@cryptoscope.co>
2017-11-17 15:22:42 +01:00
Jan Winkelmann
f287524949 cmd: use go-ipfs-cmds
License: MIT
Signed-off-by: keks <keks@cryptoscope.co>
2017-11-17 15:22:41 +01:00
Jeromy
94ec788555 update deps for new connmgr code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-10-14 05:38:52 -07:00
Steven Allen
93f3117d7d remove supernode routing
It was never fully implemented and isn't used.

fixes #3950

(not removing routing/mock because that *is* in use).

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-10-12 19:39:29 -07:00
vyzo
4f1edf2570 update go-testutil to 1.1.12
License: MIT
Signed-off-by: vyzo <vyzo@hackzen.org>
2017-10-05 17:11:39 +03:00
Steven Allen
a7a74cbde4 fix dht memory leak
update go-libp2p-kad-dht to fix a nasty memory leak

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-19 16:00:44 -07:00
Steven Allen
3f6df3a5f4 update yamux
We need to cancel out all readers/writers on stream reset.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-15 18:56:44 -07:00
Steven Allen
adfbecf3f7 use stream.Reset where appropriate
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-14 16:10:38 -07:00
Steven Allen
8deaaa8d8c gx: update go-stream-muxer
Introduces a new Reset method on streams that kills both sides of the
connection. Close now officially just closes the write side (what it did all
along...)

* Also pull through shiny new go-multiplexer fixes.
* Also pull in go-reuseport update.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-14 12:06:44 -07:00
Jeromy
0eba4f3138 gx: update go-ws-transport
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-05 16:18:19 -07:00
Steven Allen
db6f058946 remove some dead code
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-04 20:15:20 -07:00
Steven Allen
70d6629940 gx: update go-cid, go-multibase, base32
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-09-01 17:46:49 -07:00
Łukasz Magiera
e34a5e9c0d gx: update go-reuseport
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-08-23 16:32:32 +02:00
Steven Allen
19c3bd82a3 extract update go-testutil
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-08-16 17:23:01 -07:00
Steven Allen
38a9be5a0a gx: update go-libp2p-swarm
fixes #4102 (fixed in go-libp2p-swarm)

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-07-31 14:04:40 -07:00
Steven Allen
28be1d4c58 gx: update deps
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-07-27 18:48:16 -07:00
Jeromy
cccc6a94a3 update go-multihash and bubble up changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-07-11 19:27:43 -07:00
Łukasz Magiera
8ab93aaeb2 Update go-datastore to 1.2.2, go-cid to 0.7.16
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-07-04 20:18:57 +02:00
Łukasz Magiera
4b8a9a3f9f Update go-datastore to 1.2.1
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-07-03 20:17:03 +02:00
Steven Allen
520938a9ec gx import/update libp2p/go-libp2p-routing
For some reason, this was referenced but wasn't listed in packages.json.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-06-29 22:12:14 +02:00
Steven Allen
13636bef50 blocks: gx import go-block-format
And updated related dependencies.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2017-06-29 22:12:14 +02:00
zramsay
096b3232d5 address PR comments; remove commented/dead code
License: MIT
Signed-off-by: Zach Ramsay <zach.ramsay@gmail.com>
2017-06-01 12:13:04 -04:00
zramsay
c5df8f0796 apply the megacheck tool to improve code quality
License: MIT
Signed-off-by: Zach Ramsay <zach.ramsay@gmail.com>
2017-05-31 16:56:11 -04:00
Lars Gierth
64ced367ac gx: update go-libp2p-peerstore, go-libp2p, go-libp2p-kbucket
License: MIT
Signed-off-by: Lars Gierth <larsg@systemli.org>
2017-05-30 02:26:05 +02:00
Jeromy
0418930ca8 update to dht code with provide announce option
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-05-23 13:59:36 -07:00
Jeromy
b15470d548
bubble up updates from go-multihash changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-04-20 20:28:04 +02:00
Jeromy
4e168dc323 update go-libp2p-kad-dht with getclosestpeers fix
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-03-05 23:06:04 -08:00
Jakub Sztandera
4eed546e06
deps: update dependencies for PNet
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-22 20:04:43 +01:00
Jeromy
b4eeff2d84 update go-multihash and bubble up deps
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-02-12 12:25:41 -08:00
Zander Mackie
3f479d1653 Remove deprecated 'FindProviders' method from mock
License: MIT
Signed-off-by: Zander Mackie <zmackie@gmail.com>
2017-01-20 16:41:21 -05:00
Jeromy
28b086895b update dht code to drop error log to warning
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2017-01-18 19:39:57 -08:00
Jeromy
30aacd1b0a update go-libp2p with negotiate lazy fixes
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2017-01-10 14:52:00 -08:00
Jeromy
d8f257c264 update libp2p for identify configuration updates
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-12-27 02:13:59 -08:00
Zander Mackie
834f22328c Testing the rest of the interface
License: MIT
Signed-off-by: Zander Mackie <zmackie@gmail.com>
2016-12-17 11:05:36 -05:00
Zander Mackie
695c22a7d1 Tests for OfflineRouting storage and Retrieval
License: MIT
Signed-off-by: Zander Mackie <zmackie@gmail.com>
2016-12-16 07:14:55 -05:00
Kevin Atkinson
1c7e2b2456 ds-help: avoid unnecessary allocs when posssible and make use of RawKey
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2016-11-29 12:49:21 -05:00