Crate solana [] [src]

Modules

bank

The bank module tracks client balances, and the progress of pending transactions. It offers a high-level public API that signs transactions on behalf of the caller, and a private low-level API for when they have already been signed and verified.

banking_stage

The banking_stage processes Event messages.

crdt

The crdt module defines a data structure that is shared by all the nodes in the network over a gossip control plane. The goal is to share small bits of off-chain information and detect and repair partitions.

ecdsa
entry

The entry module is a fundamental building block of Proof of History. It contains a unique ID that is the hash of the Entry before it, plus the hash of the transactions within it. Entries cannot be reordered, and its field num_hashes represents an approximate amount of time since the last Entry was created.

entry_writer

The entry_writer module helps implement the TPU's write stage.

event

The event module handles events, which may be a Transaction, or a Witness used to process a pending Transaction.

hash

The hash module provides functions for creating SHA-256 hashes.

ledger

The ledger module provides functions for parallel verification of the Proof of History ledger.

logger
mint

The mint module is a library for generating the chain's genesis block.

packet

The packet module defines data structures and methods to pull data from the network.

plan

The plan module provides a domain-specific language for payment plans. Users create Plan objects that are given to an interpreter. The interpreter listens for Witness events, which it uses to reduce the payment plan. When the plan is reduced to a Payment, the payment is executed.

record_stage

The record_stage module provides an object for generating a Proof of History. It records Event items on behalf of its users. It continuously generates new hashes, only stopping to check if it has been sent an Event item. It tags each Event with an Entry, and sends it back. The Entry includes the Event, the latest hash, and the number of hashes since the last event. The resulting stream of entries represents ordered events in time.

recorder

The recorder module provides an object for generating a Proof of History. It records Event items on behalf of its users.

replicate_stage

The replicate_stage replicates transactions broadcast by the leader.

request

The request module defines the messages for the thin client.

request_processor

The request_stage processes thin client Request messages.

request_stage

The request_stage processes thin client Request messages.

result

The result module exposes a Result type that propagates one of many different Error types.

rpu

The rpu module implements the Request Processing Unit, a 5-stage transaction processing pipeline in software.

server

The server module hosts all the server microservices.

sig_verify_stage

The sig_verify_stage implements the signature verification stage of the TPU.

signature

The signature module provides functionality for public, and private keys.

streamer

The streamer module defines a set of services for effecently pulling data from udp sockets.

thin_client

The thin_client module is a client-side object that interfaces with a server-side TPU. Client code should use this object instead of writing messages to the network directly. The binary encoding of its messages are unstable and may change in future releases.

timing
tpu

The tpu module implements the Transaction Processing Unit, a 5-stage transaction processing pipeline in software.

transaction

The transaction module provides functionality for creating log transactions.

tvu

The tvu module implements the Transaction Validation Unit, a 5-stage transaction validation pipeline in software.

write_stage

The write_stage module implements write stage of the RPU.