Skip to content

Releases: near/nearcore

1.37.0-rc.1

24 Jan 12:55
Compare
Choose a tag to compare
1.37.0-rc.1 Pre-release
Pre-release
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.37.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE

Protocol Upgrade Voting

This release contains a protocol upgrade. Voting for upgrading to protocol version 64 will start on Monday 2024-01-29 15:00:00 UTC.

Managing Resharding

This protocol upgrade includes resharding of shard 3. Which means that after protocol upgrade we will have 5 shards. New shard split is defined by these border accounts vec!["aurora", "aurora-0", "kkuuue2akv_1630967379.near", "tge-lockup.sweat"]

Important points:

  • Resharding will happen in the epoch RIGHT AFTER protocol voting epoch (and RIGHT BEFORE actual protocol upgrade).
  • If your node fails to reshard before protocol upgrade, it will not be able to continue being a part of the chain. If that happens, you should restart from a Pagoda provided backup.
  • Resharding creates a database snapshot that is deleted right after resharding is finished.During resharding, though, you may notice progressive increase of data folder size (around 150GB).
  • To monitor resharding you can use metrics near_resharding_status, near_resharding_batch_size, and near_resharding_batch_prepare_time_bucket. You can read more here https://github.com/near/nearcore/blob/master/docs/architecture/how/resharding.md#monitoring.
  • If you observe problems with block production or resharding performance, you can adjust resharding throttling configuration. Read more here https://github.com/near/nearcore/blob/master/docs/architecture/how/resharding.md#monitoring.
  • RAM usage during resharding is around 8-10GB.

Full resharding doc can be found here https://github.com/near/nearcore/blob/master/docs/architecture/how/resharding.md.

Protocol Changes

  • Resharding v2 - new implementation for resharding and a new shard layout for production networks. #10303, NEP-0508
  • Restrict the creation of non-implicit top-level accounts that are longer than 32 bytes. Only the registrar account can create them. #9589
  • Adjust the number of block producers and chunk producers on testnet to facilitate testing of chunk-only producers #9563

Non-protocol Changes

  • Add prometheus metrics for the internal state of the doomslug. #9458
  • Fix EXPERIMENTAL_protocol_config to apply overrides from EpochConfig. #9692
  • Add config option tx_routing_height_horizon to configure how many chunk producers are notified about the tx. #10251

1.36.4

03 Jan 19:32
Compare
Choose a tag to compare

Notice

This release of nearcore is a security release (CODE_RED_MAINNET). It fixes a handshake parsing vulnerability that, if exploited, can lead to a node crash.

All node operators must upgrade to 1.36.4 immediately.

This release contains no additional code or behavior changes beyond the fix that addresses the security vulnerability, which is related only to a feature that isn't used in production today.

Fixes

  • Fix an issue related to handshake parsing
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 1.36.4
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE

1.36.3

03 Jan 18:22
Compare
Choose a tag to compare

Notice

This release of nearcore is a security release (CODE_RED_MAINNET). It fixes a handshake parsing vulnerability that, if exploited, can lead to a node crash.

All node operators must upgrade to 1.36.3 immediately.

This release contains no additional code or behavior changes beyond the fix that addresses the security vulnerability, which is related only to a feature that isn't used in production today.

Fixes

  • Fix an issue related to handshake parsing
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 1.36.3
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE

1.36.2

18 Dec 19:26
Compare
Choose a tag to compare

Notice

This release of nearcore is a security release (CODE_RED_MAINNET). It fixes a protobuf vulnerability that, if exploited, can lead to a node crash.

All node operators must upgrade to 1.36.2 immediately.

This release contains no additional code or code changes beyond the fix that addresses the security vulnerability.

Fixes

  • Fix an issue related to parsing of protobuf messages
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 1.36.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE

1.36.1

14 Dec 11:24
4fce209
Compare
Choose a tag to compare

Minor CODE_GREEN release, feel free to skip upgrading your nodes.
Adds 2 configuration options and contains no other fixes or improvements.

Fixes

  • Add config option tx_routing_height_horizon to configure how many chunk producers are notified about the tx. #10251
  • Add config options state_sync.dump.credentials_file to configure pro-active state part production for State Sync. #9487

Crates

Crates corresponding to this nearcore version were published with version 0.18.0

CODE_COLOR: CODE_GREEN_MAINNET
RELEASE_VERSION: 1.36.1
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE

1.36.0

30 Oct 23:01
Compare
Choose a tag to compare
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.36.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: TRUE

Protocol Changes

  • The support for fixed shards in shard layout was removed. #9219

Protocol Upgrade Voting

This release contains a protocol upgrade. Voting for upgrading to protocol version 63 will start on 2023-11-13 15:00:00 UTC.

Database Upgrade

This release contains a database upgrade. STATE_SYNC_DUMP_KEY and STATE_SNAPSHOT_KEY was added to the BlockMisc column for support of state sync.

Non-protocol Changes

  • New option transaction_pool_size_limit in config.json allows to limit the size of the node's transaction pool.
    By default the limit is set to 100 MB. #3284
  • Database snapshots at the end of an epoch. This lets a node obtain state parts using flat storage. #9090
  • Number of transactions included in a chunk will be lowered if there is a congestion of more than 20000 delayed receipts in a shard. #9222
  • Our more efficient and scalable V2 routing protocol is implemented. It shadows the V1 protocol for now while we verify its performance. #9187
  • The default config now enables TIER1 outbound connections by default. #9349
  • State Sync from GCS is available for experimental use. #9398

Note around node performance

