Skip to content

Commit f2558c5

Browse files
committed
Add versioning to the docusaurus site
1 parent 91c3def commit f2558c5

34 files changed

+3223
-13
lines changed

docs/Makefile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,14 @@ clean:
2020
rm yarn.lock || true
2121

2222
upgrade: clean install
23-
yarn upgrade @docusaurus/core@latest @docusaurus/preset-classic@latest redocusaurus@latest
23+
yarn upgrade @docusaurus/core@latest @docusaurus/preset-classic@latest redocusaurus@latest
24+
25+
update-current:
26+
# Use docusaurus command to create a new version using a temporary name
27+
yarn run docusaurus docs:version updated
28+
# cleanup previous file & replace it with the updated ones
29+
rm -rf versioned_docs/version-maintained versioned_sidebars/version-maintained-sidebars.json
30+
mv versioned_docs/version-updated versioned_docs/version-maintained
31+
mv versioned_sidebars/version-updated-sidebars.json versioned_sidebars/version-maintained-sidebars.json
32+
# Remove the entry for the temporary version in the versions.json file
33+
sed -i '/updated/d' versions.json

docs/docusaurus.config.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,21 @@ const config = {
3333
path: 'root',
3434
routeBasePath: '/',
3535
sidebarPath: require.resolve('./sidebars.js'),
36-
editUrl: 'https://github.com/input-output-hk/mithril/edit/main/docs',
36+
editUrl: ({docPath}) => {
37+
// We want users to submit doc updates to the upstream/next version!
38+
// Otherwise we risk losing the update on the next release.
39+
return `https://github.com/input-output-hk/mithril/edit/main/docs/root/${docPath}`;
40+
},
41+
lastVersion: 'maintained',
42+
versions: {
43+
current: {
44+
label: 'Next 🚧',
45+
banner: 'unreleased',
46+
},
47+
maintained: {
48+
label: 'Current',
49+
}
50+
},
3751
},
3852
blog: {
3953
path: 'blog/',
@@ -113,6 +127,11 @@ const config = {
113127
label: 'About Mithril',
114128
position: 'left',
115129
},
130+
{
131+
type: 'docsVersionDropdown',
132+
position: 'right',
133+
dropdownActiveClassDisabled: true,
134+
},
116135
{
117136
label: 'Explorer',
118137
to: 'https://mithril.network/explorer',

docs/sidebars.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,3 @@
1-
/**
2-
* Creating a sidebar enables you to:
3-
- create an ordered group of docs
4-
- render a sidebar for each doc of that group
5-
- provide next/previous navigation
6-
7-
The sidebars can be generated from the filesystem, or explicitly defined here.
8-
9-
Create as many sidebars as you want.
10-
*/
11-
121
// @ts-check
132

143
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# Glossary
6+
7+
Here is a comprehensive list of definitions for some common terms used in this guide.
8+
9+
## Beacon
10+
11+
A **Beacon** represents a point of the Blockchain for which a [**Mithril Certificate**](#certificate) is created. It embeds at least the version of the [**Cardano Network**](#cardano-network) that is targeted, and the associated [**epoch**](#epoch) and [**immutable file number**](#immutable-file-number).
12+
13+
## Cardano Network
14+
15+
The **Cardano Network** is a **Proof-of-Stake** Blockchain platform that supports the ADA cryptocurrency.
16+
17+
> More information is available [here](https://docs.cardano.org/introduction)
18+
19+
## Cardano Node
20+
21+
A **Cardano Node** is a node that runs in a [**Cardano Network**](#cardano-network). There are several types of nodes, among them are **Cardano Full Nodes** that hold a copy of the whole Blockchain. They can be used by **Wallets**, [**Stake Pool Operator**](#stake-pool-operator-spo), **Exchanges** or **Dapps**. One of the use cases of the [**Mithril Network**](#mithril-network) is to bootsrap rapidly a **Cardano Full Node**.
22+
23+
## Cardano Key Pair
24+
25+
A **Cardano Key Pair** is an asymmetric key pair used to identify a [**Stake Pool Operator**](#stake-pool-operator-spo) on the [**Cardano Network**](#cardano-network).
26+
27+
## Certificate
28+
29+
The **Mithril Aggregator** combines the produced [**multi signature**](#multi-signature) and some metadata into a [**Mithril Certificate**](#certificate) that will be later used by the [**Mithril Client**](#mithril-client) to verify the authenticity of a [**snapshot**](#snapshot). The certificates are chained so that the [**stake distribution**](#stake-distribution) used to create the signatures is verifiably genuine.
30+
31+
> More information is available [here](./mithril/mithril-protocol/certificates.md)
32+
33+
## Epoch
34+
35+
The [**Cardano Network**](#cardano-network) uses **Epochs** to group blocks computed in a certain amount of time (approximately 5 days). It is part of the design of its **Proof-of-Stake** consensus **Ouroboros**. At the end of each epoch, the [**stake distribution**](#stake-distribution) of the ending epoch is computed.
36+
37+
## Immutable File Number
38+
39+
Inside a the database of a [**Cardano Node**](#cardano-node), the Blockchain state is stored in **Immutable files** which never change once committed. These immutable files are designed so that they are deterministically produced and thus are the same on any **Cardano Node**. These files are created by following an incremental number, the **Immutable File Number** and there are three different immutable files for each number (i.e. _chunk_, _primary_ and _secondary_). Only the files up to the penultimate **Immutable File Number** are considered as committed and final, the last **Immutable File Number** files are constantly evolving. The [**Snapshots**](#snapshot) produced by the [**Mithril Network**](#mithril-network) rely on these **immutable files**.
40+
41+
## Individual Signature
42+
43+
For each [**Beacon**](#beacon), the [**Mithril Signers**](#mithril-signer) will compute on their end a message representing the Blockchain state, and sign it with their **Verification Keys** in order to create an [**Individual Signature**](#individual-signature). Upon winning one or multiple lotteries, the **Mithril Signer** will be able to use this **Individual Signature** to participate in the creation of a [**Multi Signature**](#multi-signature).
44+
45+
> More information is available [here](./mithril/mithril-protocol/protocol.md)
46+
47+
## Mithril Aggregator
48+
49+
The **Mithril Aggregator** is a trustless node of the [**Mithril Network**](#mithril-network) that orchestrates the work of the [**Mithril Signer**](#mithril-signer) nodes and that gathers their [**individual signatures**](#individual-signature) to produce [**Mithril multi signatures**](#multi-signature) and their associated [**certificates**](#certificate).
50+
51+
It is also in charge of creating and storing the [**snapshot**](#snapshot) archive.
52+
53+
> More information is available [here](./mithril/mithril-network/aggregator.md)
54+
55+
## Mithril Client
56+
57+
The **Mithril Client** node of the [**Mithril Network**](#mithril-network) is used to restore a [**Cardano full node**](#cardano-node) by retrieving, from a [**Mithril Aggregator**](#mithril-aggregator), a remote [**snapshot**](#snapshot), its [**certificate**](#certificate) chain and by verifying their validity thanks to the Mithril cryptographic primitives.
58+
59+
> More information is available [here](./mithril/mithril-network/client.md)
60+
61+
## Mithril Network
62+
63+
In its current version, the **Mithril Network** is a network of nodes responsible for creating [**Snapshots**](#snapshot) and [**Certificates**](#certificate) that enable fast bootstrap of a [**Cardano Node**](#cardano-node). It runs on top of the [**Cardano Network**](#cardano-network).
64+
65+
> More information is available [here](./mithril/mithril-network/architecture.md)
66+
67+
## Mithril Protocol
68+
69+
The **Mithril Protocol** allows **stakeholders** in a **Proof-of-Stake** Blockchain network to individually **sign messages** that are aggregated into a **multi signature** which guarantees that they represent a minimum share of the total stakes.
70+
71+
> More information is available [here](./mithril/mithril-protocol/protocol.md)
72+
73+
## Mithril Signer
74+
75+
The **Mithril Signer** is a node of the [**Mithril Network**](#mithril-network) that works transparently on top of the [**Stake Pool Operator**](#stake-pool-operator-spo) Cardano nodes and which individually signs the ledger state.
76+
77+
> More information is available [here](./mithril/mithril-network/signer.md)
78+
79+
## Multi Signature
80+
81+
The **Mithril Multi Signature** is an aggregate of [**Individual Signatures**](#individual-signature) which guarantees that a minimum share of the total stakes has participated in its creation.
82+
83+
> More information is available [here](./mithril/mithril-protocol/protocol.md)
84+
85+
## Snapshot
86+
87+
A Mithril Snapshot is a signed archive of the Blockchain state that can be used by [**Mithril Clients**](#mithril-client) to restore a [**Cardano Full Node**](#cardano-node). It is uniquely identified by its fingerprint or **Digest** which is part of the message signed by the [**Mithril Network**](#mithril-network).
88+
89+
## Stake Distribution
90+
91+
The **Cardano Stake Distribution** is the list of all the [**Stake Pool Operators**](#stake-pool-operator-spo) **Pool Id** addresses and their associated **Stakes Share** of the total **Stakes** of the [**Cardano Network**](#cardano-network).
92+
93+
The **Mithril Stake Distribution** is the list of all the [**Stake Pool Operators**](#stake-pool-operator-spo) (that are running a [**Mithril Signer**](#mithril-signer)) **Pool Id** addresses, their associated **Stakes Share** of the total **Stakes** of the [**Cardano Network**](#cardano-network), and their signing [**Verification Key**](#verification-key).
94+
95+
## Stake Pool Operator (SPO)
96+
97+
A **Stake Pool Operator**, also known as a **SPO**, represents a party that holds (via delegation) **Stakes** in the [**Cardano Network**](#cardano-network). The stakes entitle it to participate in the block production thanks to the Cardano consensus mechanism.
98+
99+
## Verification Key
100+
101+
In order to create [**Individual Signatures**](#individual-signature), the [**Mithril Signers**](#mithril-signer) must register their signing public key: the **Verification Keys**. To garantee their genuineness, they are signed by the associated [**Cardano Key Pair**](#cardano-key-pair). It is worth mentioning that a [**Mithril Signer**](#mithril-signer) must be aware of the **Verification Keys** of all the other **Mithril Signers** in order to produce valid **Individual Signatures**.
102+
103+
> More information is available [here](./mithril/mithril-protocol/protocol.md)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"label": "Developer Docs",
3+
"collapsible": true,
4+
"collapsed": false,
5+
"position": 3,
6+
"link": {
7+
"type": "generated-index",
8+
"title": "Developer Docs Topics"
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"label": "Mithril Network Nodes",
3+
"collapsible": true,
4+
"collapsed": false,
5+
"position": 1,
6+
"link": {
7+
"type": "generated-index",
8+
"title": "Mithril Network Nodes"
9+
}
10+
}

0 commit comments

Comments
 (0)