HIP-18: allowlist for external leaders

Summary:
This proposal is to add support of allow-list of external validators to be the leaders of the network.

Background:
Leaders in each shard of the Harmony network are responsible for proposing the blocks, collect block signatures, finalize consensus, and distribute block rewards to each signing validator. It is the most critical role of the network. Right now, all leaders are limited to internal nodes of Harmony. In this proposal, I propose to allow external validators identified by the BLSkeys to be the leader of the network. Noted each shard is running independently, thus each shard will need one leader.

Motivation:
This is an important step towards full decentralization. It allows the external validators to be the leader of the network. The network security and control will be fully governed by external validators. Before the full resharding works, it is still prudent to maintain an allowed list of leaders to balance the decentralization and security of the network.

Specification:
A list of allowed BLSkeys to be the leader of each shard. I am thinking of 10 keys from 10 different validator nodes in each shard. For validators in the allow-list, they can’t run hot backup nodes on the network, as it may result in a hard fork of the network. Also, it is encouraged to set up a better monitoring mechanism for the leader nodes. However, the leader nodes can still be offline in case of maintenance requirements, the view change (leader change) algorithm of the protocol will automatically choose the next leader in the list if the current leader is offline.

The leaders on the list are purely doing extra voluntary work for the network. Leaders on shard0 will need beefy hosts to process the transaction blocks. The recommended spec for the leader is at least 8 dedicated cores with 16 GB memory. For leaders on shard1/2/3, since there aren’t many transactions going on currently, it is recommended to use 4 dedicated CPU cores and 8 GB memory. Noted, there are no extra rewards to the leaders on the list, at least for now. Once we have fully implemented resharding, there may be extra rewards to the leaders.

Suggested voting options:
yes or no

Additional Notes:
You may nominate yourself to be the leaders on the allow list by specifying your BLSkey. Appreciate for your contribution to the network.

5 Likes

Yes, I think this is a good idea but those hosts should be rewarded with staking from Harmony fund to help cover the cost.

1 Like

This is a reson-able request to have foundation staking to the whitelist nodes.

Are there two votes? One for the proposal and the other to approve volunteers?

I’m definitely interested. Should we be posting our BLS Key here? Also, same question as HankTheCrank above–are there two votes for this?

yes, the bls key will be in the allow list. Thanks for your interest, @stakingboss

I think one vote is enough. Any validator can volunteer themself, and their blskeys will be added to the allowlist.

0b9d30ba18d3289714cbdcf3c673b05e75bbf915c1582dc9b3ed175aeebb656d99aed2b44dce102bac96c6540796db0f

Are you just gauging interest or implementing? If implementing, how soon will this happen? I’ll need to shutdown my backup node first. Also, is it still reasonable to assume that the foundation will stake?

Posting on behalf of Freyala:

7e7f84d5554e2bed6f3481c951426625dbc810fbbaab69e47894c4ea176c05b9b10ff983deea1c7163838ddf82ecb70f

Shard 3
And requesting funds for the server requirements.