Skip to content

Surfpool is the best place to train before surfing Solana

License

Notifications You must be signed in to change notification settings

Dodecahedr0x/surfpool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

surfpool

Where you train before surfing Solana

surfpool

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 solana-svm API through the excellent wrapper LiteSVM. This approach provides greater flexibility and significantly faster boot times.

surfpool is also available as a library on crates.io - facilitating its integration in other projects.

Command line

$ surfpool start

Configurable

  • Ability to pull configuration from a Surfpool.toml manifest 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
      • requestAirdrop
      • getMultipleAccounts
      • getFeeForMessage
      • getBalance
      • simulateTransaction
      • getTransaction
    • Priority 2:
      • getBlock
      • getBlockCommitment
      • getBlockHeight
      • getBlockProduction
      • getBlocks
      • getBlocksWithLimit
      • getBlockTime
      • getClusterNodes
      • getEpochSchedule
      • getFirstAvailableBlock
      • getGenesisHash
      • getHealth
      • getHighestSnapshotSlot
      • getIdentity
      • getInflationGovernor
      • getInflationRate
      • getInflationReward
      • getLargestAccounts
      • getLeaderSchedule
      • getMaxRetransmitSlot
      • getMaxShredInsertSlot
      • getMinimumBalanceForRentExemption
      • getProgramAccounts
      • getRecentPerformanceSamples
      • getRecentPrioritizationFees
      • getSignaturesForAddress
      • getSignatureStatuses
      • getSlotLeader
      • getSlotLeaders
      • getStakeMinimumDelegation
      • getSupply
      • getTokenAccountBalance
      • getTokenAccountsByDelegate
      • getTokenAccountsByOwner
      • getTokenLargestAccounts
      • getTokenSupply
      • getTransactionCount
      • getVoteAccounts
      • isBlockhashValid
      • minimumLedgerSlot
  • Support Websocket Methods

Going Further

  • Ability to watch and update fetched account

About

Surfpool is the best place to train before surfing Solana

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%