surfpool
Where you train before surfing Solana
surfpool is to solana what anvil is to ethereum: a blazing fast in-memory testnet that has the ability to point-fork Solana mainnet instantly.
Specs
Design
Instead of using a full Solana test validator solana-test-validator, surfpool uses the low level solan-svm API through the excellent wrapper LiteSVM.
This approach provides greater flexibility and significantly faster boot times.
surfpool is also available as library on crates.io - facilitating its integration in other projects.
Command line
$ surfpool start
Configurable
- Ability to pull configuration from a
Surfpool.tomlmanifest file - Ability to setup slot time (default to
400ms) - Ability to setup epoch duration (default to
432,000) - Ability to configure behavior:
- genesis
- point-fork mainnet
- stream-fork mainnet
- Ability to configure the RPC node URL to default to.
RPC Support
- Support
HTTP Methods- Priority 1:
- getVersion
- getSlot
- getEpochInfo
- getLatestBlockhash
- sendTransaction
- getAccountInfo
- Priority 2:
- getBalance
- getBlock
- getBlockCommitment
- getBlockHeight
- getBlockProduction
- getBlocks
- getBlocksWithLimit
- getBlockTime
- getClusterNodes
- getEpochSchedule
- getFeeForMessage
- getFirstAvailableBlock
- getGenesisHash
- getHealth
- getHighestSnapshotSlot
- getIdentity
- getInflationGovernor
- getInflationRate
- getInflationReward
- getLargestAccounts
- getLeaderSchedule
- getMaxRetransmitSlot
- getMaxShredInsertSlot
- getMinimumBalanceForRentExemption
- getMultipleAccounts
- getProgramAccounts
- getRecentPerformanceSamples
- getRecentPrioritizationFees
- getSignaturesForAddress
- getSignatureStatuses
- getSlotLeader
- getSlotLeaders
- getStakeMinimumDelegation
- getSupply
- getTokenAccountBalance
- getTokenAccountsByDelegate
- getTokenAccountsByOwner
- getTokenLargestAccounts
- getTokenSupply
- getTransaction
- getTransactionCount
- getVoteAccounts
- isBlockhashValid
- minimumLedgerSlot
- requestAirdrop
- simulateTransaction
- Priority 1:
- Support
Websocket Methods
Going Further
- Ability to watch and update fetched account