Move blocktree-oriented diagram out of proposals

This commit is contained in:
Greg Fitzgerald
2019-02-22 15:04:43 -07:00
parent 71602fe04b
commit 8353b420d1
4 changed files with 30 additions and 93 deletions

View File

@ -1,30 +0,0 @@
.----------------------------------.
| Fullnode |
| |
.--------. | .------------------. |
| |---->| | |
| Client | | | JSON RPC Service | |
| |<----| | |
`----+---` | `------------------` |
| | ^ |
| | | .----------------. | .------------------.
| | | | Gossip Service |<-------| Validators |
| | | `----------------` | | |
| | | ^ | | |
| | | | | | .------------. |
| | .--+---. .--+---. .---------. | | | | |
| | | Bank |<-|Replay| |BlobFetch|<-----+ Upstream | |
| | | Forks| |Stage | | Stage | | | | Validators | |
| | `------` `------` `-+-------` | | | | |
| | ^ ^ | | | `------------` |
| | | | v | | |
| | | .-+-------. | | |
| | | |Blocktree| | | |
| | | `---------` | | .------------. |
| | | ^ | | | | |
| | | | | | | Downstream | |
| | .--+--. .-------+---. | | | Validators | |
`-------->| TPU +-->| Broadcast +------------->| | |
| `-----` | Service | | | `------------` |
| `-----------` | `------------------`
`----------------------------------`

View File

@ -1,27 +1,30 @@
.---------------------------.
| Fullnode |
| |
.--------. | .------------------. |
| |---->| | |
| Client | | | JSON RPC Service | |
| |<----| | |
`----+---` | `------------------` |
| | ^ | .------------------.
| | | .----------------. | | Validators |
| | | | Gossip Service +----->| |
| | | `--------+-------` | | .------------. |
| | | ^ | | | | | |
| | | | v | | | Upstream | |
| | .--+---. .-+---. | | | Validators | |
| | | Bank |<--| TVU |<--------------+ | |
| | `------` `-----` | | `------------` |
| | ^ | | |
| | | | | .------------. |
| | .--+--. .-----------. | | | | |
`-------->| TPU +-->| Broadcast +--------->| Downstream | |
| `-----` | Service | | | | Validators | |
| `-----------` | | | | |
| | | `------------` |
`---------------------------` | |
`------------------`
.--------------------------------------.
| Fullnodee |
| |
.--------. | .-------------------. |
| |---->| | |
| Client | | | JSON RPC SService | |
| |<----| | |
`----+---` | `-------------------` |
| | ^ |
| | | .----------------. | .------------------.
| | | | Gossip Service |<----------| Validators |
| | | `----------------` | | |
| | | ^ | | |
| | | | | | .------------. |
| | .---+---. .----+---. .-----------. | | | | |
| | | Bank |<-+ Replay | | BlobFetch |<------+ Upstream | |
| | | Forks | | Stage | | Stage | | | | Validators | |
| | `-------` `--------` `--+--------` | | | | |
| | ^ ^ | | | `------------` |
| | | | v | | |
| | | .--+--------. | | |
| | | | Blocktree | | | |
| | | `-----------` | | .------------. |
| | | ^ | | | | |
| | | | | | | Downstream | |
| | .--+--. .-------+---. | | | Validators | |
`-------->| TPU +---->| Broadcast +--------------->| | |
| `-----` | Service | | | `------------` |
| `-----------` | `------------------`
`--------------------------------------`

View File

@ -37,7 +37,6 @@
- [Data Plane Fanout](data-plane-fanout.md)
- [Reliable Vote Transmission](reliable-vote-transmission.md)
- [Bank Forks](bank-forks.md)
- [Blocktree Validation](fullnode-with-ledger-notifications.md)
- [Cluster Economics](ed_overview.md)
- [Validation-client Economics](ed_validation_client_economics.md)
- [State-validation Protocol-based Rewards](ed_vce_state_validation_protocol_based_rewards.md)

View File

@ -1,35 +0,0 @@
# Fullnode
This document proposes the following architecture changes to fullnode pipeline.
## Current Architecture
<img alt="Fullnode block diagrams" src="img/fullnode.svg" class="center"/>
## Proposal
<img alt="Fullnode block diagrams" src="img/fullnode-proposal.svg" class="center"/>
## Background
In the old architecture, the ReplayStage receives entries from the RetransmitStage,
processes them and writes to the ledger.
In the current code, the ledger write operation has been moved out of the ReplayStage.
If the fullnode is running with a TPU, the Broadcast Service writes to the ledger.
The Retransmit Stage receives entries from peer fullnodes and also writes to the ledger.
The ledger notifies the ReplayStage whenever some entity writes to it. The
ReplayStage reads from the ledger, processes the entries in the bank and submits
the votes.
In old architecture, the RetransmitStage and ReplayStage are contained in the TVU.
## Changes
This document proposes the following change to the architecture.
1. Split TVU into BlobFetchStage, and ReplayStage
2. Add Blocktree (ledger) to the diagram
3. The Blocktree is updated by Broadcast Service and BlobFetchStage
4. Replay Stage gets notified by Blocktree when someone writes to it
5. Replay Stage submits votes via Gossip Service
6. Replace Bank with BankForks