Release 0.16.0: Fixes, Bootstrapper improvements and new Extensions #8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains a number of changes and bumps the version to 0.16.0.
[Breaking]
Inherited breaking changes from IpfsShipyard.Net.Http.Client 0.2.0.
Inherited breaking changes from OwlCore.Storage 0.10.0 and 0.11.0.
Inherited breaking changes from OwlCore.ComponentModel 0.7.0 and 0.8.0.
Inherited breaking changes from OwlCore.Extensions 0.8.0.
[Fixes]
The changes in OwlCore.Storage 0.10.0 allowed the CommonTests to uncover previously unknown issues with the Kubo-based storage implementation. These issues are now fixed and the storage implementations are compliant with the latest CommonTests.
[New]
Added static SwarmKeyGen extension methods, which allow you to generate and write a private Kubo swarm key to a file for immediate use.
Added a new PrivateKuboBootstrapper. This custom bootstrapper allows you to start a Kubo node with a private swarm key, automatically removing the default bootstrap nodes, applying LIBP2P_FORCE_PNET as needed, and setting up the provided BootstrapPeerMultiAddresses as your bootstrap peers.
Added a new OwlCore.Kubo.Cache namespace. This is a limited set of API wrappers for the Ipfs core interfaces that enable caching functionality throughout your entire application domain, currently covering IKeyApi and INameApi. Note that you'll need to use ICoreApi instead of IpfsClient, and likewise for other Core interfaces (and their implementations) throughout your codebase to use this cache layer.
Added TransformIpnsDagAsync extension method, which allows you to mutate and update a DAG object published to IPNS all in one go, with progress reporting.
Added ResolveDagCidAsync extension method to Cid and IEnumerable{Cid}. Resolves the provided cid if it is an Ipns address and retrieves the content from the DAG.
Added CreateKeyWithNameOfIdAsync extension method to IKeyApi. Creates an ipns key using a temp name, then renames it to the name of the key. Enables pushing to ipns without additional API calls to convert between ipns cid and name.
Added GetOrCreateKeyAsync extension method to IKeyApi. Gets a key by name, or creates it if it does not exist.
Added various helper methods to KuboBootstrapper for getting repo lock state, gateway and api uri, and converting between MultiAddress and Uri.
Added all missing DhtRoutingMode values that have been added to Kubo as of 0.26.0.
Added a LaunchConfigMode to KuboBootstrapper. Defines the behavior when a node is already running (when the repo is locked): Throw, Attach, or Relaunch.
Added an ApiUriMode to KuboBootstrapper. Gets or sets an enum that determines how to use the supplied ApiUri: UseExisting, or OverwriteExisting.
Added a GatewayUriMode to KuboBootstrapper. Gets or sets an enum that determines how to use the supplied GatewayUri: UseExisting, or OverwriteExisting.
Added a UseAcceleratedDHTClient property to KuboBootstrapper. If set to true, the accelerated DHT client will be used on startup. Extensive documentation has been added to aid in deciding whether you should use this. Note that enabling this will increase resource consumption.
[Improvements]
As part of the move to ICoreApi, all internal calls to DoCommandAsync have been removed wherever IMfsApi is used, thanks to the implementation contributed in ipfs-shipyard/net-ipfs-core#13.
Updated dependencies.