-
Notifications
You must be signed in to change notification settings - Fork 51
Greg/docs/191 #205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Greg/docs/191 #205
Changes from 7 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
e752f0b
[wip] update docusaurus doc
ghubertpalo 7ee10b2
fix schema, complete glossary
ghubertpalo e8728b0
customize welcome page
ghubertpalo a8d2c83
add topology & dev doc links
ghubertpalo 80cb282
fix redocusaurus version
ghubertpalo 8f4b198
[wip] glossary
ghubertpalo bfaa541
fix signer definition
ghubertpalo 218a8e1
fix signer definition
ghubertpalo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| .PHONY: clean install | ||
|
|
||
| yarn.lock: | ||
| yarn install | ||
|
|
||
| install: yarn.lock | ||
|
|
||
| build: yarn.lock | ||
| yarn build | ||
|
|
||
| clean: | ||
| rm -rf build | ||
| rm package-lock.json || true | ||
| rm yarn.lock || true | ||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| --- | ||
|
|
||
| # Installation | ||
|
|
||
| ## Mithril Aggregator | ||
|
|
||
| ## Mithril Signer | ||
|
|
||
| ## Mithril Client |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| --- | ||
|
|
||
| # Glossary | ||
|
|
||
| Here is a comprehensive list of terms' definition used in the project. | ||
|
|
||
| ## Aggregator | ||
|
|
||
| An Aggregator is a software instance that computes, checks the [mithril multisignatures](#mithril-multisignature) and issues the [snapshots](#snapshot) along with their [digest](#snapshot-digest). | ||
|
|
||
| ## Beacon | ||
|
|
||
| A beacon is a group of parameters tied by a temporal period. Each time a beacon ends, a new Mithril Certificate is issued. | ||
|
|
||
| ## Cardano Key Pair | ||
|
|
||
| A Cardano key pair is a asymmetric key pair used to identify a stake holder on the Cardano Network. | ||
|
|
||
| ## Certificate | ||
|
|
||
| A Certificate is a digital document that contains: | ||
|
|
||
| * the [Beacon](#beacon) when this information is relevant | ||
| * the snapshot digest | ||
| * the [Mithril multisignature](#mithril-multisignature) of the digest | ||
| * a list of mirrors where the snapshot can be downloaded | ||
|
|
||
| ## Client | ||
|
|
||
| A client is a software ran by a Wallet owner or anyone who needs to compute the [ledger state](#ledger-state). Clients use Mithril to ensure the snapshot they download is certified by a randomly distributed population to be the official one. | ||
|
|
||
| ## Digest | ||
|
|
||
| See [snapshot digest](#snapshot-digest). | ||
|
|
||
| ## Epoch | ||
|
|
||
| Cardano uses Epochs to group blocks computed in a certain amount of time. Each epoch corresponds to certain security parameters. This makes harder to lead brut force attacks on the Blockchain. At the end of each Cardano's epoch, the stake distribution is computed. | ||
|
|
||
| ## Immutable File | ||
|
|
||
| An Immutable File represents a fixed size chunk of the Blockchain state. It is immutable by essence since blocks computed in the past are immutables. Theses files are indexed by a sequential number in their filename. | ||
|
|
||
| ## Ledger State | ||
|
|
||
| The Ledger State represents all the wallets' balances according to the transactions stored in the Blockchain. Ledger states are regulary computed every time an [immutable file](#immutable-file) is generated. | ||
|
|
||
| ## Mithril Multisignature | ||
|
|
||
| A mithril multisignature is a unique signature computed by a random distributed population of [signers](#signer)'s signatures represening a minimal stake share and based on a common message. | ||
|
|
||
| ## Mithril Single Signature | ||
|
|
||
| A Mithril single signature is a signatures derived from the Signer's verification key based on Mithril parameters and can be used in the [Mithril eultisignature](#mithril-multisignature) if this party wins one or more lotteries. | ||
|
|
||
| ## Party | ||
|
|
||
| A party is an entity that owns stake and is identified by a key pair (WHAT NAME?). A party can be involved in a [mithril multisignature](#mithril-multisignature). The public key is used as party identifier in the Mithril signature process. | ||
|
|
||
| ## Signer | ||
|
|
||
| A Signer is a software that acts as a party in [mithril multisignatures](#mithril-multisignature). It represents a single contributor in the Mithril internal lottery mechanism hence he is owner of a [signer key pair](#signer-key-pair). | ||
|
|
||
| ## Signer Key Pair | ||
|
|
||
| When interacting with the Mithril protocol, each party must generate a asymmetrical key pair: signing (or private) key and verification (or public) key based on his own [Cardano key pair](#cardano-key-pair) added with stake information. | ||
|
|
||
| ## Snapshot | ||
|
|
||
| A Mithril Snapshot is a signed archive of the Blockchain that can be used by [Clients](#client) to restore the [Ledger State](#ledger-state) quicker than computing it from scratch. | ||
|
|
||
| ## Snapshot Certificate | ||
|
|
||
| The snapshot certificate is a [mithril multisignature](#mithril-multisignature) of the [snapshot digest](#snapshot-digest) that ensures its authenticity to all [clients](#clients) who want to use it. | ||
|
|
||
| ## Snapshot Digest | ||
|
|
||
| A snapshot digest (or simply, Digest) is a unique control sum (hash) associated to a [Snapshot](#snapshot). It can be used to assert a [Snapshot](#snapshot) is valid or can be signed to certify the according [Snapshot](#snapshot)'s provenance. | ||
|
|
||
| ## Stake Distribution | ||
|
|
||
| The Stake Distribution is the list of [signers](#signer) of a [mithril multisignature](#mithril-multisignature) with their stake. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # Aggregator | ||
|
|
||
| The Aggregator is the central piece of the Mithril certificate creation. | ||
|
|
||
| The first phase of the protocole is triggered when a new Epoch starts in the Cardano network. The aggregator node saves the current stake ditribution and starts performing the snapshot for this new epoch which is then stored in the cloud. A message is then created containing the current and the previous snapshots digests. | ||
|
|
||
| ### Certificate creation | ||
|
|
||
| During this phase, the aggregator waits to reach a stake quorum of signers. They register to be part of the lotery process of the multisignature. During all this time, the certificate is in _pending_ state. Once the quorum is reached, the aggregator issues the multisignature certificate and stores it in the certificate chain. | ||
|
|
||
|  |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Client | ||
|
|
||
| A client is a Snapshot consumer. It is typically a Wallet that wants to synchronize with the Cardano blockchain. When performed from the begining of the chain, it can take several days to compute all the blocks and verify everything is consistent. Snapshots act as certified savepoints, the wallet can assume all the blocks in the snapshots are consistent hence only the newer blocks are to be verified. This dramatically reduces the synchronization times. | ||
|
|
||
| ## Topology | ||
|
|
||
|  |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # Signer | ||
|
|
||
| A Signer is a participant to a Mithril Multisignature. As such, a signer assesses that the signed message is the expected genuine content. To do so, the signer computes the digest from the inormation stored on a Cardano node and signs it with his secret key. This signed message with the stake the Signer wants to invest in the signature process is sent to the Aggregator. This way, the Aggegator can assess that the Signer is identified and has the same message. With the Signer Key and the stake information, the Aggregator generates a Verification Key that is used to identify the Signer in the Mithril internal process. | ||
|
|
||
| ## Topology | ||
|
|
||
|  | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A Signer is a participant to a Mithril Multisignature. As such, a signer contributes to signing an expected genuine message. To do so, the signer computes the digest from the information stored on a Cardano node and signs it with his secret key. This signed message is sent to the Aggregator, along with the corresponding won lottery numbers. This way, the Aggregator can assess that the Signer is identified and has signed the same message.