Commit Graph

16 Commits

Author SHA1 Message Date
Andrew Gillis
2ca5637c4d
Replace go-random with random-data from go-test package (#10731)
* Replace go-random with random-data from go-test package
2025-02-24 13:42:39 -08: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
Gus Eggert
1b3e4438fc
chore: upgrade OpenTelemetry dependencies (#9736) 2023-04-05 11:44:14 +00:00
galargh
fe8f72e707 ci: replace junit html generation with gh action 2023-03-02 10:52:23 +01:00
galargh
d90a9b5b33 fix: do not download saxon in parallel 2023-01-16 03:00:21 +01:00
Piotr Galar
d4cd414b5e
test: port CircleCI to GH Actions and improve sharness reporting (#9355)
Closes https://github.com/ipfs/kubo/issues/8991
Part of https://github.com/ipfs/kubo/issues/8804
2023-01-14 00:49:52 +01:00
Steven Allen
585731074e test(graphsync): test server-side graphsync 2020-02-26 09:11:17 -08:00
Kevin Atkinson
1e7b2559e4 Include cid-fmt binary in test/bin.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-07-28 02:28:27 -04:00
Łukasz Magiera
ea4a46250c sharness/junit: fixes after review
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-04-10 18:31:25 +02:00
Łukasz Magiera
b2b68c8214 sharness/junit: review
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-04-10 18:31:25 +02:00
Łukasz Magiera
3eb614fcb2 sharness: Generate JUnit test reports
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-04-10 18:31:25 +02:00
Steven Allen
0e8fc8ffc8 remove useless make target
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-02-04 15:11:09 +01:00
Jakub Sztandera
d2cc708650
make(sharness): add plugins as part of sharness build
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-07-12 21:53:59 +02:00
Łukasz Magiera
ad1dc5f405 Corenet API: Use simple util instead of socat for tests
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2017-05-31 11:33:17 +02:00
Jakub Sztandera
f77d01a965
make: add dummy makefile in sharness directory
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jakub Sztandera
f630222580
make: rework makefiles for non-recursive make and add sharness coverage
This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.

It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.

It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.

Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.

How to NR-make:
1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00