Official repository for the Polygon Blockchain
See the codeBor is the official Golang implementation of the Polygon PoS blockchain. It is a fork of geth and is EVM compatible (upto London fork).
The easiest way to get started with bor is to install the packages using the command below. Please take a look at the releases section to find the latest stable version of bor.
curl -L https://raw.githubusercontent.com/0xPolygon/install/main/bor.sh | bash -s -- v2.0.0 <network> <node_type>
The network accepts mainnet, or amoy and the node type accepts validator or sentry or archive. The installation script does the following things:
bor./usr/bin/bor./var/lib/bor and use it as the home dir.bor at /lib/systemd/system/bor.service which starts bor using the config file as bor user.The releases supports both the networks i.e. Polygon Mainnet, and Amoy (Testnet) unless explicitly specified. Before the stable release for mainnet, pre-releases will be available marked with beta tag for deploying on Amoy (testnet). On sufficient testing, stable release for mainnet will be announced with a forum post.
make bor
packaging folder.
./build/bin/bor server --config ./packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml
make all
make test && make test-integration
Post v0.3.0 release, bor uses a new command line interface (cli). The new-cli (located at internal/cli) has been built while keeping the flag usage similar to old-cli (located at cmd/geth) with a few notable changes. Please refer to docs section for the flag usage guide and example.
trace_*)Bor includes a Parity-compatible trace namespace (trace_block, trace_transaction,
trace_replayTransaction, trace_replayBlockTransactions, trace_call,
trace_callMany). These methods are disabled by default because they are
expensive and require an archive node.
Enable with the --rpc.enabletrace flag (or enabletrace = true under [jsonrpc] in TOML):
bor server --config ./config.toml --rpc.enabletrace
Or in config.toml:
[jsonrpc]
enabletrace = true
Requirements:
Archive node (--gcmode archive)
Sufficient HTTP write timeout for deep blocks if needed — the trace methods themselves already use a 60s per-phase budget, while the HTTP response write timeout defaults to 30s. It is configurable via TOML only:
[jsonrpc.timeouts]
write = "60s"
Known limitations vs Polygon Erigon:
trace_call/trace_callMany still require the simulated sender to pass
Bor's upfront gas balance check; once funded, gas debit/refund is suppressed.trace_block omits the state-sync pseudo-transaction for pre-Madhugiri blocks
(< 80,084,800 on mainnet); post-Madhugiri blocks are fully supported.vmTrace for a post-Madhugiri state-sync transaction reports an empty ops list
(state-sync events execute outside the regular EVM opcode flow).For the latest canonical TOML config options, refer to:
Thank you for considering helping out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes! If you'd like to contribute to bor, please fork, fix, commit, and send a pull request for the maintainers to review and merge into the main code base.
From the outset, we defined some guidelines to ensure new contributions only ever enhance the project:
make test and to run integration tests, run make test-integration.develop branch.Minimum:
Recommended:
The Bor library (i.e. all code outside of the cmd directory) is licensed under the
GNU Lesser General Public License v3.0,
also included in our repository in the COPYING.LESSER file.
The Bor binaries (i.e. all code inside of the cmd directory) are licensed under the
GNU General Public License v3.0, also
included in our repository in the COPYING file.
Join Polygon community – share your ideas or just say hi over on Polygon Community Discord or on Polygon R&D Discord.
279 followers · starred Mar 2021
44 followers · starred Apr 2022
373 followers · starred Jul 2024
330 followers · starred Dec 2021
Official repository for the Polygon Blockchain
See the codeBor is the official Golang implementation of the Polygon PoS blockchain. It is a fork of geth and is EVM compatible (upto London fork).
The easiest way to get started with bor is to install the packages using the command below. Please take a look at the releases section to find the latest stable version of bor.
curl -L https://raw.githubusercontent.com/0xPolygon/install/main/bor.sh | bash -s -- v2.0.0 <network> <node_type>
The network accepts mainnet, or amoy and the node type accepts validator or sentry or archive. The installation script does the following things:
bor./usr/bin/bor./var/lib/bor and use it as the home dir.bor at /lib/systemd/system/bor.service which starts bor using the config file as bor user.The releases supports both the networks i.e. Polygon Mainnet, and Amoy (Testnet) unless explicitly specified. Before the stable release for mainnet, pre-releases will be available marked with beta tag for deploying on Amoy (testnet). On sufficient testing, stable release for mainnet will be announced with a forum post.
make bor
packaging folder.
./build/bin/bor server --config ./packaging/templates/mainnet-v1/sentry/sentry/bor/config.toml
make all
make test && make test-integration
Post v0.3.0 release, bor uses a new command line interface (cli). The new-cli (located at internal/cli) has been built while keeping the flag usage similar to old-cli (located at cmd/geth) with a few notable changes. Please refer to docs section for the flag usage guide and example.
trace_*)Bor includes a Parity-compatible trace namespace (trace_block, trace_transaction,
trace_replayTransaction, trace_replayBlockTransactions, trace_call,
trace_callMany). These methods are disabled by default because they are
expensive and require an archive node.
Enable with the --rpc.enabletrace flag (or enabletrace = true under [jsonrpc] in TOML):
bor server --config ./config.toml --rpc.enabletrace
Or in config.toml:
[jsonrpc]
enabletrace = true
Requirements:
Archive node (--gcmode archive)
Sufficient HTTP write timeout for deep blocks if needed — the trace methods themselves already use a 60s per-phase budget, while the HTTP response write timeout defaults to 30s. It is configurable via TOML only:
[jsonrpc.timeouts]
write = "60s"
Known limitations vs Polygon Erigon:
trace_call/trace_callMany still require the simulated sender to pass
Bor's upfront gas balance check; once funded, gas debit/refund is suppressed.trace_block omits the state-sync pseudo-transaction for pre-Madhugiri blocks
(< 80,084,800 on mainnet); post-Madhugiri blocks are fully supported.vmTrace for a post-Madhugiri state-sync transaction reports an empty ops list
(state-sync events execute outside the regular EVM opcode flow).For the latest canonical TOML config options, refer to:
Thank you for considering helping out with the source code! We welcome contributions from anyone on the internet, and are grateful for even the smallest of fixes! If you'd like to contribute to bor, please fork, fix, commit, and send a pull request for the maintainers to review and merge into the main code base.
From the outset, we defined some guidelines to ensure new contributions only ever enhance the project:
make test and to run integration tests, run make test-integration.develop branch.Minimum:
Recommended:
The Bor library (i.e. all code outside of the cmd directory) is licensed under the
GNU Lesser General Public License v3.0,
also included in our repository in the COPYING.LESSER file.
The Bor binaries (i.e. all code inside of the cmd directory) are licensed under the
GNU General Public License v3.0, also
included in our repository in the COPYING file.
Join Polygon community – share your ideas or just say hi over on Polygon Community Discord or on Polygon R&D Discord.
279 followers · starred Mar 2021
44 followers · starred Apr 2022
373 followers · starred Jul 2024
330 followers · starred Dec 2021