Closed ulbqb closed 1 year ago
Merging #543 (6d004af) into main (6010b48) will decrease coverage by
0.08%
. The diff coverage is74.80%
.
I can then accept this PR if the details of the backgrounds and objectives of this modification are written.
@torao I updated PR description. Please comment if anything is missing.
@ulbqb Does LINE Blockchain no longer support Voter elections? If so, how about the reward payout would? Or if not, how to implement voter election? This should be important information for product design.
@ulbqb Does LINE Blockchain no longer support Voter elections? If so, how about the reward payout would? Or if not, how to implement voter election? This should be important information for product design.
@torao , we need to move this voter selection function to lbm-sdk layer later.
@ulbqb Does LINE Blockchain no longer support Voter elections? If so, how about the reward payout would? Or if not, how to implement voter election? This should be important information for product design.
@torao Voter selection and reward logic can be freely implemented with abci app(lbm-sdk). Updating validators is perform in EndBlock. See tendermint docs for details.
@zemyblue @ulbqb All right. We have an implicit agreement in our private discussion about how to conduct voter elections, but this PR only contains bits and pieces of information, which is why I asked the question.
To state our conclusion for those interested in LINE Blockchain, we plan to move the behaviour known as voter election from ostracon
to the lbm-sdk
. This is because in Tendermint, the selection of Validators is the responsibility of the Cosmos-SDK and we have chosen to follow that approach. In this PR, we'll remove the voter election from Ostracon and implement it in a future update to the lbm-sdk
.
Hi guys~ Wow, this is amazing! If so, do you give up functions such as selecting proposer according to probability? I don't think the sdk layer can be involved in selecting the proposer.
@egonspace Hello.
If so, do you give up functions such as selecting proposer according to probability?
No. This PR removed only the voter election from ostracon. The proposer election is still run by ostracon.
Abstract
This PR remove the voter election process from Ostracon.
Background
Ostracon need some compatibility with Tendermint for IBC and cosmos-sdk. It it necessary to change possible parts for compatibility. Currently the voter election process is executed in Ostracon. Since voter selection can be moved to the lbm-sdk layer, it want to be moved to the lbm-sdk layer without putting it in Ostracon.
Goal
The goal is to fix to be compatible with Tendermint about voter election process. This means that the voter election process is removed from ostracon and it is done by only abci app. This goal need the following changes.
voter_params
,voter
,voters
,last_voters
,voters_hash
,voter_set
,voting_weight
that does not exist in Tendermint.voter_params
is the parameters used by voter election so this is not needed.voters
is the nodes elected from validators so this is not needed.voting_weight
is the value recalculated as voting power in voters so this is not needed.Voters
,ValidatorsWithVoters
Policy
The changes is based on Tendermint v0.34.19. This PR contains fixes other than documentation fixes. Fixing the documents is in #544.
Results
The voter election process was removed from ostracon. However, voter selection can still be implemented with the abci app. This PR makes it impossible to change the validator for each round. Updating validators is perform in EndBlock. See tendermint docs for details.