Commit Graph

1573 Commits

Author SHA1 Message Date
Andrew Gillis
8077dbea61
use go-datastore without go-process (#10736)
* use go-datastore without go-process
* update go-ds-xxx dependencies
* update go-libp2p-kad-dht
* bitswap api changes
* Do not use multiple multi-error packages, pick one
* update boxo
* update expected metrics
2025-03-04 18:52:26 -08:00
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
Andrew Gillis
56a053223e
Update go-test and use new random-files generator (#10728)
* Update go-test and use new random-files generator

Update sharness test for new random files.

* Update random file generation
2025-02-21 14:27:27 -08:00
Russell Dempsey
40a7a388a4
fix: switch away from IPFS_LOG_LEVEL (#10694)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Spell Check / spellcheck (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
2025-02-14 18:25:31 +00:00
Sergey Gorbunov
032ceaf5d1
fix: Issue #9364 JSON config validation (#10679)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
* Fix JSON config validation
* updated ReflectToMap

---------

Co-authored-by: galargh <piotr.galar@gmail.com>
Co-authored-by: Guillaume Michel <guillaumemichel@users.noreply.github.com>
Co-authored-by: guillaumemichel <guillaume@michel.id>
2025-02-04 17:26:36 +01:00
youyyytrok
9adab295e0
feat: Add CI for Spell Checking (#10637)
* Create spellcheck.yml
* Create .codespell-ignore
---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Guillaume Michel <guillaumemichel@users.noreply.github.com>
2025-01-30 17:50:51 +01:00
Piotr Galar
29bfcce4be
test: fix the socat tests after the ubuntu 24.04 upgrade (#10683)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
2025-01-29 21:11:41 +01:00
Andrew Gillis
b7cc47aef5
fix/gateway: escape directory redirect url (#10649)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
* fix/gateway: escape directory redirect URLs

When a director gets redirected to a URL with a treailing slash, special chars in the directory name must be escaped in the redirect URL. This upgrades to a version of box that has that fix.

Closes #10536

* Fix sharness test for new redirect URLs
* Update to latest boxo
* Use latest gateway-conformance
2025-01-03 16:37:18 -08:00
Adin Schmahmann
397c346ae0
feat(libp2p): shared TCP listeners and AutoTLS.AutoWSS (#10565)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
* feat(libp2p): enable shared TCP listeners

* docs: switch mentions of /ws to /tcp/4001

* feat: AutoTLS.AutoWSS

This adds AutoTLS.AutoWSS flag that is set to true by default.

It will check if Addresses.Swarm contain explicit /ws listener,
and if not found, it will append one per every /tcp listener

This way existing TCP ports are reused without any extra configuration,
but we don't break user's who have custom / explicit /ws listener
already.

I also moved logger around, to include Addresses.Swarm inspection
results in `autotls` logger.

* chore: go-libp2p v0.38.1

https://github.com/libp2p/go-libp2p/releases/tag/v0.38.0
https://github.com/libp2p/go-libp2p/releases/tag/v0.38.1

* docs: AutoTLS.AutoWSS and go-libp2p v0.38.x

* chore: p2p-forge/client v0.2.0

https://github.com/ipshipyard/p2p-forge/releases/tag/v0.2.0

* fix: disable libp2p.ShareTCPListener() in PNET

* chore(ci): timeout sharness after 15m

average successful run is  <9 minutes, no need to wait for 20
https://github.com/ipfs/kubo/actions/workflows/sharness.yml?query=is%3Asuccess

---------

Co-authored-by: Andrew Gillis <11790789+gammazero@users.noreply.github.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-12-20 18:41:25 +01:00
Hector Sanjuan
433444b609
fix(cmds/add): disallow --wrap with --to-files (#10612)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
Close #10611
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-12-03 21:49:18 +01:00
Marten Seemann
778a418952
refactor(rcmgr): use default libp2p rcmgr metrics (#9947)
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-11-27 20:50:43 +01:00
Hector Sanjuan
37c5060742
Update to boxo with refactored providerQueryManager. (#10595)
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
2024-11-26 03:34:06 -08:00
Marcin Rataj
0bd0edc782
feat(bootstrap): add JS-based va1.bootstrap.libp2p.io (#10575)
Some checks failed
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
CodeQL / codeql (push) Has been cancelled
* feat(bootstrap): /dnsaddr/va1.bootstrap.libp2p.io

this adds
https://github.com/libp2p/js-libp2p-amino-dht-bootstrapper
instance at /dnsaddr/va1.bootstrap.libp2p.io
to ensure Kubo does not depend on single language stack
for initial bootstrap

* docs: document where defaults live

* test: updated bootstrappers
2024-11-25 09:04:53 -08:00
Andrew Gillis
52b00624cd
feat: pebbleds profile and plugin (#10530)
* include pebble as built-in plugin

Pebble provides a high-performance alternative to leveldb as the datastore, and will serve as a replacement for badger1.

There are a number of tuning parameters available for tuning pebble's performance to your specific needs. Default values are used for any that are not configured or are set to the parameter's zero-value.

Requires https://github.com/ipfs/go-ds-pebble/pull/39

Closes #10347

* docs: remove mention of ipfs-ds-convert. Rationale: https://github.com/ipfs/ipfs-ds-convert/issues/50
* docs: pebbleds profile
* test: meaningful t0025-datastores.sh
* Update config/init.go
* Update docs/config.md
* Do not hard-code zero values into pebble config
2024-10-03 13:58:14 -07:00
Marcin Rataj
1bc773fd8b
chore: dependency updates for 0.31 (#10511)
* chore: client_golang v1.20.4
* chore: go-libp2p-kbucket v0.6.4
* chore: go-libp2p v0.36.4
* chore: go-car/v2 v2.14
* chore: go-ipld-cbor v0.2.0
2024-10-03 22:03:58 +02:00
Marcin Rataj
6454bdb4ea
chore: boxo v0.23.0 and go-libp2p v0.36.3 (#10507)
https://github.com/libp2p/go-libp2p/releases/tag/v0.36.3
https://github.com/ipfs/boxo/releases/tag/v0.23.0
2024-09-05 23:52:19 +02:00
Andrew Gillis
5fe960474c
fix(cli): preserve hostname specified with --api in http request headers (#10497)
Preserve hostname specified with --api in http request headers

- Replaces PR #10233
- Add test to check for hostname in HTTP header
- Update docs/changelogs/v0.30.md
2024-08-28 10:03:26 -07:00
Andrew Gillis
263edb251e
feat: Support storing UnixFS 1.5 Mode and ModTime (#10478)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-08-21 02:02:46 +02:00
Marcin Rataj
0d428310b2
feat(daemon): improve stdout on startup (#10472) 2024-08-14 16:42:24 +02:00
Patryk
225dbe6c03
feat: periodic version check and json config (#10438)
Co-authored-by: Lucas Molas <schomatis@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-07-24 23:42:19 +02:00
Henrique Dias
eb97cf9e57
chore: bump to go-ipfs-cmds @ v0.11 2024-04-17 07:47:39 +02:00
Henrique Dias
6f2a61e1df
core/node: prioritize announcing pin roots, and flat strategy (#10376)
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-04-09 06:37:23 +00:00
Henrique Dias
11183bb2f5
chore: upgrade go-libp2p-kad-dht (#10378)
* chore: upgrade go-libp2p-kad-dht
* config: make LoopbackAddressesOnLanDHT a Flag
* config: add DefaultLoopbackAddressesOnLanDHT
* docs(config): Routing.LoopbackAddressesOnLanDHT

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2024-04-04 12:56:19 +00:00
occupyhabit
62eb143915
docs: fix some typos (#10377) 2024-03-25 09:59:47 +01:00
Henrique Dias
9047fed8d5
core/commands!: remove deprecated object APIs (#10375) 2024-03-22 09:32:30 +01:00
Marcin Rataj
8559985d0a chore: finish reframe removal
Closes #9479
2024-03-19 12:25:35 +01:00
Henrique Dias
e22f47ae4b
core/corehttp!: remove /api/v0 from gateway port 2024-03-05 08:21:13 +00:00
Henrique Dias
d60b7cd1b1
ci: upgrade to go 1.22 (#10355) 2024-03-05 08:37:34 +01:00
Henrique Dias
595e1ba268
repo/fsrepo/migrations: verified HTTP migrations (#10324) 2024-02-19 14:20:58 +01:00
Henrique Dias
80973d87cc core: deprecate CoreAPI.Dht, introduce CoreAPI.Routing 2024-02-07 10:47:30 +01:00
Henrique Dias
e166af9756
core/corehttp: wrap gateway with headers, deprecate gateway /api/v0 2024-01-24 09:33:23 +00:00
Henrique Dias
5c31db3a3d
commands: remove several deprecated commands
Removes the following commands: ipfs tar, ipfs urlstore, ipfs repo fsck, ipfs file ls, ipfs dns.
2023-12-12 18:21:52 +01: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
Hector Sanjuan
a0f34b16dd
feat: built-in content blocking based on IPIP-383 (#10161)
Fixes #8492

This introduces "nopfs" as a preloaded plugin into Kubo
with support for denylists from https://github.com/ipfs/specs/pull/383

It automatically makes Kubo watch *.deny files found in:

- /etc/ipfs/denylists
- $XDG_CONFIG_HOME/ipfs/denylists
- $IPFS_PATH/denylists

* test: Gateway.NoFetch and GatewayOverLibp2p

adds missing tests for "no fetch" gateways one can expose,
in both cases the offline mode is done by passing custom
blockservice/exchange into path resolver, which means
global path resolver that has nopfs intercept is not used,
and the content blocking does not happen on these gateways.

* fix: use offline path resolvers where appropriate

this fixes the problem described in
https://github.com/ipfs/kubo/pull/10161#issuecomment-1782175955
by adding explicit offline path resolvers that are backed
by offline exchange, and using them in NoFetch gateways
instead of the default online ones

---------

Co-authored-by: Henrique Dias <hacdias@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-10-28 05:34:14 +02:00
Henrique Dias
4695fd9fed
refactor: namesys cleanup, gateway /ipns/ ttl (#10115) 2023-10-18 10:23:50 +02:00
Henrique Dias
a7c6518497
feat: path consolidation (#10063) 2023-10-06 16:14:44 +02:00
Jorropo
593614a08f tests: remove sharness ping tests
This was ported in 579175f81d but we forgot to remove it.
2023-09-21 20:14:21 +02:00
Adin Schmahmann
df66dacc26 test(sharness): update ping test since go-libp2p v0.31.0 changed the reported error message 2023-09-01 16:52:12 -04:00
Henrique Dias
5ea58251d5
chore: update boxo, go-libp2p, and internalize mplex (#10095) 2023-08-24 06:11:02 +00:00
Henrique Dias
1e5ce93659 fix: use %-encoded headers in most compatible way 2023-08-22 15:43:01 +02:00
Henrique Dias
535d35e161
chore: restore exec perms for t0116-gateway-cache.sh and fixtures (#10085) 2023-08-18 09:34:42 +02:00
Laurent Senta
7977f26e86
chore: remove sharness tests ported to conformance testing (#9999)
* test(t0112): drop test ported to conformance

* test(t0113): drop test ported to conformance

* test(t0114): drop test ported to conformance

* test(t0114): drop test ported to conformance

* test(t0115): drop test ported to conformance

* test(t0122): drop test ported to conformance

* test(t0123): drop test ported to conformance

* test(t0117): drop test ported to conformance

* test(t0124): drop test ported to conformance

* test(t0114): simplify tests

* test(t0112): drop test ported to conformance

* test(t0116): drop test ported to conformance

* t0114: restore tests flagged by lidel

* t0112: restore

* t0116: restore dirindex check

* t0109: restore file

* t0115: restore full file

* t0114: restored rest of file

* fix: kill the iptb cluster
2023-08-02 19:15:27 +02:00
Marco Munizaga
649283bb6c chore: update go-libp2p to v0.29.0 2023-07-26 14:48:19 +02:00
Marten Seemann
c08313f032 chore: update go-libp2p to v0.28.1
Co-authored-by: Jorropo <jorropo.pgm@gmail.com>
2023-07-26 14:48:19 +02:00
Henrique Dias
dae41836c0 chore: bump to boxo master 2023-06-29 13:05:08 +02:00
Marcin Rataj
3da4e5b409
fix(gateway): include CORS on subdomain redirects (#9994) 2023-06-27 11:11:21 +00:00
Henrique Dias
5156f21162
feat(ipns): records with V2-only signatures (#9932) 2023-06-20 14:24:31 +02:00
Jorropo
82fd9ec329
cmds/dag/import: pin roots by default (#9966)
This is a partial revert of b685355ca8.
Closes #9765 with compromise agreed in https://github.com/ipfs/kubo/issues/9765#issuecomment-1593117410
2023-06-15 16:41:59 +02:00
Rod Vagg
b685355ca8
feat!: dag import - don't pin roots by default (#9926)
* feat!: dag import - don't pin roots by default

Fixes: https://github.com/ipfs/kubo/issues/9765

* test(ipip-402): dag import

this adds basic regression test that guards behavior
around partial cars with or without pinning

* docs(ipip-402): ipip and dag import changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2023-06-14 20:45:34 +00:00
Henrique Dias
18db5935ef
fix: more stable prometheus test (#9944) 2023-06-13 14:43:57 +02:00