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
Theblock.proto
file has been updated to include thePOW_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 theHistoricalBlocks
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, theCancelTransaction
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 deprecatesGetAllCompletedTransactions
.
Bug Fixes
-
Memo Field Naming
Resolved an issue in which some internal fields where the Memo field was still referencingpayment_id
, and added debug logs to the gRPC methodget_payment_id_address
inwallet.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: specificallymulti_addresses
,peers
, andsqlite_sequence
.
Deployment
To safely upgrade to v5.0.0-pre.2
:
-
Back up your data — including the Console Wallet and Base Node data directories.
-
Stop all running services — Console Wallet, Base Node, and any FFI integrations.
-
Install the latest binaries for both the Base Node and Console Wallet.
-
Update gRPC clients and
.proto
files:- A new streaming method
GetAllCompletedTransactionsStream
has been introduced inwallet.proto
. - Regenerate client bindings using the updated
.proto
files. - This method enables paginated access to completed transactions and replaces the now-deprecated
GetAllCompletedTransactions
.
- A new streaming method
-
Restart all services after updating binaries and client code.
-
Verify sync and query operations to confirm successful migration and updated gRPC functionality.