Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove experimental graphsync server #9747

Merged
merged 1 commit into from
Nov 22, 2023
Merged

remove experimental graphsync server #9747

merged 1 commit into from
Nov 22, 2023

Commits on Nov 22, 2023

  1. 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.
    Jorropo committed Nov 22, 2023
    Configuration menu
    Copy the full SHA
    f230447 View commit details
    Browse the repository at this point in the history