Skip to content

Commit 2a65e28

Browse files
Linting
1 parent 10a7f23 commit 2a65e28

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

pages/stack/fault-proofs/asterisc.mdx

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ title: Asterisc
33
lang: en-US
44
description: Learn about Asterisc
55
---
6+
67
# Asterisc
78

89
[Asterisc](https://github.com/protolambda/asterisc/tree/master) is an alternative fault-proof VM for the OP Stack, crafted to validate RISC-V program execution via an interactive fraud-proof mechanism. Asterisc bridges simplicity and functionality, delivering a minimalist yet powerful solution for optimistic rollup fraud-proofing. Leveraging the RISC-V architecture, it offers:
910

10-
- Support for 64-bit operations
11-
- Concurrent yet deterministic threading
12-
- Compatibility with RISC-Vs expanding ecosystem
11+
* Support for 64-bit operations
12+
* Concurrent yet deterministic threading
13+
* Compatibility with RISC-V's expanding ecosystem
1314

1415
Read more about fault-proofs in our [Fault-proof explainer](/stack/fault-proofs/explainer)
1516

@@ -21,17 +22,17 @@ Ready to dive in? Keep reading or head over to the [Asterisc repo](https://githu
2122

2223
## Getting started
2324

24-
1. Read through the [additional repo docs](https://github.com/protolambda/asterisc/tree/master/docs).
25-
2. Use Foundry to compile the associated smart contracts.
26-
3. Compile test binaries using the [`Makefile`](https://github.com/protolambda/asterisc/blob/master/tests/go-tests/Makefile).
27-
4. Execute `rvgo` tests to validate both on-chain and off-chain operations through RISC-V unit tests.
25+
1. Read through the [additional repo docs](https://github.com/protolambda/asterisc/tree/master/docs).
26+
2. Use Foundry to compile the associated smart contracts.
27+
3. Compile test binaries using the [`Makefile`](https://github.com/protolambda/asterisc/blob/master/tests/go-tests/Makefile).
28+
4. Execute `rvgo` tests to validate both on-chain and off-chain operations through RISC-V unit tests.
2829

2930
## Key components
3031

31-
- **`rvgo`:** A Go-based RISC-V emulator with two operational modes:
32-
- **`Fast Mode`:** Executes one instruction per step on the VM state.
33-
- **`Slow Mode`:** Emulates one instruction per step using a VM state oracle.
34-
- **`rvsol`:** A Solidity/Yul implementation of the slow-mode step for EVM compatibility.
32+
* **`rvgo`:** A Go-based RISC-V emulator with two operational modes:
33+
* **`Fast Mode`:** Executes one instruction per step on the VM state.
34+
* **`Slow Mode`:** Emulates one instruction per step using a VM state oracle.
35+
* **`rvsol`:** A Solidity/Yul implementation of the slow-mode step for EVM compatibility.
3536

3637
### Yul in Solidity
3738

@@ -42,11 +43,12 @@ Yul is chosen for its simplicity and precision, offering direct mirroring with G
4243
## Supported RISC-V subsets
4344

4445
Here's a few key subsets. For the complete list, see the [repo](https://github.com/protolambda/asterisc?tab=readme-ov-file#risc-v-subset-support).
45-
- `RV32I`: Base 32-bit instruction set
46-
- `RV64I`: 64-bit instruction set
47-
- `RV32M` and `RV64M`: Multiplication
48-
- `RV32A` and `RV64A`: Atomics
49-
- Compact instructions for Rust: Work in progress
46+
47+
* `RV32I`: Base 32-bit instruction set
48+
* `RV64I`: 64-bit instruction set
49+
* `RV32M` and `RV64M`: Multiplication
50+
* `RV32A` and `RV64A`: Atomics
51+
* Compact instructions for Rust: Work in progress
5052

5153
Unsupported operations are implemented as no-ops, ensuring compatibility with the Go runtime.
5254

@@ -57,17 +59,18 @@ The following section highlights specific advantages that Asterisc provides over
5759
### Benefits over Cannon
5860

5961
[Cannon](https://github.com/ethereum-optimism/cannon/), originally developed by [`geohot`](https://github.com/geohot/) and now maintained by Optimism, offers similar functionality but has key differences:
60-
- Cannon operates on a 32-bit MIPS architecture, whereas Asterisc uses RISC-V.
61-
- Asterisc supports 64-bit operations and deterministic threading, making it more future-ready.
62+
63+
* Cannon operates on a 32-bit MIPS architecture, whereas Asterisc uses RISC-V.
64+
* Asterisc supports 64-bit operations and deterministic threading, making it more future-ready.
6265

6366
### Benefits over Cartesi
6467

6568
[Cartesi](https://github.com/cartesi/) provides RISC-V fraud-proofing for a full machine, including numerous additional features. However, this added complexity can introduce risks. Asterisc focuses on simplicity by running single-process executions with minimal system calls.
6669

6770
### Benefits over WebAssembly
6871

69-
Arbitrums WebAssembly-based fraud-proofing leverages a business-source license and transformation to WAVM, limiting its general usability. In contrast, Asterisc is open-source under the MIT license, offering broader applicability.
72+
Arbitrum's WebAssembly-based fraud-proofing leverages a business-source license and transformation to WAVM, limiting its general usability. In contrast, Asterisc is open-source under the MIT license, offering broader applicability.
7073

7174
## Contributing
7275

73-
Asterisc is designed to run Go programs for fraud-proofing optimistic rollups. Contributions that align with its goals of simplicity, minimalism, and compatibility are highly encouraged.
76+
Asterisc is designed to run Go programs for fraud-proofing optimistic rollups. Contributions that align with its goals of simplicity, minimalism, and compatibility are highly encouraged.

0 commit comments

Comments
 (0)