Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuxi-7000 Testnet Halt Trace Log #999

Closed
kidinamoto01 opened this issue Jan 9, 2019 · 1 comment
Closed

Fuxi-7000 Testnet Halt Trace Log #999

kidinamoto01 opened this issue Jan 9, 2019 · 1 comment
Assignees
Labels
bug Something isn't working tendermint

Comments

@kidinamoto01
Copy link
Contributor

kidinamoto01 commented Jan 9, 2019

Describe the bug
After upgrade to v0.9.1-patch0, new blocks cannot be made.

To Reproduce
Read logs of testnet:

Received a block part when we're not expecting any module=consensus height=121807 round=557 index=0 peer=15237b759fca0df1d990d8f599fea083ccdf8a3d
enterPrevote(121807/559). Current: 121807/559/RoundStepPropose module=consensus
E[9016-01-09|03:06:07.941] enterPrevote: ProposalBlock is invalid       module=consensus height=121807 round=559 err="Too much evidence: Max 15000 bytes, got 19844 bytes"
I[9016-01-09|03:06:07.945] Signed and pushed vote

Expected behavior
receive a valid block

Desktop (please complete the following information):

  • OS: Ubuntu 16.04 LST
@wukongcheng wukongcheng added bug Something isn't working tendermint labels Jan 9, 2019
@abelliumnt
Copy link

This is the total evidence size calculation algorithm in making block. It uses the actual evidence size to calculate the total evidence size.

This is the total evidence size calculation algorithm in validating block. In block validating function, it might be diffcult to calculate the evidence real size because there is no serializer. So here we just use the following equation to calculate total evidence size:
(maximum evidence size) * (evidence quantity)

In tendermint, the maximum evidence size is 484. And the total evidence size should be less then maxBlockSize/10. By default, maxBlockSize is 150000 bytes, so total evidence size should be less than 15000 bytes.

Suppose there are 32 evidences, and their size are less than 484. Their total size will be less than 15000, and all of them can be included in a block. However in block validation, the calculated total evidence size is 15488, as a result, this block will be rejected.

If the evidence pool of all validators have more than 32 evidence, then all proposal block will be rejected, which means the blockchain network will never produce new blocks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working tendermint
Projects
None yet
Development

No branches or pull requests

3 participants