Releases: ipfs/boxo
Releases · ipfs/boxo
v0.11.0
Added
- ✨ The gateway now supports the optional
order
anddups
CAR parameters from IPIP-412.- The
BlocksBackend
only implementsorder=dfs
(Depth-First Search) ordering, which was already the default behavior. - If a request specifies no
dups
, response withdups=n
is returned, which was already the default behavior. - If a request explicitly specifies a CAR
order
other thandfs
, it will result in an error. - The only change to the default behavior on CAR responses is that we follow IPIP-412 and make
order=dfs;dups=n
explicit in the returnedContent-Type
HTTP header.
- The
- ✨ While the call signature remains the same, the blocks that Bitswap returns can now be cast to traceability.Block, which will additionally tell you where the Block came from and how long it took to fetch. This helps consumers of Bitswap collect better metrics on Bitswap behavior.
Changed
- 🛠 The
ipns
package has been refactored.- You should no longer use the direct Protobuf version of the IPNS Record. Instead, we have a shiny new
ipns.Record
type that wraps all the required functionality to work the best as possible with IPNS v2 Records. Please check the documentation for more information, and follow ipfs/specs#376 for related IPIP. - There is no change to IPNS Records produced by
boxo/ipns
, it still produces both V1 and V2 signatures by default, it is still backward-compatible.
- You should no longer use the direct Protobuf version of the IPNS Record. Instead, we have a shiny new
Removed
- 🛠
ipld/car
has been removed. Please use ipld/go-car instead. More information regarding this decision can be found in issue 218.
Fixed
- Removed mentions of unused ARC algorithm (#336)
- Handle
_redirects
file whenIf-None-Match
header is present (#412)
Security
v0.10.2
Fixed
- Gateway: include CORS on subdomain redirects.
- Gateway: ensure 'X-Ipfs-Root' header is valid.
What's Changed
- Update RELEASE.md based on 0.9 release by @BigLep in #343
- fix(gateway): remove warning about X-Ipfs-Gateway-Prefix by @hacdias in #350
- blockstore: replace go.uber.org/atomic with sync/atomic by @Jorropo in #357
- fix(gateway): allow CAR trustless requests with path by @hacdias in #358
- chore: version 0.10.1 by @hacdias in #359
Full Changelog: v0.10.0...v0.10.2
v0.10.1
Fixed
- Allow CAR requests with a path when
DeserializedResponses
isfalse
.
What's Changed
- Update RELEASE.md based on 0.9 release by @BigLep in #343
- fix(gateway): remove warning about X-Ipfs-Gateway-Prefix by @hacdias in #350
- blockstore: replace go.uber.org/atomic with sync/atomic by @Jorropo in #357
- fix(gateway): allow CAR trustless requests with path by @hacdias in #358
Full Changelog: v0.10.0...v0.10.1
v0.10.0
Added
- ✨ The gateway now supports partial CAR exports via query parameters from IPIP-402.
Changed
- 🛠 A few trivial breaking changes have been done to the gateway:
- The signature of
IPFSBackend.GetCAR
has been adapted to support IPIP-402 CAR Parameters. - A few variables have been renamed for consistency:
WithHostname
->NewHostnameHandler
Specification
->PublicGateway
NewErrorResponse
->NewErrorStatusCode
NewErrorResponseForCode
->NewErrorStatusCodeFromStatus
BlocksGateway
->BlocksBackend
BlocksGatewayOption
->BlocksBackendOption
NewBlocksGateway
->NewBlocksBackend
- Some functions that are not supposed to be outside of the package were removed:
ServeContent
.
- The signature of
Removed
None.
Fixed
None.
Security
None.
What's Changed
- feat(gateway): implement IPIP-402 extensions for gateway CAR requests by @aschmahmann in #303
- docs(changelog): add gateway deserialized responses by @hacdias in #341
- feat: update gateway-conformance to v0.1 by @laurentsenta in #342
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Added
- ✨
gateway
The gateway were updated to provide better features for users and gateway implementers:- New human-friendly error messages.
- Updated, higher-definition icons in directory listings.
- Customizable menu items next to "About IPFS" and "Install IPFS".
- Valid DAG-CBOR and DAG-JSON blocks now provide a preview, where links can be followed.
ipns
addValidateWithPeerID
andUnmarshalIpnsEntry
helpers. (https://github.com/ipfs/boxo/pulls/292)- 🛠
coreiface/tests
add*testing.T
argument to the swarm provider. (https://github.com/ipfs/boxo/pulls/321)
Changed
- 🛠
boxo/pinner
some listing methods have been changed to now return a<-chan StreamedCid
. This allows the consumption of pins while the pinner is listing them, which for large pinset can take a long time. (https://github.com/ipfs/boxo/pulls/336)
The concerned methods are:DirectKeys
RecursiveKeys
InternalKeys
- 🛠
provider/batched.New
has been moved toprovider.New
and arguments has been changed. (https://github.com/ipfs/boxo/pulls/273)- a routing system is now passed with the
provider.Online
option, by default the system run in offline mode (push stuff onto the queue); and - you do not have to pass a queue anymore, you pass a
datastore.Datastore
exclusively.
- a routing system is now passed with the
- 🛠
provider.NewOfflineProvider
has been renamed toprovider.NewNoopProvider
to show more clearly that is does nothing. (https://github.com/ipfs/boxo/pulls/273) - 🛠
provider.Provider
andprovider.Reprovider
has been merged under oneprovider.System
. (https://github.com/ipfs/boxo/pulls/273) - 🛠
routing/http
responses now return a streamingiter.ResultIter
generic interface. (https://github.com/ipfs/boxo/pulls/18) - 🛠
coreiface
add options andAllowOffline
option toRoutingAPI.Put
. (https://github.com/ipfs/boxo/pulls/278) - 🛠
gateway
now has deserialized responses turned off by default. This can be configured viaDeserializedResponses
. (#252)
Removed
- 🛠
provider/queue
has been moved toprovider/internal/queue
. (https://github.com/ipfs/boxo/pulls/273) - 🛠
provider/simple
has been removed, now instead you can useprovider.New
because it accept non batched routing systems and use type assertion for theProvideMany
call, giving a single implementation. (https://github.com/ipfs/boxo/pulls/273) - 🛠
provider.NewSystem
has been removed,provider.New
now returns aprovider.System
directly. (https://github.com/ipfs/boxo/pulls/273)
Fixed
gateway
fix panics by returning in all error cases. (https://github.com/ipfs/boxo/pulls/314)gateway
avoid duplicate payload during subdomain redirects. (https://github.com/ipfs/boxo/pulls/326)gateway
correctly handle question marks in URL when redirecting. (https://github.com/ipfs/boxo/pulls/#313)
Security
None
What's Changed
- refactor(gateway): switch to xxhash/v2 by @hsanjuan in #285
- feat(routing): allow-offline with routing put by @laurentsenta in #278
- routing/http: feat: add streaming support by @guseggert in #18
- refactor: remove badger, leveldb dependencies by @hsanjuan in #286
- feat: reusable ipns verify by @laurentsenta in #292
- Revert "feat: reusable ipns verify" by @hacdias in #293
- feat(ipns): helper ValidateWithPeerID and UnmarshalIpnsEntry by @hacdias in #294
- add test cases for tar module by @fulldecent in #301
- refactor: replace assert.Nil for assert.NoError by @hacdias in #302
- feat(gateway): redirect ipns b58mh to cid by @hacdias in #236
- fix(routing/v1): add newline in NDJSON responses by @hacdias in #300
- feat: add deprecator by @guseggert in #297
- ci: update Unified CI configuration by @galargh in #305
- refactor(example): simplify ipns validation by @hacdias in #306
- feat(gw): add ipfs_http_gw_request_types metric by @lidel in #311
- feat(gw): add ipfs_http_gw_car_stream_fail_duration_seconds by @lidel in #312
- bitswap/client: fix PeerResponseTrackerProbabilityOneKnownOneUnknownPeer by @Jorropo in #310
- feat: pass records limit on routing.FindProviders by @hacdias in #299
- feat: create pull_request_template by @galargh in #314
- fix(gw): missing return in error case by @willscott in #319
- feat(gateway)!: deserialised responses turned off by default by @hacdias in #252
- feat(gateway): improved templates, user friendly errors by @hacdias in #298
- coreiface: add a testing.T argument to the provider by @Jorropo in #321
- feat(gateway): visualize dag-cbor and dag-json by @hacdias in #315
- provider: refactor to only maintain one batched implementation and add throughput callback by @Jorropo in #273
- provider: add breaking changes to the changelog by @Jorropo in #330
- fix(gateway)!: no duplicate payload during subdomain redirects by @hacdias in #326
- fix(gateway): question marks in url.Path when redirecting by @hacdias in #313
- provider: revert throughput callback and related refactor by @Jorropo in #332
- Streamed pins by @MichaelMure in #290
- changelog: add changelog for async pin listing by @Jorropo in #336
- chore: do not rely on deprecated logger by @hacdias in #338
- feat: remove ipld legacy and format globals in ipld/merkledag by @aschmahmann in #322
- rename unixfs protobuf package to unixfs.v1 by @aschmahmann in #318
- rename dagpb protobuf to merkledag.v1 by @aschmahmann in #323
- provider: second round of reprovider refactor by @Jorropo in #331
New Contributors
- @hsanjuan made their first contribution in #285
- @laurentsenta made their first contribution in #278
- @fulldecent made their first contribution in #301
- @willscott made their first contribution in #319
- @MichaelMure made their first contribution in #290
Full Changelog: v0.8.1...v0.9.0
v0.8.1
What's Changed
- Release v0.8.0 by @guseggert in #264
- fix(gw): widen duration histograms and cleanup by @lidel in #265
- Web3 bot/sync by @web3-bot in #271
- fix(gateway): panic on path without enough components by @hacdias in #272
- feat(gateway): trace context header support by @hacdias in #256
- refactor(gateway): consistent tracing names by @hacdias in #261
- docs: add RELEASE.md by @guseggert in #266
- Added FAQ and README updates by @BigLep in #260
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Added
- Migrated repositories into Boxo
- github.com/ipfs/interface-go-ipfs-core => ./coreiface
- github.com/ipfs/go-pinning-service-http-client => ./pinning/remote/client
- github.com/ipfs/go-path => ./path
- github.com/ipfs/go-namesys => ./namesys
- github.com/ipfs/go-mfs => ./mfs
- github.com/ipfs/go-ipfs-provider => ./provider
- github.com/ipfs/go-ipfs-pinner => ./pinning/pinner
- github.com/ipfs/go-ipfs-keystore => ./keystore
- github.com/ipfs/go-filestore => ./filestore
- github.com/ipfs/go-ipns => ./ipns
- github.com/ipfs/go-blockservice => ./blockservice
- github.com/ipfs/go-ipfs-chunker => ./chunker
- github.com/ipfs/go-fetcher => ./fetcher
- github.com/ipfs/go-ipfs-blockstore => ./blockstore
- github.com/ipfs/go-ipfs-posinfo => ./filestore/posinfo
- github.com/ipfs/go-ipfs-util => ./util
- github.com/ipfs/go-ipfs-ds-help => ./datastore/dshelp
- github.com/ipfs/go-verifcid => ./verifcid
- github.com/ipfs/go-ipfs-exchange-offline => ./exchange/offline
- github.com/ipfs/go-ipfs-routing => ./routing
- github.com/ipfs/go-ipfs-exchange-interface => ./exchange
- github.com/ipfs/go-unixfs => ./ipld/unixfs
- github.com/ipfs/go-merkledag => ./ipld/merkledag
- github.com/ipld/go-car => ./ipld/car
- Added a migration tool to aid in migrating from the migrated repositories to Boxo, see the documentation here: https://github.com/ipfs/boxo/blob/main/README.md#migrating-to-boxo
- Added a check to ensure the migration tool is only run in a Git repository (with an optional override flag)
- Added tracing and metrics to the refactored gateway for its IPFS backend
Changed
- Removed a mention of "bitswap" in blockservice debug logs
- Changed the Bitswap message package from "bitswap.message.pb" to "bitswap.message.v1.pb" to avoid protobuf panics due to duplicate registration with go-bitswap
- Remove a busyloop in blockservice getBlocks by removing batching when caching
Deprecated
None
Removed
None
Fixed
- Ensure dag-cbor/json codecs are registered in the gateway handler
- Refactor the Gateway API to operate on higher level semantics
- Fixed a panic in the gateway handler when returning errors
Security
None
v0.8.0-rc4
What's Changed
- blockservice: remove busyloop in getBlocks by removing batching by @Jorropo in #232
- ci: delete test-examples workflow by @galargh in #239
- ci: add gateway-conformance tests for car-gateway by @galargh in #237
- ci: update Unified CI configuration by @web3-bot in #247
- chore: remove libp2pio.car by @hacdias in #248
- ci(gateway): enable subdomain conformance by @hacdias in #246
- refactor(examples): proxy gateway to use exchange by @aschmahmann in #229
- feat(gateway): IPFSBackend metrics and HTTP range support by @lidel in #245
Full Changelog: v0.8.0-rc3...v0.8.0-rc4
v0.8.0-rc2
What's Changed
Full Changelog: v0.8.0-rc1...v0.8.0-rc2
v0.8.0-rc1
What's Changed
- Add coverage note to README by @guseggert in #222
- feat: Über Migration (and Boxo rename) by @Jorropo in #220
- feat: add consumer migration tool by @guseggert in #226
Full Changelog: v0.7.0...v0.8.0-rc1