Commit Graph

286 Commits

Author SHA1 Message Date
Jorropo
6a51849c29 libp2p: remove mplex
Fixes: #10069
2023-11-22 08:06:39 +03:00
Jorropo
2b347a914d graphsync: remove support for the server
Updates: #9396
Closes: #6831
Closes: #6208

Currently the Graphsync server is not widely used due to lack of compatible software.
There have been many years yet we are unable to find any production software making use of the graphsync server in Kubo.

There exists some in the filecoin ecosystem but we are not aware of uses with Kubo.
Even in filecoin graphsync is not the only datatransfer solution available like it could have been in the past.

`go-graphsync` is also developped on many concurrent branches.
The specification for graphsync are less clear than the trustless gateway one and lack a complete conformance test suite any implementation can run.
It is not easily extansible either because selectors are too limited for interesting queries without sideloading ADLs, which for now are hardcoded solutions.
Finaly Kubo is consistently one of the fastest software to update to a new go-libp2p release.
This means the burden to track go-libp2p changes in go-graphsync falls on us, else Kubo cannot compile even if almost all users do not use this feature.
We are then removing the graphsync server experiment.

For people who want alternatives we would like you to try the Trustless-Gateway-over-Libp2p experiment instead, the protocol is simpler (request-response-based) and let us reuse both clients and servers with minimal injection in the network layer.
If you think this is a mistake and we should put it back you should try to answer theses points:
- Find a piece of opensource code which uses a graphsync client to download data from Kubo.
- Why is Trustless-Gateway-over-Libp2p not suitable instead ?
- Why is bitswap not suitable instead ?

