Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@sh-cha
Copy link

@sh-cha sh-cha commented Jul 31, 2025

Problem

The validator with the lowest proposer priority in the validator set is not necessarily the previous proposer.

Example

Take a look at Initia mainnet blocks 1846549 and 1846550:

  • The priority of validator FA593C7759CD64CF7BD339E8F8E6A30201097348 increased from -17172236 to -16276454.
  • The priority of validator 82DB4159D2BA84EA02B269815FB87BC022AFA9FF changed from 14744743 to -16034753.

Despite this, 82DB4159D2BA84EA02B269815FB87BC022AFA9FF was the proposer, even though FA593C7759CD64CF7BD339E8F8E6A30201097348 had a lower priority value.


Note

Correct proposer determination and validator-set handling, add proposer-priority hash and signature caching for faster light verification, enforce vote-extension rules, refine block/tx sizing, and update indexer/e2e/build tooling.

  • Consensus/Validators:
    • Fix proposer inference: do not assume lowest ProposerPriority is prior proposer; require proposer exists in set; add ValidatorSet.ProposerPriorityHash and pass proposer to ValidatorSetFromExistingValidators.
    • Move/clarify validation errors and checks; improve averaging/priority logic.
  • Light Client/Verification:
    • Add signature cache and new VerifyCommitLight(AllSignatures)/WithCache APIs; improve batch/single verification paths and errors.
  • Vote Extensions:
    • Enforce extensions only for non-nil precommits; validate presence/absence strictly; extend e2e to vary extension sizes.
  • Sizing/Encoding:
    • Use protobuf-computed tx sizes; refine MaxDataBytes, part/commit size math; add Proposal.ValidateBlockSize.
  • Indexer:
    • Support big int/float query bounds; add logger injection; optimize psql via bulk inserts; query fixes.
  • Events/RPC/E2E/Build:
    • Minor event-bus tweaks; new infra (DigitalOcean), Prometheus config, Docker/Go upgrades, and extensive e2e/test updates.

Written by Cursor Bugbot for commit e970e54. This will update automatically on new commits. Configure here.

@sh-cha sh-cha requested review from a team as code owners July 31, 2025 08:16
@mattac21 mattac21 changed the title fix: the validator with the lowest proposer priority is not guaranteed to have been the proposer of the previous block fix(light): the validator with the lowest proposer priority is not guaranteed to have been the proposer of the previous block Oct 20, 2025
@mattac21 mattac21 changed the base branch from v0.38.x to main October 20, 2025 18:25
@mattac21 mattac21 changed the base branch from main to v0.38.x October 20, 2025 18:26
@mattac21 mattac21 self-requested a review October 20, 2025 18:26
Copy link
Collaborator

@mattac21 mattac21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for this! would you be able to add a changelog entry and modify the pr to target the main branch (which should fix the linter)? then we can get this merged.

@sh-cha sh-cha force-pushed the bug/previous-proposer branch from 2c7e1a4 to e970e54 Compare November 3, 2025 09:15
@sh-cha sh-cha changed the base branch from v0.38.x to main November 3, 2025 09:16
@sh-cha sh-cha requested a review from mattac21 November 11, 2025 04:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.