Files
nanoreth/examples/README.md
2024-06-24 20:58:05 +00:00

73 lines
5.5 KiB
Markdown

# Examples
These examples demonstrate the main features of some of Reth's crates and how to use them.
To run an example, use the command `cargo run -p <example>`.
If you've got an example you'd like to see here, please feel free to open an
issue. Otherwise if you've got an example you'd like to add, please feel free
to make a PR!
## Node Builder
| Example | Description |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| [Additional RPC namespace](./node-custom-rpc) | Illustrates how to add custom CLI parameters and set up a custom RPC namespace |
| [Custom event hooks](./node-event-hooks) | Illustrates how to hook to various node lifecycle events |
| [Custom dev node](./custom-dev-node) | Illustrates how to run a custom dev node programmatically and submit a transaction to it via RPC |
| [Custom EVM](./custom-evm) | Illustrates how to implement a node with a custom EVM |
| [Custom Stateful Precompile](./stateful-precompile) | Illustrates how to implement a node with a stateful precompile |
| [Custom inspector](./custom-inspector) | Illustrates how to use a custom EVM inspector to trace new transactions |
| [Custom engine types](./custom-engine-types) | Illustrates how to create a node with custom engine types |
| [Custom node components](./custom-node-components) | Illustrates how to configure custom node components |
| [Custom payload builder](./custom-payload-builder) | Illustrates how to use a custom payload builder |
## ExEx
| Example | Description |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [In Memory State](./exex/in-memory-state) | Illustrates an ExEx that tracks the plain state in memory |
| [Minimal](./exex/minimal) | Illustrates how to build a simple ExEx |
| [OP Bridge](./exex/op-bridge) | Illustrates an ExEx that decodes Optimism deposit and withdrawal receipts from L1 |
| [Remote](./exex/remote) | Illustrates an ExEx that emits notifications using a gRPC server, and a consumer that receives them |
| [Rollup](./exex/rollup) | Illustrates a rollup ExEx that derives the state from L1 |
## RPC
| Example | Description |
| ----------------------- | --------------------------------------------------------------------------- |
| [DB over RPC](./rpc-db) | Illustrates how to run a standalone RPC server over a Rethdatabase instance |
## Database
| Example | Description |
| ------------------------ | --------------------------------------------------------------- |
| [DB access](./db-access) | Illustrates how to access Reth's database in a separate process |
## Network
| Example | Description |
| ------------------------------- | ------------------------------------------------------------ |
| [Standalone network](./network) | Illustrates how to use the network as a standalone component |
## Mempool
| Example | Description |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| [Trace pending transactions](./txpool-tracing) | Illustrates how to trace pending transactions as they arrive in the mempool |
| [Standalone txpool](./network-txpool) | Illustrates how to use the network as a standalone component together with a transaction pool with a custom pool validator |
## P2P
| Example | Description |
| ---------------------------- | ----------------------------------------------------------------------------- |
| [Manual P2P](./manual-p2p) | Illustrates how to connect and communicate with a peer |
| [Polygon P2P](./polygon-p2p) | Illustrates how to connect and communicate with a peer on Polygon |
| [BSC P2P](./bsc-p2p) | Illustrates how to connect and communicate with a peer on Binance Smart Chain |
## Misc
| Example | Description |
| ---------------------------------- | ----------------------------------------------------------- |
| [Beacon API SSE](./beacon-api-sse) | Illustrates how to subscribe to beacon chain events via SSE |