axc-cosmos-sdk

module
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2023 License: MPL-2.0

README

Why we create this repo

This repo is forked from bnc-cosmos-sdk.

The AXC 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 AXC Beacon Chain and AXC 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 AXC Beacon Chain, works in this way. In order to keep the compatibility and reuse the good foundation of BC, the staking logic of AXC is implemented on BC. The AXC validator set is determined by its staking and delegation logic, via a staking module built on BC for AXC, and propagated every day UTC 00:00 from BC to AXC 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 AXC validators and delegators.
  4. Slashing. Slashing is part of the on-chain governance, to ensure the malicious or negative behaviors are punished. AXC 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 AXC Beacon Chain and AXC Chain, e.g. slash amount, cross-chain transfer fees. All these parameters will be determined by AXC 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 AXC 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 axc-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".

Directories

Path Synopsis
axc
rlp
Package rlp implements the RLP serialization format.
Package rlp implements the RLP serialization format.
Package baseapp contains data structures that provide basic data storage functionality and act as a bridge between the ABCI interface and the SDK abstractions.
Package baseapp contains data structures that provide basic data storage functionality and act as a bridge between the ABCI interface and the SDK abstractions.
lcd
rpc
tx
cmd
keys/hd
Package hd provides basic functionality Hierarchical Deterministic Wallets.
Package hd provides basic functionality Hierarchical Deterministic Wallets.
docs
mock
nolint
nolint
nolint
nolint
x
bank
nolint
nolint
distribution
nolint
nolint
nolint
nolint
nolint
gov
nolint
nolint
ibc
mock
Package mock provides utility methods to ease writing tests.
Package mock provides utility methods to ease writing tests.
mock/simulation
Package simulation implements a simulation framework for any state machine built on the SDK which utilizes auth.
Package simulation implements a simulation framework for any state machine built on the SDK which utilizes auth.
nolint
slashing
nolint
nolint
stake
nolint
nolint
stake/keeper
nolint
nolint
stake/tags
nolint
nolint
stake/types
nolint
nolint

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL