Hello All,

New versions of Bor v1.0.4 and Heimdall v1.0.1 for Mainnet have been released. This includes Aalborg hardfork on Heimdall which is scheduled for Heimdall block number 15,950,759. Since the block time in Heimdall depends on various factors, based on the current average block time, the hardfork might occur around October 11th, 2023. However, it is recommended to have all nodes upgraded before October 9th, 2023. With this hardfork, the “Milestones” feature will be activated which offers faster deterministic finality.

For more information please refer https://forum.polygon.technology/t/pip-11-deterministic-finality-via-milestones/11918

Instructions to Upgrade

Please upgrade Bor to v1.0.4 before upgrading Heimdall to v1.0.1 on all nodes (validator, sentry/full nodes and archive nodes).

Steps for Upgrading Bor

  1. Stop bor service

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

    # Replace the node type
    curl -L <https://raw.githubusercontent.com/maticnetwork/install/main/bor.sh> | bash -s -- v1.0.4 mainnet <node_type>
    
  3. Check bor version

    /usr/bin/bor version
    
    # It should print 
    # 1.0.4
    
  4. Restart bor service

    sudo service bor start
    

Additional Notes:

Once you upgrade your nodes, expect to see a few error/warning logs until the hard fork kicks in on heimdall network (at block #15,950,759). Below are some common errors which might be visible in bor. Note that these errors are from a background process and will not affect the general operations of node like syncing, rpc calls, etc.

  1. Retrying to fetch milestone. Bor queries heimdall in a background process to fetch the latest milestones but will fail to do so until the hard fork.

    INFO [09-20|03:17:25.102] Retrying again in 5 seconds to fetch data from Heimdall path=/milestone/latest attempt=1
    
  2. Error while trying to fetch milestone from heimdall. As heimdall isn’t producing milestones (until HF), the API call to fetch milestone will respond with a 404. If heimdall is not upgraded, it will return status code 500 as no such endpoint is registered.

    WARN [09-20|03:17:25.102] an error while trying fetching from Heimdall attempt=1 error="error while fetching data from Heimdall: response code 404"
    
  3. With no milestone in heimdall, bor will fail to whitelist them with the below log.

    ERROR [09-21|08:11:22.744] Failed to fetch latest milestone for whitelisting err="context deadline exceeded"
    
  4. As milestone behaves similar to checkpoint, it also has a concept of acknowledgment. Bor also tries to fetch the no-ack messages from heimdall for some operations but will also fail to do so until HF. Errors similar to the above error will be visible for no-ack-milestone as well.

Steps for Upgrading Heimdall

Before proceeding, please create a backup of your heimdall config file whose default location is: /var/lib/heimdall/config/config.toml. This might differ if you have setup heimdall at a different location.

  1. Stop heimdalld service

    sudo service heimdalld stop