Skip to content

Releases: near/nearcore

2.3.0

30 Oct 15:19
cf41c79
Compare
Choose a tag to compare
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 in BlockHeader 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 new large_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 the Chunks column.

Protocol upgrade voting

Voting for protocol version 72 will start on Tuesday 2024-11-05 10:00 UTC

2.3.0-rc.4

17 Oct 20:23
726cdba
Compare
Choose a tag to compare
2.3.0-rc.4 Pre-release
Pre-release
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

11 Oct 17:57
827aab9
Compare
Choose a tag to compare
2.3.0-rc.3 Pre-release
Pre-release
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

10 Oct 14:02
3c7177b
Compare
Choose a tag to compare
2.3.0-rc.2 Pre-release
Pre-release
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

02 Oct 12:45
93073d7
Compare
Choose a tag to compare
2.3.0-rc.1 Pre-release
Pre-release
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 in BlockHeader 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 new large_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 the Chunks 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

16 Sep 14:20
971e76d
Compare
Choose a tag to compare
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:

  1. Stop the neard process
  2. Download the new version of neard
  3. Clear the compiled contract cache: rm -rf ~/.near/data/contracts
  4. Undo the last block: ./neard undo-block
  5. 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

16 Sep 14:19
b3d767e
Compare
Choose a tag to compare
2.2.1-rc.1 Pre-release
Pre-release
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:

  1. Stop the neard process
  2. Download the new version of neard
  3. Clear the compiled contract cache: rm -rf ~/.near/data/contracts
  4. Undo the last block: ./neard undo-block
  5. Start neard

After that the node should be able to recover and sync with the rest of the network.

2.2.0

09 Sep 17:34
7dbfa11
Compare
Choose a tag to compare
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

04 Sep 15:09
1877e3d
Compare
Choose a tag to compare
2.2.0-rc.2 Pre-release
Pre-release
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:

  1. Stop the neard process
  2. Download the new version of neard
  3. Clear the compiled contract cache: rm -rf ~/.near/data/contracts
  4. Undo the last block: ./neard undo-block
  5. Start neard

After that the node should be able to sync with the rest of the network.

2.2.0-rc.1

26 Aug 16:15
d630c63
Compare
Choose a tag to compare
2.2.0-rc.1 Pre-release
Pre-release
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