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
) #898ipld/unixfs/io/directory
: We have made some changes to unixfs directory tooling #906- We have exposed creator methods for new
BasicDirectory
andHAMTDirectory
, that complement the existingNewDirectory()
which creates dynamic directories. - We have added
WithCidBuilder(...)
,WithMaxLinks(...)
,WithMaxHAMTFanout(...)
andWithStat(...)
as options to these new methods so that empty directories can be initilized as wished from the get-go. WithMaxLinks(...)
andWithMaxHAMTFanout(...)
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.
- We have exposed creator methods for new
mfs
supports as well the newMaxLinks
andMaxHAMTFanout
options. They have been made part of theMkdirOptions
object and the methodsNewEmptyDirectory()
andNewEmptyRoot()
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 anotherKeyChanFunc
(NewBufferedProvider
). fetcher/impl/blockservice
: new optionSkipNotFound
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)
- a
gateway
: generated HTML with UnixFS directory listings now include a button for copying CIDs of child entities #899bitswap/server
: Add ability to enable/disable bitswap server usingWithServerEnabled
bitswap option (#911)[https://github.com//pull/911]
Changed
- upgrade to
go-libp2p
v0.41.1 bitswap/network
: Add a newrequests_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
- renamed
provider/queue
deduplicates CIDs #910
Fixed
gateway
: query parameters are now supported and preserved in redirects triggered by a_redirects
file #886provider
: adjusted first reprovide timing after node reboot #890gateway
: validate configuration and warn whenUseSubdomains=true
is used with IP-based hostnames #903
Full Changelog: v0.29.1...v0.30.0