Skip to content

Commit 017190e

Browse files
committed
init
1 parent 5d367b4 commit 017190e

File tree

5 files changed

+79
-10
lines changed

5 files changed

+79
-10
lines changed

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"stm32-for-vscode.openOCDPath": false,
3+
"stm32-for-vscode.armToolchainPath": false,
4+
"spellright.userDictionary": "${workspaceFolder}/.vscode/spellright.dict"
5+
}

.vscode/spellright.dict

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Fastconfirmation
2+
testnet
3+
unstaking

protocol/README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# `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.
34

45
## 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` 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.

protocol/mcr/README.md

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,45 @@
1-
# MCR - Multi-Commit Rollup
1+
# MCR (Multi Commit Rollup)
22

3-
**MCR** implements a staking-based settlement where validators commit L2-blocks on Layer 1 (L1).
3+
This directory contains the implementation of the MCR protocol, which handles rollup commitment aggregation.
4+
5+
## Overview
6+
7+
**MCR** implements a staking-based settlement where validators commit L2-blocks on Layer 1 (L1). MCR is responsible for aggregating multiple commitments into a single commitment. It provides:
8+
9+
The distinguishing feature is that there is only one type of actor, which is the attester.
410

511
Validators stake tokens to participate in block validation. They commit to L2-blocks on L1, and the contract on L1 tracks block commitments, epochs, and stake. The contracts also manage validators and custodian staking and unstaking. The contract validates if commitments have reached two-thirds supermajority stake, and rewards or slashes validators based on their actions.
612

713
For further details see the [RFC for MCR](https://github.com/movementlabsxyz/rfcs/pull/29) and the [MIP-34](https://github.com/movementlabsxyz/MIP/blob/main/MIP/mip-34).
814

915
## Architecture
1016

11-
- [Contracts](./contracts/README.md): Includes settlement contracts for block commitments, staking contracts for validator management, token contracts for custody.
12-
- **Manager**: Manages block commitments by batching and submitting them, interacts with clients, and processes commitment events (acceptance or rejection) for the settlement system.
17+
- [`cli/`](cli/) - Command line interface tools
18+
- [`client/`](cli/client/) - Client implementation for interacting with the protocol. Handles interaction with the protocol by posting block commitments, streaming commitment data, and managing Ethereum blockchain interactions.
19+
- [`deployer/`](cli/deployer/) - Tools for deploying the protocol contracts
20+
- [`protocol/`](cli/protocol/) - Core protocol implementation
21+
22+
- [`clients/`](clients/) - Protocol client implementations
23+
- [`eth/`](clients/eth/) - Ethereum client implementation
24+
- [`mock/`](clients/mock/) - Mock client for testing
25+
- [`util/`](clients/util/) - Shared utilities for clients
26+
27+
- [`dlu/`](dlu/) - Deployment and Lifecycle Utilities
28+
- [`eth/`](dlu/eth/) - Ethereum-specific deployment tools
29+
- [`contracts/`](dlu/eth/contracts/) - Smart contract implementations. Includes settlement contracts for block commitments, staking contracts for validator management, token contracts for custody.
30+
- [`deployer-core/`](dlu/eth/deployer-core/) - Core deployment logic
31+
- [`anvil/`](dlu/eth/anvil/) - Local testnet configuration
32+
33+
- [`manager/`](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.
34+
35+
- [`util/`](util/) - Shared utilities
36+
- [`config/`](util/config/) - Configuration management
37+
- [`types/`](util/types/) - Common type definitions
38+
39+
-----
40+
41+
TODO: remove once we have used this content at the correct place
42+
1343
- **Setup**: Prepares local environments or deploys contracts, manages configuration for local and deployment setups, and ensures contract deployment when needed.
1444
- **Runner**: Orchestrates the setup and execution of configuration tasks, applies setup steps, and logs processes for debugging.
15-
- **Client**: Handles interaction with the MCR system by posting block commitments, streaming commitment data, and managing Ethereum blockchain interactions.
45+

protocol/pcp/README.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# PCP (Postconfirmation Protocol)
2+
3+
This directory contains the implementation of the PCP protocol, which handles commitment settlement through postconfirmation.
4+
5+
## Overview
6+
7+
PCP (Postconfirmation Protocol) is responsible for handling post-confirmation commitment settlement between different parts of the system. It provides:
8+
9+
1. Contract deployment and management
10+
2. Commitment posting and verification
11+
3. Client interfaces for interacting with the protocol
12+
4. Testing and mock implementations
13+
14+
## Architecture
15+
16+
- [`cli/`](cli/) - Command line interface tools
17+
- [`client/`](cli/client/) - Client implementation for interacting with PCP. Handles posting commitments and managing blockchain interactions.
18+
- [`deployer/`](cli/deployer/) - Tools for deploying PCP contracts
19+
- [`protocol/`](cli/protocol/) - Core protocol implementation
20+
21+
- [`dlu/`](dlu/) - Deployment and Lifecycle Utilities
22+
- [`eth/`](dlu/eth/) - Ethereum-specific deployment tools
23+
- [`contracts/`](dlu/eth/contracts/) - Smart contract implementations for post-confirmation settlement
24+
- [`deployer-core/`](dlu/eth/deployer-core/) - Core deployment logic for contracts
25+
- [`anvil/`](dlu/eth/anvil/) - Local testnet configuration for development
26+
27+
- [`util/`](util/) - Shared utilities
28+
- [`config/`](util/config/) - Configuration management for PCP clients and deployments
29+
- [`types/`](util/types/) - Common type definitions for PCP protocol

0 commit comments

Comments
 (0)