Standard process flow diagrams
(NOT D-Chain specific)
Delegations Flow (cosmos-sdk v0.50)
sequenceDiagram
participant Delegator
participant Validator
participant OtherNodes as Other Nodes
participant Consensus as Consensus Engine
participant Staking as x/staking
participant Slashing as x/slashing
participant Distribution as x/distribution
participant Mint as x/mint
participant Auth as x/auth
Delegator->>Staking: Delegate tokens
Staking->>Validator: Update stake
loop Each block
Mint->>Auth: Mint new tokens
Auth->>Distribution: Transfer minted tokens + fees
Distribution->>Distribution: Calculate rewards
Distribution->>Validator: Distribute validator rewards
Validator->>Delegator: Distribute delegator rewards
end
rect rgba(0, 0, 0, 0.1)
Note over OtherNodes,Slashing: Evidence Submission
OtherNodes->>Slashing: Submit double signing evidence
Consensus->>Staking: Report missed blocks
Staking->>Slashing: Check for downtime at end of window
end
rect rgba(0, 0, 0, 0.1)
Note over Slashing,Distribution: On valid evidence
Slashing->>Validator: Slash
Slashing->>Distribution: Update rewards
end
Delegator->>Distribution: Withdraw rewards
Delegator->>Staking: Undelegate tokens
rect rgba(0, 0, 0, 0.1)
Note over Staking,Distribution: Governance can adjust parameters
end
Minting Flow (cosmos-sdk v0.50)
sequenceDiagram
participant Mint as x/mint
participant FeeCollector as Fee Collector<br/>(x/auth)
participant Distribution as x/distribution
participant Validators
participant Delegators
rect rgba(0, 0, 0, 0.1)
Note over Mint,FeeCollector: Minting and Fee Collection
Mint->>FeeCollector: Mint new tokens
Note right of FeeCollector: Minted tokens sent to<br/>fee collector account
activate FeeCollector
FeeCollector->>FeeCollector: Collect transaction fees
deactivate FeeCollector
end
rect rgba(0, 0, 0, 0.1)
Note over FeeCollector,Distribution: Distribution Process
Distribution->>FeeCollector: AllocateTokens()
FeeCollector-->>Distribution: Transfer all balances
end
rect rgba(0, 0, 0, 0.1)
Note over Distribution,Delegators: Reward Distribution
activate Distribution
Distribution->>Distribution: Calculate rewards
Distribution->>Validators: Distribute validator rewards
Validators->>Delegators: Distribute delegator rewards<br/>(minus commission)
deactivate Distribution
end