Skip to content

Releases: maticnetwork/bor

v0.3.2-beta

15 Dec 09:12
7217f79
Compare
Choose a tag to compare
v0.3.2-beta Pre-release
Pre-release

Bor v0.3.2-beta is a small patch release for the nodes running v0.3.1-mumbai on the Mumbai Testnet.

Change log

  • Revert addition of actual miner/author address at the RPC layer for eth_getBlockByNumber calls. It will now return “0x00” as the miner of the block as it used to do earlier. You can get the miner address of a block using bor_getAuthor call. This revert was done because started breaking downstream tooling/applications which rely on the equivalence of COINBASE opcode and the miner field in response to the RPC request. The underlying miner value of the block (COINBASE) was still “0x00” and only the RPC layer had been changed earlier.
  • Updates and improvement in the description and documentation of the flags in new-cli along with their default values in the help command.
  • Pruning has been introduced in the new-cli. The internal mechanism of pruning will work in the same way as it used to with the previous versions. The command snapshot prune-state will be available as a subcommand of the bor binary and will accept relevant flags (e.g. --datadir). More details can be found here.

v0.3.1-mumbai

06 Dec 07:03
Compare
Choose a tag to compare
v0.3.1-mumbai Pre-release
Pre-release

Release notes:

  1. Decrease sprint length from 64 to 16
  2. Decrease block time from 5sec to 2sec
  3. Increase baseFeeChangeDenominator from 8 to 16
  4. GRPC integration for bor and heimdall
  5. Bug fixes and improvements

v0.3.0

14 Dec 17:03
d9e5e20
Compare
Choose a tag to compare

We have released a new version of Bor and Heimdall - v0.3.0 with an incremented minor version. As explained in the previous post, we have added a new CLI in Bor and have also changed the way Bor and Heimdall are deployed to follow DevOps best practices and make it easier to manage the processes. This upgrade is backwards incompatible. Please ensure that all Mumbai nodes are upgraded soon, before the release of the next version v0.3.1 that will contain a hardfork which is scheduled to kick in on 7th Dec 2022 (tentative).

Important Note: For our next releases, v0.3.1 and onward, upgrading to version 0.3.0 is necessary.

Changes from deployment perspective

  1. Provide a new approach to install bor binary with a shell script.
  2. Recommended default bor home is changed from ~/.bor to /var/lib/bor.
  3. bor/start.sh will be retired. We recommend moving flags from start.sh to /var/lib/bor/config.toml , which will be the single config file for all bor configurations. Example config toml files could be found here.
  4. A new user named bor will be created during package installation if it doesn’t exist. This user will be running bor service.
  5. Move bor.service file from /etc/systemd/system to /lib/systemd/system
  6. CLI flag changes. For validators who wants to continue setting bor configs through CLI, see appendix for detailed changes.
  7. Bor profiles can be used with new hosts only, please note existing installations will not be able to take advantages of the profiles.
  8. Bor packaging installation is now simplified to sudo dpkg -i bor-$version-$arch.deb
  9. Bor profile installation for new hosts is accomplished by running sudo dpkg -i bor-$network-$nodetype-config_$version-$arch.deb

