Worker

Worker is a SONM executable module that controls Supplier's local computing resources. Worker is implemented in Go. Run on the Supplier's PC, that was selected as Worker.

Functions

  • Resource benchmarking
  • Place ASK orders on the Market
  • Deals management
  • Downloading task images from the storage. Interact with Docker registry over open channels, encrypted with TLS.
  • Task execution and monitoring. Interacts with Docker inside one PC.
  • Sending logs. Interacts with Hub node over open channels, encrypted with TLS.
  • Providing information about the state of resources.

Worker and Master

One Supplier may have unlimited number of Workers. Every Worker should have unique Ethereum address.

Master address is using for payment execution for a deal.

Supplier should specify his Master Ethereum address in Worker configuration file (/etc/sonm/worker-default.yaml). Supplier may manage Worker locally or with remote access with Master key or Admin key (specified in worker config /etc/sonm/worker-default.yaml).

The relation "Master - Worker" is recorded in the blockchain. Worker checks the availability of a record in the blockchain at each start. If there is no entry, the Worker will create it. The resource owner must confirm the link between the application of the Worker and Master using sonmcli master confirm <worker ether address> command. Supplier may manage (confirm, remove) Workers with Master key.

Important: Worker will not start to place ASK orders to the SONM marketplace until Master has not confirmed this worker.

To get information about worker status use sonmcli worker status command. The result, for example, is:

Uptime:             5h26m29s
Version:            v0.4.8-7f2f38bf linux/amd64/go1.10.2
Eth address:        0x26200241593722FA17DE5722Ed66d8830dc58C6D
Task count:         10
DWH status:
Rendezvous status:  79.137.70.2:14099

To get information about worker devices use sonmcli worker devices command. The result, for example, is:

CPU: 8 cores at 8 sockets
  Benchmarks:
    cpu-sysbench-single: 1549
    cpu-cores: 8
    cpu-sysbench-multi: 8794

RAM: 15.603 GiB
  Benchmarks:
    ram-size: 16753848320

GPUs:
  card0 (index=0: hash=d99dde393517991f641a5c535a91462b)
  Benchmarks:
    gpu-mem: 4281323520
    gpu-eth-hashrate: 1705000
    gpu-cash-hashrate: 282
    gpu-redshift: 0
    gpu-count: 1

  card1 (index=1: hash=0aa461ab22612a2ebea14574989e09ba)
  Benchmarks:
    gpu-eth-hashrate: 21704000
    gpu-cash-hashrate: 281
    gpu-redshift: 0
    gpu-count: 1
    gpu-mem: 4281323520

Network:
  Incoming: false
  Overlay:  true
  In:       84.669 Mibit/s
  Out:      84.480 Mibit/s
  Benchmarks:
    net-download: 88782289
    net-upload: 88583460

Storage:
  Volume: 181.286 GiB
  Benchmarks:
    storage-size: 194653999104