Skip to content

Releases: ipfs/boxo

v0.13.1

21 Sep 14:56
e0d4b3e
Compare
Choose a tag to compare

Added

  • An option DisableHTMLErrors has been added to gateway.Config. When this option
    is true, pretty HTML error pages for web browsers are disabled. Instead, a
    text/plain page with the raw error message as the body is returned.

What's Changed

  • fix(gateway): ipfs install link by @lidel in #468
  • feat(gateway): add DisableHTMLErrors option by @hacdias in #463

Full Changelog: v0.13.0...v0.13.1

v0.13.0

20 Sep 07:06
33ff595
Compare
Choose a tag to compare

Added

  • ✨ The routing/http implements Delegated Peer Routing introduced in IPIP-417.

Changed

  • 🛠 The routing/http package received the following modifications:
    • Client GetIPNSRecord and PutIPNSRecord have been renamed to GetIPNS and
      PutIPNS, respectively. Similarly, the required function names in the server
      ContentRouter have also been updated.
    • ReadBitswapProviderRecord has been renamed to BitswapRecord and marked as deprecated.
      From now on, please use the protocol-agnostic PeerRecord for most use cases. The new
      Peer Schema has been introduced in IPIP-417.

Removed

  • 🛠 The routing/http package experienced following removals:
    • Server and client no longer support the experimental Provide method.
      ProvideBitswap is still usable, but marked as deprecated. A protocol-agnostic
      provide mechanism is being worked on in IPIP-378.
    • Server no longer exports FindProvidersPath and ProvidePath.

Fixed

  • The normalization of DNSLink identifiers in gateway has been corrected in the edge
    case where the value passed to the path component of the URL is already normalized.

What's Changed

  • ci: uci/copy-templates by @web3-bot in #431
  • Merge release v0.12.0 by @hacdias in #448
  • blockservice/test: passthrough blockservice options [skip changelog] by @Wondertan in #449
  • bitswap: reenable tests by @Jorropo in #423
  • bitswap: mark TestSessionGetBlocks flaky by @Jorropo in #456
  • feat(routing/http)!: delegated peer routing server and client, IPIP 417 by @hacdias in #422
  • ci: remove obsolete protocol/cache-go-action by @galargh in #460
  • fix(gateway): normalization of DNSLink inlining by @lidel in #462

Full Changelog: v0.12.0...v0.13.0

v0.12.0

22 Aug 11:06
c540780
Compare
Choose a tag to compare

Added

  • The routing/http client and server now support Delegated IPNS at /routing/v1 as per IPIP-379.
  • 🛠 The verifycid package has been updated with the new Allowlist interface as part of reducing globals efforts.
  • The blockservice and provider packages has been updated to accommodate for changes in verifycid.

Changed

Removed

N/A

Fixed

  • HTTP Gateway API: Not having a block will result in a 5xx error rather than 404
  • HTTP Gateway API: CAR requests will return 200s and a CAR file proving a requested path does not exist rather than returning an error
  • 🛠 MultiFileReader has been updated with a new header with the encoded file name instead of the plain filename, due to a regression found in net/textproto. This only affects files with binary characters in their name. By keeping the old header, we maximize backwards compatibility.
    New Client Old Client
    New Server 🟡*
    Old Server
    *Old clients can only send Unicode file paths to the server.

Security

N/A

What's Changed

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.10.3

08 Aug 11:58
2967d50
Compare
Choose a tag to compare

Added

Changed

Removed

Fixed

  • Handle _redirects file when If-None-Match header is present (#412)

Security

What's Changed

Full Changelog: v0.10.2...v0.10.3

v0.11.0

27 Jul 07:15
77fb828
Compare
Choose a tag to compare

Added

  • ✨ The gateway now supports the optional order and dups CAR parameters from IPIP-412.
    • The BlocksBackend only implements order=dfs (Depth-First Search) ordering, which was already the default behavior.
    • If a request specifies no dups, response with dups=n is returned, which was already the default behavior.
    • If a request explicitly specifies a CAR order other than dfs, 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 returned Content-Type HTTP header.
  • ✨ 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.

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 when If-None-Match header is present (#412)

Security

v0.10.2

29 Jun 15:14
61f2939
Compare
Choose a tag to compare

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

19 Jun 12:19
198f9bc
Compare
Choose a tag to compare

Fixed

  • Allow CAR requests with a path when DeserializedResponses is false.

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

09 Jun 10:16
6f82d77
Compare
Choose a tag to compare

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.

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

08 Jun 09:51
Compare
Choose a tag to compare

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 add ValidateWithPeerID and UnmarshalIpnsEntry 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 to provider.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.
  • 🛠 provider.NewOfflineProvider has been renamed to provider.NewNoopProvider to show more clearly that is does nothing. (https://github.com/ipfs/boxo/pulls/273)
  • 🛠 provider.Provider and provider.Reprovider has been merged under one provider.System. (https://github.com/ipfs/boxo/pulls/273)
  • 🛠 routing/http responses now return a streaming iter.ResultIter generic interface. (https://github.com/ipfs/boxo/pulls/18)
  • 🛠 coreiface add options and AllowOffline option to RoutingAPI.Put. (https://github.com/ipfs/boxo/pulls/278)
  • 🛠 gateway now has deserialized responses turned off by default. This can be configured via DeserializedResponses. (#252)

Removed

Fixed

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

Full Changelog: v0.8.1...v0.9.0

v0.8.1

25 Apr 08:22
aa12ba3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1