Fix capitalization
And delete JSON RPC Service for now, since it currently has no content.
This commit is contained in:
@ -17,7 +17,6 @@
|
|||||||
- [TPU](tpu.md)
|
- [TPU](tpu.md)
|
||||||
- [TVU](tvu.md)
|
- [TVU](tvu.md)
|
||||||
- [NCP](ncp.md)
|
- [NCP](ncp.md)
|
||||||
- [JSON RPC Service](jsonrpc-service.md)
|
|
||||||
- [The Runtime](runtime.md)
|
- [The Runtime](runtime.md)
|
||||||
|
|
||||||
## Appendix
|
## Appendix
|
||||||
|
@ -9,7 +9,7 @@ discuss how a cluster is created, how nodes join the cluster, how they share
|
|||||||
the ledger, how they ensure the ledger is replicated, and how they cope with
|
the ledger, how they ensure the ledger is replicated, and how they cope with
|
||||||
buggy and malicious nodes.
|
buggy and malicious nodes.
|
||||||
|
|
||||||
## Creating a cluster
|
## Creating a Cluster
|
||||||
|
|
||||||
To create a cluster, one needs the fullnode software and a *genesis block*. A
|
To create a cluster, one needs the fullnode software and a *genesis block*. A
|
||||||
minimal genesis block can be created using the command-line tools
|
minimal genesis block can be created using the command-line tools
|
||||||
@ -30,7 +30,7 @@ the validator is expected to store those entries until *replicator* nodes
|
|||||||
submit proofs that they have stored copies of it. Once the validator observes a
|
submit proofs that they have stored copies of it. Once the validator observes a
|
||||||
sufficient number of copies exist, it deletes its copy.
|
sufficient number of copies exist, it deletes its copy.
|
||||||
|
|
||||||
## Joining a cluster
|
## Joining a Cluster
|
||||||
|
|
||||||
Fullnodes and replicators enter the cluster via registration messages sent to
|
Fullnodes and replicators enter the cluster via registration messages sent to
|
||||||
its *control plane*. The control plane is implemented using a *gossip*
|
its *control plane*. The control plane is implemented using a *gossip*
|
||||||
@ -61,7 +61,7 @@ Both problems justify the additional level, but you won't find it implemented
|
|||||||
in the reference design just yet, because Solana's gossip implementation is
|
in the reference design just yet, because Solana's gossip implementation is
|
||||||
currently the bottleneck on the number of nodes per Solana cluster.
|
currently the bottleneck on the number of nodes per Solana cluster.
|
||||||
|
|
||||||
## Malicious nodes
|
## Malicious Nodes
|
||||||
|
|
||||||
Solana is a *permissionless* blockchain, meaning that anyone wanting to
|
Solana is a *permissionless* blockchain, meaning that anyone wanting to
|
||||||
participate in the network may do so. They need only *stake* some
|
participate in the network may do so. They need only *stake* some
|
||||||
|
@ -19,7 +19,7 @@ dryer and the first is being folded. In this way, one can make progress on
|
|||||||
three loads of laundry simultaneously. Given infinite loads, the pipeline will
|
three loads of laundry simultaneously. Given infinite loads, the pipeline will
|
||||||
consistently complete a load at the rate of the slowest stage in the pipeline.
|
consistently complete a load at the rate of the slowest stage in the pipeline.
|
||||||
|
|
||||||
## Pipelining in the fullnode
|
## Pipelining in the Fullnode
|
||||||
|
|
||||||
The fullnode contains two pipelined processes, one used in leader mode called
|
The fullnode contains two pipelined processes, one used in leader mode called
|
||||||
the Tpu and one used in validator mode called the Tvu. In both cases, the
|
the Tpu and one used in validator mode called the Tvu. In both cases, the
|
||||||
|
@ -152,7 +152,7 @@ $ snap info solana
|
|||||||
$ sudo snap refresh solana --devmode
|
$ sudo snap refresh solana --devmode
|
||||||
```
|
```
|
||||||
|
|
||||||
### Daemon support
|
### Daemon Support
|
||||||
The snap supports running a leader, validator or leader+drone node as a system
|
The snap supports running a leader, validator or leader+drone node as a system
|
||||||
daemon.
|
daemon.
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ $ sudo snap set solana mode=
|
|||||||
Runtime configuration files for the daemon can be found in
|
Runtime configuration files for the daemon can be found in
|
||||||
`/var/snap/solana/current/config`.
|
`/var/snap/solana/current/config`.
|
||||||
|
|
||||||
#### Leader daemon
|
#### Leader Daemon
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo snap set solana mode=leader
|
$ sudo snap set solana mode=leader
|
||||||
|
@ -4,7 +4,7 @@ Solana is the name of an open source project that is implementing a new
|
|||||||
high-performance, permissionless blockchain. Solana is also the name of a
|
high-performance, permissionless blockchain. Solana is also the name of a
|
||||||
company headquartered in San Francisco that maintains the open source project.
|
company headquartered in San Francisco that maintains the open source project.
|
||||||
|
|
||||||
# About this book
|
# About this Book
|
||||||
|
|
||||||
This book defines the architecture of Solana, a blockchain built from the
|
This book defines the architecture of Solana, a blockchain built from the
|
||||||
ground up for scale. The goal of the architecture is to demonstrate there
|
ground up for scale. The goal of the architecture is to demonstrate there
|
||||||
@ -28,7 +28,7 @@ author's best effort. It is up to the reader to check and validate their
|
|||||||
accuracy and truthfulness. Furthermore, nothing in this project constitutes a
|
accuracy and truthfulness. Furthermore, nothing in this project constitutes a
|
||||||
solicitation for investment.
|
solicitation for investment.
|
||||||
|
|
||||||
# History of the Solana codebase
|
# History of the Solana Codebase
|
||||||
|
|
||||||
In November of 2017 Anatoly Yakovenko published a whitepaper describing Proof
|
In November of 2017 Anatoly Yakovenko published a whitepaper describing Proof
|
||||||
of History, a technique for keeping time between computers that do not trust
|
of History, a technique for keeping time between computers that do not trust
|
||||||
@ -87,7 +87,7 @@ thousand. The project was also extended to support on-chain programs written
|
|||||||
in the C programming language and run concurrently in a safe execution
|
in the C programming language and run concurrently in a safe execution
|
||||||
environment called BPF. Next step: going permissionless.
|
environment called BPF. Next step: going permissionless.
|
||||||
|
|
||||||
# What is a Solana cluster and why would one use it?
|
# What is a Solana Cluster?
|
||||||
|
|
||||||
A cluster is a set of computers that work together and can be viewed from the
|
A cluster is a set of computers that work together and can be viewed from the
|
||||||
outside as a single system. A Solana cluster is a set of independently owned
|
outside as a single system. A Solana cluster is a set of independently owned
|
||||||
@ -103,7 +103,7 @@ copy of the ledger, the output of its programs (which may contain a record of
|
|||||||
who possesses what) will forever be reproducible, independent of the
|
who possesses what) will forever be reproducible, independent of the
|
||||||
organization that launched it.
|
organization that launched it.
|
||||||
|
|
||||||
# What are sols?
|
# What are Sols?
|
||||||
|
|
||||||
A sol is the name of Solana's native token, which can be passed to nodes in a
|
A sol is the name of Solana's native token, which can be passed to nodes in a
|
||||||
solana cluster in exchange for running an on-chain program or validating its
|
solana cluster in exchange for running an on-chain program or validating its
|
||||||
|
@ -1 +0,0 @@
|
|||||||
# JsonRpcService
|
|
@ -1,3 +1,3 @@
|
|||||||
# The Network Control Plane
|
# The Network Control Plane
|
||||||
|
|
||||||
The Network Control Plane (Ncp) implements a gossip network between all nodes on in the cluster.
|
The Network Control Plane (NCP) implements a gossip network between all nodes on in the cluster.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
With the Solana runtime, we can execute on-chain programs concurrently, and
|
With the Solana runtime, we can execute on-chain programs concurrently, and
|
||||||
written in the client’s choice of programming language.
|
written in the client’s choice of programming language.
|
||||||
|
|
||||||
## Client interactions with Solana
|
## Client Interactions with Solana
|
||||||
|
|
||||||
<img alt="SDK tools" src="img/sdk-tools.svg" class="center"/>
|
<img alt="SDK tools" src="img/sdk-tools.svg" class="center"/>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ states associated with the account keys. For the transaction to be committed
|
|||||||
all the instructions must execute successfully; if any abort the whole
|
all the instructions must execute successfully; if any abort the whole
|
||||||
transaction fails to commit.
|
transaction fails to commit.
|
||||||
|
|
||||||
### Account structure
|
### Account Structure
|
||||||
|
|
||||||
Accounts maintain a token balance and program-specific memory.
|
Accounts maintain a token balance and program-specific memory.
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ is:
|
|||||||
|
|
||||||
``` number_of_proofs * data_size ```
|
``` number_of_proofs * data_size ```
|
||||||
|
|
||||||
# Optimization with PoH
|
## Optimization with PoH
|
||||||
|
|
||||||
Solana is not the only distribute systems project using Proof of Replication,
|
Solana is not the only distribute systems project using Proof of Replication,
|
||||||
but it might be the most efficient implementation because of its ability to
|
but it might be the most efficient implementation because of its ability to
|
||||||
@ -43,7 +43,7 @@ symmetric keys. The total space required for verification is:
|
|||||||
with core count of equal to (Number of Identities). A CBC block is expected to
|
with core count of equal to (Number of Identities). A CBC block is expected to
|
||||||
be 1MB in size.
|
be 1MB in size.
|
||||||
|
|
||||||
# Network
|
## Network
|
||||||
|
|
||||||
Validators for PoRep are the same validators that are verifying transactions.
|
Validators for PoRep are the same validators that are verifying transactions.
|
||||||
They have some stake that they have put up as collateral that ensures that
|
They have some stake that they have put up as collateral that ensures that
|
||||||
@ -54,7 +54,7 @@ Replicators are specialized light clients. They download a part of the ledger
|
|||||||
and store it and provide proofs of storing the ledger. For each verified proof,
|
and store it and provide proofs of storing the ledger. For each verified proof,
|
||||||
replicators are rewarded tokens from the mining pool.
|
replicators are rewarded tokens from the mining pool.
|
||||||
|
|
||||||
# Constraints
|
## Constraints
|
||||||
|
|
||||||
Solana's PoRep protocol instroduces the following constraints:
|
Solana's PoRep protocol instroduces the following constraints:
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ Solana's PoRep protocol instroduces the following constraints:
|
|||||||
many identities at once are batched with as many proofs for those identities
|
many identities at once are batched with as many proofs for those identities
|
||||||
verified concurrently for the same dataset.
|
verified concurrently for the same dataset.
|
||||||
|
|
||||||
# Validation and Replication Protocol
|
## Validation and Replication Protocol
|
||||||
|
|
||||||
1. The network sets a replication target number, let's say 1k. 1k PoRep
|
1. The network sets a replication target number, let's say 1k. 1k PoRep
|
||||||
identities are created from signatures of a PoH hash. They are tied to a
|
identities are created from signatures of a PoH hash. They are tied to a
|
||||||
|
@ -58,7 +58,7 @@ theoretical limit of 710,000 transactions per second.
|
|||||||
|
|
||||||
[Proof of History overview](https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274)
|
[Proof of History overview](https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274)
|
||||||
|
|
||||||
### Relationship to consensus mechanisms
|
### Relationship to Consensus Mechanisms
|
||||||
|
|
||||||
Most confusingly, a Proof of History (PoH) is more similar to a Verifiable
|
Most confusingly, a Proof of History (PoH) is more similar to a Verifiable
|
||||||
Delay Function (VDF) than a Proof of Work or Proof of Stake consensus
|
Delay Function (VDF) than a Proof of Work or Proof of Stake consensus
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
# The Transaction Processing Unit
|
# The Transaction Processing Unit
|
||||||
|
|
||||||
<img alt="Tpu block diagram" src="img/tpu.svg" class="center"/>
|
<img alt="TPU Block Diagram" src="img/tpu.svg" class="center"/>
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
# The Transaction Validation Unit
|
# The Transaction Validation Unit
|
||||||
|
|
||||||
<img alt="Tvu block diagram" src="img/tvu.svg" class="center"/>
|
<img alt="TVU Block Diagram" src="img/tvu.svg" class="center"/>
|
||||||
|
Reference in New Issue
Block a user