Supplier Actor

Overview

A Supplier is responsible for staking POKT in order to earn POKT in exchange for providing services as a function of volume and time.

LocalNet Dashboard

Schema

The onchain representation of a Supplier can be found at supplier.proto.

Configuration

Configurations to stake an Supplier can be found at supplier_staking_config.md.

Modules

The Supplier actor depends on both the supplier and proof onchain modules. These two modules' concerns are separated as follows:

Supplier Module

  • Supplier (un/)staking

  • Supplier querying

Proof Module

  • Claim creation & querying

  • Proof submission & querying

Supplier lifecycle

The lifecycle of a Supplier in the network involves several phases, each with specific actions and status changes. Here’s a detailed breakdown:

1

Staking Initiation

  • The Supplier sends a MsgStakeSupplier message to the network, initiating the staking process.

  • The Supplier remains inactive until the beginning of the next session.

2

Activation

  • The Supplier becomes active at the start of the new session and can now provide services to the network.

3

Unstaking Initiation

  • The Supplier sends a MsgUnstakeSupplier message to the network to start the unstaking process.

  • The Supplier continues to be active until the end of the current session.

4

Unbonding Phase

  • In the following session, the Supplier enters the unbonding phase, becoming inactive and no longer participating in sessions or providing services.

  • During this phase, the staked funds are locked, and any pending claims are settled.

5

Completion of Unbonding

  • After the unbonding period ends, the staked funds are transferred back to the Supplier's account, and the Supplier's record is removed from the network.

Timeline of Events

Here’s a visual representation of the Supplier lifecycle from staking to unbonding with the following example parameters:

  • Unbonding Period: 3 sessions

  • Number of Blocks per Session: 10 blocks

  • Session End Height to Proof Window Close Height: 15 blocks

Session 1 [1,10] Block 3 DO Stake Supplier1 [Is inactive] Block 5 DO Stake Supplier2 [Is inactive]

Session 2 [11,20] Block 11 Supplier1 IS included in sessions Supplier2 IS included in sessions

Session 3 [21,30] Block 21 Supplier1 unstakes [Still active] Block 28 Supplier2 unstakes [Still active] Block 30 DO Deactivate Supplier1 DO Deactivate Supplier2

Session 4 [31,40] Block 31 Supplier1 IS NOT included in sessions Supplier2 IS NOT included in sessions

Session 5 [41,50] Block 45 ProofWindowClosed

Session 6 [51,60] Block 60 DO UNBOND Supplier1 DO UNBOND Supplier2

Was this helpful?