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

Let update_elected_producers() reduce the schedule #33

Open
cc32d9 opened this issue Mar 7, 2020 · 3 comments
Open

Let update_elected_producers() reduce the schedule #33

cc32d9 opened this issue Mar 7, 2020 · 3 comments

Comments

@cc32d9
Copy link

cc32d9 commented Mar 7, 2020

Line 125 in https://github.com/EOSIO/eosio.contracts/blob/7c042002b903bbf13c7ae37851f03edf58ae9ff8/contracts/eosio.system/src/voting.cpp

      if( top_producers.size() == 0 || top_producers.size() < _gstate.last_producer_schedule_size ) {
         return;
}  

so, if a small network has less than 21 active producers, a producer cannot leave the schedule because the unregprod will be ignored. This is dangerous for network stability because a BP can unregprod and switch off the server, being sure that they did the right thing. The network will not be able to replace the BP or remove it from the schedule, unless they create sock puppets to fill in 22 positions.

I believe this rule should be removed. It's causing a danger for small networks and doesn't make sense for big ones.

It should be modified to disallow reducing the schedule to zero only.

@NatPDeveloper
Copy link

Running a small network, having this issue.

@DouglasHorn
Copy link

It would be better to make this number configurable and able to be modified by the existing BP vote as it presents a risk of network lockup in certain edge cases.

@deckb deckb transferred this issue from EOSIO/eosio.contracts Apr 21, 2021
@deckb
Copy link
Contributor

deckb commented Apr 21, 2021

Moving to the new reference system repository.

There is a more general configuration for the system contract that should be implemented for this contract. I believe we can roll this into that change.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants