Commit Graph

21 Commits

Author SHA1 Message Date
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
Adin Schmahmann
f2c43d5bbf feat(config): Add gateway-over-libp2p experiment 2023-09-01 16:52:09 -04: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
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
e550d9e476
ci: add stylecheck to golangci-lint (#9334) 2022-10-06 10:18:40 -04:00
Marcin Rataj
82467bc936 refactor: rename to kubo 2022-07-06 18:40:37 +02:00
Marcin Rataj
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
Adin Schmahmann
22d2b6b8b8 go-ipfs-config: add option for Accelerated DHT Client experiment 2021-05-12 15:13:47 -04:00
Steven Allen
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
Steven Allen
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
@RubenKelevra
7f51e84a55 go-ipfs-config: QUIC: remove experimental config option 2020-05-22 03:13:16 +02:00
Steven Allen
542ca9296b go-ipfs-config: feat: remove PreferTLS experiment
This will now be enabled by default.
2020-03-29 18:50:34 -07:00
Steven Allen
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
Michael Avila
b2029f15c7 go-ipfs-config: Add provider system experiment 2019-05-02 09:43:16 -07:00
Marten Seemann
3475f8350a go-ipfs-config: add an experiment to prefer TLS over secio 2019-04-18 09:11:09 +09:00
Dr Ian Preston
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
Marten Seemann
32cf2a65d7 go-ipfs-config: add QUIC experiment 2018-08-26 10:42:03 +07:00
Kevin Atkinson
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
Łukasz Magiera
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
Jeromy
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
Jeromy
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