Crate era_test_node
source ·Expand description
zkSync Era In-Memory Node
The era-test-node
crate provides an in-memory node designed primarily for local testing.
It supports forking the state from other networks, making it a valuable tool for integration testing,
bootloader and system contract testing, and prototyping.
Overview
-
In-Memory Database: The node uses an in-memory database for storing state information, and employs simplified hashmaps for tracking blocks and transactions.
-
Forking: In fork mode, the node fetches missing storage data from a remote source if not available locally.
-
Remote Server Interaction: The node can use the remote server (openchain) to resolve the ABI and topics to human-readable names.
-
Local Testing: Designed for local testing, this node is not intended for production use.
Features
- Fork the state of mainnet, testnet, or a custom network.
- Replay existing mainnet or testnet transactions.
- Use local bootloader and system contracts.
- Operate deterministically in non-fork mode.
- Start quickly with pre-configured ‘rich’ accounts.
- Resolve names of ABI functions and Events using openchain.
Limitations
- No communication between Layer 1 and Layer 2.
- Many APIs are not yet implemented.
- No support for accessing historical data.
- Only one transaction allowed per Layer 1 batch.
Usage
To start the node, use the command era_test_node run
. For more advanced functionalities like forking or
replaying transactions, refer to the official documentation.
Contributions
Contributions to improve era-test-node
are welcome. Please refer to the contribution guidelines for more details.
Modules
- This file hold tools used for test-forking other networks.
- Helper methods to display transaction data in more human readable way.
- In-memory node, that supports forking other networks.
- Resolving the selectors (both method & event) with external database.