57 lines
1.3 KiB
Markdown
57 lines
1.3 KiB
Markdown
|
# 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.
|
||
|
|
||
|
```mermaid
|
||
|
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.
|
||
|
|
||
|
```mermaid
|
||
|
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
|
||
|
```
|