Bitshares-Core  2.0.181105
BitShares blockchain implementation and command-line interface software
Classes | Typedefs
The Blockchain Worker System


struct  graphene::chain::vesting_balance_worker_initializer
struct  graphene::chain::burn_worker_initializer
struct  graphene::chain::refund_worker_initializer
struct  graphene::chain::worker_create_operation
 Create a new worker object. More...


typedef static_variant< refund_worker_initializer, vesting_balance_worker_initializer, burn_worker_initializergraphene::chain::worker_initializer

Detailed Description

Graphene blockchains allow the creation of special "workers" which are elected positions paid by the blockchain for services they provide. There may be several types of workers, and the semantics of how and when they are paid are defined by the worker_type_enum enumeration. All workers are elected by core stakeholder approval, by voting for or against them.

Workers are paid from the blockchain's daily budget if their total approval (votes for - votes against) is positive, ordered from most positive approval to least, until the budget is exhausted. Payments are processed at the blockchain maintenance interval. If a worker does not have positive approval during payment processing, or if the chain's budget is exhausted before the worker is paid, that worker is simply not paid at that interval. Payment is not prorated based on percentage of the interval the worker was approved. If the chain attempts to pay a worker, but the budget is insufficient to cover its entire pay, the worker is paid the remaining budget funds, even though this does not fulfill his total pay. The worker will not receive extra pay to make up the difference later. Worker pay is placed in a vesting balance and vests over the number of days specified at the worker's creation.

Once created, a worker is immutable and will be kept by the blockchain forever.

Typedef Documentation

◆ worker_initializer

Definition at line 70 of file worker.hpp.