Consumer is a SONM's user, which buys and uses the computing resources of other users (Suppliers) through the system. The purpose of the Consumer is to perform a specific task in an optimal way (most quickly, most cheaply, by the price / speed criterion, most reliably, or others).
Every Consumer should have his own Ethereum account, that is his unique identifier.
For Consumer main algorithm of using SONM is:
Full description about getting started as a Consumer is here.
Every Supplier should have his own Ethereum account, that is his unique identifier.
For Supplier main algorithm of using SONM is:
Full description about getting started as a Supplier is here.
Account is the Ethereum blockchain address. Сryptocurrency Ether and Ethereum tokens (SONM token and others) can be transferred between accounts.
When user creates an account there is generating a cryptographic set of numbers: private key and public key (address).
Account information can be presented and stored in the form of keystore file (UTC/JSON). In keystore file private key are encrypted by user's password that user enter before creation. SONM user can generate new account and its keystore file in SONM Wallet / CLI or in another application (for example, MyEtherWallet).
Account address is an unique identifier of SONM's user.
Every Consumer and Supplier in SONM has an account.
Consumer's SONM component:
Supplier's SONM components:
Worker nodes have their own accounts one for each to interact with Hub.
Resources are computer capacities (may be virtual) for performing computational tasks. The bearers of resources are Supplier's machines - Workers.
Resources may include one or more Devices. Resources are characterized by parameters:
Slot is set of resources for rent. Suppliers make slots for placing ask orders on the Marketplace. Consumers make slots for searching ASK orders on the Marketplace.
Slot has resourses parameters and additional parameters:
Within the one worker Supplier can make several resource slots and place ask orders on the Marketplace for rent. But Supplier can not combine resources from a few Workers in one slot.
Devices are the following SONM Worker's components:
CPU device has parameters:
GPU device has parameters:
For each device on Workers Supplier can set benchmarks, for example, Ethereum Hashrate (MH/s), ZCASH Hashrate (sol/s), Rendering: OctaneBench/hour (OBh).
Benchmarks values are included to Suppliers ask orders on SONM Marketplace.
Consumers may use benchmarks to search orders on Marketplace and include them to their BID orders.
Order is a placed offer on the Marketplace:
Order is characterized by the following parameters:
Market can search for orders on the parameters.
ASK order lifecycle
When deal starts, Hub node automatically cancel this ASK order.
When deal has finished, Hub node automatically place ASK order on the Marketplace again.
BID order lifecycle
Consumer places a BID order directly on the Marketplace using CLI.
When the order is placed Consumer's Client node starts matching BID order and current ASK orders published onto Marketplace.
When deal starts, Consumer's Client node automatically cancel this BID order.
When the deal has finished, Consumer may place a BID order using CLI again.
When Consumer’s Client node is aware of the Hub’s node ASK order, it then directly communicates with Hub. Both parties check, that offers match each other and if everything is good, they place a deal on the blockchain. Consumer makes first move and proposes a deal, Hub then accepts it. A deal is a record inside a “Deals registry” smart contract on Ethereum blockchain.
|Start status||Operation||Available for||End status||Description|
|(deal not exist)||Propose||Consumer||Pending||This operation creates a new deal. Consumer initiates a new deal and creates a record on the blockchain. Deal price is transferred form consumer account and frozen within deal|
|Pending||Accept||Hub||Accepted||Hub must accept new deal. After deal is accepted it is considered as working.|
|Accepted||Preterm close||Consumer||Closed||Consumer may close the deal early, prior to deal end time. Deal price (to be paid to hub) must be calculated proportional to deal time (time - start time). Other tokens are returned back to consumer.|
|Accepted||Close||Anyone in the world (Criteria: deal must reach end time)||Closed||After deal reaches it's end time, anyone must be able to close it. The "Close" handle must be available for anyone. Hub is expected to close deal, because it is in his interests. Deal price is paid to Hub|
Task is a computational or other task, which can be performed on computer resourses for a certain time.
Task is characterized by the parameters of the resource, which is necessary for its implementation and additional parameters.
Docker is used to perform Consumer's tasks in SONM. Task can be packaged in a Docker container and then effectively performed on Supplier's resourses.
Virtual currency used for payments in SONM is SNM token.
It is a ERC-20 standard token, based on Ethereum.
Token has a function of payment equivalent of computing powers. Token is designed as an utility token (not a securities) according to Singapore law (SFA, FAA), juridical practice and MAS definitions.
Each deal has a price in virtual currency - SONM tokens.
When Consumer proposes a deal, it immediately provides a deposit for the whole amount of the deal price. This deposit is made a payment towards deal record inside Deal registry smart contract.
When the deal is fulfilled, Consumer’s deposit is transferred to Hub. This is the payment for the deal.