Crate solana_core

Source
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§

accounts_hash_verifier
Service to calculate accounts hashes
admin_rpc_post_init
banking_stage
The banking_stage processes 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
CompletedDataSetsService is 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_stage batches input from a UDP socket and sends it to a channel.
forwarding_stage
ForwardingStage is a stage parallel to BankingStage that forwards packets to a node that is or will be leader soon.
gen_keys
The gen_keys module makes lots of keypairs
next_leader
optimistic_confirmation_verifier
repair
replay_stage
The replay_stage replays transactions broadcast by the leader.
sample_performance_service
sigverify
The sigverify module 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_stage implements 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 tpu module implements the Transaction Processing Unit, a multi-stage transaction processing pipeline in software.
tvu
The tvu module implements the Transaction Validation Unit, a multi-stage transaction validation pipeline in software.
unfrozen_gossip_verified_vote_hashes
validator
The validator module hosts all the validator microservices.
voting_service
warm_quic_cache_service
window_service
window_service handles the data plane incoming shreds, storing them in blockstore and retransmitting where required