Auto merge of #4968 - str4d:design-book, r=str4d

Set up an mdbook in which we can document zcashd's architecture design

I've explained various parts of zcashd's node architecture enough times
now that it really should be written down!
This commit is contained in:
Homu 2021-01-28 03:31:06 +00:00
commit dc94d76053
11 changed files with 64 additions and 1 deletions

32
.github/workflows/book.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: zcashd book
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup mdBook
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: '0.4.5'
- name: Install mdbook-katex
uses: actions-rs/cargo@v1
with:
command: install
args: mdbook-katex
- name: Build zcashd book
run: mdbook build book/
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./book/book

View File

@ -9,7 +9,7 @@ What is Zcash?
Based on Bitcoin's code, Zcash intends to offer a far higher standard of privacy
through a sophisticated zero-knowledge proving scheme that preserves
confidentiality of transaction metadata. More technical details are available
in our [Protocol Specification](https://github.com/zcash/zips/raw/master/protocol/protocol.pdf).
in our [Protocol Specification](https://zips.z.cash/protocol/protocol.pdf).
This software is the Zcash client. It downloads and stores the entire history
of Zcash transactions; depending on the speed of your computer and network

1
doc/book/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
book

6
doc/book/book.toml Normal file
View File

@ -0,0 +1,6 @@
[book]
authors = ["Jack Grigg"]
language = "en"
multilingual = false
src = "src"
title = "The zcashd Book"

1
doc/book/src/README.md Normal file
View File

@ -0,0 +1 @@
{{#include ../../../README.md}}

6
doc/book/src/SUMMARY.md Normal file
View File

@ -0,0 +1,6 @@
# The zcashd Book
[zcashd](README.md)
- [Design](design.md)
- [Chain state](design/chain-state.md)
- ["Coins" view](design/coins-view.md)

9
doc/book/src/design.md Normal file
View File

@ -0,0 +1,9 @@
# Design
Zcash was originally a fork of Bitcoin 0.11.2, and as such the `zcashd` node architecture
is very similar to `bitcoind`. There are however several differences, most notably the
addition of shielded pools to the consensus logic and full node state.
In this section of the book, we describe the overall architecture that we inherit from
`bitcoind`, the changes we have made to the inherited components, and the new components
we have introduced.

View File

@ -0,0 +1,3 @@
# Chain state
TBD

View File

@ -0,0 +1,3 @@
# "Coins" view
TBD

View File

@ -0,0 +1 @@
../../../../imgs/logo.png

View File

@ -0,0 +1 @@
../../../../imgs/zcashd_screen.gif