Releases: near/nearcore
2.4.0
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 2.4.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE
Protocol Changes
- [Optimization] Relax Congestion Control to allow more transactions to be accepted and buffered. #12241 #12430
- [Optimization] Exclude contract code from the state witness and distribute it separately. #11099
- [Bug fix] Fix invalid cost used for
wasm_yield_resume_byte
. #12192
Non-protocol Changes
- [Feature] Enable Epoch Sync: A capability to bootstrap a node from another active node. #73
- [Feature] Enable Decentralized state sync: To participate in providing state parts to peers, your node may use a small amount of additional network bandwidth. Snapshot generation should not require significant storage, as snapshots are essentially hard links to database files, which are cleaned up at the end of each epoch. #12004
Protocol upgrade voting
Voting for protocol version 73 will start on Sunday 2024-12-15 12:00 UTC
Notes
We deprecated the default config file link (previously mentioned in docs) for the sake of role based config links.
For mainnet, these links are:
The change mentioned above is also reflected on https://near-nodes.io/validator/deploy-on-mainnet#run-the-node
2.4.0-rc.2
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.4.0-rc.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Non-protocol Changes
- Several fixes which improve the speed and robustness of state sync (#12507).
- Fix Epoch Sync not starting sometimes (#12563).
While not mandatory, the patch is highly recommended for the syncing and catch-up mechanism to function reliably and stably.
2.4.0-rc.1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.4.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Relax Congestion Control to allow more transactions to be accepted and buffered. #12241 #12430
- Exclude contract code from the state witness and distribute it separately. #11099
- Fix invalid cost used for
wasm_yield_resume_byte
. #12192
Non-protocol Changes
- Enable Epoch Sync: A capability to bootstrap a node from another active node. #73
- Enable Decentralized state sync: To participate in providing state parts to peers, your node may use a small amount of additional network bandwidth. Snapshot generation should not require significant storage, as snapshots are essentially hard links to database files, which are cleaned up at the end of each epoch. #12004
Protocol upgrade voting
Voting for protocol version 73 will start on Sunday 2024-11-24 15:00 UTC
2.3.1
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 2.3.1
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE
Non-protocol Changes
- Relaxes size limit on receipts
- Adds a tx_root check when validating a chunk state witness
This release fixes an issue that could lead to unexpected behavior when processing blocks. Please upgrade as soon as you're able.
2.3.0
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 2.3.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Sets
chunk_validator_only_kickout_threshold
to 70. Uses this kickout threshold as a cutoff threshold for contribution of endorsement ratio in rewards calculation: if endorsement ratio is above 70%, the contribution of endorsement ratio in average uptime calculation is 100%, otherwise it is 0%. Endorsements received are now included inBlockHeader
to improve kickout and reward calculation for chunk validators. - Changes the way receipts are stored in the state for the purpose of correct gas and size calculations in congestion control
- Storage compute costs for function calls are lowered (
read_base
,has_key
,read_value
,touching_trie_node
) and a newlarge_read_overhead
is introduced for reads of values over 4k. See #11925 and #12044
Non-protocol Changes
- RPC: started using non 200 HTTP codes for some errors, see the details here
- Added documentation and a reference script to recover the data lost in archival nodes at the beginning of 2024.
- Archival nodes only: Stop saving partial chunks to
PartialChunks
column in the Cold DB. Instead, archival nodes will reconstruct partial chunks from theChunks
column.
Protocol upgrade voting
Voting for protocol version 72 will start on Tuesday 2024-11-05 10:00 UTC
2.3.0-rc.4
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.3.0-rc.4
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Non-protocol Changes
- Changes state sync logic so that nodes will download parts from GCS instead of from peers, as it was before this release.
This release is marked as CODE_YELLOW because it may help with some of the issues we have seen on testnet, and nodes (especially validators) should upgrade at their earliest convenience
2.3.0-rc.3
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.3.0-rc.3
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Non-protocol Changes
- Fixes an issue with state sync downloads that led to nodes falling behind the chain: #12205
2.3.0-rc.2
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.3.0-rc.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Non-protocol Changes
- Fixes an issue with sustained high CPU usage related to state sync requests: #12197
2.3.0-rc.1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.3.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Sets
chunk_validator_only_kickout_threshold
to 70. Uses this kickout threshold as a cutoff threshold for contribution of endorsement ratio in rewards calculation: if endorsement ratio is above 70%, the contribution of endorsement ratio in average uptime calculation is 100%, otherwise it is 0%. Endorsements received are now included inBlockHeader
to improve kickout and reward calculation for chunk validators. - Changes the way receipts are stored in the state for the purpose of correct gas and size calculations in congestion control
- Storage compute costs for function calls are lowered (
read_base
,has_key
,read_value
,touching_trie_node
) and a newlarge_read_overhead
is introduced for reads of values over 4k. See #11925 and #12044
Non-protocol Changes
- Added documentation and a reference script to recover the data lost in archival nodes at the beginning of 2024.
- Archival nodes only: Stop saving partial chunks to
PartialChunks
column in the Cold DB. Instead, archival nodes will reconstruct partial chunks from theChunks
column. - Decentralized state sync: Before, nodes that needed to download state (either because they're several epochs behind the chain or because they're going to start producing chunks for a shard they don't currently track) would download them from a centralized GCS bucket. Now, nodes will attempt to download pieces of the state from peers in the network, and only fallback to downloading from GCS if that fails. Please note that in order to participate in providing state parts to peers, your node may generate snapshots of the state. These snapshots should not take too much space, since they're hard links to database files that get cleaned up on every epoch.
Protocol upgrade voting
Voting for protocol version 72 will start on Monday 2024-10-07 10:00 UTC
2.2.1
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 2.2.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE
This release patches a bug found in the 2.2.0 release
Non-protocol changes
There was a bug in the integration between ethereum implicit accounts and the compiled contract cache which sometimes caused the nodes to get stuck. This would most often happen during state sync, but could also happen by itself. Please update your nodes to avoid getting stuck.
A node that hits this bug will print an error about an InvalidStateRoot
in the logs and then it'll be unable to sync.
It's possible to recover a stalled node by clearing the compiled contract cache and rolling back one block:
- Stop the neard process
- Download the new version of neard
- Clear the compiled contract cache: rm -rf ~/.near/data/contracts
- Undo the last block: ./neard undo-block
- Start neard
After that the node should be able to recover and sync with the rest of the network.
Protocol upgrade voting
Voting for protocol 71 has been postponed to 2024-09-23 10:00 UTC. Validators were asked to roll back to 2.1.1, so protocol upgrade proposed in the 2.2.0 release won't go through. 2.2.1 changes the voting date to 2024-09-23 to give everyone time to update to 2.2.1 before the upgrade to 71 takes place.