Add TVU ASCII art
This commit is contained in:
67
src/tvu.rs
67
src/tvu.rs
@ -1,24 +1,51 @@
|
|||||||
//! The `tvu` module implements the Transaction Validation Unit, a
|
//! The `tvu` module implements the Transaction Validation Unit, a
|
||||||
//! 5-stage transaction validation pipeline in software.
|
//! 3-stage transaction validation pipeline in software.
|
||||||
//! 1. streamer
|
//!
|
||||||
//! - Incoming blobs are picked up from the replicate socket.
|
//! ```text
|
||||||
//! 2. verifier
|
//! .----------------------------------------.
|
||||||
//! - TODO Blobs are sent to the GPU, and while the memory is there the PoH stream is verified
|
//! | TVU |
|
||||||
//! along with the ecdsa signature for the blob and each signature in all the transactions. Blobs
|
//! | |
|
||||||
//! with errors are dropped, or marked for slashing.
|
//! | |
|
||||||
//! 3.a retransmit
|
//! | |
|
||||||
//! - Blobs originating from the parent (leader, at the moment, is the only parent), are retransmit to all the
|
//! | |
|
||||||
//! peers in the crdt. Peers is everyone who is not me or the leader that has a known replicate
|
//! | .-------. .--------. .-----------. |
|
||||||
//! address.
|
//! .--------. | | Blob | | Window | | Replicate | | .------------.
|
||||||
//! 3.b window
|
//! | Leader |--->| Fetch |->| Stage |->| Stage |---->| Validators |
|
||||||
//! - Verified blobs are placed into a window, indexed by the counter set by the leader.sockets. This could
|
//! `--------` | | Stage | | | | | | `------------`
|
||||||
//! be the PoH counter if its monotonically increasing in each blob. Erasure coding is used to
|
//! | `-------` `----+---` `----+------` |
|
||||||
//! recover any missing packets, and requests are made at random to peers and parents to retransmit
|
//! | | | |
|
||||||
//! a missing packet.
|
//! | | | |
|
||||||
//! 4. accountant
|
//! | | | |
|
||||||
//! - Contigous blobs are sent to the accountant for processing transactions
|
//! | | | |
|
||||||
//! 5. validator
|
//! `------------------|-----------|---------`
|
||||||
//! - TODO Validation messages are sent back to the leader
|
//! | |
|
||||||
|
//! v v
|
||||||
|
//! .--------. .------.
|
||||||
|
//! | Window | | Bank |
|
||||||
|
//! `--------` `------`
|
||||||
|
//! ```
|
||||||
|
//
|
||||||
|
// TODO: @aeyakovenko, these comments no longer refect the code in this module:
|
||||||
|
// 1. streamer
|
||||||
|
// - Incoming blobs are picked up from the replicate socket.
|
||||||
|
// 2. verifier
|
||||||
|
// - TODO Blobs are sent to the GPU, and while the memory is there the PoH stream is verified
|
||||||
|
// along with the ecdsa signature for the blob and each signature in all the transactions. Blobs
|
||||||
|
// with errors are dropped, or marked for slashing.
|
||||||
|
// 3.a retransmit
|
||||||
|
// - Blobs originating from the parent (leader, at the moment, is the only parent), are retransmit to all the
|
||||||
|
// peers in the crdt. Peers is everyone who is not me or the leader that has a known replicate
|
||||||
|
// address.
|
||||||
|
// 3.b window
|
||||||
|
// - Verified blobs are placed into a window, indexed by the counter set by the leader.sockets. This could
|
||||||
|
// be the PoH counter if its monotonically increasing in each blob. Erasure coding is used to
|
||||||
|
// recover any missing packets, and requests are made at random to peers and parents to retransmit
|
||||||
|
// a missing packet.
|
||||||
|
// 4. accountant
|
||||||
|
// - Contigous blobs are sent to the accountant for processing transactions
|
||||||
|
// 5. validator
|
||||||
|
// - TODO Validation messages are sent back to the leader
|
||||||
|
//
|
||||||
|
|
||||||
use bank::Bank;
|
use bank::Bank;
|
||||||
use blob_fetch_stage::BlobFetchStage;
|
use blob_fetch_stage::BlobFetchStage;
|
||||||
|
Reference in New Issue
Block a user