Attempt to pull the completed replication work into the book

This commit is contained in:
Greg Fitzgerald 2019-02-22 14:08:05 -07:00
parent af206111e2
commit b752511f41
3 changed files with 49 additions and 50 deletions

View File

@ -16,6 +16,7 @@
- [Leader Rotation](leader-rotation.md)
- [Fork Generation](fork-generation.md)
- [Data Plane Fanout](data-plane-fanout.md)
- [Ledger Replication](ledger-replication.md)
- [Anatomy of a Fullnode](fullnode.md)
- [TPU](tpu.md)
@ -31,7 +32,7 @@
- [solana-wallet CLI](wallet.md)
- [Proposed Architectural Changes](proposals.md)
- [Ledger Replication](ledger-replication.md)
- [Ledger Replication](ledger-replication-to-implement.md)
- [Secure Vote Signing](vote-signer.md)
- [Staking Rewards](staking-rewards.md)
- [Fork Selection](fork-selection.md)

View File

@ -15,55 +15,6 @@ proof and it also requires the validator to have the entirety of the encrypted
data present for verification of every proof of every identity. So the space
required to validate is `number_of_proofs * data_size`
## Terminology
#### replicator
Storage mining client, stores some part of the ledger enumerated in blocks and
submits storage proofs to the chain. Not a full-node.
#### ledger segment
Portion of the ledger which is downloaded by the replicator where storage proof
data is derived.
#### CBC block
Smallest encrypted chunk of ledger, an encrypted ledger segment would be made of
many CBC blocks. `ledger_segment_size / cbc_block_size` to be exact.
#### storage proof
A set of sha hash state which is constructed by sampling the encrypted version
of the stored ledger segment at certain offsets.
#### fake storage proof
A proof which has the same format as a storage proof, but the sha state is
actually from hashing a known ledger value which the storage client can reveal
and is also easily verifiable by the network on-chain.
#### storage proof confirmation
A transaction by a validator which indicates the set of real and fake proofs
submitted by a storage miner. The transaction would contain a list of proof
hash values and a bit which says if this hash is valid or fake.
#### storage proof challenge
A transaction from a replicator that verifiably proves that a validator
confirmed a fake proof.
#### storage proof claim
A transaction from a validator which is after the timeout period given from the
storage proof confirmation and which no successful challenges have been
observed which rewards the parties of the storage proofs and confirmations.
#### storage validation capacity
The number of keys and samples that a validator can verify each storage epoch.
## Optimization with PoH
Our improvement on this approach is to randomly sample the encrypted segments

View File

@ -35,6 +35,11 @@ The [entry id](#entry-id) of the last entry in a [block](#block).
The first [fullnode](#fullnode) to take the [leader](#leader) role.
#### CBC block
Smallest encrypted chunk of ledger, an encrypted ledger segment would be made of
many CBC blocks. `ledger_segment_size / cbc_block_size` to be exact.
#### client
A [node](#node) that utilizes the [cluster](#cluster).
@ -63,6 +68,12 @@ consensus.
An off-chain service that acts as a custodian for a user's private key. It
typically serves to validate and sign transactions.
#### fake storage proof
A proof which has the same format as a storage proof, but the sha state is
actually from hashing a known ledger value which the storage client can reveal
and is also easily verifiable by the network on-chain.
#### entry
An entry on the [ledger](#ledger) either a [tick](#tick) or a [transactions
@ -138,6 +149,11 @@ at any moment in time.
A list of [entries](#entry) containing [transactions](#transaction) signed by
[clients](#client).
#### ledger segment
Portion of the ledger which is downloaded by the replicator where storage proof
data is derived.
#### ledger vote
A [hash](#hash) of the [fullnode's state](#fullnode-state) at a given [tick
@ -192,6 +208,11 @@ verified in less time than it took to produce.
The public key of a [keypair](#keypair).
#### replicator
Storage mining client, stores some part of the ledger enumerated in blocks and
submits storage proofs to the chain. Not a full-node.
#### runtime
The component of a [fullnode](#fullnode) responsible for [program](#program)
@ -216,6 +237,32 @@ by the company Solana.
Tokens forfeit to the [cluster](#cluster) if malicious [fullnode](#fullnode)
behavior can be proven.
#### storage proof
A set of sha hash state which is constructed by sampling the encrypted version
of the stored ledger segment at certain offsets.
#### storage proof challenge
A transaction from a replicator that verifiably proves that a validator
confirmed a fake proof.
#### storage proof claim
A transaction from a validator which is after the timeout period given from the
storage proof confirmation and which no successful challenges have been
observed which rewards the parties of the storage proofs and confirmations.
#### storage proof confirmation
A transaction by a validator which indicates the set of real and fake proofs
submitted by a storage miner. The transaction would contain a list of proof
hash values and a bit which says if this hash is valid or fake.
#### storage validation capacity
The number of keys and samples that a validator can verify each storage epoch.
#### thin client
A type of [client](#client) that trusts it is communicating with a valid