Sourced from github.com/ipfs/boxo's releases.
v0.26.0
What's Changed
Added
bitswap/client
: Improved timeout configuration for block requests
- Exposed
DontHaveTimeoutConfig
to hold configuration values fordontHaveTimeoutMgr
which controls how long to wait for requested block before emitting a synthetic DontHave response- Added
DefaultDontHaveTimeoutConfig()
to return aDontHaveTimeoutConfig
populated with default values- Added optional
WithDontHaveTimeoutConfig
to allow passing a customDontHaveTimeoutConfig
- Setting
SetSendDontHaves(false)
works the same as before. Behind the scenes, it will disabledontHaveTimeoutMgr
by passing anil
onDontHaveTimeout
tonewDontHaveTimeoutMgr
.Changed
- ðŸ›
blockstore
andblockservice
'sWriteThrough()
option now takes an "enabled" parameter:WriteThrough(enabled bool)
.- Replaced unmaintained mock time implementation uses in tests: from => to
bitswap/client
: if a libp2p connection has a context, usecontext.AfterFunc
to cleanup the connection.- upgrade to
go-libp2p-kad-dht
v0.28.1- upgrade to
go-libp2p
v0.38.1- blockstore/blockservice: change option to
WriteThrough(enabled bool)
#749mfs
: improve mfs republisher #754Fixed
mfs
: directory cache is now cleared on Flush(), liberating the memory used by the otherwise ever-growing cache. References to directories and sub-directories should be renewed after flushing.bitswap/client
: Fix leak due to cid queue never getting cleaned up #756bitswap
: Drop stream references on Close/Reset 760Full Changelog: https://github.com/ipfs/boxo/compare/v0.25.0...v0.26.0
v0.25.0
Added
routing/http/server
: added built-in Prometheus instrumentation to http delegated/routing/v1/
endpoints, with custom buckets for response size and duration to match real world data observed at thedelegated-ipfs.dev
instance. #718 #724routing/http/server
: added configurable routing timeout (DefaultRoutingTimeout
being 30s) to prevent indefinite hangs during content/peer routing. Set custom duration viaWithRoutingTimeout
. #720routing/http/server
: exposes Prometheus metrics onprometheus.DefaultRegisterer
and a custom one can be provided viaWithPrometheusRegistry
#722gateway
:NewCacheBlockStore
andNewCarBackend
will useprometheus.DefaultRegisterer
when a custom one is not specified viaWithPrometheusRegistry
#722filestore
: added opt-inWithMMapReader
option toFileManager
to enable memory-mapped file reads #665bitswap/routing
ProviderQueryManager
does not require callingStartup
separate fromNew
. #741bitswap/routing
ProviderQueryManager does not use liftcycle context.Changed
bitswap
,routing
,exchange
(#641):
- ✨ Bitswap is no longer in charge of providing blocks to the newtork: providing functionality is now handled by a
exchange/providing.Exchange
, meant to be used withprovider.System
so that all provides follow the same rules (multiple parts of the code where handling provides) before.- ðŸ›
bitswap/client/internal/providerquerymanager
has been moved torouting/providerquerymanager
where it belongs. In order to keep compatibility, Bitswap now receives arouting.ContentDiscovery
parameter which implementsFindProvidersAsync(...)
and uses it to create aproviderquerymanager
with the default settings as before. Custom settings can be used by using a customproviderquerymanager
to manually wrap aContentDiscovery
object and pass that in asContentDiscovery
on initialization while settingbitswap.WithDefaultProviderQueryManager(false)
(to avoid re-wrapping it again).- The renovated
providedQueryManager
will trigger lookups until it manages to connect toMaxProviders
. Before it would lookup at mostMaxInProcessRequests*MaxProviders
and connection failures may have limited the actual number of providers found.- 🛠We have aligned our routing-related interfaces with the libp2p
routing
ones, including in thereprovider.System
.- In order to obtain exactly the same behaviour as before (i.e. particularly ensuring that new blocks are still provided), what was done like:
... (truncated)
Sourced from github.com/ipfs/boxo's changelog.
[v0.26.0]
Added
bitswap/client
: Improved timeout configuration for block requests
- Exposed
DontHaveTimeoutConfig
to hold configuration values fordontHaveTimeoutMgr
which controls how long to wait for requested block before emitting a synthetic DontHave response- Added
DefaultDontHaveTimeoutConfig()
to return aDontHaveTimeoutConfig
populated with default values- Added optional
WithDontHaveTimeoutConfig
to allow passing a customDontHaveTimeoutConfig
- Setting
SetSendDontHaves(false)
works the same as before. Behind the scenes, it will disabledontHaveTimeoutMgr
by passing anil
onDontHaveTimeout
tonewDontHaveTimeoutMgr
.Changed
- ðŸ›
blockstore
andblockservice
'sWriteThrough()
option now takes an "enabled" parameter:WriteThrough(enabled bool)
.- Replaced unmaintained mock time implementation uses in tests: from => to
bitswap/client
: if a libp2p connection has a context, usecontext.AfterFunc
to cleanup the connection.- upgrade to
go-libp2p-kad-dht
v0.28.1- upgrade to
go-libp2p
v0.38.1- blockstore/blockservice: change option to
WriteThrough(enabled bool)
#749mfs
: improve mfs republisher #754Fixed
mfs
: directory cache is now cleared on Flush(), liberating the memory used by the otherwise ever-growing cache. References to directories and sub-directories should be renewed after flushing.bitswap/client
: Fix leak due to cid queue never getting cleaned up #756bitswap
: Drop stream references on Close/Reset 760[v0.25.0]
Added
routing/http/server
: added built-in Prometheus instrumentation to http delegated/routing/v1/
endpoints, with custom buckets for response size and duration to match real world data observed at thedelegated-ipfs.dev
instance. #718 #724routing/http/server
: added configurable routing timeout (DefaultRoutingTimeout
being 30s) to prevent indefinite hangs during content/peer routing. Set custom duration viaWithRoutingTimeout
. #720routing/http/server
: exposes Prometheus metrics onprometheus.DefaultRegisterer
and a custom one can be provided viaWithPrometheusRegistry
#722gateway
:NewCacheBlockStore
andNewCarBackend
will useprometheus.DefaultRegisterer
when a custom one is not specified viaWithPrometheusRegistry
#722filestore
: added opt-inWithMMapReader
option toFileManager
to enable memory-mapped file reads #665bitswap/routing
ProviderQueryManager
does not require callingStartup
separate fromNew
. #741bitswap/routing
ProviderQueryManager does not use lifecycle context.Changed
bitswap
,routing
,exchange
(#641):
- ✨ Bitswap is no longer in charge of providing blocks to the network: providing functionality is now handled by a
exchange/providing.Exchange
, meant to be used withprovider.System
so that all provides follow the same rules (multiple parts of the code where handling provides) before.- ðŸ›
bitswap/client/internal/providerquerymanager
has been moved torouting/providerquerymanager
where it belongs. In order to keep compatibility, Bitswap now receives arouting.ContentDiscovery
parameter which implementsFindProvidersAsync(...)
and uses it to create aproviderquerymanager
with the default settings as before. Custom settings can be used by using a customproviderquerymanager
to manually wrap aContentDiscovery
object and pass that in asContentDiscovery
on initialization while settingbitswap.WithDefaultProviderQueryManager(false)
(to avoid re-wrapping it again).- The renovated
providedQueryManager
will trigger lookups until it manages to connect toMaxProviders
. Before it would lookup at mostMaxInProcessRequests*MaxProviders
and connection failures may have limited the actual number of providers found.- 🛠We have aligned our routing-related interfaces with the libp2p
routing
ones, including in thereprovider.System
.- In order to obtain exactly the same behavior as before (i.e. particularly ensuring that new blocks are still provided), what was done like:
bswapnet := network.NewFromIpfsHost(host, contentRouter)
... (truncated)
17db35a
Merge pull request #770 from
ipfs/release-v0.26.08d05ec4
Update CHANGELOG.md1829ea2
update versionc24404e
chore: remove duplicated entry13fa48f
docs: v0.26.0 changeloge8b59d6
tidy changeloga3da241
Minor spelling and wording changes (#768)3cee549
Merge pull request #767 from
ipfs/update-libp2pfb80f86
update golang.org/x/netc107096
update go-libp2p and go-libp2p-kad-dht