Detailed changelog

  • In v0.2.x, bor and bootnode are two separate binaries. In v0.3.0, bootnode will become a subcommand of bor.
  • bor init is removed in v0.3.0. Instead, on starting, bor will automatically initialize a bor home directory if not found.
  • bor ’s default behavior (running bor client) is moved to bor server as a subcommand.
  • GRPC: On starting bor using the server subcommand, it will start a GRPC server on a separate port which will be used for cli related communication. Here, the user using the cli, acts as a client and interacts with the node using GRPC. It is used for operations like adding and removing peers, getting status of node (sync status, forks, chain head, etc), getting debug and pprof traces, etc.
  • Validator must provide its public address to flag --miner.etherbase in order to mint blocks.
  • The format of toml passed to --config is changed. Notice that, in v0.2.x, only P2P related info like static or trusted nodes were mentioned in the toml file. With v0.3.x, you can pass the whole cli config using this flag. For more details and examples, see this.
  • --networkid is replaced by --chain, whose value is either mainnet or mumbai. The flag also accepts the path to a custom genesis file, e.g. --chain path/to/custom_genesis.json.
  • --verbosity is replaced by --log-level and instead of numeric values, string denoting the type of log should be passed.
  • --whitelist is now changed to --requiredblocks
  • pprof options are merged to a new component, grpc. e.g. --pprof.addr 0.0.0.0 and --pprof.port 1234 should be passed as one argument to flag --grpc.addr 0.0.0.0:1234. If not set, default value will be 0.0.0.0:3131.
  • --metrics.addr and --metrics.port are merged to --metrics.prometheus-addr. e.g. --metrics.addr 0.0.0.0 and --metics.port 1234 should be passed as one argument to flag --metrics.prometheus-addr 0.0.0.0:1234 . Notice that, in v0.2.x, --metrics.addr and --metrics.port , if not explicitly set, the metrics will be exported on pprof.addr:pprof.port. If no flag is provided, the prometheus endpoint is registered on a default host and port.
  • A new flag named disable-bor-wallet is introduced which disables the personal wallet endpoints in the node. This prevents misuse of the endpoints if exposed. It will only register and use the key-store for mining blocks (if mining is enabled through --unlock and --miner.etherbase). It’s set to true by default.
  • borTraceEnabled added in TraceConfig. When set true, it will return state-sync traces for a block if present. Usage :
    debug.traceBlockByNumber("0x20FE900",{"borTraceEnabled": true})
  • The miner.gaslimit value has been updated for mumbai nodes from 20M to 30M.

Full Changelog: v0.2.17...v0.3.0-beta

v0.3.0-beta

25 Nov 16:33
3e71609
Compare
Choose a tag to compare
v0.3.0-beta Pre-release
Pre-release

We have released a new version of Bor and Heimdall - v0.3.0 with an incremented minor version. As explained in the previous post, we have added a new CLI in Bor and have also changed the way Bor and Heimdall are deployed to follow DevOps best practices and make it easier to manage the processes. This upgrade is backwards incompatible. Please ensure that all Mumbai nodes are upgraded soon, before the release of the next version v0.3.1 that will contain a hardfork which is scheduled to kick in on 7th Dec 2022 (tentative).

Important Note: For our next releases, v0.3.1 and onward, upgrading to version 0.3.0 is necessary.

Changes from deployment perspective

  1. Provide a new approach to install bor binary with a shell script.
  2. Recommended default bor home is changed from ~/.bor to /var/lib/bor.
  3. bor/start.sh will be retired. We recommend moving flags from start.sh to /var/lib/bor/config.toml , which will be the single config file for all bor configurations. Example config toml files could be found here.
  4. A new user named bor will be created during package installation if it doesn’t exist. This user will be running bor service.
  5. Move bor.service file from /etc/systemd/system to /lib/systemd/system
  6. CLI flag changes. For validators who wants to continue setting bor configs through CLI, see appendix for detailed changes.
  7. Bor profiles can be used with new hosts only, please note existing installations will not be able to take advantages of the profiles.
  8. Bor packaging installation is now simplified to sudo dpkg -i bor-$version-$arch.deb
  9. Bor profile installation for new hosts is accomplished by running sudo dpkg -i bor-$network-$nodetype-config_$version-$arch.deb

