bitswap/server minor memory use and performance improvements #634
bitswap/serverPeerLedger.Wants now returns bool (interface change from Wants(p peer.ID, e wl.Entry) to Wants(p peer.ID, e wl.Entry) bool) #629
bitswap unify logger names to use uniform format bitswap/path/pkgname #637
gateway now always returns meaningful cache-control headers for generated HTML listings of UnixFS directories #643
util generate random test data using ipfs/go-test instead of internal util code #638
Fixed
boxo/gateway now correctly returns 404 Status Not Found instead of 500 when the requested content cannot be found due to offline exchange, gateway running in no-fetch (non-recursive) mode, or a similar restriction that only serves a specific set of CIDs. #630
bitswap/client fix memory leak in BlockPresenceManager due to unlimited map growth. #636
bitswap/network fixed race condition when a timeout occurred before hole punching completed while establishing a first-time stream to a peer behind a NAT #651
bitswap: wantlist overflow handling now cancels existing entries to make room for newer entries. This fix prevents the wantlist from filling up with CIDs that the server does not have. #629
NewRemoteBlocksBackend allows you to create a gateway backend that uses one or multiple other gateways as backend. These gateways must support RAW block requests (application/vnd.ipld.raw), as well as IPNS Record requests (application/vnd.ipfs.ipns-record). With this, we also introduced NewCacheBlockStore, NewRemoteBlockstore and NewRemoteValueStore.
NewRemoteCarBackend allows you to create a gateway backend that uses one or multiple Trustless Gateways as backend. These gateways must support CAR requests (application/vnd.ipld.car), as well as the extensions describe in IPIP-402. With this, we also introduced NewCarBackend, NewRemoteCarFetcher and NewRetryCarFetcher.
gateway now sets the Content-Location header for requests with non-default content format, as a result of content negotiation. This allows generic and misconfigured HTTP caches to store Deserialized, CAR and Block responses separately, under distinct cache keys.
bitswap/server minor memory use and performance improvements #634
bitswap unify logger names to use uniform format bitswap/path/pkgname #637
gateway now always returns meaningful cache-control headers for generated HTML listings of UnixFS directories #643
util generate random test data using ipfs/go-test instead of internal util code #638
bitswap/serverPeerLedger.Wants now returns bool (interface change from Wants(p peer.ID, e wl.Entry) to Wants(p peer.ID, e wl.Entry) bool) #629
Fixed
boxo/gateway now correctly returns 404 Status Not Found instead of 500 when the requested content cannot be found due to offline exchange, gateway running in no-fetch (non-recursive) mode, or a similar restriction that only serves a specific set of CIDs. #630
bitswap/client fix memory leak in BlockPresenceManager due to unlimited map growth. #636
bitswap/network fixed race condition when a timeout occurred before hole punching completed while establishing a first-time stream to a peer behind a NAT #651
bitswap: wantlist overflow handling now cancels existing entries to make room for newer entries. This fix prevents the wantlist from filling up with CIDs that the server does not have. #629
🛠 routing/none removed ConstructNilRouting, if you need this functionality you can use the Null Router from go-libp2p-routing-helpers.
Fixed
routing/http: the FindPeer now returns routing.ErrNotFound when no addresses are found
routing/http: the FindProvidersAsync no longer causes a goroutine buildup
[v0.20.0]
Added
✨ gateway has new backend possibilities:
NewRemoteBlocksBackend allows you to create a gateway backend that uses one or multiple other gateways as backend. These gateways must support RAW block requests (application/vnd.ipld.raw), as well as IPNS Record requests (application/vnd.ipfs.ipns-record). With this, we also introduced NewCacheBlockStore, NewRemoteBlockstore and NewRemoteValueStore.
NewRemoteCarBackend allows you to create a gateway backend that uses one or multiple Trustless Gateways as backend. These gateways must support CAR requests (application/vnd.ipld.car), as well as the extensions describe in IPIP-402. With this, we also introduced NewCarBackend, NewRemoteCarFetcher and NewRetryCarFetcher.
gateway now sets the Content-Location header for requests with non-default content format, as a result of content negotiation. This allows generic and misconfigured HTTP caches to store Deserialized, CAR and Block responses separately, under distinct cache keys.
gateway now supports car-dups, car-order and car-version as query parameters in addition to the application/vnd.ipld.car parameters sent via Accept header. The parameters in the Accept header have always priority, but including them in URL simplifies HTTP caching and allows use in Content-Location header on CAR responses to maximize interoperability with wide array of HTTP caches.
bitswap/server now allows to override the default peer ledger with WithPeerLedger.
Fixed
routing/http/server now returns 404 Status Not Found when no records can be found.
routing/http/server now supports legacy RSA PeerIDs encoded as Base58 Multihash
Commits
f0cf57d Merge pull request #654 from ipfs/release-v0.22.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/ipfs/boxo from 0.19.0 to 0.22.0.
Release notes
Sourced from github.com/ipfs/boxo's releases.
... (truncated)
Changelog
Sourced from github.com/ipfs/boxo's changelog.
Commits
f0cf57d
Merge pull request #654 from ipfs/release-v0.22.011ab1c1
docs: boxo v0.22.0831b83e
fix(bitswap): increase timeout to ensure hole punching completes (#651)08d5663
chore: go-libp2p v0.36.1 (#652)d0955c6
chore: go-libp2p v0.36.0 (#650)ccfb6ce
test: use ipfs/go-test to consolidate code to generate test data (#638)8e51658
fix(gateway): ipld.ErrNotFound should result in a 404 (#630)42c0c86
fix(bitswap): wantlist overflow handling (#629)96ceee6
fix(gateway): Cache-Control header for UnixFS directories on /ipfs (#643)77bd1ef
Minor comment fix (#646)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show