|

Hidden Solana upgrade bug can freeze network readers and silently disable fee limits

Solana v1 fault map showing the 4,096-byte limit and required updates for RPC readers, indexers, fee sponsors and onchain programs

Solana’s v1 transaction format guarantees greater than 3 times as a lot room per transaction, however RPC shoppers, indexers, relayers and fee sponsors that aren’t prepared for it can fail in two very other ways: some methods cease, whereas others maintain working with the incorrect useful resource limits.

Solana’s live upgrade page nonetheless lists v1 as not activated on mainnet as of Sept. 4. Testnet is lively and devnet is dwell in epoch 1140. A Solana changelog revealed Aug. 28 mentioned v1 transactions have been “coming quickly,” leaving infrastructure operators a pre-activation window to replace.

V1 raises the utmost payload from 1,232 bytes to 4,096 bytes, a couple of 3.3-fold improve. Legacy and v0 transactions maintain their current limits and habits, so customers and functions that proceed utilizing these codecs don’t must migrate.

Related Reading

Solana’s Agave 4.2 activation target arrives with mainnet feature gates still pending


RPC shoppers should go the integer maxSupportedTransactionVersion: 1 when utilizing getTransaction, getBlock or blockSubscribe. Without that opt-in, a v1 getTransaction request returns error -32015, one v1 transaction makes getBlock fail for the whole block, and blockSubscribe emits block: null and stops advancing on the first affected slot.

The parameter solely tells the RPC service the very best format the consumer can decode. It doesn’t request v1 information or change how legacy and v0 transactions are returned.

Related Reading

Solana takes its first step toward sub-second speed by cutting block confirmation times across the network


Other failures are quieter. V1 strikes compute-unit limits, loaded-account information limits and precedence charges right into a transactionConfig object as a substitute of ComputeBudget directions. An indexer that retains scanning these directions will report a zero compute funds for each v1 transaction with out elevating an error.

Geyser and gRPC shoppers face a associated lure. The protobuf’s versioned flag is true for each v0 and v1. A stale client can subsequently label v1 as v0 and protect an empty funds. The repair is to regenerate the protobuf stubs and examine for Message.config, subject 7, earlier than studying the flag.

Relayers, paymasters and different server signers should change their coverage checks too. A sponsor that enforces a fee cap by scanning ComputeBudget directions now not has a binding cap as a result of these directions could seem in v1 however execute as no-ops. Servers should establish the 0x81 v1 prefix and implement the fee and useful resource limits in transactionConfig. This is an application-control failure, not a consensus flaw or proof that funds are robotically in danger.

Related Reading

Ethereum and Solana are hosting trillions in dollar volume, yet their native tokens risk losing direct consumer demand


Onchain packages face a tougher constraint: Solana says no present sysvar or syscall exposes the v1 message configuration. Programs that gate habits on introspected ComputeBudget directions should cease counting on that examine when v1 goes dwell.

Solana v1 fault map showing the 4,096-byte limit and required updates for RPC readers, indexers, fee sponsors and onchain programs

Who must upgrade for Solana v1

The minimal reader-capable releases embody @solana/package 8.0.0, @solana/web3.js 3.0.0-rc.3, Rust solana-* 4.2.x, Python solders 0.29.0 and solana-go 1.23.0. The 1.x web3.js line can learn v1 from 1.99.0-beta.0 however can not construct, signal or ship it.

Yellowstone customers want at the least yellowstone-grpc-proto 12.6.0, geyser plugin 15.1.1, gRPC consumer 12.0.0 or @triton-one/yellowstone-grpc 6.0.0, relying on their stack.

Creating v1 transactions is non-obligatory. Teams that decide in should set compute-unit and loaded-account information limits explicitly as a result of each default to zero, take away no-op ComputeBudget directions, cease utilizing tackle lookup tables and use base64 for payloads bigger than 1,232 bytes. The speedy deadline will not be a common pockets migration. It is a compatibility take a look at for each service that will learn, index or sponsor any individual else’s v1 transaction.

The publish Hidden Solana upgrade bug can freeze network readers and silently disable fee limits appeared first on CryptoSlate.

Similar Posts