Protocol
IOTA Protocol Version in this release: 14
#8896: - Switch consensus protocol to Starfish on Devnet
#8756: Dropping the timestamp monotonicity block ancestor checks and performing stake-based calculation of the commit's timestamp by using the leader's strong ancestors timestamps median. Those changes are enabled only on the devnet.
#8757: Force checkpoint timestamp to be non decreasing. This is only enabled on the devnet.
#8987: Enable median-based commit timestamp calculation in consensus, and checkpoint timestamps are non-decreasing for devnet. Enable batched block sync for mainnet.
#9004: Switch to Blake3 hash for Starfish consensus
#9010: enable committee selection from validators who issued valid authority capabilities for testnet
Nodes (Validators and Full nodes)
#8894: Replace local execution with "wait for checkpoint" execution
#8537: Improved accuracy in the computation of object hotness and gas price prediction.
#8997: Added filters for private/unroutable addresses in the node discovery
JSON-RPC
#8857: Added PtbInput to support referencing results in
unsafe_batchTransaction
#8969: Adds support for move view function calls through a new iota_view RPC method. ⚠️ Calls to the iota_view endpoint are only supported on devnet , as the feature is still in alpha.
GraphQL
#8645: Transaction effects are now available immediately after execution via Query.transactionBlock.
Note that other queries relying on the chain’s indexed state (such as address-level balance updates) may still show a delay until the transaction is checkpointed.
To verify checkpoint inclusion, query Query.transactionBlock and check the effects.checkpoint field — it will be null until the transaction has been checkpointed.
#8935: Fixes mutation.executeTransactionBlock which could fail if the transaction executed was indexed through the checkpoint path.
#8969: Introducing a new moveViewCall query path to call move-view functions. 🚨 The server now requires that the fullnode JSON-RPC url is specified in the configuration, to be able to run mutation.executeTransactionBlock, query.{moveViewCall,dryRunTransactionBlock}. ⚠️ Usage of the Query.moveViewCall are only supported on devnet, as the feature is still in alpha.
CLI
#8931: iota move build --dump-bytecode-as-base64 is now working correctly due to a bug in the logic when a Move.lock file existed with the published address.
Rust SDK
#8857: Added single_move_call_with_ptb_inputs() to support
referencing results of previous commands
#8969: Added move_view_call_tx_kind and single_move_view_call to the TransactionBuilder