Releases: near/nearcore
1.34.0-rc.1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.34.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Flat Storage for reads. Reduces the number of DB accesses for state reads from
2 * key.len()
in the worst case to2
. #8761, NEP-399 - Compute Costs are implemented and stabilized. Compute usage of the chunk is now limited according to the compute costs. #8915, NEP-455.
- Write-related storage compute costs are increased which means they fill a chunk sooner but gas costs are unaffected. #8924
Flat Storage Migration
This is a very important migration that needs special attention.
The migration starts automatically after switching to the 1.34.0-rc.1
binary and runs in the background.
The migration completes approximately in:
- RPC nodes: 11-15 hours
- Archival nodes: 30-40 hours
The migration increases disk usage by approximately 10 GB.
Please upgrade early to make sure there is enough time for the migration to complete.
Note that the protocol voting date is set further into the future than usually, to make sure that all RPC and Archival nodes have an opportunity to upgrade.
Failure to finish the migration before the protocol upgrade will result in the node getting stuck.
The migration cannot be started if the node has already missed the protocol upgrade.
To check that the migration has completed, check the metrics page, e.g. http://127.0.0.1:3030/metrics .
If flat_storage_creation_status
has value of 2
for each of the shards, then the migration is complete.
If flat_storage_creation_status
is missing and flat_storage_distance_to_head
has a very low value for each of the shards, then the migration is complete.
Reduce Memory Usage
If you are running a node on minimal hardware specifications, you can save 2GB of RAM by decreasing store.trie_cache.per_shard_max_bytes.s3.v1
from 3000000000
(default value) to 1000000000
.
All our testing shows that things work stable with that and block processing stays below 1 second.
However, keeping store.trie_cache.per_shard_max_bytes.s3.v1=3000000000
has a positive impact on reducing the processing time and therefore gives an extra safety buffer.
Protocol Upgrade Voting
Voting for upgrading to protocol version 61
will start on 2023-05-22 15:00:00 UTC. Please upgrade early because of a special Flat Storage migration.
Database Upgrade
This release includes a trivial DB upgrade. It changes no data, but informs about the Flat Storage migration. The upgrade completes instantly and requires no extra disk space.
Several new columns will be created by the Flat Storage migration in the background.
Non-Protocol Changes
undo-block
tool to reset the chain head from current head to its prev block. Use the tool by running:./target/release/neard undo-block
. #8681- Add prometheus metrics for expected number of blocks/chunks at the end of the epoch. #8759
- Node can sync State from S3. #8789
- Node can sync State from local filesystem. #8913
- Add per shard granularity for chunks in validator info metric. #8934
1.33.0
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.33.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE
#Protocol Changes
This release includes no protocol changes, but it has an empty protocol upgrade (59->60). Thus, as usual, failure to upgrade the node in time will result in validator kick-out.
Protocol Upgrade Voting
This release contains a protocol upgrade. Voting for upgrading to protocol version 60 will start on 2023-05-02 15:00:00 UTC.
Database Upgrade
This release includes a db upgrade. It is a very fast upgrade -- it deletes the deprecated column _Peers, and because of the nature of the RocksDB it shouldn't stall the node startup almost at all (<3 seconds on archival node).
State Sync Notice
This release is disabling state sync by default. You can still enable it via config, but a more reliable way to sync from a very old state faster than waiting for block sync to finish is to download a db backup from s3 and restart the node.
Non-Protocol Changes
- State-viewer tool to dump and apply state changes from/to a range of blocks. #8628
- Experimental option to dump state of every epoch to external storage. #8661
- Add prometheus metrics for tracked shards, block height within epoch, if is block/chunk producer. #8728
- State sync is disabled by default #8730
- Node can restart if State Sync gets interrupted. #8732
- Merged two neard view-state commands: apply-state-parts and dump-state-parts into a single state-parts command. #8739
- Fix: rosetta zero balance accounts #8830
- Fix two bugs that regarding verifying shard_id #8977
1.33.0-rc.1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.33.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE
#Protocol Changes
This release includes no protocol changes, but it has an empty protocol upgrade (59->60). Thus, as usual, failure to upgrade the node in time will result in validator kick-out.
Protocol Upgrade Voting
This release contains a protocol upgrade. Voting for upgrading to protocol version 60 will start on 2023-04-04 15:00:00 UTC.
Database Upgrade
This release includes a db upgrade. It is a very fast upgrade -- it deletes the deprecated column _Peers, and because of the nature of the RocksDB it shouldn't stall the node startup almost at all (<3 seconds on archival node).
State Sync Notice
This release is disabling state sync by default. You can still enable it via config, but a more reliable way to sync from a very old state faster than waiting for block sync to finish is to download a db backup from s3 and restart the node.
Non-Protocol Changes
- State-viewer tool to dump and apply state changes from/to a range of blocks. #8628
- Experimental option to dump state of every epoch to external storage. #8661
- Add prometheus metrics for tracked shards, block height within epoch, if is block/chunk producer. #8728
- State sync is disabled by default #8730
- Node can restart if State Sync gets interrupted. #8732
- Merged two neard view-state commands: apply-state-parts and dump-state-parts into a single state-parts command. #8739
- Fix: rosetta zero balance accounts #8830
1.32.2
Notice
This release fixes a bug in the Rosetta RPC handling of zero balance accounts.
This release is only needed for nodes that have Rosetta RPC enabled.
Fixes
- Fix: rosetta zero balance accounts #8833
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.32.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
1.32.1
Notice
This release of nearcore is a security release. It fixes a vulnerability in block outcome root validation and a vulnerability in total supply validation. These vulnerabilities, if exploited, could lead to state corruption and potentially loss of funds and other undesirable outcomes.
All node operators who updgraded to 1.32.0 must upgrade to 1.32.1 immediately.
This release contains no additional code or code changes beyond the patch that addresses the security vulnerability.
Fixes
- address a vulnerability in block outcome root validation
- address a vulnerability in total supply validation
CODE_COLOR: CODE_RED_MAINNET
RELEASE_VERSION: 1.32.1
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE
1.32.0-rc.2
Notice
This release of nearcore is a security release. It fixes a vulnerability in block outcome root validation and a vulnerability in total supply validation. These vulnerabilities, if exploited, could lead to state corruption and potentially loss of funds and other undesirable outcomes.
All testnet node operators must upgrade to 1.32.0-rc.2 immediately.
This release contains no additional code or code changes beyond the patch that addresses the security vulnerability.
Fixes
- address a vulnerability in block outcome root validation
- address a vulnerability in total supply validation
CODE_COLOR: CODE_RED_TESTNET
RELEASE_VERSION: 1.32.0-rc.2
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE
1.32.0
1.32.0
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.32.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Stabilize
ed25519_verify
feature: introducing a host function to verify ed25519 signatures efficiently.
#8098
NEP-364 - Added STUN-based self-discovery to make configuration of TIER1 network easier in the simplest validator setups.
#8472 - Stabilize zero balance account feature: allows account to not hold balance under certain conditions and enables a more smooth onboarding experience where users don't have to first acquire NEAR tokens to pay for the storage of their accounts.
#8378
NEP-448 - Stabilize meta transactions on the protocol level.
NEP-366,
Tracking issue #8075,
Stabilization #8601
Non-protocol Changes
-
/debug
page now has client_config linked. You can also check your client_config directly at /debug/client_config -
Added cold store loop - a background thread that copies data from hot to cold storage and a new json rpc endpoing - split_storage_info - that exposes debug info about the split storage.
#8432 -
ClientConfig
can be updated while the node is running.dyn_config.json
is no longer needed as its contents were merged intoconfig.json
.
#8240
Protocol Upgrade Voting
This release contains a protocol upgrade. Voting for upgrading to protocol version 59 will start on 2023-03-26 15:00:00 UTC
Database Upgrade
This release does not contain a database upgrade.
Config update note
This release does not contain any config changes that need to be applied manually.
Breaking changes in Near Lake Framework
Meta Transactions
The Near Protocol is soon releasing Meta transactions across its various chains. This update will introduce a new action type that enables third-party accounts to initiate and pay transaction fee on behalf of the account. A more in depth explanation can be found in NEP-366 and release schedule found below.
Release schedule
Testnet - 2023-03-06
Mainnet - 2023-03-20
Upgrading
In anticipation of this release, we have prepared new versions of the JavaScript and Rust Lake Frameworks. It is important that consumers of these libraries upgrade to the latest version of the libraries, failing to do so will result in unexpected behaviour or even errors when encountering the new action within your indexer.
With both libraries, upgrading requires installing the required versions, and ensuring you are handling the new Delegate type correctly. Required versions and relevant types for each library can be found below.
JavaScript
- Required version - near-lake-framework-js@^2.0.0
- Relevant types - Action['DelegateAction'], DelegateAction
Rust
- Required version - near-lake-framework-rs@>=0.7.0
- Relevant types - ActionView::Delegate, DelegateAction
1.32.0-rc.1
1.32.0-rc-1
CODE_COLOR: CODE_YELLOW_TESTNET
RELEASE_VERSION: 1.32.0-rc.1
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: FALSE
Protocol Changes
- Stabilize
ed25519_verify
feature: introducing a host function to verify ed25519 signatures efficiently.
#8098
NEP-364 - Added STUN-based self-discovery to make configuration of TIER1 network easier in the simplest validator setups.
#8472 - Stabilize zero balance account feature: allows account to not hold balance under certain conditions and enables a more smooth onboarding experience where users don't have to first acquire NEAR tokens to pay for the storage of their accounts.
#8378
NEP-448 - Stabilize meta transactions on the protocol level.
NEP-366,
Tracking issue #8075,
Stabilization #8601
Non-protocol Changes
-
/debug
page now has client_config linked. You can also check your client_config directly at /debug/client_config -
Added cold store loop - a background thread that copies data from hot to cold storage and a new json rpc endpoing - split_storage_info - that exposes debug info about the split storage.
#8432 -
ClientConfig
can be updated while the node is running.dyn_config.json
is no longer needed as its contents were merged intoconfig.json
.
#8240
Protocol Upgrade Voting
This release contains a protocol upgrade. Voting for upgrading to protocol version 59 will start on 2023-03-13 15:00:00 UTC
Database Upgrade
This release does not contain a database upgrade.
Config update note
This release does not contain any config changes that need to be applied manually.
Breaking changes in Near Lake Framework
Meta Transactions
The Near Protocol is soon releasing Meta transactions across its various chains. This update will introduce a new action type that enables third-party accounts to initiate and pay transaction fee on behalf of the account. A more in depth explanation can be found in NEP-366 and release schedule found below.
Release schedule
Testnet - 2023-03-06
Mainnet - 2023-03-20
Upgrading
In anticipation of this release, we have prepared new versions of the JavaScript and Rust Lake Frameworks. It is important that consumers of these libraries upgrade to the latest version of the libraries, failing to do so will result in unexpected behaviour or even errors when encountering the new action within your indexer.
With both libraries, upgrading requires installing the required versions, and ensuring you are handling the new Delegate type correctly. Required versions and relevant types for each library can be found below.
JavaScript
- Required version - near-lake-framework-js@^2.0.0
- Relevant types - Action['DelegateAction'], DelegateAction
Rust
- Required version - near-lake-framework-rs@>=0.7.0
- Relevant types - ActionView::Delegate, DelegateAction
1.31.1
Notice
This release of nearcore is a security release. It fixes a vulnerability in block outcome root validation and a vulnerability in total supply validation. These vulnerabilities, if exploited, could lead to state corruption and potentially loss of funds and other undesirable outcomes.
Prior to publishing this release, over 2/3 of mainnet block producers silently deployed the same patch that is incorporated into this release, thus securing mainnet from attacks related to the vulnerability.
It is strongly recommended that all node operators who have not directly patched their nodes do so immediately.
This release contains no additional code or code changes beyond the patch that addresses the security vulnerability.
Fixes
- address a vulnerability in block outcome root validation
- address a vulnerability in total supply validation
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.31.1
PROTOCOL_UPGRADE: FALSE
DATABASE_UPGRADE: FALSE
SECURITY_UPGRADE: TRUE
1.31.0
Protocol Changes
- An empty protocol upgrade to facilitate migration of the network interfaces in the next version.
Non-protocol changes
- Enable TIER1 network. Participants of the BFT consensus (block & chunk producers) now can establish direct TIER1 connections
between each other, which will optimize the communication latency and minimize the number of dropped chunks.
To configure this feature, see advanced_configuration/networking. #8141, #8085, #7759 /status
response has now two more fields:node_public_key
and
validator_public_key
. Thenode_key
field is now deprecated and should not
be used since it confusingly holds validator key. #7828- Added
near_node_protocol_upgrade_voting_start
Prometheus metric whose value
is timestamp when voting for the next protocol version starts. #7877 - neard cmd can now verify proofs from JSON files. #7840
- In storage configuration, the value
trie_cache_capacities
now is no longer
a hard limit but instead sets a memory consumption limit. For large trie nodes,
the limits are close to equivalent. For small values, there can now fit more
in the cache than previously. #7749 - New options
store.trie_cache
andstore.view_trie_cache
inconfig.json
to set limits on the trie cache. Deprecates the never announced
store.trie_cache_capacities
option which was mentioned in previous change. #7578 - New option
store.background_migration_threads
inconfig.json
. Defines
number of threads to execute background migrations of storage. Currently used
for flat storage migration. Set to 8 by default, can be reduced if it slows down
block processing too much or increased if you want to speed up migration. #8088, - Tracing of work across actix workers within a process: #7866, #7819, #7773.
- Scope of collected tracing information can be configured at run-time: #7701.
- Attach node's
chain_id
,node_id
, andaccount_id
values to tracing
information: #7711. - Change exporter of tracing information from
opentelemetry-jaeger
to
opentelemetry-otlp
: #7563. - Tracing of requests across processes: #8004.
Protocol Upgrade Voting
Voting for upgrading to protocol version 58
will start on 2023-02-13 15:00:00 UTC
Database Upgrade
The release needs a database upgrade, which takes about 1 minute for an RPC node, and about 2 hour and 10 minutes for an Archival node.
Config update note
Please note that you may need to update config.json
file.
Please ensure that config.json
doesn't mention fields db_migration_snapshot_path
or use_db_migration_snapshot
.
Recommended to enable DB-migration snapshots like this:
"store": {
"migration_snapshot": true
}
CODE_COLOR: CODE_YELLOW_MAINNET
RELEASE_VERSION: 1.31.0
PROTOCOL_UPGRADE: TRUE
DATABASE_UPGRADE: TRUE
SECURITY_UPGRADE: FALSE