Releases: near/nearcore
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.
2.2.1-rc.1
CODE_COLOR: CODE_RED_TESTNET
RELEASE_VERSION: 2.2.1-rc.1
PROTOCOL_UPGRADE: FALSE
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.
2.2.0
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 2.2.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- The minimum validator stake has been set to a lower value. The small-stake validators that were kicked out during the shift to stateless validation will be able to rejoin the network.
- Better algorithm for validator kickouts
Non-protocol Changes
- Fix spammy messages about calculating gas for PromiseYield receipts.
- Don't crash when the CPU doesn't have SHA-NI instructions. It's still a hardware requirement, there is no guarantee that nodes without this instruction will be able to keep up with the network, but
neard
will now be able to run (slowly) on CPUs without this instruction.
Protocol upgrade voting
Voting for protocol version 71 will start on Monday 2024-09-16 19:00 UTC
2.2.0-rc.2
CODE_COLOR: CODE_RED_TESTNET
RELEASE_VERSION: 2.2.0-rc.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Changes
This is an emergency testnet release.
In 2.2.0-rc.1 the protocol upgrade was supposed to update the eth wallet contract on testnet to a new version,
but there was a bug which caused some of the nodes to stay with the old version of the contract. Because of that
some of the nodes had one version and some had the other and the consensus diverged.
Some nodes didn't accept the chunks and they got stuck.
This release fixes the bug - all nodes will continue using the old eth-wallet contract, as this is what the
canonical chain does.
Nodes that got stuck need manual intervention. The steps to recover a stalled node are:
- 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 sync with the rest of the network.
2.2.0-rc.1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 2.2.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- The minimum validator stake has been set to a lower value. The small-stake validators that were kicked out during the shift to stateless validation will be able to rejoin the network.
- Better algorithm for validator kickouts
- (Testnet only) update the eth-implicit accounts contract on testnet to match the one on mainnet.
Non-protocol Changes
- Fix spammy messages about calculating gas for PromiseYield receipts.
- Don't crash when the CPU doesn't have SHA-NI instructions. It's still a hardware requirement, there is no guarantee that nodes without this instruction will be able to keep up with the network, but
neard
will now be able to run (slowly) on CPUs without this instruction.
Protocol upgrade voting
Voting for protocol version 71 will start on Tuesday 2024-09-03 10:00 UTC