github near/nearcore 2.10.0-rc.1

pre-release7 hours ago
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.10.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE

Protocol Changes

  • Introducing deterministic account IDs: Account IDs starting with the prefix 0s can only be created with the new action DeterministicStateInit. Its name is derived from the initial state and global contract it uses. #14307
  • New host functions for deterministic initialization: Three new host functions promise_batch_action_state_init, promise_batch_action_state_init_by_account_id and set_state_init_data_entry allow creating the new action DeterministicStateInit from within a smart contract. #14364
  • Accessing the current contract code: The new host function current_contract_code allows smart contracts to read the currently deployed code hash or global contract identifier. #14372
  • Controlling balance refunds: The new host function promise_set_refund_to allows smart contracts to redirect balance refunds of outgoing receipts to other accounts. #14285
  • Querying refund receivers: The new host function refund_to_account_id returns the receiver of balance refunds, which is either predecessor_id or the refund receiver set by the predecessor using promise_set_refund_to. #14372
  • Gas optimization: Calls to the existing host functions input and promise_result no longer charge gas per byte (wasm_write_memory_byte), thanks to an optimization that eliminates unnecessary data copying. #14405
  • Introduce versioned StatePart in state sync and update protocol messages to support compressed state parts. #14013
  • Reduce gas cost for wasm_touching_trie_node (from 16_101_955_926 to 2_280_000_000) and increase the compute cost of wasm_read_cached_trie_node (from 0 to 4_000_000_000), making them equal so they can be interchangeable in the future, enabling potential performance optimizations. #14046

Non-protocol Changes

  • Indexer changes, including breaking changes in the API. See the indexer changelog for details.
  • Stabilize EXPERIMENTAL_changes_in_block, EXPERIMENTAL_genesis_config, and EXPERIMENTAL_maintenance_windows RPC methods and rename them to block_effects, genesis_config and maintenance_windows respectively. #13763
  • Batch ed25519 signature verification for transaction processing. #14196
  • New /actors page in debug-ui, showing utilization of actors and dequeue time of recently processed messages. #14452
  • Fix to avoid re-applying state parts in case state sync was interrupted and resumed. #14232

Protocol upgrade voting

This release upgrades the protocol version from 80 to 82.
Voting for protocol version 82 will start on Tuesday 2025-11-25 00:00:00 UTC.
To continue participating in consensus, you need to upgrade your node before this time.

If voting succeeds in one epoch, the protocol upgrade to version 82 is expected to happen 7-14 hours after the voting epoch ends.

Don't miss a new nearcore release

NewReleases is sending notifications on new releases.