Evidence module
Concept
The Evidence module, extended from the Cosmos SDK's, enhances existing evidence handling that relies on the underlying consensus engine to automatically submit evidence upon discovery. It achieves this by implementing abstractions and interfaces that enable developers to define custom evidence messages and methods for penalizing misbehaving consensus nodes. Tendermint detects double-signing by consensus nodes and reports this to the Evidence module, which then manages the verification process and determines the appropriate penalty for the offending consensus nodes. Penalties may include slashing a portion of their stake and removing them from the active consensus node set.
In KIRA, the only misbehavior that is handled is double signing. In this case the consensus node is automatically jailed upon detection but not automatically slashed. Instead, the slashing process is managed by governance through the slashing module. Jailing & slashing provides all the necessary information regarding how this process works.
// https://github.com/KiraCore/sekai/blob/master/x/evidence/keeper/infraction.go
// (...)
if !validator.IsJailed() {
k.slashingKeeper.Jail(ctx, consAddr)
}
k.slashingKeeper.JailUntil(ctx, consAddr, ctx.BlockTime())
k.SetEvidence(ctx, evidence)
Cli Syntax & Examples
Each CLI command and proposal process in KIRA requires specific permissions. These permissions must be added to the account's whitelist or obtained as sudo permissions for direct changes. Refer to the Roles & Permissions documentation for more details. $SIGNER
represents the transaction signer's account name or address. For instructions on setting common flags as environment variables, such as $FLAGS_TX
and $FLAGS_QR
__, see the section
- Transactions
- Queries
- Governance
Transactions
There is no transactions for this sub-module.
Queries
evidence | List all submitted evidence in a paginated format. |
---|
List All Submitted Evidence (paginated)
This command lists all submitted evidence in a paginated format. Replace <page_number>
with the desired page number and <page_size>
with the number of items per page. Default values will be used if these are not provided.
sekaid query evidence $FLAGS_QR --page=<page_number> --limit=<page_size> | jq
Query Specific Evidence by Its Hash
To query a specific piece of evidence by its hash, use the following command.
sekaid query evidence $HASH $FLAGS_QR | jq
Governance
There is no governance proposal for this sub-module.