From df41d7cbd813f0f9149bb84c072902db5c3502aa Mon Sep 17 00:00:00 2001 From: Santiago Carmuega Date: Sat, 27 Nov 2021 15:37:34 -0300 Subject: [PATCH] Add unboxing info to readme --- README.md | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ab70866..05281b6 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,37 @@ development of higher-level use-cases, such as explorers, wallets, etc (who knows, maybe even a full node in the far away future). ## Unboxing -| Crates | Description | -|---------------------|----------------------------------------------------------------------------------| -| [pallas-machines](/pallas-machines) | A framework for implementing state machines for Ouroboros network mini-protocols | -| [pallas-multiplexer](/pallas-multiplexer) | A multithreaded Ouroboros multiplexer implementation using mpsc channels | -| [pallas-handshake](/pallas-handshake) | An implementation of the Ouroboros network handshake mini-protocol | -| [pallas-blockfetch](/pallas-blockfetch) | An implementation of the Ouroboros network blockfetch mini-protocol | -| [pallas-chainsync](/pallas-chainsync) | An implementation of the Ouroboros network chainsync mini-protocol | -| [pallas-txsubmission](/pallas-txsubmission) | An implementation of the Ouroboros network txsubmission mini-protocol | -| [pallas-alonzo](/pallas-alonzo) | Ledger primitives and cbor codec for the Alonzo era | -| pallas | An all-in-one crate that re-exports the other ones in an ordered fashion | + +The repository is organized as a Cargo workspace. Each _Pallas_ "building block" lives in its own crate. The root `pallas` crate serves as an all-in-one dependency that re-exports all of the other modules in an hierarchically organized fashion, using Cargo `features` to tailor the setup for each use-case. + +As already explained, _Pallas_ aims at being an expanding set of components. The following tables describe the currently available crates, as well as the planned ones. + +### Ouroboros Network + +| Crates | Description | +| ------------------------------------------- | -------------------------------------------------------------------------------- | +| [pallas-machines](/pallas-machines) | A framework for implementing state machines for Ouroboros network mini-protocols | +| [pallas-multiplexer](/pallas-multiplexer) | Multithreaded Ouroboros multiplexer implementation using mpsc channels | +| [pallas-handshake](/pallas-handshake) | Implementation of the Ouroboros network handshake mini-protocol | +| [pallas-blockfetch](/pallas-blockfetch) | Implementation of the Ouroboros network blockfetch mini-protocol | +| [pallas-chainsync](/pallas-chainsync) | Implementation of the Ouroboros network chainsync mini-protocol | +| [pallas-txsubmission](/pallas-txsubmission) | Implementation of the Ouroboros network txsubmission mini-protocol | + +### Ouroboros Consensus + +| Crates | Description | +| ----------------- | --------------------------------------------------------- | +| pallas-leadership | Implementation of the slot leadership selection algorithm | +| pallas-selection | Implementation of the consensus chain-selection algorithm | + +### Ouroboros Ledger + +| Crates | Description | +| ------------------------------- | ----------------------------------------------------------------------- | +| [pallas-alonzo](/pallas-alonzo) | Ledger primitives and cbor codec for the Alonzo era | +| pallas-ticking | Time passage implementation for consensus algorithm | +| pallas-applying | Logic for validating and applying new blocks and txs to the chain state | +| pallas-forecasting | Ledger forecasting algorithm to be used by the consensus layer | ## Etymology