Expand description
The solana library implements the Solana high-performance blockchain architecture.
It includes a full Rust implementation of the architecture (see
Validator) as well as hooks to GPU implementations of its most
paralellizable components (i.e. SigVerify).  It also includes
command-line tools to spin up validators and a Rust library
Modules§
- admin_rpc_ post_ init 
- banking_stage 
- The banking_stageprocesses Transaction messages. It is intended to be used to construct a software pipeline. The stage uses all available CPU cores and can do its processing in parallel with signature verification on the GPU.
- banking_trace 
- cluster_info_ vote_ listener 
- cluster_slots_ service 
- commitment_service 
- completed_data_ sets_ service 
- CompletedDataSetsServiceis a hub, that runs different operations when a “completed data set”, also known as a- Vec<Entry>, is received by the validator.
- consensus
- cost_update_ service 
- this service asynchronously reports CostTracker stats
- drop_bank_ service 
- fetch_stage 
- The fetch_stagebatches input from a UDP socket and sends it to a channel.
- forwarding_stage 
- ForwardingStageis a stage parallel to- BankingStagethat forwards packets to a node that is or will be leader soon.
- gen_keys 
- The gen_keysmodule makes lots of keypairs
- next_leader 
- optimistic_confirmation_ verifier 
- repair
- replay_stage 
- The replay_stagereplays transactions broadcast by the leader.
- sample_performance_ service 
- sigverify
- The sigverifymodule provides digital signature verification functions. By default, signatures are verified in parallel using all available CPU cores. When perf-libs are available signature verification is offloaded to the GPU.
- sigverify_stage 
- The sigverify_stageimplements the signature verification stage of the TPU. It receives a list of lists of packets and outputs the same list, but tags each top-level list with a list of booleans, telling the next stage whether the signature in that packet is valid. It assumes each packet contains one transaction. All processing is done on the CPU by default and on a GPU if perf-libs are available
- snapshot_packager_ service 
- staked_nodes_ updater_ service 
- stats_reporter_ service 
- system_monitor_ service 
- tpu
- The tpumodule implements the Transaction Processing Unit, a multi-stage transaction processing pipeline in software.
- tvu
- The tvumodule implements the Transaction Validation Unit, a multi-stage transaction validation pipeline in software.
- unfrozen_gossip_ verified_ vote_ hashes 
- validator
- The validatormodule hosts all the validator microservices.
- voting_service 
- warm_quic_ cache_ service 
- window_service 
- window_servicehandles the data plane incoming shreds, storing them in blockstore and retransmitting where required