You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
User should be able to land their transactions even when leaders are loaded or required write accounts are highly contended, if willing to bid for the access of the limited resources.
This is a subset of #23211 to zoom in Priority Fee function rollout;
Allow users to pay prioritization_fee via compute_budget instruction. The transaction with highest prioritization_fee has highest priority to be considered by leader for block inclusion.
prioritization_fee is defined as micro-lamport per compute-unit that user wants to pay for the transactions. For example, if a transaction's compute_budget instruction specifies priority_fee as 1,000 micro-lamports per cu, and requested_cu as 100,000 CUs, this transaction will be prioritized with 1,000 as priority-fee, and be charged for a priority-fee of (1,000 micro-lamport/cu * 100,000 cu = 0.1 lamport). The priority-fee will be accounted into transaction total-fee (alone with signature fee, write lock fee, compute fee).
This schema encourages dev to request accurate CU (to lower total_fee), and allows users willing to pay to prioritize their transactions.
Problem
User should be able to land their transactions even when leaders are loaded or required write accounts are highly contended, if willing to bid for the access of the limited resources.
This is a subset of #23211 to zoom in Priority Fee function rollout;
Project Transaction Prioritization tracks tasks.
Proposed Solution
Allow users to pay prioritization_fee via
compute_budget
instruction. The transaction with highest prioritization_fee has highest priority to be considered by leader for block inclusion.prioritization_fee
is defined as micro-lamport per compute-unit that user wants to pay for the transactions. For example, if a transaction'scompute_budget
instruction specifies priority_fee as 1,000 micro-lamports per cu, and requested_cu as 100,000 CUs, this transaction will be prioritized with1,000
as priority-fee, and be charged for apriority-fee
of (1,000 micro-lamport/cu * 100,000 cu = 0.1 lamport). Thepriority-fee
will be accounted into transaction total-fee (alone with signature fee, write lock fee, compute fee).This schema encourages dev to request accurate CU (to lower total_fee), and allows users willing to pay to prioritize their transactions.
V0 Rollout Progress
Rework banking stage to support prioritization of buffered packets, Rework BankingStage to support prioritization of buffered packets #24613
Banking stage prioritize transactions based on compute_budget instruction's
priority-fee
, not feature gated. Prioritize transactions in banking stage by their compute unit price #25178 in v1.10.15Updated prioritization fee calculations for instructions that use the ComputeBudget::SetComputeUnitPrice instruction. Prioritize transactions in banking stage by their compute unit price #25178 in v1.10.15 (feature gated Feature Gate: Support
SetComputeUnitPrice
compute budget instruction #25050)To avoid forward queue being saturated by transactions to hot accounts, transactions should be forwarded by account bucket in priority order. forward packets by prioritization in desc order #25406
RPC supports user query for min priority_fee to land transactions in recent blocks, and min priority_fee to write to accounts. Need an RPC api to estimate the fee user should pay #26561
CLI supports use of priority-fee, Cli support compute_unit_price #26464
Update docs on how to use this function, update compute budget docs #26014
Create doc about the fee model as whole, Document the fee model implemented #26615
Active feature on testnet and devnet
SetComputeUnitPrice
compute budget instruction #25050active feature on mainnet-beta
SetComputeUnitPrice
compute budget instruction #25050V1 tasks:
Add ability to filter transactions pre-sigverify when accounts hit write-compute limit, Add ability to filter transactions pre-sigverify when accounts hit write-compute limit #24657
High priority transactions should be retried more often, Rework banking_stage retry logic to retry high priority transactions more often #26015
Add a transaction prioritization API to the JavaScript library (@solana/web3.js), Add a transaction prioritization API to the JavaScript library (@solana/web3.js) solana-web3.js#1099
The text was updated successfully, but these errors were encountered: