Skip to main content

Bor 1.3.7 and Cancun hardfork

caution

Please perform the Heimdall update first with version 1.0.7-bone-beta. After completing the Heimdall update, proceed with the Bor update.

Bor’s latest version v1.3.7-bone-beta-2 has been released, and Cancun HF has been scheduled for Block Number 4697000, brings together critical updates and improvements. This release focuses on enhanced performance, security, and blockchain management, incorporating essential upstream merges from Geth. It is a key update for maintaining node stability and efficiency. Ensure that your nodes are updated to v1.3.7-bone-beta-2 before this hard fork to maintain compatibility and stability.

Major Features and Enhancements:

  1. Geth Upstream Merges: Regularly integrated updates from Geth (up to v1.13.6), ensuring compatibility with the latest Ethereum features and fixes, such as improved block propagation, peering issues, and optimized EVM execution.
  2. POS Bridge Integration: Multiple updates related to the POS (Proof-of-Stake) bridge, enhancing functionality and stability for cross-chain operations.
  3. Deterministic Fork Choice: Made the legacy Geth fork choice deterministic, enhancing consistency in blockchain state selection.
  4. Gas Price and Performance Improvements:
    • Enforced minimum gas price (1 gwei) across all networks, improving transaction reliability.
    • Optimized gas fee handling and EVM execution for better performance.
    • Added caching flags (FilterLogCacheSize) to optimize block log management.
  5. Pruning and Disk Space Management:
    • Introduced ancient block pruning , allowing historical block data to be removed, freeing disk space but limiting RPC queries for older blocks.
    • Fixed bugs related to pruning and optimized the handling of block headers, bodies, and receipts.
  6. Security Enhancements: Addressed security vulnerabilities by frequently updating dependencies, fixing issues like concurrent map writes, and improving error handling and logging mechanisms.
  7. Improved CLI and Command Help: Enhanced the Bor command-line interface (bor server --help) and provided better documentation and command descriptions for ease of use.
  8. Blockchain Hardfork Consistency:
    • Integrated configurations for Cancun hardfork.
    • Removed and re-added precompile components as needed.
  9. Codebase and CI/CD Enhancements:
    • Regularly updated build dependencies (including gnark-crypto).
    • Improved continuous integration workflows, including Go installation for CodeQL.
    • Enhanced testing frameworks with unit tests for config flags.
  10. Transaction Handling and State Management:
    • Enabled unprotected transactions.
    • Fixed issues with GetTransactionReceiptsByBlock and other state API methods.
    • Enhanced peer validation during block downloads and bypassed peer checks for distant peers.
  11. Miscellaneous Changes:
    • Fixed numerous typos, corrected bugs, and improved comments throughout the codebase.
    • Added peer statistics tracking (debug.peerStats).
    • Improved support for Docker integration and testing environments.

Upgrade instructions

  1. Stop the Bor Service

    sudo service bor stop
  2. Install the New Version of Bor

    Replace <node_type> with your node type (sentry, validator, or archive).

    curl -L https://raw.githubusercontent.com/shibaone/install/puppynet/bor.sh | bash -s -- v1.3.7-bone-beta-2 puppynet <node_type>
  3. Verify the Installation

    Check that the correct version is installed:

    /usr/bin/bor version

    The output should be v1.3.7-bone-beta.

  4. Change Bor config for gas price —/var/lib/bor/config.toml

    vi /var/lib/bor/config.toml
    Uncomment and change following values :-

    #txpool section
    pricelimit = 1000000000

    #miner section
    gasprice = "1000000000"

    #gpo section
    ignoreprice = "1000000000"
  5. ** FOR RPC ** - Change Bor config for txlookuplimit - /var/lib/bor/config.toml

    vi /var/lib/bor/config.toml

    Uncomment:-

    #[cache]
    #txlookuplimit = 0

    [cache]
    # cache = 4096
    # gc = 25
    # snapshot = 10
    # database = 50
    # trie = 15
    # journal = "triecache"
    # rejournal = "1h0m0s"
    # noprefetch = false
    # preimages = false
    txlookuplimit = 0
    # timeout = "1h0m0s"
    # fdlimit = 0
  6. Update Bor Ethstat URL: Open and edit /var/lib/bor/config.toml

    vi /var/lib/bor/config.toml
    ethstats = "<node>:[email protected]"

    - New URL: https://puppynet-bor-ethstat.shib.io/
    - Secret : testnet
  7. Restart the Bor Service

    sudo systemctl daemon-reload
    sudo service bor start
    sudo journalctl -u bor.service -f

  8. Confirm Hardfork Block Details

    Verify the Hardfork block number:

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

    The output should include "4697000" : ""