Skip to content

Commit

Permalink
README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SurfingNerd committed Oct 20, 2024
1 parent bb1816b commit 5a78b6c
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ The algorithm provides a Sybil control mechanism for reporting malicious validat

## POSDAO Repositories and Resources

- White paper https://forum.poa.network/t/posdao-white-paper/2208
- Backported Open Ethereum client with all POSDAO features https://github.com/poanetwork/open-ethereum/tree/posdao-backport
- Original Open Ethereum client supporting POSDAO features https://github.com/OpenEthereum/open-ethereum starting from v2.7.2 (except [posdaoTransition spec option](https://github.com/OpenEthereum/open-ethereum/pull/11245) which waits to be released in the next version)
- White paper https://github.com/DMDcoin/whitepaper/wiki

## Smart Contract Summaries

Expand All @@ -28,8 +26,6 @@ Check also the [BlockRewardHbbft call graph](/docs/BlockRewardHbbft-call-graph.p
- KeyGenHistory.writeAck
- KeyGenHistory.writePart

- `InitializerHbbft`: used once on network startup and then destroyed. This contract is needed for initializing upgradable contracts since an upgradable contract can't have the constructor. The bytecode of this contract is written by the `scripts/make_spec_hbbft.js` into `spec.json` along with other contracts when initializing on genesis block.

- `RandomHbbft`: stores random numbers written by the HBBFT engine. Random numbers are used to form a new validator set at the beginning of each staking epoch by the `ValidatorSet` contract. There are two key functions:
- `setCurrentSeed`. This is a setter that can only be called by the HBBFT engine in order to set the newly generated random number that is gonna be used for the new validator set selection.
- `currentSeed`. This public getter is used by the `ValidatorSetHbbft` contract at a predefined block of each staking epoch to get the accumulated random seed for randomly choosing new validators among active pools. It can also be used by anyone who wants to use the network's random seed.
Expand All @@ -49,6 +45,8 @@ Check also the [StakingHbbft call graph](/docs/StakingHbbft-call-graph.png).
- `ValidatorSetHbbft`: stores the current validator set and contains the logic for choosing new validators at the beginning of each staking epoch. The logic uses a random seed stored in the `RandomHbbft` contract. Also, ValidatorSetHbbft is responsible for discovering and removing malicious validators. This contract is based on `reporting ValidatorSet` [described in Parity Wiki](https://wiki.parity.io/Validator-Set.html#reporting-contract).
Check also the [ValidatorSetHbbft call graph](/docs/ValidatorSetHbbft-call-graph.png).

- `BonusScoreSystem`: Handles the Bonus Scores that validators collect during their supportive phases.

## Usage

### Install Dependencies
Expand Down

0 comments on commit 5a78b6c

Please sign in to comment.