This repo is forked from tendermint. Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language - and securely replicates it on many machines.
For protocol details, see the specification.
We implement several key features based on the Tendermint fork:
- State Sync. State sync is a way to help newly-joined users sync the latest status of the binance chain. It syncs the latest sync-able peer's status so that fullnode user (who wants to catch up with chain as soon as possible with a cost that discards all historical blocks locally) doesn't need sync from block height 0. Refer to BEP18 for more details.
- Hot Sync. A new block sync protocol to reduce network and CPU resources for full node. Refer to this PR for more details.
- Capacity improvement. Parallelization, dedicated cache, priority lock and many other program skills are applied to improvement the capacity of BNB Beacon Chain.
To report a security vulnerability, see our bug bounty program
For examples of the kinds of bugs we're looking for, see SECURITY.md
Requirement | Notes |
---|---|
Go version | Go1.11.4 or higher |
See the install instructions
Please abide by the Code of Conduct in all interactions, and the contributing guidelines when submitting code.
To learn more about the structure of the software, watch the Developer Sessions and read some Architectural Decision Records.
Learn more by reading the code and comparing it to the specification.
For details about the blockchain data structures and the p2p protocols, see the Tendermint specification.
For details on using the software, see the documentation which is also hosted at: https://tendermint.com/docs/
Benchmarking and monitoring is provided by tm-bench
and tm-monitor
, respectively.
Their code is found here and these binaries need to be built seperately.
Additional documentation is found here.