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.
Go
Copy
// 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)
CLIs 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 CLI flags configuration section
Governance
N/A
Transactions
N/A
Queries
List all submitted evidence (paginated)
Replace <page_number> with the desired page number and <page_size> with the desired number of items per page. If not provided, default values will be used.
Bash
Copy
sekaid query evidence $FLAGS_QR --page=<page_number> --limit=<page_size> | jq
Query a specific evidence by its hash
Bash
Copy
sekaid query evidence $HASH $FLAGS_QR | jq