[EOSIO/eos] block producer quality control (#5311)

EOSIO needs to natively support features to improve the quality and availability of active and stand by block producers.

— It’s not acceptable for a top 21 BP to stop producing blocks for hours and remain in the top 21 with no perceivable consequence.
— It’s not acceptable for a backup block producer to not be fully available to assume the role of an active BP at any time whilst at the same time collect daily rewards for their services which may or may not work when needed.

In both of these cases the suggestion to vote them out is impossible in the current climate of lack of voter engagement. Therefore in both of these cases we need to strengthen core EOSIO functionality with automated monitoring / grey listing / reduction and or removal of rewards mechanisms to add incentives for BPs to improve and maintain the quality of their services.

Suggestions:

1. Blocks produced by BPs are counted and monitored per BP
2. The [greymass producerjson](https://github.com/greymass/producerjson) smart contract be introduced as a core EOSIO feature
3. This contract be extended to enable the json data to be validated against a standard schema
4. On chain BP data via this contract be gradually introduced as a mandatory requirement for ALL block producers
5. The endpoints defined within the content of the BP data be used to monitor the availability of BP API endpoints as a core feature
6. Grey listing and reduction / removal of rewards features be introduced based on the detection of inadequacies in (1) and (5)

Добавить комментарий