github tari-project/tari v5.0.0-pre.2

latest releases: v5.0.1, v5.0.0, v5.0.0-rc.0...
pre-release21 days ago

Tari Release Notes – v5.0.0-pre.2

Breaking Changes

  • C29 Algorithm
    The addition of the Cuckaroo (C29) algorithm affects consensus rules. A hard fork will be required to activate on the network.

    Note: This is a pre-release (v5.0.0-pre.1) and is not active on mainnet. A coordinated hard fork block height and activation schedule will be announced in a future mainnet release. No action is currently required for mainnet users.

  • Update gRPC .proto Bindings
    The block.proto file has been updated to include the POW_ALGOS_CUCKAROO enum variant and remove deprecated fields. All client projects consuming gRPC services must regenerate bindings using the updated .proto files. Ensure all references to the HistoricalBlocks field are removed or updated accordingly.

Features

  • Addition of C29 Algorithm to Tari's Proof of Work (PoW)
    Tari has been updated to fully support Cuckaroo (C29) in its PoW. The addition will improve Tari's usability thanks to C29's ASIC resistance and efficiency on consumer-grade GPUs. Tari's underlying architecture has been fully updated to support this, including verification, difficulty, siphash utilities, mining templates, hash-rate estimates, new PoW option in RPCs, and miner configurations.

  • Application Enhancements
    minotari_console_wallet:

    • Improved wallet connectivity detection with periodic background checks for more reliable online/offline status reporting. Wallet status now prioritizes wallet-specific connectivity when reporting overall network status. The wallet is also more responsive and efficient when synchronizing wallet state and scanning.

    minotari_node:

    • The monitoring loop now checks for the last updated block to avoid redundant state updates on previous blocks. Combined with enhanced trace logging, this provides a clear picture of current block height, sync status, and latency while reducing unnecessary log events that obfuscated useful activity in the node's monitoring activities.
  • Improved Network Behaviour
    Network behaviour has been improved significantly:

    • The proactive dialing mechanism has been improved to avoid the inclusion of seed peers when dialing other peers. This encourages the network to seek out other available peers and avoid contacting the seed peers, which are known entities that were already contacted during the initial seed strap.
    • Network discovery timeouts have been added for bad/hung RPC connections to prevent stalling of the discovery process.
    • Peer sync now filters out internal/local addresses, ensuring nodes only receive externally reachable addresses, improving connectivity and peer database accuracy.
  • Better Transaction Cancellation
    Transaction cancellation behaviour has been improved to ensure transaction security and validity. Mined transactions cannot be cancelled, and pending transactions now perform checks on locks and clear them before cancelling, resulting in clearer error messages. In addition, the CancelTransaction gRPC method has been extended to cancel pending one-sided transactions; doing so improves the offline signing process where a view wallet may need to unlock encumbered inputs following a failed send to the spending wallet.

  • Improved gRPC Methods
    Adds a new gRPC streaming method for fetching completed transactions, GetAllCompletedTransactionsStream. It supports pagination and filtering by status, with improved performance and memory usage. This deprecates GetAllCompletedTransactions.

Bug Fixes

  • Memo Field Naming
    Resolved an issue in which some internal fields where the Memo field was still referencing payment_id, and added debug logs to the gRPC method get_payment_id_address in wallet.proto.

  • Peer Corruption
    Resolved an issue that was causing updates to peer addresses to impact multiple peers with shared addresses. The fix improves accuracy when updating peer addresses to ensure changes only affect the intended peer. Upgrading to this release will clean out the associated tables in the peer database: specifically multi_addresses, peers, and sqlite_sequence.

Deployment

To safely upgrade to v5.0.0-pre.2:

  1. Back up your data — including the Console Wallet and Base Node data directories.

  2. Stop all running services — Console Wallet, Base Node, and any FFI integrations.

  3. Install the latest binaries for both the Base Node and Console Wallet.

  4. Update gRPC clients and .proto files:

    • A new streaming method GetAllCompletedTransactionsStream has been introduced in wallet.proto.
    • Regenerate client bindings using the updated .proto files.
    • This method enables paginated access to completed transactions and replaces the now-deprecated GetAllCompletedTransactions.
  5. Restart all services after updating binaries and client code.

  6. Verify sync and query operations to confirm successful migration and updated gRPC functionality.

Don't miss a new tari release

NewReleases is sending notifications on new releases.