// the find
bnb-chain/bsc
A BNB Smart Chain client based on the go-ethereum fork
The official Go client for BNB Smart Chain, a go-ethereum fork that swaps Ethereum's consensus for Parlia (Proof of Staked Authority) — 21 elected validators, faster blocks, cheaper gas. If you need to run a BSC node, build BSC tooling, or study how a high-throughput EVM chain is implemented, this is what you're reading.
Full EVM compatibility is inherited essentially for free from go-ethereum — existing Solidity contracts, ABI tooling, JSON-RPC clients, and hardhat/foundry workflows work without changes. The release scheme (stable / feature / preview tracks with explicit semver) is cleaner than most blockchain projects, which tend to treat every release as a surprise. The CI setup is solid: separate workflows for unit tests, integration tests, EVM spec tests, linting, and Docker release mean regressions get caught at the right layer. The Parlia consensus engine is well-documented in the README and the system contracts design — staking, slashing, and validator rotation are explicit rather than buried.
Twenty-one validators is the number that does all the work here, and Binance's staking dominance means 'elected' is doing a lot of euphemistic lifting — this is closer to a permissioned chain than the README implies. The hardware bar for a mainnet full node is severe: 3TB NVMe SSD, 64GB RAM, 16 cores — and the snapshot download is the only practical way to start, which means trusting a third-party dataset. The docs recommend running with `--tries-verify-mode none` for performance, which skips state verification; that flag should come with a much louder warning than it gets. As a perpetual go-ethereum fork, BSC has a track record of lagging on upstream security patches — the fork overhead is real operational debt for the maintainers and a risk for node operators who stay on older releases.