During internal testing of 1.36 we noticed nodes were impacted by a performance degradation manifesting as slowness in producing blocks. This impact was statistical, and the investigation we performed did not reveal any clear indicator of the root cause of this degradation.
In order to better assess this issue, we decided to test the release on testnet. The testnet release so far did not reveal any performance degradation, so we are releasing to mainnet.
After upgrading on mainnet to 1.36, if you get kicked out or notice any performance issue, please reach out to us on the NEAR Validators Telegram channel with data regarding node configuration and performance.

1.36.0-rc.2

19 Oct 15:32
Compare
Choose a tag to compare
1.36.0-rc.2 Pre-release
Pre-release
CODE_COLOR: CODE_GREEN_TESTNET
RELEASE_VERSION: 1.36.0-rc.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE

Protocol Changes

Non-protocol Changes

  • Fix an issue that caused unwanted disconnections from peers after 30 minutes #9651, and another that leads to incomplete routing information among peers #9517

1.36.0-rc.1

19 Sep 16:01
Compare
Choose a tag to compare
1.36.0-rc.1 Pre-release
Pre-release
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.36.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE

Protocol Changes

  • The support for fixed shards in shard layout was removed. #9219

Protocol Upgrade Voting

This release contains a protocol upgrade. Voting for upgrading to protocol version 63 will start on 2023-09-26 15:00:00 UTC.

Database Upgrade

This release contains a database upgrade. STATE_SYNC_DUMP_KEY and STATE_SNAPSHOT_KEY was added to the BlockMisc column for support of state sync.

Non-protocol Changes

  • New option transaction_pool_size_limit in config.json allows to limit the size of the node's transaction pool.
    By default the limit is set to 100 MB. #3284
  • Database snapshots at the end of an epoch. This lets a node obtain state parts using flat storage. #9090
  • Number of transactions included in a chunk will be lowered if there is a congestion of more than 20000 delayed receipts in a shard. #9222
  • Our more efficient and scalable V2 routing protocol is implemented. It shadows the V1 protocol for now while we verify its performance. #9187
  • The default config now enables TIER1 outbound connections by default. #9349
  • State Sync from GCS is available for experimental use. #9398

Note around node performance

During internal testing of 1.36 we noticed nodes were impacted by a performance degradation manifesting as slowness in producing blocks. This impact was statistical, and the investigation we performed did not reveal any clear indicator of the rootcause of this degradation. In order to better assess this issue, we need to determine the behaviour of the 1.36 nodes in a real-life environment, such as testnet. After upgrading on testnet to 1.36, if you get kicked out or notice any performance issue, please reach out to us on the NEAR Validators Telegram channel with data regarding node configuration and performance.

1.35.0

25 Jul 16:43
Compare
Choose a tag to compare
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.35.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE

Protocol Changes

  • Upgrade the contract preparation code to use finite-wasm, which guarantees deterministic limits on execution time and space of compiled contracts

Non-protocol Changes

  • Dump state by multiple nodes, each node will refer to s3 for which parts need to be dumped. #9049
  • Small values in the flat storage trie are inlined for faster accesses #9029
  • A current protocol version metric is added to the prometheus metrics under near_current_protocol_version #9030
  • The transaction pool size is tracked, and if the transaction_pool_size_limit config option is set, we now avoid storing more than the specified size of transactions in each shard's transaction pool #8970 and #9036

Split Storage Feature

Split storage allows nodes to improve storage costs and block production performance on archival nodes by splitting storage into hot and cold databases. Hot database stores all of the data from the past several epochs, and cold database stores all historical data from a limited list of columns.
In split storage mode Client only works with a smaller hot database to produce blocks, which results in increased performance.
Cold database is not accessed for reads during normal block production and is only read when historical data is specifically requested. Thus, we recommend keeping the cold database on HDD and only optimize speed for the hot database, which is 10 times smaller.
Split storage can be enabled with a config change and a migration that requires manual steps. You can learn more about the migration process here: https://near-nodes.io/archival/split-storage-archival

Protocol Upgrade Voting

This release contains a protocol upgrade. Voting for upgrading to protocol version 62 will start on 2023-08-01 15:00:00 UTC.

Database Upgrade

This release includes a db upgrade, which migrates entries in the FlatStateChanges, the size of which should not exceed several dozens of entries

1.35.0-rc.1

21 Jun 16:00
Compare
Choose a tag to compare
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.35.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE

Protocol Changes

  • Upgrade the contract preparation code to use finite-wasm, which guarantees deterministic limits on execution time and space of compiled contracts

Non-protocol Changes

  • Dump state by multiple nodes, each node will refer to s3 for which parts need to be dumped. #9049
  • Small values in the flat storage trie are inlined for faster accesses #9029
  • A current protocol version metric is added to the prometheus metrics under near_current_protocol_version #9030
  • The transaction pool size is tracked, and if the transaction_pool_size_limit config option is set, we now avoid storing more than the specified size of transactions in each shard's transaction pool #8970 and #9036

Split Storage Feature

Split storage allows nodes to improve storage costs and block production performance on archival nodes by splitting storage into hot and cold databases. Hot database stores all of the data from the past several epochs, and cold database stores all historical data from a limited list of columns.
In split storage mode Client only works with a smaller hot database to produce blocks, which results in increased performance.
Cold database is not accessed for reads during normal block production and is only read when historical data is specifically requested. Thus, we recommend keeping the cold database on HDD and only optimize speed for the hot database, which is 10 times smaller.
Split storage can be enabled with a config change and a migration that requires manual steps. We have several choices for the migration:
https://docs.google.com/document/d/1PVuETy4Ogf_8Hl0nFRrIvBs-94OhSC1mrULjsQcH-Bc/edit?usp=sharing

Protocol Upgrade Voting

This release contains a protocol upgrade. Voting for upgrading to protocol version 62 will start on 2023-06-27 15:00:00 UTC.

Database Upgrade

This release includes a db upgrade, which migrates entries in the FlatStateChanges, the size of which should not exceed several dozens of entries