eos icon indicating copy to clipboard operation
eos copied to clipboard

Add more documentation on subjective billing

Open matthewdarwin opened this issue 4 years ago • 0 comments
trafficstars

From EOSIO Developers Telegram:

Kevin Heifner, [19.04.21 21:13]

  • Subjective CPU billing is now with 2.0.12 disabled by default on all nodes. One would expect it to be enabled on public P2P and public API nodes to reduce abuse. One would expect it to be disabled on all private nodeos as you do not need to protect the node from yourself.
  • Subjective CPU works by keeping track of the amount of time spent running transactions that fail and time spent running transactions that succeed but are never seen making it into a block. This subjective CPU amount is subtracted from the accounts objective CPU amount. If the account does not have enough CPU after this calculation then the transaction fails the same as it would if it was out of objective CPU. The subjective billed amount decays over 24hrs just like the objective CPU amount.
  • Subjective CPU can also be disabled for specific accounts. So you can ask public API/P2P providers to add your account if you have a legitimate use case and you are not spamming their node.

Kevin Heifner, [19.04.21 21:17]

  • The 3 strike rule is only for block signing nodes when they are creating signed blocks. Any 3 transaction failures by an account causes all other transactions in the unapplied transaction queue by that account to be immediately dropped. The 3 strike rule does not apply to subjective billing because when a producer is producing a signed block it does not consider any subjective billing; even if subjective billing is enabled on that nodeos.

matthewdarwin avatar Apr 20 '21 17:04 matthewdarwin