gpu-compute-chain/x/colinearcore
michael 2ea722c81c fixes + test hw edge cases 2022-09-23 00:16:42 +00:00
..
audit base ping audit impl (SSH handshake) 2022-09-11 05:42:17 +00:00
client/cli CLI tests, updates, fixes (reflect hw options) 2022-09-22 23:59:03 +00:00
keeper fixes + test hw edge cases 2022-09-23 00:16:42 +00:00
math fix incorrect vesting remainder behavior 2022-09-15 00:41:33 +00:00
memdb handle nil case for vprovs in getter 2022-09-17 21:33:43 +00:00
simulation basic linear vesting payouts (manual claim) 2022-09-14 21:36:30 +00:00
types add hardware args to cli lease creation 2022-09-22 23:43:15 +00:00
README.md add docs 2022-09-06 23:11:43 +00:00
genesis.go scaffold CLR locking types / msg 2022-09-07 20:25:57 +00:00
genesis_test.go scaffold CLR locking types / msg 2022-09-07 20:25:57 +00:00
handler.go manually handle claim msg case (scaffold bug) 2022-09-14 23:25:07 +00:00
module.go factor verified providers into bidding tx flow 2022-09-13 22:58:07 +00:00
module_simulation.go basic linear vesting payouts (manual claim) 2022-09-14 21:36:30 +00:00
module_test.go.bak remove hyphen in module name 2022-09-06 22:18:09 +00:00

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