You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+14-14
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,13 @@ This repository is the source text and rendering configuration for the book. To
6
6
7
7
The `mdbook` tool renders the contents into a pretty format from `markdown` based source code
8
8
9
-
## Github CI
9
+
## GitHub CI
10
10
11
-
There are two github CI workflows:
11
+
There are two GitHub CI workflows:
12
12
13
-
-`merge-acceptance.yaml`: triggers on `pull_request` to check that `mdbook build` succeeds and there aren't dangling `md` files (e.g. you remove an entry in `SUMMARY.md` but forget to rm the file.)
13
+
-`merge-acceptance.yaml`: triggers on `pull_request` to check that `mdbook build` succeeds and there aren’t dangling `md` files (e.g. you remove an entry in `SUMMARY.md` but forget to rm the file.)
14
14
-`render-site.yaml`: triggers on `push` to `main` to render the site to https://electric-coin-company.github.io/tfl-book/
15
-
-**Warning:** this workflow relies on full read/write access to the `gh-pages` branch. Don't mess with that branch unless you're very confident in the impacts.
15
+
-**Warning:** this workflow relies on full read/write access to the `gh-pages` branch. Don’t mess with that branch unless you're very confident in the impacts.
16
16
17
17
## `git-hooks`
18
18
@@ -46,38 +46,38 @@ Note: Nix users can rely on `flake.nix` which packages the final rendered HTML i
46
46
47
47
## Release Process
48
48
49
-
Releases are defined as distinct revisions that embody a consistent set of changes from the prior releases, identified by a version with `XXX.YYY.ZZZ` format. Releases serve a few purposes. They:
49
+
Releases are defined as distinct revisions that embody a consistent set of changes from the prior releases, identified by a version with `XXX.YYY.ZZZ` format. Releases serve a few purposes. They
50
50
51
-
- ensure that readers can better notice changes or updates between readings or in discussions with others,
52
-
- signify that the authors have converged after a period of editing onto a coherent integrated result,
53
-
- signify an approximate maturity of the design, based on the version number, and
51
+
- ensure that readers can better notice changes or updates between readings or in discussions with others;
52
+
- signify that the authors have converged after a period of editing onto a coherent integrated result;
53
+
- signify approximate maturity of the design, based on the version number; and
54
54
- serve as a natural milestone for announcements on design updates.
55
55
56
56
### Versioning Schema
57
57
58
-
The versioning scheme isn't precise and roughly follows this rubrik:
58
+
The versioning scheme isn’t precise and roughly follows this rubrik:
59
59
60
60
When a version `X.Y.Z` increments, the scope of change since the prior release is implied by the new version:
61
61
62
62
-`<X+1>.0.0` - This release represents a complete, well analyzed design which the authors believe could be a suitable candidate for Zcash (or other crypto networks) to productionize by developing conforming implementations that activate in production.
63
63
-`X.<Y+1>.0` - This release introduces or changes substantial design decisions or analyses, or it changes the presentation (such as the order or content of chapters) significantly. A reader of only the prior release may be missing essential details in understanding this new release.
64
-
-`X.Y.<Z+1>` - This release improves the wording, layout, rendering, or other content in a manner that doesn't rise to the threshold of the previous case.
64
+
-`X.Y.<Z+1>` - This release improves the wording, layout, rendering, or other content in a manner that doesn’t rise to the threshold of the previous case.
65
65
66
66
### Release Process
67
67
68
68
To create a new release:
69
69
70
70
1. Decide that the `main` branch is in a coherent state without likely sources of confusion or self-inconsistency.
71
-
2. Decide the new release's version as in [Versioning Schema](#versioning-schema) above.
71
+
2. Decide the new release’s version as in [Versioning Schema](#versioning-schema) above.
72
72
3. Create a release branch named `release-<NEW VERSION>`.
73
73
4. Update the release branch with these changes:
74
74
-`book.toml`: Modify the `title` to end with `vX.Y.Z`. This ensures the version is visible to readers on all pages.
75
75
-`src/version-history.md`: Introduce a new heading `## X.Y.Z - <RELEASE TITLE>` above all prior entries (i.e. reverse chronologically).
76
-
- The `RELEASE TITLE` should be a short-hand title capturing the primary change of the release.
76
+
- The `RELEASE TITLE` should be a shorthand title capturing the primary change of the release.
77
77
- The release body should always begin with a link titled `Issue Tracking` that navigates to the GitHub milestone page of completed issues in this release.
78
78
- The rest of the release body should be a one- to three-sentence summary of changes. Readers who need more detail can follow issue tracking.
79
-
-`src/introduction.md`: The first paragraph says `This is <VERSION LINK> of the book.` Update that link to point to the new release's entry in `src/version-history.md`.
79
+
-`src/introduction.md`: The first paragraph says `This is <VERSION LINK> of the book.` Update that link to point to the new release’s entry in `src/version-history.md`.
80
80
5. Submit those changes for GitHub pull-request review, resolve any blocking concerns, then merge to the `main` branch. Note: This step will render the release.
81
81
6. Create a git tag on the git commit that merges into `main`: `git tag vX.Y.Z && git push --tags`
82
82
83
-
Note: We don't use GitHub "releases" since there's no release artifact other than the already published rendering.
83
+
Note: We don’t use GitHub "releases" since there’s no release artifact other than the already published rendering.
Copy file name to clipboardexpand all lines: src/SUMMARY.md
+5-6
Original file line number
Diff line number
Diff line change
@@ -8,14 +8,13 @@
8
8
-[Get Involved](./introduction/get-involved.md)
9
9
-[Terminology](./terminology.md)
10
10
-[Design](./design.md)
11
-
-[Overview](./design/overview.md)
12
-
-[Design at a Glance](./design/overview/design-at-a-glance.md)
11
+
-[Design at a Glance](./design/design-at-a-glance.md)
13
12
-[Design Goals](./design/goals.md)
14
13
-[Crosslink](./design/crosslink.md)
15
-
-[The Arguments for Bounded Dynamic Availability and Finality Overrides](./design/crosslink/the-arguments-for-bounded-dynamic-availability-and-finality-overrides.md)
16
-
-[Notes On Snap And Chat](./design/crosslink/notes-on-snap-and-chat.md)
This design augments the existing Zcash Proof‑of‑Work (PoW) network with a new consensus layer which provides *trailing finality*, called the *Trailing Finality Layer (TFL)*.
4
+
5
+
This layer enables blocks produced via PoW to become *final* which ensures they may never be rolled back. This enables safer and simpler wallets and other infrastructure, and aids trust-minimized cross-chain bridges.
6
+
7
+
This consensus layer uses a finalizing *Proof-of-Stake (PoS)* consensus protocol, and enables ZEC holders to earn protocol rewards for contributing to the security of the Zcash network. By integrating a PoS layer with the current PoW Zcash protocol, this design specifies a *hybrid consensus protocol*.
8
+
9
+
The integration of the current PoW consensus with the TFL produces a new top-level consensus protocol referred to as *PoW+TFL*.
10
+
11
+
In the following subchapters we introduce the [Design at a Glance](./design/design-at-a-glance.md), then provide an overview of the major components of the design.
12
+
13
+
Following this overview chapter, we proceed into a detailed [Protocol Specification (TODO)]().
Crosslink is the proposed [hybrid construction](../terminology.md#definition-hybrid-construction) for the Trailing Finality Layer.
3
+
Crosslink is the proposed [hybrid construction](../terminology.md#definition-hybrid-construction) for the Trailing Finality Layer. The current version is Crosslink 2.
4
4
5
5
## Contents
6
6
7
-
-[The Arguments for Bounded Dynamic Availability and Finality Overrides](./crosslink/the-arguments-for-bounded-dynamic-availability-and-finality-overrides.md)
8
-
-[Notes On Snap And Chat](./crosslink/notes-on-snap-and-chat.md)
0 commit comments