Bone-beta-2

Hardforks

This release contains a new version of Bor - v1.1.0-bone-beta-2 a set of 3 hardforks: Delhi HF, Indore HF, and Shanghai HF. The hardfork will be expected on 3rd APR 2024 around 3 PM IST.

From the block number 1891840 onwards Delhi HF, Indore HF, Shanghai HF will be activated introducing major improvements, State sync Confirmations and Ethereum Shanghai features.

Here is a short description of what these forks mean to the network:

Delhi Hardfork

The Delhi hardfork acts on two different fronts: it reduces the Sprint length of the blockchain and proposes a change in the Base Fee Change Denominator. Both actions aim at improving the network UX.

Reducing the Sprint length diminishes the impact of reorgs, which happen when more than one chain exists in the blockchain at the same time. This is usually a matter of concern as it might cause vulnerabilities and worsen the network experience. The solution proposed in this hardfork is to decrease the sprint length from 64 to 16 blocks, which means that the block producers produce blocks continuously for a much lower time, helping in reducing the frequency and depth of reorgs.

The change in the Base Fee Charge Denominator from the value of 8 to 16 acts as a solution to the gas price spikes due to the rapid increase in the base fee. A user’s transaction becomes ineligible due to the high gas price and when the baseFee starts climbing, the transaction is stuck in pending till the baseFee comes back down and the transaction becomes eligible.

Indore Hardfork

Indore Hardfork introduces a Time-Based StateSync Confirmations Delay parameter. This feature was created to fix the statesync confirmations issue in Bor, by defining the number of seconds subtracted from the current block’s timestamp to calculate the value of to, while fetching the statesync events from Heimdall.

Instead of taking the timestamp of a block in the past, the timestamp of the current block is taken, subtracting 128 seconds from it. This way, the value of to will remain consistent across the network (as it's now self-contained in the chain itself), even in the case of a reorg. The current block will be the one that is imported, therefore returning the same value of to, resulting in the same statesync transactions returned from Heimdall.

Shanghai Hardfork

The introduction of the Shanghai hardfork targets the activation of the Ethereum Shanghai upgrade features, enabling the following Ethereum Improvement Proposals: EIP-3651: Warm COINBASE, EIP-3855: PUSH0 instruction, EIP-3860: Limit and meter initcode and EIP-6049: Deprecate SELFDESTRUCT.

It also introduces more visibility of state-sync transactions, by adding event emission in the state-receiver genesis contract on the PoS network which can give information on the success of the execution of the stateIDs in a state-sync transaction.

Upgrade instructions

  1. Stop bor service

    sudo service bor stop
  2. Install Bor with a version tag, network name (puppynet), and node type (sentry, validator, or archive).

    # Replace the node type
    curl -L <https://raw.githubusercontent.com/shibaone/install/puppynet/bor.sh> | bash -s -- v1.1.0-bone-beta-2 puppynet <node_type>
  3. Check bor version

    /usr/bin/bor version
    # It should print# v1.1.0-bone-beta-2
  4. Check Hardfork Block details

cd /var/lib/bor
bor attach bor.ipc
admin.nodeInfo.protocols.eth.config.bor

# It should print "1891840**" : ""**
  1. Restart bor service

sudo service bor start sudo journalctl -u bor.service -f

Last updated