1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-12-19 01:30:17 +08:00
Commit Graph

1217 Commits

Author SHA1 Message Date
Sergey Gorbunov
d81f524cce feat(ipns): support passing custom sequence number during publishing (#10851)
* feat(ipns): Add a parameter in name.publish to change the sequence number
* test: monotonic name publish --sequence
* docs: `name publish --sequence`
* chore: boxo main with PR 962

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-13 04:15:45 +02:00
Guillaume Michel
7250eb8786 bump go-libp2p-kad-dht (#10911) 2025-08-12 17:09:56 -07:00
Marcin Rataj
c513e1adfa fix(relay): feed connected peers to AutoRelay discovery (#10901)
* fix(relay): feed connected peers to AutoRelay discovery

Feed all connected swarm peers to AutoRelay as potential relay
candidates. This allows peers from HTTP routing and manual connections
to serve as relays, not just DHT-discovered peers.

Fixes #10899

* docs: changelog
2025-08-11 23:59:00 +02:00
Russell Dempsey
d3cc4ff587 feat: add query functionality to log level command (#10885)
* feat: update log level command to show log levels
* test: add log level tests
* update TestCommands test
* docs: relation to GOLOG_LOG_LEVEL
* chore: update to latest go-log
* fix: do not output single subsystem name in CLI
* test: explicit subsystem request dont output subsystem
* LevelFromString renamed to Parse
* Modify `ipfs log level` 
* Denote default level with sdubsystem name '(defult)'.
* make "*" an dalias for "all".  Test to make sure both work the same.
2025-08-11 12:43:48 -07:00
Andrew Gillis
d4ab5129e9 fix(cmd): exit 1 on error (#10903)
* Fix command stream result handling

Do not close the stream prematurely in a deferred function. Also, avoid possible shadowing errors.

Closes #9007

* test(cli): test/cli/cid_test.go

includes regression tests for https://github.com/ipfs/kubo/issues/9007
and better coverage than the old test/sharness/t0290-cid.sh

(identified bug in basemoji)

* fix: base256emoji in cid bases --prefix

changed the character display logic from ASCII range check to
unicode.IsPrint() to properly handle Unicode characters including
emojis.

* docs: changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-08 17:25:05 -07:00
sukun
b139df1658 feat: go-libp2p v0.43.0 (#10892)
https://github.com/libp2p/go-libp2p/releases/tag/v0.43.0

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-08 17:53:08 +02:00
Hector Sanjuan
a673c2ec95 fix: Provide according to Reprovider.Strategy (#10886)
* Provide according to strategy

Updates boxo to a version with the changes from https://github.com/ipfs/boxo/pull/976, which decentralize the providing responsibilities (from a central providing.Exchange to blockstore, pinner, mfs).

The changes consist in initializing the Pinner, MFS and the blockstore with the provider.System, which is created first.

Since the provider.System is created first, the reproviding KeyChanFunc is set
later when we can create it once we have the Pinner, MFS and the blockstore.

Some additional work applies to the Add() workflow. Normally, blocks would get provided at the Blockstore or the Pinner, but when adding blocks AND a "pinned" strategy is used, the blockstore does not provide, and the
pinner does not traverse the DAG (and thus doesn't provide either), so we need to provide directly from the Adder. This is resolved by wrapping the DAGService in a "providingDAGService" which provides every added block, when using the "pinned" strategy.

`ipfs --offline add` when the ONLINE daemon is running will now announce blocks per the chosen strategy, where before it did not announce them. This is documented in the changelog. A couple of releases ago, adding with `ipfs --offline add` was faster, but this is no longer the case so we are not incurring in any penalties by sticking to the fact that the daemon is online and has a providing strategy that we follow.

Co-authored-by: gammazero <11790789+gammazero@users.noreply.github.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-08 10:56:44 +02:00
Marcin Rataj
cfbc64845c feat: ipfs-webui v4.8.0 (#10902)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.8.0
2025-08-08 03:58:12 +02:00
Andrew Gillis
918aa07c9e refactor: move ipfs stat provide/reprovide to ipfs provide stat (#10896)
- Move `ipfs stat reprovide` to `ipfs provide stat`
- Mark `ipfs stat provide` as deprecated and replaces by `ipfs provide stat`
- Mark `ipfs stat reprovide` as deprecated and replaces by `ipfs provide stat`
- Remove redundant code from deprecated subcommands

Closes #10869
2025-08-07 17:17:00 -07:00
Kapil Sareen
10abb9073d feat(add): add support for naming pinned CIDs (#10877)
* feat(add): add support for naming pinned CID

Signed-off-by: kapil <kapilsareen584@gmail.com>

* fix(add): no double pinning and simplify pin-name

- modify PinRoot to accept name parameter, eliminating double pinning
- remove automatic filename fallback logic for cleaner behavior
- only create named pins when explicitly requested via --pin-name=value
- replace NoPinName constant with idiomatic empty string literals
- Update help text and tests to reflect explicit-only behavior

* docs: changelog

* chore: lint

* test: negative case for empty pin-name

* chore: gofmt

---------

Signed-off-by: kapil <kapilsareen584@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-06 02:16:16 +02:00
Andrew Gillis
90b73d2ad2 refactor: remove goprocess (#10872)
* refactor: remove goprocess

The `goprocess` package is no longer needed. It can be replaces by modern `context` and `context.AfterFunc`.

* mod tidy

* log unmount errors on shutdown

* Do not log non-mounted errors on shutdown

* Use WaitGroup associated with IPFS node to wait for services to whutdown

* Prefer explicit Close to context.ArterFunc

* Do not use node-level WaitGroup

* Unmount for non-supported platforms

* fix return values

* test: daemon shuts down gracefully

make sure ongoing operations dont block shutdown

* test(cli): add TestFUSE

* test: smarter RequiresFUSE

opportunistically run FUSE tests if env has fusermount
and TEST_FUSE was not explicitly set

* docs: changelog

---------

Co-authored-by: gammazero <gammazero@users.noreply.github.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-08-06 00:33:45 +02:00
Ankita Sahu
458ad45bbe docs:added GOLOG_LOG_LEVEL to debug-guide for logging more info (#10894) 2025-08-05 16:28:09 +02:00
sukun
8862a5e58e chore: update go-libp2p and p2p-forge (#10887)
* chore: update go-libp2p and p2p-forge

* docs: changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-07-31 16:30:13 +02:00
Andrew Gillis
02cf7519d0 Upgrade to Boxo v0.33.1 (#10888)
* Upgrade to Boxo v0.33.1
2025-07-31 04:53:14 -07:00
Andrew Gillis
bb58ca4737 remove unneeded thirdparty packages (#10871)
* remove unneeded thirdparty packages

Remove unnecessary packages from `thirdparty` in repo.

- Remove `thirdparty/assert` (replaced by `github.com/stretchr/testify/require`)
- Remove `thirdparty/dir` (replacd by `misc/fsutil`)
- Remove `thirdparty/notifier` (unused)
2025-07-16 01:53:42 -07:00
Andrew Gillis
a22efea6f3 provider: clear provide queue when reprovide strategy changes (#10863)
* provider: clear reprovide queue when reprovide strategy changes

When the currently configured reprovide strategy does not match the previous strategy read from the datastore, then clear the reprovide queue and update the reprovide strategy that is stored in the datastore.

Depends on https://github.com/ipfs/boxo/pull/978

Closes #10829

* Update docs/changelogs/v0.36.md

Co-authored-by: Guillaume Michel <guillaumemichel@users.noreply.github.com>

* update log message
* update boxo
* Move change log to v0.37.md
* Add `provide clear` command to clear provide queue

The `provide clear` command clears all items from the provide queue and prints out the number of items removed from the queue. The `quiet` option tells the command not to print output.

* refactor(cmds): ipfs provide clear

moving to new namespace to avoid conflicts, and also document other
commands

* docs: clarify Reprovider.Strategy
* chore: remove undesired md link
2025-07-16 01:28:27 -07:00
Andrew Gillis
d80e85fa72 Update dependencies (#10860)
* Update dependencies
2025-07-15 08:21:15 -07:00
Marcin Rataj
8589296c88 Merge remote-tracking branch 'origin/master' into merge-release-v0.36.0 2025-07-14 20:12:04 +02:00
Marcin Rataj
780b207909 chore: changelog 0.37 2025-07-14 20:05:16 +02:00
Marcin Rataj
0276b3fafb chore: 0.36.0 2025-07-14 19:06:44 +02:00
Marcin Rataj
475e2bad67 docs: release checklist fixes from 0.36 (#10861) 2025-07-14 18:58:05 +02:00
Marcin Rataj
12144dbeed chore: update links in markdown 2025-07-14 17:56:50 +02:00
Marcin Rataj
b4e6769a56 docs(config): add network exposure considerations (#10856)
this adds Security section in effort to clarify how each port should
be evaluated from the security perspective
2025-07-11 18:33:03 +02:00
Marcin Rataj
f17f89eefc chore: changelog 2025-07-08 19:19:15 +02:00
Andrew Gillis
95453688e5 fix: handling of EDITOR env var (#10855)
The `ipfs config edit` command did not correctly handle the `EDITOR` environment variable correctly when its value contains flags and arguments, i.e. `EDITOR=emacs -nw`. The command was treating the entire value of `$EDITOR` as the name of the editor command. This has been fixed to parse the value of `$EDITOR` into separate args, respecting shell quoting.

Closes #9375

(cherry picked from commit 4195a1da9f)
2025-07-08 18:43:31 +02:00
Andrew Gillis
120ea0d13b Upgrade to Boxo v0.33.0 (#10857)
* Upgrade to Boxo v0.33.0
* Update test to work with boxo-v0.33.0

(cherry picked from commit 738d5232fb)
2025-07-08 18:43:12 +02:00
Štefan Baebler
647aa2f9b5 chore: Upgrade github.com/cockroachdb/pebble/v2 to v2.0.6 for Go 1.25 support (#10850)
* Upgrade github.com/cockroachdb/swiss for Go 1.25 support

Go 1.25 incompatibility detected in
* https://github.com/Homebrew/homebrew-core/pull/226636

then:
* reported upstream in https://github.com/cockroachdb/swiss/issues/48
* fixed upstream https://github.com/cockroachdb/swiss/pull/49

This PR brings this fix upstream to kubo.

The fix was brought to github.com/cockroachdb/pebble/v2 in
* https://github.com/cockroachdb/pebble/pull/4954

And released in https://github.com/cockroachdb/pebble/releases/tag/v2.0.6
Which is now used.

Full changelog: https://github.com/cockroachdb/pebble/compare/v2.0.3...v2.0.6

* Upgrade to go-ds-pebble v0.5.1 for pebbel v2.0.6 support

---------

Co-authored-by: gammazero <11790789+gammazero@users.noreply.github.com>
(cherry picked from commit 6f0c1de58f)
2025-07-08 18:42:52 +02:00
sukun
1fa8dfcc88 chore: p2p-forge v0.6.0 + go-libp2p 0.42.0 (#10840)
* update go-libp2p to v0.42

* chore: p2p-forge v0.6.0 + final go-libp2p 0.42.0

* docs: changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
(cherry picked from commit 839023c79d)
2025-07-08 18:41:06 +02:00
Andrew Gillis
917466b6bd docs: fix minor typos (#10849)
(cherry picked from commit be24176976)
2025-07-08 18:40:32 +02:00
Andrew Gillis
4195a1da9f fix: handling of EDITOR env var (#10855)
The `ipfs config edit` command did not correctly handle the `EDITOR` environment variable correctly when its value contains flags and arguments, i.e. `EDITOR=emacs -nw`. The command was treating the entire value of `$EDITOR` as the name of the editor command. This has been fixed to parse the value of `$EDITOR` into separate args, respecting shell quoting.

Closes #9375
2025-07-08 09:00:28 -07:00
Andrew Gillis
738d5232fb Upgrade to Boxo v0.33.0 (#10857)
* Upgrade to Boxo v0.33.0
* Update test to work with boxo-v0.33.0
2025-07-08 02:45:43 -07:00
Štefan Baebler
6f0c1de58f chore: Upgrade github.com/cockroachdb/pebble/v2 to v2.0.6 for Go 1.25 support (#10850)
* Upgrade github.com/cockroachdb/swiss for Go 1.25 support

Go 1.25 incompatibility detected in
* https://github.com/Homebrew/homebrew-core/pull/226636

then:
* reported upstream in https://github.com/cockroachdb/swiss/issues/48
* fixed upstream https://github.com/cockroachdb/swiss/pull/49

This PR brings this fix upstream to kubo.

The fix was brought to github.com/cockroachdb/pebble/v2 in
* https://github.com/cockroachdb/pebble/pull/4954

And released in https://github.com/cockroachdb/pebble/releases/tag/v2.0.6
Which is now used.

Full changelog: https://github.com/cockroachdb/pebble/compare/v2.0.3...v2.0.6

* Upgrade to go-ds-pebble v0.5.1 for pebbel v2.0.6 support

---------

Co-authored-by: gammazero <11790789+gammazero@users.noreply.github.com>
2025-07-01 19:32:33 -07:00
sukun
839023c79d chore: p2p-forge v0.6.0 + go-libp2p 0.42.0 (#10840)
* update go-libp2p to v0.42

* chore: p2p-forge v0.6.0 + final go-libp2p 0.42.0

* docs: changelog

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-06-26 02:18:44 +02:00
Andrew Gillis
be24176976 docs: fix minor typos (#10849) 2025-06-25 01:26:26 -07:00
Marcin Rataj
127da7cf5f chore: v0.36.0-rc1 2025-06-18 17:57:17 +02:00
Marcin Rataj
002d9816ff chore: deduplicate 0.36 changelog
seems we ended up with rebroadcast section twice due to PR merge order
2025-06-17 17:37:05 +02:00
Hector Sanjuan
eb6cc02c06 feat(config): connmgr: expose silence period (#10827) 2025-06-17 15:55:57 +02:00
Andrew Gillis
0cf1b22536 bitswap/client: configurable broadcast reduction (#10825)
* Configure bitswap braodcast reduction

Add new config items to `Internal.Bitswap` to allow configuration of bitswap broadcast reduction behavior. Broadcast reduction behavior is enabled by default, and uses settings that should be suitable for most installations of kubo.

* update sharness metrics test
* Explicit defaults for broadcast reduction configuration
* Update docs/config.md
2025-06-17 04:35:21 -07:00
Andrew Gillis
20566bc815 Upgrade to Boxo v0.32.0 (#10839)
Upgrade to Boxo v0.32.0

* fix codecs sharness test
* fix sharness for new metrics
2025-06-17 03:20:54 -07:00
Marcin Rataj
b45ed8a3d7 feat: HTTP retrieval enabled by default (#10836) 2025-06-17 01:48:46 +02:00
sukun
d70f6421d4 feat: AutoTLS with AutoNATv2 client (#10835)
* update autotls; libp2p to use autonatv2
* chore: p2p-forge@main with autonat fix

https://github.com/ipshipyard/p2p-forge/pull/70

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-06-17 00:29:50 +02:00
Andrew Gillis
c4c70cb53c commands: add --force option to files cp command (#10823)
* commands: add `--force` option to `files cp` command

Adds a `--force` option to allow the `ipfs files cp` command to overwrite existig files. Returns error is trying to overwrite directories.

Replaces #4079

Closes #2074

* Update test/sharness/t0250-files-api.sh
2025-06-10 08:21:54 -07:00
Hector Sanjuan
6b76ff0ca0 docs/env variables: Document LIBP2P_SWARM_FD_LIMIT 2025-06-06 22:51:54 +02:00
Ivan
d39cb7f575 Ivan386/filestore fix (#7474)
* ipfs filestore fix [<obj>]... - Verify objects in filestore and remove bad links
* Option --remove-bad-blocks for 'ipfs filestore verify'
* fix call to DeleteBlock
* action of --remove-bad-blocks in output only when option specified
* Add sharness test for removing bad blocks

---------

Co-authored-by: Andrew Gillis <11790789+gammazero@users.noreply.github.com>
2025-06-04 14:04:20 -07:00
Andrew Gillis
e491ee98e9 Update fuse docs with FreeBSD specifics (#10820)
Closes #8846
2025-06-02 10:01:26 -07:00
Andrew Gillis
bb91273015 Minor wording fixes in docs (#10822) 2025-05-30 15:14:37 -07:00
Marcin Rataj
cf096c2a85 fix(gateway): gateway-conformance v0.8 (#10818)
* fix: boxo master with boxo#922

* test: gateway-conformance v0.8

https://github.com/ipfs/gateway-conformance/releases/tag/v0.8.0
2025-05-28 21:45:15 +02:00
Andrew Gillis
4144fa1b96 Upgrade to Boxo v0.31.0 (#10819)
* Upgrade to Boxo v0.31.0
2025-05-27 18:48:34 -07:00
Marcin Rataj
5b8f088826 chore: spellcheck to avoid ai fix prs 2025-05-21 20:21:33 +02:00
Marcin Rataj
1a0c1a6fe7 Merge branch 'master' into merge-release-v0.35.0 2025-05-21 20:13:10 +02:00