Skip to content

v0.30.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 30 Apr 07:19
a19e342

What's Changed

Added

  • Control over UnixFS DAG Width
    • We have made some changes to allow setting custom max width of UnixFS DAGs. This enables users to produce DAGs that follow current and future community conventions (see the related discussion).
    • ipld/unixfs: DagModifier now allows specifying file DAG Width (MaxLinks) #898
    • ipld/unixfs/io/directory: We have made some changes to unixfs directory tooling #906
      • We have exposed creator methods for new BasicDirectory and HAMTDirectory, that complement the existing NewDirectory() which creates dynamic directories.
      • We have added WithCidBuilder(...), WithMaxLinks(...), WithMaxHAMTFanout(...) and WithStat(...) as options to these new methods so that empty directories can be initilized as wished from the get-go.
      • WithMaxLinks(...) and WithMaxHAMTFanout(...) are new options that allow to set a limit to the number of children that a directory DAG node can have. For details on what they exactly do for each of the directory type, please check the documentation.
    • mfs supports as well the new MaxLinks and MaxHAMTFanout options. They have been made part of the MkdirOptions object and the methods NewEmptyDirectory() and NewEmptyRoot() have been added to facilitate the initialization of MFS objects. #906
  • provider: added support for walking partial DAGs in offline mode #905
    • a KeyChanFunc that traverses DAGs from a given root (NewDAGProvider).
    • a KeyChanFunc that buffers all the CIDs in memory from another KeyChanFunc (NewBufferedProvider).
    • fetcher/impl/blockservice: new option SkipNotFound for the IPLD fetcher. It will skip not found nodes when traversing the DAG. This allows offline traversal of DAGs when using, for example, an offline blockservice.
    • This enables use case of providing lazy-loaded, partially local DAGs (like ipfs files in Kubo's MFS implementation, see kubo#10386)
  • gateway: generated HTML with UnixFS directory listings now include a button for copying CIDs of child entities #899
  • bitswap/server: Add ability to enable/disable bitswap server using WithServerEnabled bitswap option (#911)[https://github.com//pull/911]

Changed

  • upgrade to go-libp2p v0.41.1
  • bitswap/network: Add a new requests_in_flight metric gauge that measures how many bitswap streams are being written or read at a given time.
  • improve speed of data onboarding by batching/bufering provider queue writes #888
  • provider: providing queue is now independent from reprovides, speeding up initial provides #907
    • renamed provider.ReproviderStats.TotalProvides => provider.ReproviderStats.TotalReprovides
    • renamed provider.ReproviderStats.AvgProvideDuration => provider.ReproviderStats.AvgReprovideDuration
  • provider/queue deduplicates CIDs #910

Fixed

  • gateway: query parameters are now supported and preserved in redirects triggered by a _redirects file #886
  • provider: adjusted first reprovide timing after node reboot #890
  • gateway: validate configuration and warn when UseSubdomains=true is used with IP-based hostnames #903

Full Changelog: v0.29.1...v0.30.0