Grin + Grin Wallet 2.1.0 Released

Grin and Grin wallet 2.1.0 has been released! This release includes many updates, improvements and fixes, details of which can be found below.

Note this is a non-breaking release, and should work as a drop-in replacement binaries for the Grin 2.0.0 release, with which this release is fully compatible. A few upgrade configuration notes related to Wallet API Tokens should be observed if your configuration uses them.

Thanks to all Grin contributors and community for their hard work and help testing this release!

Binaries

Grin 2.1.0 Binaries
Grin Wallet 2.1.0 Binaries

Release Planning

Planning notes for the 2.1.0 release

Major changes and enhancements

Node:

  • Blocking IO (major changes to networking implementation)
  • Improved handling of p2p connections (inbound and outbound peer connections)
  • Implement batch verification of kernel signatures (50% performance increase)
  • Kernel serialization optimization (and increased flexibility)
  • Numerous smaller fixes and improvements (see linked issues on the release page)

Further Details

Details for all node changes for the 2.1.0 release can be found here:

Wallet

  • Addition of the V3 Owner API, (at /owner/v3) which includes lifecycle functions for creating wallets, as well as enhanced security between the server and clients. A full description of the new API can be found in the rustdoc documentation and at crates.io.
  • Fixes to API secret handling, note the upgrade notice below
  • Fixes to transactions not confirming when no change outputs exist
  • Addition of the kernel excess field to the transaction log, to help with identifying transactions on the chain

Upgrade Notice

Wallet API Tokens

  • Upon wallet creation, the wallet now creates 2 authentication tokens in the wallet directory: .api_secret and .owner_api_secret
  • .api_secret is the secret shared with the node for wallet to node communication. Previous versions used this file for both node communication and Owner API authentication. This file should now only be used for the node secret and users should update files and paths in grin-wallet.toml accordingly
  • .owner_api_secret is now used only to authenticate the Owner API.
  • In grin-wallet.toml , api_secret_path corresponds to the Owner API secret file ( .owner_api_secret by default), while node_api_secret_path corresponds to the node secret file ( .api_secret by default)
  • When running the Owner and Foreign APIs on the same port via the owner_api_include_foreign option in grin-wallet.toml , calls to the Foreign API no longer require the Owner API authentication secret.

Kernel Excess

  • 2 fields are added to the TxLogEntry as found in the retrieve_txs and get_stored_tx functions:
    • kernel_excess - Optional kernel excess (identifier) for the transaction
    • kernel_lookup_min_height - The minimum height to begin scanning for a kernel excess value when attempting to retrieve it from the nod.

Futher Details

Details on all wallet changes for the 2.1.0 release can be found here:

16 Likes