michael fba158d4d1 | ||
---|---|---|
.. | ||
audit | ||
client/cli | ||
keeper | ||
math | ||
memdb | ||
simulation | ||
types | ||
README.md | ||
genesis.go | ||
genesis_test.go | ||
handler.go | ||
module.go | ||
module_simulation.go | ||
module_test.go.bak |
README.md
Colinear Core Module: Leasing & Settlement
Provider Flow
Providers are required to stake a set amount of CLR (which is dictated by the protocol, and can be changed by governance proposals). This CLR will be slashed if they go offline.
flowchart
subgraph u[Users]
r([Render])
p([Provider])
end
subgraph Chain
st{{CLR Staking}}
a[(Auctions)]
end
r -- Create Auction --> a
p -- Check staking requirement --> st
st -- Allow provider to bid --> a
Audit Flow
To determine whether a provider is online, validators will read from the chain state to see which leases are active, and ping every provider every n blocks (determined by governance). If a quorum of validators does not receive a response, they will continuously slash the staked amount of the provider and end all leases they are providing for. If a provider runs out of staked CLR to slash, they will be removed from all leases and lease funds will be returned to the user.
flowchart LR
pOff(["Provider (Offline)"])
subgraph Active Validator Set
v1((Validator))
v2((Validator))
v3((Validator))
end
subgraph Chain State
ll[(Active Lease List)]
b{{Bank Module}}
end
ll -- Read --> v1
ll -- Read --> v2
ll -- Read --> v3
v1 -- Ping --> pOff
v2 -- Ping --> pOff
v3 -- Ping --> pOff
v2 -- Slash User --> b
v3 -- Slash User --> b