When I run

cleos system listproducers -j

I got detailed block producer info in json format, and there's a field called "is_active", which I'm not quite sure what it means? Does it mean the node associated with the block producer account is currently online? How does the EOS system determine which producers are active or not? I couldn't seem to find any docs on this particular "is_active" field?

  • probably means it's among the 21 active bps that are scheduled to produce in the ongoing round – confused00 Sep 11 at 14:03
  • @confused00, I'm pretty sure that's not the case, as all the hundred or so block producers returned from the listproducers command have the "is_active" field showing 1. – hellopeach Sep 13 at 6:36

Does it mean the node associated with the block producer account is currently online?

No, the is_active field is set manually, and it's a heuristic that is used to choose BPs that should build blocks next round. Those with is_active == False are given a negative score when BPs are ordered by votes so they end up being ignored while inactive.

How does the EOS system determine which producers are active or not?

When an account registers as a producer using the regproducer method, they are automatically considered active (is_active == True). Similarly, when the unregproducer method is called, the producer is deactivated (is_active == False).

Although unregproducer requires the authority of the producer that is being deactivated, the eosio.system contract can use rmvproducer to deactivate producers if enough BPs sign to use the multisig eosio account to send the action. The last point is particularly important because it enables proposals such as this one where BPs that cannot produce blocks are unregistered by the system, and then they can reregister later without losing their votes or blocking the network.


Side note: The terminology may be a bit confusing because people may often use "active BPs" to refer to the 21 BPs that are producing in a round (e.g. Dan's comment,) while the is_active field has different semantics.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.