|
1 | 1 | # `protocol-units`
|
2 |
| -`protocol-units` are used to collect runnable and composable units for interacting with the `ffs` protocol. We store contracts within protocol units, for example. |
| 2 | + |
| 3 | +`protocol-units` are used to collect runnable and composable units for interacting with the `ffs` protocol. We store contracts within protocol units, for example. |
3 | 4 |
|
4 | 5 | ## Contents
|
5 |
| -- **[`mcr`](./mcr/)**: the `MCR` implementation of `ffs` provided prior to the specification of the `fast-confirmations` and `post-confirmations` protocols. It is maintained for legacy purposes. |
6 |
| -- **[`pcp`](./pcp/)**: the Postconfirmations sub-protocol implementation for `ffs`. |
7 |
| -- **[`fcp`](./fast-confirmations/)**: the fastconfirmations sub-protocol implementation for `ffs`. |
8 |
| -- **[`ffs`](./ffs/)**: the full `ffs` protocol implementation. |
| 6 | + |
| 7 | +- **[`mcr`](./mcr/README.md)**: the `MCR` sub-protocol implementation of `ffs` provided prior to the specification of the `fast-confirmations` and `post-confirmations` protocols. It is maintained for legacy purposes. |
| 8 | +- **[`pcp`](./pcp/README.md)**: the Postconfirmation sub-protocol implementation for `ffs`. |
| 9 | +- **[`fcp`](./fcp/README.md)**: the Fastconfirmation sub-protocol implementation for `ffs`. |
| 10 | +- **[`ffs`](./ffs/README.md)**: the full `ffs` protocol implementation. |
| 11 | + |
| 12 | +## Architecture for each protocol unit |
| 13 | + |
| 14 | +- `cli/` - Command line interface tools |
| 15 | + - `client/` - CLI tool for users to interact with the protocol (posting commitments, querying state) |
| 16 | + - `deployer/` - CLI tool for deploying the protocol contracts |
| 17 | + - `protocol/` - CLI tool for protocol-specific operations |
| 18 | + |
| 19 | +- `clients/` - Protocol client implementations |
| 20 | + - `eth/` - Ethereum client implementation that handles blockchain interactions |
| 21 | + - `mock/` - Mock client for testing |
| 22 | + - `util/` - Shared utilities for clients |
| 23 | + |
| 24 | +- `dlu/` - Deployment and Lifecycle Utilities |
| 25 | + - `eth/` - Ethereum-specific deployment tools |
| 26 | + - `contracts/` - Smart contract implementations. Includes settlement contracts for block commitments, staking contracts for validator management, token contracts for custody. |
| 27 | + - `deployer-core/` - Core deployment logic |
| 28 | + - `anvil/` - Local testnet configuration |
| 29 | + |
| 30 | +- `manager/` - Protocol management and orchestration. Manages block commitments by batching and submitting them, interacts with clients, and processes commitment events (acceptance or rejection) for the settlement system. |
| 31 | + |
| 32 | +- [`util/`](util/) - Shared utilities |
| 33 | + - `config/` - Configuration management |
| 34 | + - `types/` - Common type definitions |
0 commit comments