Skip to content

consensus/parlia: restore the one-second initial backoff for Jenner (BEP-714) - #3822

Merged
zlacfzy merged 12 commits into
bnb-chain:developfrom
zlacfzy:codex/bep-714-network-availability
Sep 15, 2026
Merged

zlacfzy merged 12 commits into
bnb-chain:developfrom
zlacfzy:codex/bep-714-network-availability

Conversation

@zlacfzy

@zlacfzy zlacfzy commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Description

Client side of BEP-714 for the Jenner fork: return InitialBackOffTime from 2 s to 1 s on both backup paths. Client-only; no system contract changes. Activation time stays unscheduled.

Rationale

BEP-520 raised the backup delay to 2 s at a 1.5 s block interval to limit reorgs from slow propagation. The interval has since dropped to 0.45 s while the delay stayed at 2 s, so an eight-block turn of an unavailable validator now costs ~19.6 s of affected intervals, 16 s of which is waiting. Restoring 1 s cuts that to ~11.6 s.

Example

go test ./consensus/parlia -run 'Jenner|BackOff' -count=1

Changes

  • consensus/parlia/parlia.go: after Jenner (selected by parent time, like Lorentz) use defaultInitialBackOffTime for the first backup rank on both the normal path and the recently-signed in-turn path; rank spacing unchanged.
  • consensus/parlia/parlia_test.go: backoff and timestamp-validation boundary at parent times just before, at, and after the fork, for both paths.

🤖 Generated with Claude Code

…ges for Jenner

Restore the one-second initial backoff once the parent block is past
Jenner, on both the ordinary and the recently-signed backup paths.

Add the epoch-end checkMaintenance system transaction after daily
settlement on blocks where number % epochLength == epochLength - 1,
include it in the expected bid-block system-transaction shape, and
reserve the system-transaction gas hard limit on those blocks because
the contract scans the validator set.

Embed the Jenner ValidatorSet and SlashIndicator runtimes for mainnet,
chapel and rialto (bsc-genesis-contract 3289769) and register the
upgrade. Activation time stays unscheduled.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR updates the Go-based BSC Parlia consensus client for BEP-714/Jenner by restoring a one-second initial validator backoff and requiring an epoch-end checkMaintenance system transaction, including BidBlock validation and gas reservation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering fork boundaries, transaction ordering, contract behavior, and storage preservation.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…'s source commit

The mainnet, chapel and rialto Slash runtimes were regenerated from
bsc-genesis-contract 3289769; the references still named 78c22e1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR updates the Go-based BSC Parlia consensus client for BEP-714/Jenner by restoring a one-second initial validator backoff and requiring an epoch-end checkMaintenance system transaction, including BidBlock validation and gas reservation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering activation boundaries, transaction ordering, contract behavior, and storage preservation.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…urrounding style

Doc comment names the fork and the trigger block like the sibling fork
files, inline notes use the `// BEP-N: ...` tag form already used for
BEP-404 and BEP-524, and the Jenner embed block spaces entries like the
other upgrade packages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements the BSC Jenner/BEP-714 client changes by restoring a one-second initial validator backoff and requiring an epoch-end checkMaintenance system transaction after activation. It updates BidBlock validation and gas reservation, embeds and registers new ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, and adds tests covering activation boundaries, transaction ordering, contract execution, and storage preservation.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…e transaction

BEP-714 now admits validators to maintenance from the existing slash
system transaction inside the contracts, so the client no longer issues
checkMaintenance, verifies it in bid blocks, or reserves gas for it.
What remains is the one-second backoff after Jenner and the paired
Validator/Slash runtimes from bsc-genesis-contract c01f466.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This BSC/Parlia client update implements core Jenner/BEP-714 behavior by restoring the one-second initial validator backoff and adding tests around the fork-time boundary. It also embeds and registers updated ValidatorSet and SlashIndicator system-contract runtimes for mainnet, Chapel, and Rialto, with integration tests covering maintenance processing and storage preservation during upgrades.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…r pair test

The embedded-bytecode test still called the removed checkMaintenance
entry point. It now asks for admission through tryEnterMaintenance
from the slash contract and checks that the 40th slash admits the
validator in the same transaction.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements the BSC Jenner/BEP-714 client changes by restoring the initial backup-validator backoff from two seconds to one second after activation, with fork-boundary tests for backoff and timestamp validation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, adding integration and storage-preservation tests for the paired system-contract upgrade.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…nner pair test

