Skip to content

Commit 8b65fa4

Browse files
authored
docs: move and update docs/seismic/features.md (#311)
Move seismic-features.md under docs/seismic, to follow the same convention as other repos (makes it easier for LLMs to find these docs). Also made minor updates, incorporating changes from https://github.com/SeismicSystems/documentation
1 parent 639e560 commit 8b65fa4

File tree

2 files changed

+46
-38
lines changed

2 files changed

+46
-38
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Seismic Reth extends [Reth](https://github.com/paradigmxyz/reth) with shielded t
2323

2424
## Seismic features
2525

26-
See [seismic-features](./seismic-features.md) for a detailed overview of Seismic Reth's new features.
26+
See [seismic-features](./docs/seismic/features.md) for a detailed overview of Seismic Reth's new features.
2727

2828
## For Users
2929

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
1+
# Shielded Enhancements for Seismic Reth <!-- omit in toc -->
2+
3+
### Introduction <!-- omit in toc -->
4+
5+
Welcome to the documentation for the shielded enhancements added to **Seismic Reth**, the execution layer of the Seismic blockchain. These enhancements introduce shielded storage and transaction capabilities, enabling developers to handle sensitive data securely within smart contracts and transactions. By building upon the existing Reth infrastructure, we've implemented changes to ensure ease of adoption and maintain compatibility.
6+
17
This documentation highlights the differences and new features introduced, with a focus on the modifications that make Reth shielded. We recommend familiarizing yourself with the standard Reth documentation alongside this guide.
28

39
---
410

5-
### Table of Contents
6-
7-
1. Overall Changes
8-
2. Shielded Storage
9-
- 2.1 Shielded Storage Flag
10-
- 2.2 State Root Calculation
11-
- 2.3 `eth_storageAt` RPC Modification
12-
- 2.4 Storage Hashing Parallelization
13-
3. Shielded Transactions
14-
- 3.1 Shielded Transaction Flow
15-
- 3.2 TEE Client and Arguments
16-
- 3.3 `TxSeismic` Transaction Type
17-
- 3.4 `ConfigureEvmEnv` and `EthEvmConfig` Changes
18-
- 3.5 RPC Method Changes
19-
4. Support for `seismic-revm`'s `Mercury` Specification
20-
- 4.1 Seismic Chain Spec
21-
5. RPC Modifications
22-
- 5.1 Summary of Modified Endpoints
23-
6. Backup Mechanism
24-
7. Performance Testing
25-
8. Testing
26-
- 8.1 Running Tests
27-
- 8.2 Modifications of Existing Tests
28-
- 8.3 Ethereum Package Testing
29-
9. Future Considerations
30-
- 9.1 Witness Auditing
31-
- 9.2 State Root Inclusion of `is_private` Flag
32-
- 9.3 RPC Method Enhancements
33-
11+
### Table of Contents <!-- omit in toc -->
12+
13+
- [1. Overall Changes](#1-overall-changes)
14+
- [2. Shielded Storage](#2-shielded-storage)
15+
- [2.1 Shielded Storage Flag](#21-shielded-storage-flag)
16+
- [2.2 State Root Calculation](#22-state-root-calculation)
17+
- [2.3 `eth_storageAt` RPC Modification](#23-eth_storageat-rpc-modification)
18+
- [2.4 Storage Hashing Parallelization](#24-storage-hashing-parallelization)
19+
- [3. Shielded Transactions](#3-shielded-transactions)
20+
- [3.1 Transaction Flow Overview](#31-transaction-flow-overview)
21+
- [_eth\_sendRawTransaction_ Flow](#eth_sendrawtransaction-flow)
22+
- [_eth\_call_ Flow](#eth_call-flow)
23+
- [3.2 Cryptography Client and Arguments](#32-cryptography-client-and-arguments)
24+
- [3.3 `TxSeismic` Transaction Type](#33-txseismic-transaction-type)
25+
- [3.4 `ConfigureEvmEnv` and `EthEvmConfig` Changes](#34-configureevmenv-and-ethevmconfig-changes)
26+
- [3.5 RPC Method Changes](#35-rpc-method-changes)
27+
- [4. Support for `seismic-revm`'s `Mercury` Specification](#4-support-for-seismic-revms-mercury-specification)
28+
- [4.1 Seismic Chain Spec](#41-seismic-chain-spec)
29+
- [4.2 `rng_mode` Initialization](#42-rng_mode-initialization)
30+
- [5. RPC Modifications](#5-rpc-modifications)
31+
- [5.1 Summary of Modified Endpoints](#51-summary-of-modified-endpoints)
32+
- [6. Backup Mechanism](#6-backup-mechanism)
33+
- [7. Performance Testing](#7-performance-testing)
34+
- [8. Testing](#8-testing)
35+
- [8.1 Running Tests](#81-running-tests)
36+
- [8.2 Modifications of existing tests](#82-modifications-of-existing-tests)
37+
- [8.3 Integration Testing](#83-integration-testing)
38+
- [8.4 Ethereum Package Testing](#84-ethereum-package-testing)
39+
- [9. Future Considerations](#9-future-considerations)
3440
---
3541

3642
### 1. Overall Changes
@@ -229,7 +235,13 @@ To ensure the integrity of the shielded enhancements, you can run end-to-end tes
229235
cargo nextest run --workspace
230236
```
231237

232-
#### 8.1 Modifications of existing tests
238+
For the backup-specific e2e test:
239+
240+
```bash
241+
RUST_BACKTRACE=1 RUST_LOG=trace cargo test --package reth-node-ethereum --test e2e -- backup::backup --exact --show-output --nocapture
242+
```
243+
244+
#### 8.2 Modifications of existing tests
233245

234246
**Note**: We ignore certain tests by default in `nextest.toml`:
235247

@@ -246,11 +258,11 @@ For shielded storage, we've modified:
246258

247259
Because we have a decryption call for `TxSeismic` call, `#[tokio::test(flavor = "multi_thread")]` replaces `#[tokio::test]` to provide runtime async support.
248260

249-
#### 8.2 Integration Testing
261+
#### 8.3 Integration Testing
250262

251263
See the `crates/seismic/node/tests/integration.rs` examples of integration testing using seismic transactions.
252264

253-
#### 8.3 Ethereum Package Testing
265+
#### 8.4 Ethereum Package Testing
254266

255267
We added a `TxSeismic` spammer for Ethereum Package testing. For specific instruction see this [PR](https://github.com/SeismicSystems/seismic-reth/pull/49)
256268

@@ -265,11 +277,7 @@ There are several areas that require attention and potential future development:
265277
- **Action**: The `witness()` function needs to be audited to ensure it correctly handles private data.
266278
- **Importance**: To prevent potential leaks or mishandling of confidential information.
267279

268-
2. **State Root Inclusion of `is_private` Flag**:
269-
270-
- **Consideration**: Including the `is_private` flag in the state root calculation may be necessary to accurately represent the state where storage slots can transition between public and private.
271-
272-
3. **RPC Method Enhancements**:
280+
2. **RPC Method Enhancements**:
273281
- **Encrypted Events and Data**: Future improvements may include supporting encrypted events, enabling the emission of shielded data without compromising confidentiality.
274282
- **_eth_simulate_v1_**: support endpoint for shielded transactions
275283
- **_debug\_\*_ _trace\_\*_**: support endpoints for shielded data with redaction

0 commit comments

Comments
 (0)