1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-05-17 06:57:40 +08:00

15431 Commits

Author SHA1 Message Date
c953abb431 provider: buffer pin providers.
Fixes #10596.

The reproviding process can take long. Currently, each CID to be provided is
obtained by making a query to the pinner and reading one by one as the CIDs
get provided.

While this query is ongoing, the pinner holds a Read mutex on the pinset.

If a pin-add-request arrives, a goroutine will start waiting for a Write mutex
on the pinset. From that point, no new Read mutexes can be taken until the writer
can proceed and finishes.

However, no one can proceed because the read mutex is still held while the
reproviding is ongoing.

The fix is mostly in Boxo, where we add a "buffered" provider which reads the
cids onto memory so that they can be provided at its own pace without making
everyone wait.

The consequence is we will need more RAM memory. Rule of thumb is 1GiB extra per 20M cids to be reprovided.

(cherry picked from commit ba22102a640b3f41804319981d83908c96a96275)
2025-03-14 18:20:00 +01:00
4b8ed7f6a8 deps: update boxo to main-branch commit
(cherry picked from commit 6f2196f6552e4c5c800bd95141396b48d582a224)
2025-03-14 18:19:50 +01:00
b2efaa992f feat: ipfs-webui v4.6 (#10756)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.6.0
2025-03-14 18:08:19 +01:00
96f3007b55 docs(readme): update min. requirements + cleanup (#10750)
* docs(readme): update min. requirements + cleanup

Adding note about extra memory requirement due to
ba22102a64

* docs(config): memory cost of buffered provider

Co-authored-by: Daniel Norman <1992255+2color@users.noreply.github.com>
2025-03-14 17:55:35 +01:00
183dc7d40a Upgrade to Boxo v0.29.1 (#10755)
* Upgrade to Boxo v0.29.1
2025-03-13 16:44:01 -07:00
095cc0d731 Nonfunctional (#10753)
* fix typos
* fix func name in docstring
* use t.TempDir instead of os.MkdirTemp
* fix typo
* unique option names
2025-03-11 14:04:16 -07:00
426060767b Merge pull request #10746 from ipfs/fix/10596-buffered-reprovides
provider: buffer pin providers
2025-03-10 15:16:25 +01:00
9de938479c Update docs/changelogs/v0.34.md 2025-03-07 16:37:44 +01:00
ba22102a64 provider: buffer pin providers.
Fixes #10596.

The reproviding process can take long. Currently, each CID to be provided is
obtained by making a query to the pinner and reading one by one as the CIDs
get provided.

While this query is ongoing, the pinner holds a Read mutex on the pinset.

If a pin-add-request arrives, a goroutine will start waiting for a Write mutex
on the pinset. From that point, no new Read mutexes can be taken until the writer
can proceed and finishes.

However, no one can proceed because the read mutex is still held while the
reproviding is ongoing.

The fix is mostly in Boxo, where we add a "buffered" provider which reads the
cids onto memory so that they can be provided at its own pace without making
everyone wait.

The consequence is we will need more RAM memory. Rule of thumb is 1GiB extra per 20M cids to be reprovided.
2025-03-07 08:43:18 +01:00
6f2196f655 deps: update boxo to main-branch commit 2025-03-07 08:43:18 +01:00
3e1fb7e511 chore: 0.35.0-dev 2025-03-06 00:01:11 +01:00
3a8320d570 chore: 0.34.0-rc1 v0.34.0-rc1 2025-03-05 23:22:35 +01:00
e221e941c7 fix(mfs): basic UnixFS sanity checks in files cp (#10701)
Signed-off-by: Abhinav Prakash <abhinav.prakash319@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Andrew Gillis <11790789+gammazero@users.noreply.github.com>
2025-03-05 20:40:33 +01:00
86aee74167 Upgrade to Boxo v0.29.0 (#10742)
* Upgrade to Boxo v0.29.0
* update changelog
2025-03-04 22:15:53 -08:00
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
5a3ec3a728 docs(config): add security considerations for rpc (#10739)
* docs(config): add security considerations for rpc

we already had big red box at
https://docs.ipfs.tech/reference/kubo/rpc/,
however users reading kubo docs could miss it.

this ensures it is not possible to miss these basic notes.
2025-03-04 21:12:15 +01:00
4c29169aa5 fix: deps (#10741) 2025-03-04 10:56:52 +01:00
855d59e33b chore(deps): bump codecov/codecov-action from 5.3.1 to 5.4.0 (#10740)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](13ce06bfc6...0565863a31)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 10:17:10 +01:00
baa94fcb2f chore: update go-libp2p to v0.41.0 (#10733)
https://github.com/libp2p/go-libp2p/releases/tag/v0.41.0

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-02-25 23:50:45 +01:00
652d94b2b1 feat: ipfs-webui v4.5.0 (#10735)
https://github.com/ipfs/ipfs-webui/releases/tag/v4.5.0
2025-02-25 23:31:10 +01:00
c8cce59ef7 Create FUNDING.json (#10734)
Add FUNDING.json to participate in Optimism rPGF

Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
2025-02-25 16:47:01 -05:00
d6a5bc0b68 feat(AutoTLS): enabled by default with 1h RegistrationDelay (#10724)
Enables AutoTLS by default, but delays registration by 1h
if user did not explicitly set `AutoTLS.Enabled` to `true`
2025-02-25 22:25:58 +01:00
65a9b59729 update kad-dht (#10732) 2025-02-25 10:28:51 +01:00
26bb4ca276 Upgrade to Boxo v0.28.0 (#10725)
* Upgrade to Boxo v0.28.0
2025-02-24 16:54:14 -08:00
8f07460ab3 Upgrade to go1.24 (#10726)
* Upgrade to go1.24
* fix test to look for new version info string
2025-02-24 14:46:20 -08:00
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
96215c5cfa Update to new go-test (#10729) 2025-02-21 17:11:58 -08:00
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
9a4fffa356 Upgrade to go-libp2p v0.40.0 (#10727) 2025-02-21 11:47:18 -08:00
f00e115e1e docs(readme): update docker section (#10716) 2025-02-18 21:59:53 +01:00
eb53bbfa6c Update go-ds-badger to v0.3.1 (#10722)
* Update go-ds-badger to v0.3.1

* update changelog

* update changelog
2025-02-18 16:50:35 +01:00
e41dc120f7 Update pebble db to latest format by default (#10720)
* Update pebble db to latest format by default

If the pebble database format is not explicitly set in the config, then set it to the latest format version by default. This will ensure that the database format is sufficiently up-to-date to be compatible with a major version upgrade of pebble.
2025-02-17 15:32:53 -08:00
40a7a388a4 fix: switch away from IPFS_LOG_LEVEL (#10694) 2025-02-14 18:25:31 +00:00
04982f37f3 Merge pull request #10713 from ipfs/merge-release-v0.33.2
Merge release v0.33.2
2025-02-14 01:32:57 +01:00
b61dd6bf80 Merge remote-tracking branch 'origin/master' into merge-release-v0.33.2 2025-02-14 01:30:03 +01:00
d53eb2450c fix: go-libp2p v0.39.1 (#10711)
https://github.com/libp2p/go-libp2p/releases/tag/v0.39.1
2025-02-13 23:47:36 +01:00
ad1868a424 Merge pull request #10712 from ipfs/release-v0.33.2
Release v0.33.2
v0.33.2
2025-02-13 23:44:43 +01:00
ba31701b5d docs: v0.33.2 2025-02-13 23:42:47 +01:00
8942a17b92 fix: v0.33.2 with go-libp2p v0.38.3
https://github.com/libp2p/go-libp2p/releases/tag/v0.38.3
2025-02-13 21:58:59 +01:00
d137d7a4ad Remove unused TimeParts struct (#10708) 2025-02-11 14:35:19 -08:00
e77a484aa8 fix(rpc): restore and reprecate bitswap reprovide (#10699)
https://github.com/ipfs/kubo/pull/10677 removed command without properly
deprecating it first, this restores it and marks as deprecated

we can remove it after at least 1 release with deprecation being
announced
2025-02-10 16:12:53 +01:00
b387530d07 chore: go-libp2p v0.39.0 (#10703)
https://github.com/libp2p/go-libp2p/releases/tag/v0.39.0
2025-02-06 22:31:59 +01:00
68c0879a4e docs(release): update RELEASE_CHECKLIST.md after v0.33.1 (#10697) 2025-02-06 00:52:16 +01:00
ad81ead4f4 docs: update min requirements (#10687)
https://docs.ipfs.tech/install/command-line/#system-requirements 
states 6 GiB, updating readme to match that
2025-02-05 22:26:33 +01:00
580ce695ec Merge pull request #10698 from ipfs/merge-release-v0.33.1
Merge release v0.33.1
2025-02-04 22:57:45 +01:00
aa72a12199 Merge branch 'master' into merge-release-v0.33.1 2025-02-04 22:55:57 +01:00
9bfbc4e528 Merge pull request #10695 from ipfs/release-v0.33.1
Release v0.33.1
v0.33.1
2025-02-04 20:34:27 +01:00
30d5f8e9b9 docs(changelog): v0.33.1 2025-02-04 20:29:28 +01:00
90f0bbbb15 chore: v0.33.1 2025-02-04 18:52:13 +01:00
bddd4c60da fix: boxo v0.27.4 (#10692)
https://github.com/ipfs/boxo/releases/tag/v0.27.4

Co-authored-by: Marcin Rataj <lidel@lidel.org>
(cherry picked from commit e727f097ca6cd324aa57bcc2a5c179357304af28)
2025-02-04 18:51:21 +01:00