1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-08-23 18:11:27 +08:00

22 Commits

Author SHA1 Message Date
2ab3f58c99 fix(config): wire up Provider.Enabled flag (#10804)
* fix(config): explicit Provider.Enabled flag

Adds missing config option described in
https://github.com/ipfs/kubo/issues/10803

* refactor: remove Experimental.StrategicProviding

removing experiment, replaced with Provider.Enabled

* test(cli): routing [re]provide

updated and added tests for manually triggering provide and reprovide
and making them respect global configuration flag to avoid
inconsistent behaviors

* docs: improve DelegatedRouters

* refactor: default DefaultProviderWorkerCount=16

- simplified default for both
- 16 is safer for non-accelerated DHT client
- acceletated DHT performs better without limit anyway - updated docs
2025-05-15 19:19:18 +02:00
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
f2c43d5bbf feat(config): Add gateway-over-libp2p experiment 2023-09-01 16:52:09 -04:00
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
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
e550d9e476 ci: add stylecheck to golangci-lint (#9334) 2022-10-06 10:18:40 -04:00
82467bc936 refactor: rename to kubo 2022-07-06 18:40:37 +02:00
d50960f9e3 go-ipfs-config: chore: omitempty Experimental.ShardingEnabled (#158)
We switch to autosharding setup in
https://github.com/ipfs/go-ipfs/pull/8527
2021-11-23 18:44:35 +01:00
22d2b6b8b8 go-ipfs-config: add option for Accelerated DHT Client experiment 2021-05-12 15:13:47 -04:00
57089fd66b go-ipfs-config: feat: remove OverrideSecurityTransports
This was never included in a release, and has been replaced by a flexible
transport prioritization system.
2020-06-15 15:24:41 -07:00
e69fcd9d01 go-ipfs-config: feat: add an option for security transport experiments
We should have a more permanent way to configure security transports, but
experimental flags are a quick and unstable way to do this without making any
promises.
2020-05-25 23:11:18 -07:00
7f51e84a55 go-ipfs-config: QUIC: remove experimental config option 2020-05-22 03:13:16 +02:00
542ca9296b go-ipfs-config: feat: remove PreferTLS experiment
This will now be enabled by default.
2020-03-29 18:50:34 -07:00
7dfdeeb04e go-ipfs-config: feat: add graphsync option
related to https://github.com/ipfs/go-ipfs/issues/6830
2020-02-11 19:16:27 -08:00
b2029f15c7 go-ipfs-config: Add provider system experiment 2019-05-02 09:43:16 -07:00
3475f8350a go-ipfs-config: add an experiment to prefer TLS over secio 2019-04-18 09:11:09 +09:00
43a6230e14 go-ipfs-config: add experiment for p2p http proxy
License: MIT
Signed-off-by: Ian Preston <ianopolous@protonmail.com>
2018-10-04 23:42:48 +01:00
32cf2a65d7 go-ipfs-config: add QUIC experiment 2018-08-26 10:42:03 +07:00
ee071dbd6a go-ipfs-config: Add config option to enable urlstore.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-13 09:07:51 -04:00
53ceee47a9 go-ipfs-config: Corenet API: Apply suggestions, cleanups
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-05-31 11:33:17 +02:00
4d73fe8b42 go-ipfs-config: add global config switch for sharding
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2017-03-23 16:42:31 -07:00
f1cb6feeb5 go-ipfs-config: Implement basic filestore 'no-copy' functionality
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2017-03-06 00:37:24 -08:00