SolProj Blog
Delivering Convenient E2E testing on Solana
May 24, 2025
Solana Forking Prototype: Initial Progress Report
Current Status

The Solana forking prototype has reached its first milestone with the successful implementation of basic mainnet state access through solana-test-validator. The system now correctly handles read-only RPC operations like getBalance and getAccount, effectively demonstrating that the forked state can be queried and returns accurate mainnet data.

What's Working

- Read Operations: RPC calls for balance queries and account retrieval are functioning correctly
- State Snapshot: The validator successfully maintains mainnet state and makes it accessible
- Basic Infrastructure: Core forking mechanism is in place and operational

Current Blocker

Despite successful read operations, transaction processing remains broken. Attempts to send transactions result in the error:

SendTransactionError: failed to send transaction: Transaction simulation failed:
Attempt to debit an account but found no record of a prior credit.

This error occurs even when getBalance confirms the account has sufficient funds, indicating a disconnect between the read and write paths in the forked environment.

Technical Challenges

The issue appears to stem from the complexity of Solana's account management system. While the initial approach considered implementing hooks at the AccountsDB level (the more obvious location for account state management), this was avoided due to AccountsDB's sophisticated history tracking and state management complexities.

Instead, the current implementation focuses on bank-level modifications, though this approach may need reevaluation given the current transaction processing issues.

Next Steps

The immediate priority is resolving the transaction processing disconnect. This will likely require:

1. Deeper investigation into the account state synchronization between read and write operations
2. Potential reconsideration of the AccountsDB hook approach
3. Analysis of how account history and state transitions are managed in the forked environment

The foundation is solid, but the write path integration remains the critical challenge for a fully functional forking solution.

Forking: step 1 · web3engineering/forking-validator@8d43a0a
Follow Us
It is the intended result of the entire process of presenting textual material to convey meaning so that others would easily grasp it.
Photo credits: Nicola Albertini

All text, photo, and video materials belong to their owners and are for demonstration purposes only. Please do not use them in commercial projects.