Skip to content

Commit 3d85f7c

Browse files
dantaikxiaodinodavidtaikochaAnshuJalansmtmfft
authored
feat(protocol): pacaya fork with simplified based rollup protocol (#18535)
Co-authored-by: dantaik <[email protected]> Co-authored-by: xiaodino <[email protected]> Co-authored-by: xiaodino <[email protected]> Co-authored-by: David <[email protected]> Co-authored-by: davidtaikocha <[email protected]> Co-authored-by: Anshu Jalan <[email protected]> Co-authored-by: AnshuJalan <[email protected]> Co-authored-by: davidtaikocha <[email protected]> Co-authored-by: smtmfft <[email protected]> Co-authored-by: smtmfft <[email protected]> Co-authored-by: maskpp <[email protected]> Co-authored-by: jeff <[email protected]> Co-authored-by: Gavin Yu <[email protected]> Co-authored-by: YoGhurt111 <[email protected]>
1 parent 6a24166 commit 3d85f7c

File tree

327 files changed

+15897
-25929
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

327 files changed

+15897
-25929
lines changed

.github/workflows/protocol.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ on:
1010
- "!packages/protocol/docs/**"
1111
- "!packages/protocol/simulation/**"
1212
- "!packages/protocol/deployments/**"
13+
- "!packages/protocol/script/layer2/hekla/**"
14+
- "!packages/protocol/script/layer2/mainnet/**"
15+
- "!packages/protocol/script/layer1/hekla/**"
16+
- "!packages/protocol/script/layer1/mainnet/**"
17+
- "!packages/protocol/script/layer1/preconf/**"
18+
- "!packages/protocol/script/layer1/provers/**"
19+
- "!packages/protocol/script/layer1/team/**"
1320
branches-ignore:
1421
- release-please--branches--**
1522

@@ -37,6 +44,8 @@ jobs:
3744

3845
- name: Install Foundry
3946
uses: foundry-rs/[email protected]
47+
with:
48+
version: stable
4049

4150
- name: Install pnpm dependencies
4251
uses: ./.github/actions/install-pnpm-dependencies
@@ -53,7 +62,18 @@ jobs:
5362
working-directory: ./packages/protocol
5463
run: pnpm compile:l1 && pnpm test:l1 && pnpm layout:l1
5564

65+
- name: Check for changes
66+
id: git_status
67+
run: |
68+
git add -N . # Simulate staging to detect untracked files
69+
if [ -n "$(git status --porcelain)" ]; then
70+
echo "changes=true" >> $GITHUB_ENV
71+
else
72+
echo "changes=false" >> $GITHUB_ENV
73+
fi
74+
5675
- name: Commit contract layout table
76+
if: env.changes == 'true'
5777
uses: stefanzweifel/git-auto-commit-action@v5
5878
with:
5979
commit_message: "forge fmt & update contract layout tables"
@@ -86,7 +106,7 @@ jobs:
86106
submodules: recursive
87107

88108
- name: Install Foundry
89-
uses: foundry-rs/foundry-toolchain@v1.2.0
109+
uses: foundry-rs/foundry-toolchain@v1.3.1
90110

91111
- name: Install pnpm dependencies
92112
uses: ./.github/actions/install-pnpm-dependencies

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,4 @@ __pycache__/
120120

121121
# Idea
122122
.idea/
123+
packages/protocol/snapshots/InboxTest_ProposeAndProve.json

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"packages/fork-diff": "0.6.1",
66
"packages/guardian-prover-health-check": "0.1.0",
77
"packages/guardian-prover-health-check-ui": "0.2.0",
8-
"packages/protocol": "1.12.0",
8+
"packages/protocol": "2.0.0",
99
"packages/relayer": "0.12.0",
1010
"packages/snaefell-ui": "1.1.0",
1111
"packages/supplementary-contracts": "1.0.0",

packages/docs-site/src/content/docs/core-concepts/inception-layers.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,49 +18,50 @@ Taiko Alethia is designed with **flexibility**, enabling:
1818

1919
1. **Ethereum's Scaling Limits**
2020

21-
A single L2 has inherent constraints:
22-
- Throughput bottlenecks: Even a performant rollup has an upper bound on TPS.
23-
- State Growth: Storing all state in a single rollup leads to **expensive calldata** and **verification costs** on Ethereum L1.
21+
A single L2 has inherent constraints:
22+
23+
- Throughput bottlenecks: Even a performant rollup has an upper bound on TPS.
24+
- State Growth: Storing all state in a single rollup leads to **expensive calldata** and **verification costs** on Ethereum L1.
2425

2526
<br/>
2627

2728
2. **Multiple Rollups Are the Future**
2829

29-
- The Ethereum roadmap anticipates a **multi-rollup ecosystem**.
30-
- Inception layers allow for **seamless rollup interoperability**.
30+
- The Ethereum roadmap anticipates a **multi-rollup ecosystem**.
31+
- Inception layers allow for **seamless rollup interoperability**.
3132

3233
<br/>
3334

3435
3. **Unlocking Extensible Scalability**
3536

36-
- Multiple **Taiko L2 instances** can scale horizontally.
37-
- Multiple **L3 instances on top of L2** scale **vertically** (stacked rollups).
38-
- L3s inherit the **same security model** as L2s, ensuring trustless execution.
37+
- Multiple **Taiko L2 instances** can scale horizontally.
38+
- Multiple **L3 instances on top of L2** scale **vertically** (stacked rollups).
39+
- L3s inherit the **same security model** as L2s, ensuring trustless execution.
3940

4041
---
4142

4243
## Benefits of Inception Layers
4344

4445
1. **Ethereum-Equivalence Across Layers**
4546

46-
- **L2s and L3s** share the **same execution environment** as Ethereum.
47-
- Developers can **reuse smart contracts** across layers without modifications.
48-
- **EVM compatibility is preserved**, ensuring seamless migration.
47+
- **L2s and L3s** share the **same execution environment** as Ethereum.
48+
- Developers can **reuse smart contracts** across layers without modifications.
49+
- **EVM compatibility is preserved**, ensuring seamless migration.
4950

50-
<br/>
51+
<br/>
5152

5253
2. **Optimized for Composability & Interoperability**
5354

54-
- Rollups at different layers can **efficiently interact** using **Merkle proofs**.
55-
- This enables **secure, trustless message passing** between L1, L2, and L3.
55+
- Rollups at different layers can **efficiently interact** using **Merkle proofs**.
56+
- This enables **secure, trustless message passing** between L1, L2, and L3.
5657

57-
<br/>
58+
<br/>
5859

5960
3. **Mitigating UX Fragmentation**
6061

61-
- A major downside of a multi-rollup world is **liquidity fragmentation** and **complex cross-chain UX**.
62-
- **Taiko’s inception layers combat this** by using built-in **arbitrary message passing**.
63-
- One rollup can natively **read Merkle proofs** from another, avoiding fragmented liquidity.
62+
- A major downside of a multi-rollup world is **liquidity fragmentation** and **complex cross-chain UX**.
63+
- **Taiko’s inception layers combat this** by using built-in **arbitrary message passing**.
64+
- One rollup can natively **read Merkle proofs** from another, avoiding fragmented liquidity.
6465

6566
---
6667

packages/docs-site/src/content/docs/network-reference/hekla-addresses.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ description: Network reference page describing various important addresses on Ta
5757
The owner has the ability to upgrade the contracts.
5858
:::
5959

60-
| Network | Address | ENS |
61-
| --------------------- | -------------------------------------------- | --- |
62-
| Ethereum L1 (Holesky) | `0x13cfc60c900a927C48f5c2a4923Ec9771a3A2805` | N/A |
63-
| Taiko L2 (Taiko Hekla)| `0x1D2D1bb9D180541E88a6a682aCf3f61c1605B190` | N/A |
60+
| Network | Address | ENS |
61+
| ---------------------- | -------------------------------------------- | --- |
62+
| Ethereum L1 (Holesky) | `0x13cfc60c900a927C48f5c2a4923Ec9771a3A2805` | N/A |
63+
| Taiko L2 (Taiko Hekla) | `0x1D2D1bb9D180541E88a6a682aCf3f61c1605B190` | N/A |
6464

6565
## Taiko Labs' proposer and prover addresses
6666

packages/docs-site/src/content/docs/network-reference/software-releases-and-deployments.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ It is **highly recommended** you use the latest software. You can find the lates
99

1010
| Package | Release notes |
1111
| :------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
12-
| [protocol](https://github.com/taikoxyz/taiko-mono/tree/main/packages/protocol) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=protocol*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/CHANGELOG.md) |
13-
| [taiko-geth](https://github.com/taikoxyz/taiko-geth) | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-geth?label=)](https://github.com/taikoxyz/taiko-geth/blob/taiko/CHANGELOG.md) |
12+
| [protocol](https://github.com/taikoxyz/taiko-mono/tree/main/packages/protocol) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=protocol*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/protocol/CHANGELOG.md) |
13+
| [taiko-geth](https://github.com/taikoxyz/taiko-geth) | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-geth?label=)](https://github.com/taikoxyz/taiko-geth/blob/taiko/CHANGELOG.md) |
1414
| [taiko-client](https://github.com/taikoxyz/taiko-mono/tree/main/packages/taiko-client) | [![GitHub Release](https://img.shields.io/github/v/release/taikoxyz/taiko-mono?filter=taiko-client*&label=)](https://github.com/taikoxyz/taiko-mono/blob/main/packages/taiko-client/CHANGELOG.md) |
15-
| [simple-taiko-node](https://github.com/taikoxyz/simple-taiko-node/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/simple-taiko-node?label=)](https://github.com/taikoxyz/simple-taiko-node/blob/main/CHANGELOG.md) |
16-
| [raiko](https://github.com/taikoxyz/raiko/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/raiko?label=)](https://github.com/taikoxyz/raiko/blob/main/CHANGELOG.md) |
15+
| [simple-taiko-node](https://github.com/taikoxyz/simple-taiko-node/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/simple-taiko-node?label=)](https://github.com/taikoxyz/simple-taiko-node/blob/main/CHANGELOG.md) |
16+
| [raiko](https://github.com/taikoxyz/raiko/tree/main) | [![Github Release](https://img.shields.io/github/v/release/taikoxyz/raiko?label=)](https://github.com/taikoxyz/raiko/blob/main/CHANGELOG.md) |
1717

1818
## Taiko Alethia deployment logs
1919

packages/docs-site/src/content/docs/taiko-alethia-protocol/codebase-analysis/taikol2-contract.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ description: Taiko Alethia protocol page for "TaikoL2.sol".
8282

8383
- `parentHash`: Hash of the parent block.
8484
- `parentGasExcess`: Gas excess for base fee calculation.
85-
<br/><br/>
85+
<br/><br/>
8686

8787
2. **`EIP1559Update`**
8888
Emitted when gas parameters (e.g., target, excess, base fee) are updated.

packages/protocol/README.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,39 @@ To install dependencies:
1515
foundryup && pnpm install
1616
```
1717

18-
## Compilation and Testing
18+
## Compilation
1919

2020
Taiko’s protocol is split between Layer 1 (L1) and Layer 2 (L2). The smart contracts need to be compiled and tested separately for each layer:
2121

22-
### Layer 1 (Ethereum, Duncan Hardfork)
23-
24-
To compile, run tests, and generate the storage layout for L1:
22+
To compile and generate the storage layout for L1:
2523

2624
```bash
2725
pnpm compile:l1
28-
pnpm test:l1
2926
pnpm layout:l1
3027
```
3128

32-
### Layer 2 (Taiko, Shanghai Hardfork)
33-
3429
Similarly, for L2:
3530

3631
```bash
3732
pnpm compile:l2
38-
pnpm test:l2
3933
pnpm layout:l2
4034
```
4135

42-
### Compile and Test for Both Layers
43-
44-
To compile and test contracts for both L1 and L2 at once:
36+
To compile and generate the storage layout for both layers:
4537

4638
```bash
4739
pnpm compile
48-
pnpm test
4940
pnpm layout
5041
```
5142

43+
## Testing
44+
45+
```bash
46+
pnpm test:l1
47+
pnpm test:l2
48+
pnpm test
49+
```
50+
5251
## Layer 2 Genesis Block
5352

5453
### Generating a Dummy Genesis Block

0 commit comments

Comments
 (0)