Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

DAWN-446 ⁃ Standby Producer Pay #1033

Closed
bytemaster opened this issue Jan 3, 2018 · 5 comments
Closed

DAWN-446 ⁃ Standby Producer Pay #1033

bytemaster opened this issue Jan 3, 2018 · 5 comments
Assignees
Labels
in progress WASM Bugs that can be fixed by updating WASM code and do not require a hard fork
Milestone

Comments

@bytemaster
Copy link
Contributor

bytemaster commented Jan 3, 2018

For performance reasons only the top 21 producers by total approval voting will produce blocks; however, it is desirable to enable any producer who gets votes to be paid proportional to their votes.

These producers will provide a role in ratifying the blockchain via TaPoS and ensure that if there is a problem with one of the top 21 there are people ready and able to start producing blocks.

Each block a certain number of new tokens are created and distributed accordingly:

  1. block producer is paid the going rate-per-block
  2. the runner up pool is funded at the rate configured by the producers
  3. worker proposals are funded until the new tokens are out

Every producer will have the ability to claim a percentage of the runner up pool equal to producers_votes / all_producer_votes at most once per hour. This includes the top 21 producers which encourages them to seek to maximize voter turnout to maximize their pay.

To maximize their pay standby producers must be able to broadcast a signed transaction every hour. Those who do not broadcast every hour will forfeit some of their opportunity.

@bytemaster bytemaster added this to the EOS Dawn 3.0 milestone Jan 3, 2018
@blockone-syncclient blockone-syncclient changed the title Standby Producer Pay DAWN-446 ⁃ Standby Producer Pay Jan 5, 2018
@wanderingbort
Copy link
Contributor

wanderingbort commented Jan 5, 2018

Is this something that can happen "underneath" the worker proposals? In other words, if the stakeholders in the chain feel this is a good use of the inflation, they would vote it in as a worker proposal?

It would require that the wasm contracts

  • have read-only access to data so that they can determine producers_votes / all_producer_votes and,
  • read-only access to data so they can determine if an account is "idle" for more than an hour.
    • Though this could also be changed from "any signed transaction" to requiring runner up producers to submit a ping action to the resulting worker proposals contract directly.

@RickyShiJs
Copy link

RickyShiJs commented Jan 6, 2018

Is Standby Producer also required host a powerful node as like 21 top producers with strong disk, cpu and bandwidth. Will paid from the runner up pool can cover their hardware stand by costs?

If most of the vote gathered by top 21 producers, is it possible they config the runner up pool rate very low ?

@gernotpokorny
Copy link

Isn't it desireable that the top nodes get switched on a regular base, so that we do not get to the point where 21 nodes will store massiv amounts of data and there are no nodes waiting in line (to be voted in) that have that much storage capacity?
@bytemaster : What's your solution?

@fcecin
Copy link

fcecin commented Jan 22, 2018

IMO, standby block producers are insurance, and if the chain is to be fully insured, i.e. coordinated attacks (including governments, etc.) against all active block producers, then the standby block producers must be able to instantly supply the exact same level of service that the active block producers were providing before they were attacked. Meaning (to me) they will cost the same as active block producers to operate, and therefore should be paid the same w.r.t. cost coverage.

This is a governance issue. It is about the level of insurance that the token holders as a whole are willing to pay. In practice, the block producer set will be rather stable, a sort of "blockchain supreme court."

The competition should not be between active and standby block producers, as they should be rewarded the same, but between "approved" standby block producers (those inside the prime insurance range) and those who fall off of the prime insurance range.

In addition to the prime insurance range (where standby producers are indistinguishable from active block producers w.r.t. capacity), secondary, tertiary, etc. insurance ranges of standby block producers can be funded. Those provide a reduced budget for the standby producers and, in case the chain needs them to become active (i.e. a large-scale, global, coordinated attack against the network) the level of service provided is not ideal and the chain will suffer, but it will continue working.

In any case, the capacity of each block producer will be directly determined by the "rewards" (i.e. the budget to cover costs, the revenue) allocated to each insurance range via governance. When a producer is demoted from active/prime-standby to secondary or tertiary standby, their budget is reduced, and their technical capacity will be downgraded accordingly.

@jafri
Copy link
Contributor

jafri commented Feb 15, 2018

This is a really important issue to the long-term success of EOS. In a case where there is a cartel of all active 21 block producers, the community needs enough reserve block producers providing the same amount of CPU, bandwidth and storage to transfer their votes to.

@gleehokie gleehokie modified the milestones: Q1, 2018, RC2 Mar 22, 2018
@bytemaster bytemaster added the WASM Bugs that can be fixed by updating WASM code and do not require a hard fork label Mar 23, 2018
@gleehokie gleehokie modified the milestones: RC2, Backlog Apr 6, 2018
@zorba80 zorba80 closed this as completed May 11, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
in progress WASM Bugs that can be fixed by updating WASM code and do not require a hard fork
Projects
None yet
Development

No branches or pull requests

9 participants