Implementation details such as go-graphsync performance vs boxo/gateway is not very interesting to us in this discussion unless they are really huge (in the range of 10x~100x+ more) because the gateway code is under high development and we would be interested in fixing theses.
2023-11-22 06:57:45 +03:00
Jorropo
068f17650d chore: update go-libp2p 2023-11-07 18:10:59 +01:00
Henrique Dias
9f3251c1b0 feat: add WebRTC Direct support 2023-11-03 14:43:42 +01:00
Henrique Dias
f1fec71782 chore: go-libp2p v0.32.0 2023-11-03 14:43:42 +01:00
Henrique Dias
e068f1458c chore: bump to boxo 0.14.0 2023-11-01 11:21:37 +01:00
Andrew Gillis
d1ccdf052b
chore: migrate bootstrap to ipfs/boxo (#10158) 2023-10-31 18:25:14 +01:00
Henrique Dias
33bbee5adf
chore: bump boxo (#10188) 2023-10-31 12:03:16 +01:00
Hector Sanjuan
a0f34b16dd
feat: built-in content blocking based on IPIP-383 (#10161)
Fixes #8492

This introduces "nopfs" as a preloaded plugin into Kubo
with support for denylists from https://github.com/ipfs/specs/pull/383

It automatically makes Kubo watch *.deny files found in:

- /etc/ipfs/denylists
- $XDG_CONFIG_HOME/ipfs/denylists
- $IPFS_PATH/denylists

* test: Gateway.NoFetch and GatewayOverLibp2p

adds missing tests for "no fetch" gateways one can expose,
in both cases the offline mode is done by passing custom
blockservice/exchange into path resolver, which means
global path resolver that has nopfs intercept is not used,
and the content blocking does not happen on these gateways.

* fix: use offline path resolvers where appropriate

this fixes the problem described in
https://github.com/ipfs/kubo/pull/10161#issuecomment-1782175955
by adding explicit offline path resolvers that are backed
by offline exchange, and using them in NoFetch gateways
instead of the default online ones

---------

Co-authored-by: Henrique Dias <hacdias@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-10-28 05:34:14 +02:00
Henrique Dias
4695fd9fed
refactor: namesys cleanup, gateway /ipns/ ttl (#10115) 2023-10-18 10:23:50 +02:00
Henrique Dias
170686b420
chore: update types to match boxos (#10179) 2023-10-17 19:02:26 +02:00
Jorropo
a5668d22ba chore: update boxo for structification of ImmutablePath 2023-10-09 09:44:39 +02:00
Henrique Dias
a7c6518497
feat: path consolidation (#10063) 2023-10-06 16:14:44 +02:00
Jorropo
ecda7ae2f5 chore: update deps
I only updated otel to 1.17.0 since we need to handle breaking changes with newer releases (it doesn't build).
I also didn't update go-multistream since it's touched by libp2p and break stuff.
2023-10-05 21:22:28 +02:00
Henrique Dias
97527472fe
feat(gateway): update gateway api, no multi-range support 2023-10-02 16:43:52 +02:00
dependabot[bot]
f138b47d86 chore(deps): bump github.com/ipfs/go-graphsync from 0.14.4 to 0.15.1
Bumps [github.com/ipfs/go-graphsync](https://github.com/ipfs/go-graphsync) from 0.14.4 to 0.15.1.
- [Release notes](https://github.com/ipfs/go-graphsync/releases)
- [Changelog](https://github.com/ipfs/go-graphsync/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ipfs/go-graphsync/compare/v0.14.4...v0.15.1)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-graphsync
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 11:26:39 +02:00
dependabot[bot]
9cd2c8c99c chore(deps): bump github.com/ipfs/go-unixfsnode from 1.7.1 to 1.8.1
Bumps [github.com/ipfs/go-unixfsnode](https://github.com/ipfs/go-unixfsnode) from 1.7.1 to 1.8.1.
- [Release notes](https://github.com/ipfs/go-unixfsnode/releases)
- [Commits](https://github.com/ipfs/go-unixfsnode/compare/v1.7.1...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-unixfsnode
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-26 11:26:39 +02:00
Bernhard M. Wiedemann
7173178799 Update go-unixfsnode to 1.8.0 to fix FUSE
Fixes #9044 regression in 0.13.0 FUSE access to some files
2023-09-25 15:39:55 +02:00
Jorropo
93b36793d6 chore: update go-libp2p-routing-helpers 2023-09-21 20:14:21 +02:00
Jorropo
551b36b83f chore: update go-libp2p-kad-dht 2023-09-21 20:14:21 +02:00
Henrique Dias
0bac56c3aa
feat: add Gateway.DisableHTMLErrors option (#10137) 2023-09-21 15:03:17 +00:00
Jorropo
3f33e61d3a chore: update to go1.21 for gateway over libp2p 2023-09-20 10:47:03 +02:00
Henrique Dias
d4c4f6c39c chore: bump boxo to 0.13.0 2023-09-20 09:57:20 +02:00
Jorropo
f7aa1204b1 feat: add gateway to http over libp2p 2023-08-30 18:51:22 +02:00
Henrique Dias
4606586207
feat(gateway): expose /routing/v1 server (opt-in) (#9877) 2023-08-25 17:30:04 +02:00
Henrique Dias
5ea58251d5
chore: update boxo, go-libp2p, and internalize mplex (#10095) 2023-08-24 06:11:02 +00:00
Henrique Dias
1e5ce93659 fix: use %-encoded headers in most compatible way 2023-08-22 15:43:01 +02:00
Henrique Dias
2aa721b121 chore: bump to go 1.20
- Bumps golangci-lint to work for the new Go version
- Removes rand.Seed, which has been deprecated. It is seeded by default
  with a random value since Go 1.20.
- Replaces deprecated Fuse errors with syscall.Errno
2023-08-22 15:43:01 +02:00
Marcin Rataj
733b01a37b
fix(gw): useful IPIP-402 CARs on not found errors (#10084)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-08-18 06:54:08 +00:00
Kay
f12b372af9
style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
Jorropo
b4f415088f chore: bump boxo for verifcid breaking changes
This is a Q&D fix to get kubo building again, this is completely equivalent to what we used to have.
I'll submit a patch that DI the verifcid.Allowlist interface with fx later but this is needed to unblock something else.
2023-08-17 13:41:30 +02:00
Jorropo
f805b9fcda feat: allow users to optin again into mplex
This is a partial revert of 7220409394.

Closes #9958
2023-08-15 14:53:44 +02:00
Jorropo
7220409394 feat: remove Mplex
Mplex does not implement backpressure, our implementation will randomly reset streams if buffers overflow instead of risking deadlocks.

In the past we had a bug where kubo nodes would prefer mplex over yamux. Turning off mplex make our connections to thoses nodes negociate yamux.

Closes #9958
2023-08-15 11:35:45 +02:00
Jorropo
b8e393056c chore: bump go-libp2p v0.29.2 2023-08-08 14:26:58 +02:00
Jorropo
4cd49cfca8 chore: bump go-libp2p v0.29.1 2023-08-04 18:31:58 +02:00
Jorropo
5a0a9ede15 chore: bump boxo to v0.11.0 for release 2023-07-27 12:08:19 +02:00
Marco Munizaga
649283bb6c chore: update go-libp2p to v0.29.0 2023-07-26 14:48:19 +02:00
Marten Seemann
c08313f032 chore: update go-libp2p to v0.28.1
Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2023-07-26 14:48:19 +02:00
Jorropo
9c02eecad7
fix: mark all routers DoNotWaitForSearchValue (#10020)
* fix: mark ipns pubsub router DoNotWaitForSearchValue

That means if the DHT has finished searching and no one responded over pubsub *yet*, we will not spend 1 minute searching for no reason.

This also include other error handling bug fixes inside `go-libp2p-routing-helpers`.

Fixes: #9927

* routing: bring back the old IPNS behaviour

Stop making this configurable let everything race like it used to do.
2023-07-25 19:39:21 +02:00
Henrique Dias
a8c63537f2
feat(gateway): support for ipip-412 parameters 2023-07-24 11:09:09 +02:00
Henrique Dias
394d72db4c refactor: replace boxo/ipld/car by ipld/go-car 2023-06-29 16:10:49 +02:00
Henrique Dias
dae41836c0 chore: bump to boxo master 2023-06-29 13:05:08 +02:00
Marcin Rataj
3da4e5b409
fix(gateway): include CORS on subdomain redirects (#9994) 2023-06-27 11:11:21 +00:00
Henrique Dias
5156f21162
feat(ipns): records with V2-only signatures (#9932) 2023-06-20 14:24:31 +02:00
Jorropo
f3ca75947f chore: bump go-libp2p-kad-dht for deadlock fix 2023-06-20 07:56:19 +02:00
Henrique Dias
8bba03d8bf
chore: bump boxo to 0.10.1 (#9970) 2023-06-19 15:07:33 +02:00
Jorropo
44c5ec0505 chore: update dht and libp2p for identify stream block
Streams used to be blocked on ping IO because we didn't handled the DHT ping check asynchronously.

Include fixes from libp2p/go-libp2p-kad-dht#851
Fixes #9957
2023-06-15 12:57:54 +02:00
Jorropo
8138e00024 chore: last dependency update for v0.21-rc1 2023-06-12 15:26:05 +02:00
Henrique Dias
ad9e208ad6
chore: bump to boxo 0.10 (#9928) 2023-06-09 12:29:07 +02:00
Henrique Dias
2716cd987f
feat(gateway): support for IPIP-402 CAR params (#9914) 2023-06-08 17:32:18 +02:00
Jorropo
30f5e54e19 chore: update dependencies ahead of 0.21 release 2023-06-08 14:02:26 +02:00
Jorropo
e7294cbdff feat: warn users who are falling behind reprovides
Fixes: #9704
Fixes: #9702
Fixes: #9703
Fixes: #9419
2023-06-08 10:05:30 +02:00
Adin Schmahmann
50feb752b9 chore: update boxo to version with fewer globals 2023-06-08 09:38:31 +02:00
Jorropo
9b63ab6da6 client/rpc: bring up to speed with streaming pins 2023-06-02 16:55:51 +02:00
Henrique Dias
eb265f7cd8
fix(gateway)!: no duplicate payload during subdomain redirects (#9913)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-06-02 08:14:19 +02:00
Henrique Dias
dfd244816a
feat(gateway): human error pages, dag-cbor/dag-json preview (#9904)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-05-31 23:43:11 +00:00
dependabot[bot]
5a993cf20d chore(deps): bump go.uber.org/dig from 1.16.1 to 1.17.0
Bumps [go.uber.org/dig](https://github.com/uber-go/dig) from 1.16.1 to 1.17.0.
- [Release notes](https://github.com/uber-go/dig/releases)
- [Changelog](https://github.com/uber-go/dig/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uber-go/dig/compare/v1.16.1...v1.17.0)

---
updated-dependencies:
- dependency-name: go.uber.org/dig
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 15:57:33 +02:00
Jorropo
86d8e75b7f client/rpc: migrate go-ipfs-http-client 2023-05-30 21:28:07 +02:00
Henrique Dias
c10b804449
feat: Gateway.DeserializedResponses config flag (#9789)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-05-30 00:59:34 +02:00
Henrique Dias
e3126eb3e0
chore: upgrade boxo and fix test function signature (#9896) 2023-05-25 15:36:33 +02:00
Henrique Dias
13c379604f
fix(gateway): redirect /ipns/b58mh to /ipns/cidb36 (#9785) 2023-05-16 13:09:39 +02:00
Laurent Senta
61f8c7301a
refactor: use reusable IPNS ValidateWithPeerID (#9867)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-05-10 11:49:31 +00:00
Henrique Dias
0e7331c952
feat: update boxo with routing streaming 2023-05-10 08:14:48 +00:00
Gus Eggert
eab0baad3b
docs: add "Customizing Kubo" doc (#9854)
Co-authored-by: Steve Loeppky <biglep@protocol.ai>
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-05-10 08:59:13 +02:00
dependabot[bot]
7ec67fdc04 chore(deps): bump golang.org/x/crypto from 0.7.0 to 0.9.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.7.0 to 0.9.0.
- [Commits](https://github.com/golang/crypto/compare/v0.7.0...v0.9.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-10 05:31:01 +02:00
Marten Seemann
c39b8052ea
chore: update go-libp2p to v0.27.3 (#9862) 2023-05-09 10:59:05 +02:00
Henrique Dias
c178c51835
fix: deadlock on retrieving WebTransport addresses (#9857)
Co-authored-by: Marco Polo <git@marcopolo.io>
2023-05-08 16:11:03 +02:00
Laurent Senta
a6f446a4ba
test: deterministic ipns fixtures during sharness gateway tests (#9667) 2023-05-03 15:01:13 +02:00
Henrique Dias
e4908a0163
chore: bump to boxo 0.8.1 (#9836) 2023-04-25 10:47:28 +02:00
Marco Munizaga
78895a1184
deps: bump go-libp2p to v0.27.1 (#9816)
Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2023-04-14 09:09:51 +00:00
Henrique Dias
f7cab554f9
feat: boxo tracing and traceparent support (#9811)
https://www.w3.org/TR/trace-context/
https://github.com/ipfs/bifrost-gateway/issues/68
2023-04-11 23:51:02 +00:00
Marten Seemann
3c363eb658 update go-libp2p to v0.27.0 2023-04-06 23:15:33 +02:00
Gus Eggert
0e55ca9377 feat: add experimental optimistic provide
This adds the ability to enable "optimistic provide" to the default
DHT client, which enables faster provides and reprovides.

For more information about optimistic provide, see:

https://protocollabs.notion.site/Optimistic-Provide-2c79745820fa45649d48de038516b814

Note that this feature only works when using non-custom router
types. This does not include the ability to enable optimistic provide
on custom routers for now, to minimize the footprint of this
experimental feature. We intend on continuing to test this and improve
the UX, which may or may not involve adding configuration for it to
custom routers. We also plan on refactoring/redesigning custom routers
more broadly so I don't want this to add more effort for maintainers
and confusion for users.
2023-04-06 16:49:46 -04:00
Gus Eggert
7cff6b9359
chore: upgrade boxo to v0.8.0 (#9793) 2023-04-05 16:48:39 +00:00
Piotr Galar
0ec22f4add
chore: update deps after v0.19.0 release (#9744)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-04-05 12:02:20 +00:00
Marcin Rataj
d1713ca28e
feat(gw): new metrics and HTTP range support (#9786)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-04-03 08:17:07 +00:00
Gus Eggert
a09c8df24d
fix: remove timeout on default DHT operations (#9783)
* fix: remove timeout on default DHT operations

This removes the timeout by default for DHT operations. In particular
this causes issues with ProvideMany requests which can take an
indeterminate amount of time, but really these should just respect
context timeouts by default. Users can still specify timeouts here if
they want, but by default they will be set to "0" which means "no
timeout".

This is unlikely to break existing users of custom routing, because
there was previously no utility in configuring a router with timeout=0
because that would cause the router to immediately fail, so it is
unlikely (and incorrect) if anybody was using timeout=0.

* fix: remove 5m timeout on ProvideManyRouter

For context see
5fda291b66

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-03-30 16:08:43 -04:00
Adin Schmahmann
353dd49be2
refactor: switch gateway code to new API from go-libipfs (#9681)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-03-30 13:20:37 +00:00
Jorropo
3ab1086f71 chore: migrate go-libipfs to boxo
Resolves #9677, #9676, #9675, #9736
2023-03-28 22:05:25 -04:00
Jorropo
405b1d2dcd chore: update go-libp2p to v0.26.4 2023-03-28 00:49:39 +02:00
Henrique Dias
b975593920
feat(gateway): invalid CID returns 400 Bad Request (#9726) 2023-03-20 14:14:38 +01:00
Piotr Galar
715019440f
chore: update go-libp2p to v0.26.3 (#9737) 2023-03-20 09:47:59 +01:00
Henrique Dias
51eabd46da chore: bump go-libipfs@v0.6.2 2023-03-16 14:12:36 -04:00
Jorropo
40d7f2fecc chore: bump go-libipfs v0.6.1
This does nothing, just move from an untagged commit to a tagged commit but contain the same things.
2023-03-08 12:00:58 +01:00
Jorropo
fea25f7ab1 chore: update golang.org/x/net to v0.7.0
Include fix for https://pkg.go.dev/vuln/GO-2023-1571 (this impact us in the DOH handler).
2023-03-03 12:54:20 +01:00
Jorropo
23379d8d60 chore: update go-unixfs v0.4.4
Include missing error handling.
2023-03-03 12:54:20 +01:00
Marten Seemann
68f4dd4427 chore: update go-libp2p to v0.26.2 2023-03-02 08:48:23 +01:00
Marten Seemann
56b9962103 chore: update go-libp2p to v0.26.1 2023-02-28 02:48:17 +01:00
Henrique Dias
1794649bf2
feat(gateway): error handling improvements (500, 502, 504) (#9660)
* fix(gateway): return 500 for all /ip[nf]s/id failures
* fix: replace deprecated structs
* chore: bump go-libipfs to version from main
2023-02-28 02:21:50 +01:00
Henrique Dias
4283b9d98f
chore: bump go-libp2p-kad-dht to v0.21.1 (#9663) 2023-02-24 11:49:31 +01:00
Marten Seemann
a3366c522a
chore: update go-libp2p to v0.26 (#9656)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-02-24 10:34:10 +01:00
Jorropo
f73cd19220
chore: bump go-unixfs to v0.4.3 (#9643)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-02-23 09:17:01 +01:00
Michael Muré
86da181f7f
feat(pinning): connect some missing go context (#9557)
Co-authored-by: Henrique Dias <hacdias@gmail.com>
2023-02-22 16:56:59 +01:00
Henrique Dias
4db6ae1772
fix(gateway): return HTTP 500 on ErrResolveFailed (#9589) 2023-02-22 03:22:03 +01:00
Jorropo
19feb15833 chore: bump go-libipfs v0.6.0 2023-02-17 22:23:47 +01:00
Jorropo
0ff406170d fix: update rcmgr for go-libp2p v0.25 2023-02-14 22:19:46 +01:00
Jorropo
82ede56636 chore: bump go-libp2p-routing-helpers to v0.6.1
This include a fix where FindProvidersAsync with the parallel composer would not close the channel ASAP when the count was reached, this save finality time when count is reached.
2023-02-09 19:37:56 +01:00
Henrique Dias
af0fe194f5 chore: update iface with routing tests 2023-02-09 14:35:54 +01:00
Henrique Dias
799e5ac0a5
chore: update go-libipfs for more gateway metrics (#9626) 2023-02-08 04:21:06 +01:00
Henrique Dias
b58356939e
refactor(gw): move Host (DNSLink and subdomain) handling to go-libipfs (#9624)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-02-07 03:44:24 +01:00
Henrique Dias
14649aa8ba
refactor: new go-libipfs/gateway API, deprecate Gateway.Writable (#9616) 2023-02-02 02:50:46 +01:00
Henrique Dias
8d3b3154c9
refactor: use gateway from go-libipfs (#9588) 2023-01-31 11:02:31 +01:00
Jorropo
b3c98bb085 chore: bump go-libipfs remove go-bitswap 2023-01-27 23:07:01 +01:00
Henrique Dias
a3c70a11e6
feat(gateway): IPNS record response format (IPIP-351) (#9399)
* feat(gateway): IPNS record response format
* docs(rpc): mark as experimental: routing provide, get, put

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-01-27 04:46:50 +01:00
Henrique Dias
94e7f79805
fix(ipns): honour --ttl flag in 'ipfs name publish' (#9471)
* fix: honour --ttl flag in 'ipfs name publish'
* docs(cli): ipfs name inspect --help

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-01-27 02:33:13 +01:00
Mohsin Zaidi
9652f24f6c
feat: Pubsub.SeenMessagesStrategy (#9543)
* feat: expire messages from the cache based on last seen time
* docs: Pubsub.SeenMessagesStrategy

Ref. https://github.com/libp2p/go-libp2p-pubsub/pull/513

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-01-27 00:24:35 +01:00
Jorropo
f20c980f2d chore: bump go-libipfs to replace go-block-format
Includes changes from:
- https://github.com/ipfs/go-block-format/pull/37
- https://github.com/ipfs/go-libipfs/pull/58
2023-01-26 16:55:48 +01:00
Marcin Rataj
1fa3a789d4 fix: User-Agent sent to HTTP routers
See https://github.com/ipfs/go-libipfs/issues/17
and https://github.com/ipfs/go-libipfs/pull/31
2023-01-19 00:49:46 +01:00
Henrique Dias
255e64e49e
chore: migrate from go-ipfs-files to go-libipfs/files (#9535) 2023-01-13 14:27:03 +01:00
Antonio Navarro Perez
3bc9b675a0
fix: stats dht command when Routing.Type=auto (#9538)
Fixes default auto mode, but Routing.Type=custom needs more work.
Continued in https://github.com/ipfs/kubo/issues/9482
2023-01-13 00:38:38 +01:00
Antonio Navarro Perez
8cdc86d8c4 fix: disable provide over HTTP with Routing.Type=auto (#9511)
Closes https://github.com/ipfs/kubo/issues/9504
2023-01-04 13:56:15 +01:00
Marten Seemann
d6921c6d03
fix: update go-libp2p to v0.24.2 (#9522)
https://github.com/libp2p/go-libp2p/releases/tag/v0.24.2
2023-01-02 13:53:58 +01:00
Henrique Dias
7bdb341132
feat: fast directory listings with DAG Size column (#9481)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-12-12 21:45:13 +01:00
Marcin Rataj
3a3a97100c feat: go-libp2p-kad-dht with expiration 48h
https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.20.0
(cherry picked from commit f31d524d14)
2022-12-12 03:47:17 +01:00
Jorropo
deacafd178 chore: update go-libp2p to v0.24.1 2022-12-12 03:47:17 +01:00
Jorropo
f08b439d48 update go-libp2p to v0.24.0 2022-12-12 03:47:17 +01:00
Gus Eggert
5e5d15ae1e
chore: upgrade libipfs for routing HTTP API schema changes (#9477) 2022-12-07 17:34:00 -05:00
Antonio Navarro Perez
3185dee22a Update libipfs dependency. 2022-12-07 16:34:59 +01:00
Antonio Navarro Perez
f0d720cd55 Update go-libipfs dep
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-12-07 16:34:59 +01:00
Antonio Navarro Perez
df828c0a47 feature: delegated-routing: Add HTTP delegated routing.
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-12-07 16:34:59 +01:00
Gus Eggert
b9a4d4592d chore: migrate ipfs/tar-utils to libipfs 2022-12-05 21:28:30 -05:00
Jorropo
4d4841f41c
Merge pull request #9318 from ipfs/rvagg/go-merkledag-0.8 2022-12-05 15:15:12 +01:00
Antonio Navarro Perez
5283c6f8b5 chore: Update go-routing-helpers dependency
It will avoid a deadlock when using parallel router to compose routers.

Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-12-02 13:42:28 -05:00
Rod Vagg
7d0ea08289
deps: go-merkledag@v0.8.1 2022-12-02 10:16:15 +11:00
Mohsin Zaidi
51f60ea05a
feat(config): Pubsub.SeenMessagesTTL (#9372)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-11-29 00:05:44 +01:00
Antonio Navarro Perez
6f5e226de6 fix: update go-unixfs lib to v0.4.1
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-11-15 21:51:43 +01:00
Antonio Navarro Perez
9da7f3a02d
Update to v0.23.4
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-11-10 10:49:08 -05:00
Antonio Navarro Perez
3550758035
chore: Update go-libp2p to v0.23.3
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
2022-11-10 10:48:07 -05:00
Antonio Navarro Perez
254d81a9d5
feat: Improve ResourceManager UX (#9338)
This PR adds several new functionalities to make easier the usage of ResourceManager:

- Now resource manager logs when resources are exceeded are on ERROR instead of warning.
- The resources exceeded error now shows what kind of limit was reached and the scope.
- When there was no limit exceeded, we print a message for the user saying that limits are not exceeded anymore.
- Added `swarm limit all` command to show all set limits with the same format as `swarm stats all`
- Added `min-used-limit-perc` option to `swarm stats all` to only show stats that are above a specific percentage
- Simplify a lot default values.
- **Enable ResourceManager by default.**

Output example:
```
2022-11-09T10:51:40.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:51:50.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 483095 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:51:50.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:00.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 455294 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:00.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:10.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 471384 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:10.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 8 times with error "peer:12D3KooWKqcaBtcmZKLKCCoDPBuA6AXGJMNrLQUPPMsA5Q6D1eG6: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 192 times with error "peer:12D3KooWPjetWPGQUih9LZTGHdyAM9fKaXtUxDyBhA93E3JAWCXj: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 469746 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:30.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 484137 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:30.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 29 times with error "peer:12D3KooWPjetWPGQUih9LZTGHdyAM9fKaXtUxDyBhA93E3JAWCXj: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:30.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:40.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 468843 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:40.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:52:50.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 366638 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:52:50.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:53:00.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 405526 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:53:00.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 107 times with error "peer:12D3KooWQZQCwevTDGhkE9iGYk5sBzWRDUSX68oyrcfM9tXyrs2Q: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:53:00.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:53:10.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 336923 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:53:10.566+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:53:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:55      Resource limits were exceeded 71 times with error "transient: cannot reserve inbound stream: resource limit exceeded".
2022-11-09T10:53:20.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:59      Consider inspecting logs and raising the resource manager limits. Documentation: https://github.com/ipfs/kubo/blob/master/docs/config.md#swarmresourcemgr
2022-11-09T10:53:30.565+0100    ERROR   resourcemanager libp2p/rcmgr_logging.go:64      Resrouce limits are no longer being exceeded.

```
## Validation tests

- Accelerated DHT client runs with no errors when ResourceManager is active. No problems were observed.
- Running an attack with 200 connections and 1M streams using yamux protocol. Node was usable during the attack. With ResourceManager deactivated, the node was killed by the OS because of the amount of memory consumed.
	- Actions done when the attack was active:
		- Add files 
		- Force a reprovide
		- Use the gateway to resolve an IPNS address.

It closes #9001 
It closes #9351
It closes #9322
2022-11-10 12:25:57 +01:00
Henrique Dias
a210abd743
feat(gateway): TAR response format (#9029)
Implementation of IPIP-288 (https://github.com/ipfs/specs/pull/288)

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2022-11-09 19:20:33 +01:00
Marcin Rataj
d69f7a5ac9 chore: go-multicodec v0.7.0
https://github.com/multiformats/go-multicodec/releases/tag/v0.7.0
2022-11-08 18:33:36 +01:00
Gus Eggert
8c72ea909a
feat: add delegated routing metrics (#9354) 2022-10-19 09:50:30 -04:00
Rod Vagg
9e3745ebeb deps: upgrade go-ipld-prime to v0.19.0
Ref: https://github.com/ipld/go-ipld-prime/releases/tag/v0.19.0
2022-10-14 05:23:43 +02:00
Jorropo
baccaef1b5
Merge pull request #9293 from Jorropo/webtransport
feat: add webtransport as an optin transport
2022-09-23 20:09:33 +02:00
Jorropo
8baec10146 feat: add webtransport as an optin transport 2022-09-23 19:50:55 +02:00
Justin Johnson
bcaacdd6c3
feat(gateway): _redirects file support (#8890)
https://github.com/ipfs/kubo/pull/8890
https://github.com/ipfs/specs/pull/290
2022-09-23 18:44:19 +02:00
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
74aaf37cec chore: bump go-libp2p v0.23.1
This does not include any WebTransport config code in Kubo, this will be done later in an other PR.
2022-09-21 23:16:03 +02:00
Marcin Rataj
b6b97d90ac fix: require IPNS V2 signatures 2022-09-21 01:09:00 +02:00
Jorropo
aeaf57734a chore: bump go-bitswap v0.10.2 2022-09-13 19:21:18 +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
Jorropo
849e0478b5 chore: bump go-pinning-service-http-client v0.1.2 to include up to nano precision 2022-09-01 15:36:25 +02:00
Jorropo
1236eb0f58 chore: update github.com/gabriel-vasile/mimetype
See the release notes: https://github.com/gabriel-vasile/mimetype/releases/tag/v1.4.1

This is a valuable release with already public security fixes (which don't affect us AFAIT but better safe than sorry).
More mimetypes and bug fixes.
2022-08-17 02:19:18 +02:00
Marco Munizaga
5c858d5063 Go mod tidy kubo-as-a-library 2022-08-15 14:47:22 -07:00
Marco Munizaga
831135cc9b Update go-libp2p-kad-dht to v0.17.0 2022-08-15 14:14:00 -07:00
Marco Munizaga
194eb2f298 Go mod tidy 2022-08-15 14:12:21 -07:00
Marco Munizaga
4cd437dfe2 Use replace in kubo example as a library 2022-08-15 14:12:21 -07:00
Marco Munizaga
b0adea314a Update go.mod/sum in examples/kubo-as-a-library 2022-08-15 14:12:21 -07:00
Marcin Rataj
2f08eb45e7 chore: update kubo-as-a-library example 2022-07-25 16:48:52 +02:00
Jorropo
a433064d72
chore: replace ioutil with io and os (#8969)
Co-authored-by: Håvard Anda Estensen <haavard.ae@gmail.com>
2022-06-14 12:37:02 -04:00