Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add details of consensus fault slashing #1286

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions content/algorithms/expected_consensus/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -397,8 +397,9 @@ This is detectable when a given miner submits two blocks that satisfy any of the

A single consensus fault results into:

- miner termination and removal of power from the power table,
- loss of all pledge collateral (which includes the initial pledge and blocks rewards yet to be vested)
- a higger penalty is applied, the amount is approximately the reward of the report height
- unable to become leader within ChainFinality epoch
- unable to submit PreCommitMessage, PreCommitBatchMessage and DeclareFaultsRecovered message within ChainFinality epoch

### Detection and Reporting

Expand Down
15 changes: 14 additions & 1 deletion content/glossary/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,20 @@ The algorithm(s) and logic needed so that the state of the blockchain is agreed

## Consensus Fault Slashing

Consensus Fault Slashing is the penalty that a miner incurs for committing consensus faults. This penalty is applied to miners that have acted maliciously against the network's consensus functionality.
Consensus Fault Slashing is the penalty that a miner incurs for committing consensus faults. This penalty is applied to miners that have acted maliciously against the network's consensus functionality. the detailed error checking process is as follows

1. whether byte data in params is legal block data
2. whether block epoch between UpgradeOrangeHeight - policy.ChainFinality and UpgradeOrangeHeight + policy.ChainFinality
3. two blocks cannot be the same
4. both blocks must be produced by the same miner
5. epoch of sencond block must bigger or equal than the first one
6. whether two blocks and extra blocks belongs to one of [three consensus faults](expected_consensus#types-of-faults),
7. heck if the signature of both block is correct
- block epoch must be whthin lastest ChainFinality epoch after network version7
- get the state when the block height is generated and than get the actor of message receiver,no gas fee is required
- to get the miner info of messager receiver in the previous step, requires a gas fee
- get worker address of miner,requires a gas fee.
- use the worker address obtained in the previous step to verify that the signature

## Cron Actor

Expand Down