Epoch
An epoch is a unit of time when validators of the network remain constant. It is measured in blocks:
- Both
testnet
andmainnet
have an epoch duration of 43,200 blocks. Ideally epochs last about 12 hours, since blocks are created every second (in reality, they take slightly longer to be created). - You can view this setting by querying the
protocol_config
RPC endpoint and searching forepoch_length
.
Note: Nodes garbage collect blocks after 5 epochs (~2.5 days) unless they are archival nodes.
Example:
- JSON
- HTTPie
{
"jsonrpc": "2.0",
"id": "dontcare",
"method": "EXPERIMENTAL_protocol_config",
"params": {
"finality": "final"
}
}
http post https://rpc.testnet.near.org jsonrpc=2.0 id=dontcare method=EXPERIMENTAL_protocol_config \
params:='{
"finality": "final"
}'
Example Response:
{
"jsonrpc": "2.0",
"result": {
"protocol_version": 44,
"genesis_time": "2020-07-21T16:55:51.591948Z",
"chain_id": "mainnet",
"genesis_height": 9820210,
"num_block_producer_seats": 100,
"num_block_producer_seats_per_shard": [
100
],
"avg_hidden_validator_seats_per_shard": [
0
],
"dynamic_resharding": false,
"protocol_upgrade_stake_threshold": [
4,
5
],
"epoch_length": 43200,
"gas_limit": 1000000000000000,
"min_gas_price": "1000000000",
"max_gas_price": "10000000000000000000000",
"block_producer_kickout_threshold": 90,
"chunk_producer_kickout_threshold": 90,
// ---- snip ----
}
You can learn more about how epochs are used to manage network validation in the Validator FAQ.
Got a question?