Install the Validator runtime from bsc-genesis-contract 3dfa5c5, which
stops scanning the set twice on admission, and assert in the
embedded-bytecode test that an admitting slash with 45 validators stays
under 250k gas so the 1M system-transaction reserve is not at risk on
finality-reward blocks. Backoff comments now name the Jenner sequences.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements the BEP-714 Jenner client changes by restoring Parlia’s initial backup-validator backoff from two seconds to one second after the fork, with boundary and timestamp-validation tests. It also embeds and registers paired Jenner ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, adding execution, gas, activation, and storage-preservation tests.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

baeea4c rewrote every upgrade's source reference instead of only the
six Jenner entries.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements BEP-714 client behavior for the Jenner fork by restoring the initial Parlia backup-validator backoff from two seconds to one second after activation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering fork boundaries, validator maintenance admission, gas usage, and storage preservation during upgrades.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…elony check

From bsc-genesis-contract 07c84fb.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements the BSC Jenner/BEP-714 client changes by restoring the one-second initial Parlia backup-validator backoff after the fork and adding boundary tests. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering maintenance admission, gas usage, activation timing, and storage preservation during code replacement.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

will-2012
will-2012 previously approved these changes Sep 14, 2026
@@ -2428,11 +2434,12 @@ func (p *Parlia) backOffTime(snap *Snapshot, parent, header *types.Header, val c
})

if delay == 0 && isParerntLorentz {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if delay == 0 && (isParentLorentz || isParentJenner) maybe more readable.

jennerfork_test.go no longer had an implementation file to pair with.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements BEP-714 client changes for the Jenner fork by restoring the initial Parlia backup-validator backoff from two seconds to one second after activation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering fork-boundary timing, maintenance admission on the 40th slash, gas usage, and storage preservation during upgrades.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

…hreshold miss

From bsc-genesis-contract b787b1c.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 15, 2026

Copy link
Copy Markdown

Pull Request Review

This BSC Go blockchain-client PR implements BEP-714 for the Jenner fork by restoring the initial backup-validator backoff from two seconds to one second after activation. It also embeds and registers updated ValidatorSet and SlashIndicator EVM runtimes for mainnet, Chapel, and Rialto, with tests covering fork boundaries, maintenance admission, gas usage, and storage preservation during upgrades.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

From bsc-genesis-contract f024d02: governable maintenanceThreshold,
penalty-free admission on the threshold miss, cheaper last-working
validator check; maintenance settlement unchanged from BEP-127.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 15, 2026

Copy link
Copy Markdown

Pull Request Review

This PR implements the BSC Jenner/BEP-714 client changes by restoring the one-second initial Parlia backup-validator backoff after Jenner activation. It also embeds and registers updated ValidatorSet and SlashIndicator runtimes for mainnet, Chapel, and Rialto, with tests covering fork boundaries, maintenance admission, gas usage, and storage preservation during upgrades.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

BEP-714 is reduced to the one-second initial backoff; no system
contract changes in Jenner for it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@hashdit-bot

hashdit-bot Bot commented Sep 15, 2026

Copy link
Copy Markdown

Pull Request Review

This PR updates the BSC Parlia consensus engine so the Jenner fork restores the initial backup-validator backoff from two seconds to one second, including the special path where the in-turn validator signed recently. It also adds tests covering activation at the parent-time fork boundary and rejection of blocks timestamped before a backup validator becomes eligible; the PR description additionally states that paired Jenner system-contract runtimes are embedded and registered.

Sensitive Content

No sensitive content detected.

Security Issues

No serious security issues detected.


Generated by Hashdit Bot. This tool can absolutely NOT replace manual audits.

@zlacfzy zlacfzy changed the title consensus/parlia, core/systemcontracts: implement BEP-714 client changes for Jenner consensus/parlia: restore the one-second initial backoff for Jenner (BEP-714) Sep 15, 2026
@zlacfzy
zlacfzy merged commit 3505a7f into bnb-chain:develop Sep 15, 2026
8 of 9 checks passed
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.

3 participants