Skip to content

[core] enable defer unpaid amplification #25867

Open
johnjmartin wants to merge 4 commits intomainfrom
jjm/amplification-enabled
Open

[core] enable defer unpaid amplification #25867
johnjmartin wants to merge 4 commits intomainfrom
jjm/amplification-enabled

Conversation

@johnjmartin
Copy link
Contributor

Description

  • Fix bench_driver amplification to use fire-and-forget submissions
  • Enable defer_unpaid_amplification in protocol version 118

Test plan

  • Validated on private-testnet with 5% amplification rate
  • TPS stable at ~6000, p99 latency ~1s
  • Deferrals metric (consensus_handler_unpaid_amplification_deferrals) confirmed active

Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • gRPC:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:
  • Indexing Framework:

@johnjmartin johnjmartin requested a review from akichidis March 17, 2026 21:00
@johnjmartin johnjmartin requested a review from mystenmark as a code owner March 17, 2026 21:00
@vercel
Copy link

vercel bot commented Mar 17, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sui-docs Ready Ready Preview, Comment Mar 20, 2026 10:23pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
multisig-toolkit Ignored Ignored Preview Mar 20, 2026 10:23pm
sui-kiosk Ignored Ignored Preview Mar 20, 2026 10:23pm

Request Review

for client in validators {
let req = request.clone();
tokio::spawn(async move {
let _ = client.submit_transaction(req, None).await;
Copy link
Contributor

Choose a reason for hiding this comment

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

does submit_transaction have a built-in timeout? if not we might want to add one to make sure that we can't pile up an unbounded number of tasks


let elapsed = start.elapsed();

// Spawning should complete almost instantly, not wait for the tasks
Copy link
Contributor

Choose a reason for hiding this comment

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

i'm not sure this test is necessary, its just testing basic tokio functionality that can't possibly break (without breaking literally everything in the world)

cfg.feature_flags.new_vm_enabled = true;
// Re-enable unpaid amplification deferral protection (devnet first)
if chain != Chain::Mainnet && chain != Chain::Testnet {
cfg.feature_flags.defer_unpaid_amplification = true;
Copy link
Contributor

Choose a reason for hiding this comment

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

personally i think we could go to testnet right now, we're not going to get any signal on this from devnet

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