Revision 2b347a914d631b79a63246e1e028dc1b9a15512a authored by Jorropo on 17 November 2023, 21:54:09 UTC, committed by Jorropo on 22 November 2023, 03:57:45 UTC
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.
1 parent 48865a9
History
File Mode Size
.github
assets
bin
blocks
client
cmd
commands
config
core
coverage
docs
fuse
gc
misc
mk
p2p
plugin
profile
repo
routing
tar
test
thirdparty
tracing
.codeclimate.yml -rw-r--r-- 648 bytes
.dockerignore -rw-r--r-- 255 bytes
.gitattributes -rw-r--r-- 256 bytes
.gitignore -rw-r--r-- 445 bytes
.golangci.yml -rw-r--r-- 181 bytes
.mailmap -rw-r--r-- 11.5 KB
CHANGELOG.md -rw-r--r-- 867 bytes
CONTRIBUTING.md -rw-r--r-- 567 bytes
Dockerfile -rw-r--r-- 4.0 KB
GNUmakefile -rw-r--r-- 109 bytes
LICENSE -rw-r--r-- 508 bytes
LICENSE-APACHE -rw-r--r-- 520 bytes
LICENSE-MIT -rw-r--r-- 1.0 KB
Makefile -rw-r--r-- 50 bytes
README.md -rw-r--r-- 18.5 KB
Rules.mk -rw-r--r-- 3.6 KB
SECURITY.md -rw-r--r-- 848 bytes
appveyor.yml -rw-r--r-- 1.4 KB
codecov.yml -rw-r--r-- 322 bytes
doc.go -rw-r--r-- 72 bytes
docker-compose.yaml -rw-r--r-- 795 bytes
go.mod -rw-r--r-- 12.1 KB
go.sum -rw-r--r-- 140.0 KB
version.go -rw-r--r-- 1.2 KB

README.md

back to top