Detailed changelog

  • In v0.2.x, bor and bootnode are two separate binaries. In v0.3.0, bootnode will become a subcommand of bor.
  • bor init is removed in v0.3.0. Instead, on starting, bor will automatically initialize a bor home directory if not found.
  • bor ’s default behavior (running bor client) is moved to bor server as a subcommand.
  • GRPC: On starting bor using the server subcommand, it will start a GRPC server on a separate port which will be used for cli related communication. Here, the user using the cli, acts as a client and interacts with the node using GRPC. It is used for operations like adding and removing peers, getting status of node (sync status, forks, chain head, etc), getting debug and pprof traces, etc.
  • Validator must provide its public address to flag --miner.etherbase in order to mint blocks.
  • The format of toml passed to --config is changed. Notice that, in v0.2.x, only P2P related info like static or trusted nodes were mentioned in the toml file. With v0.3.x, you can pass the whole cli config using this flag. For more details and examples, see this.
  • --networkid is replaced by --chain, whose value is either mainnet or mumbai. The flag also accepts the path to a custom genesis file, e.g. --chain path/to/custom_genesis.json.
  • --verbosity is replaced by --log-level and instead of numeric values, string denoting the type of log should be passed.
  • --whitelist is now changed to --requiredblocks
  • pprof options are merged to a new component, grpc. e.g. --pprof.addr 0.0.0.0 and --pprof.port 1234 should be passed as one argument to flag --grpc.addr 0.0.0.0:1234. If not set, default value will be 0.0.0.0:3131.
  • --metrics.addr and --metrics.port are merged to --metrics.prometheus-addr. e.g. --metrics.addr 0.0.0.0 and --metics.port 1234 should be passed as one argument to flag --metrics.prometheus-addr 0.0.0.0:1234 . Notice that, in v0.2.x, --metrics.addr and --metrics.port , if not explicitly set, the metrics will be exported on pprof.addr:pprof.port. If no flag is provided, the prometheus endpoint is registered on a default host and port.
  • A new flag named disable-bor-wallet is introduced which disables the personal wallet endpoints in the node. This prevents misuse of the endpoints if exposed. It will only register and use the key-store for mining blocks (if mining is enabled through --unlock and --miner.etherbase). It’s set to true by default.
  • borTraceEnabled added in TraceConfig. When set true, it will return state-sync traces for a block if present. Usage :
    debug.traceBlockByNumber("0x20FE900",{"borTraceEnabled": true})
  • The miner.gaslimit value has been updated for mumbai nodes from 20M to 30M.

Full Changelog: v0.2.17...v0.3.0-beta

v0.2.17

30 Aug 12:45
Compare
Choose a tag to compare
  • Prevents the nodes from accidentally migrating to snap sync mode. Bor does not support snap sync mode, yet and hence it’s hard to recover the nodes if they go into this mode. (#495)
  • Regression fix for the whitelist/eth.requiredblocksflag and some nomenclature changes according to the latest geth release. (#497, #505)

v0.3.0-beta5

23 Aug 16:02
Compare
Choose a tag to compare
v0.3.0-beta5 Pre-release
Pre-release

Changelog

  • 367f43b fix: whitelist/requiredblocks regression (#496)
  • 54719fb Makefile: copy bor binary to go bin (#469)
  • 8c97faa internal/cli, cmd/geth: replaced package naoina/toml with BurntSushi/toml and updated config name-tags (#486)
  • 2aacbde eth, cli: prevent snap sync mode migration - v0.3.x (#494)
  • 0b28230 updated config.toml in builder/files, added all fields and commented those which are not used (#491)
  • 10c1ff2 internal/cli: add support for removedb (#478)

v0.3.0-beta4

04 Aug 22:03
Compare
Choose a tag to compare
v0.3.0-beta4 Pre-release
Pre-release

Changelog

v0.2.16

20 May 10:29
f083705
Compare
Choose a tag to compare

Changelog

v0.2.16-beta2

26 Apr 16:39
Compare
Choose a tag to compare
v0.2.16-beta2 Pre-release
Pre-release

Changelog

v0.2.16-beta1

26 Apr 15:10
Compare
Choose a tag to compare
v0.2.16-beta1 Pre-release
Pre-release

Changelog