Skip to content

Releases: near/nearcore

2.4.0-rc.1

19 Nov 19:26
a83c184
Compare
Choose a tag to compare
2.4.0-rc.1 Pre-release
Pre-release
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

13 Nov 18:37
Compare
Choose a tag to compare
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

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