Skip to content

j75689/bnc-cosmos-sdk

This branch is 1 commit ahead of, 11 commits behind bnb-chain/bnc-cosmos-sdk:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d4116b3 · Mar 27, 2024
Oct 11, 2018
Dec 21, 2022
Apr 20, 2022
Dec 21, 2022
Jul 6, 2023
Nov 21, 2022
Sep 13, 2018
Jun 5, 2023
Jan 29, 2019
Sep 19, 2018
Dec 21, 2022
Dec 21, 2022
Apr 20, 2022
Jul 6, 2023
Apr 20, 2022
Oct 11, 2018
Jul 6, 2023
Sep 19, 2018
Mar 27, 2024
Jan 18, 2018
Apr 10, 2018
Apr 8, 2019
Oct 23, 2018
Jul 7, 2023
Jan 29, 2018
Aug 23, 2018
Jul 6, 2023
May 18, 2022
Dec 21, 2022
May 18, 2022
Nov 7, 2019
Jun 14, 2022
Jul 9, 2018
Jan 28, 2018
Jun 15, 2018
Jul 6, 2023
Jul 6, 2023

Repository files navigation

Why we create this repo

This repo is forked from cosmos-sdk.

The BNB Beacon Chain leverages cosmos-sdk to fast build a dApp running with tendermint. As the app becomes more and more complex, the original cosmos-sdk can hardly fit all requirements. We changed a lot to the copied sdk, but it makes the future integration harder and harder. So we decided to fork cosmos-sdk and add features onto it.

Key Features

  1. Native Cross Chain Support. Cross-chain communication is the key foundation to allow the community to take advantage of the BNB Beacon Chain and BNB Smart Chain dual chain structure.
  2. Staking. Staking and reward logic should be built into the blockchain, and automatically executed as the blocking happens. Cosmos Hub, who shares the same Tendermint consensus and libraries with BNB Beacon Chain, works in this way. In order to keep the compatibility and reuse the good foundation of BC, the staking logic of BSC is implemented on BC. The BSC validator set is determined by its staking and delegation logic, via a staking module built on BC for BSC, and propagated every day UTC 00:00 from BC to BSC via Cross-Chain communication.
  3. Rewarding. Both the validator update and reward distribution happen every day around UTC 00:00. This is to save the cost of frequent staking updates and block reward distribution. This cost can be significant, as the blocking reward is collected on BSC and distributed on BC to BSC validators and delegators.
  4. Slashing. Slashing is part of the on-chain governance, to ensure the malicious or negative behaviors are punished. BSC slash can be submitted by anyone. The transaction submission requires slash evidence and cost fees but also brings a larger reward when it is successful. So far there are two slashable cases: Double Sign and Inavailability.
  5. ParamHub && Governance. There are many system parameters to control the behavior of the BNB Beacon Chain and BNB Smart Chain, e.g. slash amount, cross-chain transfer fees. All these parameters will be determined by BSC and BC Validator Set together through a proposal-vote process based on their staking. Such the process will be carried on cosmos sdk.
  6. Performance Improvement Parallelization, dedicated cache, priority lock and many other program skills are applied to improvement the capacity of BNB Beacon Chain.

Quick Start

See the Cosmos Docs and Getting started with the SDK.

Contribution

Thank you for considering to help 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 bnc-cosmos-sdk, please fork, fix, commit and send a pull request for the maintainers to review and merge into the main code base.

Please make sure your contributions adhere to our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Pull requests need to be based on and opened against the master branch. Commit messages should be prefixed with the working progress. E.g. "[WIP] make trace configs optional", "[R4R] make trace configs optional".

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 93.1%
  • Python 3.2%
  • Jinja 1.3%
  • HCL 0.9%
  • Makefile 0.9%
  • Shell 0.5%
  • Dockerfile 0.1%