Silius
  • Silius
  • Overview
    • Getting started
    • Architecture
    • Project structure
  • Tutorials
    • Building and running from source
    • Running in Docker
    • Running separate components
    • Alternative mempools
    • ERC-4337 examples
    • Bundler spec tests
    • P2P
  • Libraries/crates
    • Primitives
    • Contracts
    • UoPool
    • Bundler
    • RPC
    • gRPC
  • Ecosystem
    • Ethers UserOp
    • Luban the Paymaster
Powered by GitBook
On this page
  • Build from source
  • Running
  1. Tutorials

Building and running from source

PreviousProject structureNextRunning in Docker

Last updated 1 year ago

Silius is built in Rust. , then clone the repository and enter the directory.

git clone git@github.com:Vid201/silius.git
cd silius

At the moment, the recommended version of Rust is 1.71.1.

Build from source

Before you can build the project, you need some prerequisites installed:

  1. libclang-dev, pkg-config and libssl-dev on Debian/Ubuntu.

  2. Ethereum execution client JSON-RPC API with enabled . For production, you can use or . For testing, we are using Geth dev mode (tested with ); so you need to install for running tests.

  3. >=0.8.12.

  4. and .

There are also some other third-party dependencies you need to setup (mainly ERC-4337 related smart contracts). These commands will clone the account abstraction repos and compile the smart contracts.

make fetch-thirdparty
make setup-thirdparty

After everything is setup, you can start the build:

make build // cargo build --release

Running

You can now run the Silius with the following command:

make run-silius // cargo run --release -- bundler --eth-client-address http://127.0.0.1:8545 --mnemonic-file ${HOME}/.silius/0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --beneficiary 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --entry-points 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 --http --ws

Some of the most commonly used CLI params are:

  • eth-client-address: HTTP or WS address to the Ethereum execution client (client should have debug RPC interface enabled, if not you need to run the bundler in unsafe mode with --uopool-mode unsafe)

  • mnemonic-file: path to the seed phrase of the bundler's account

  • datadir: path to the folder where db file will be saved (in case the storage is database)

  • beneficiary: address to where the gas left is sent

  • entry-points: address of the ERC-4337 singleton entry point smart contract

  • http: enable HTTP JSON-RPC endpoints

  • ws: enablr WS JSON-RPC endpoints

  • eth-client-proxy-address: HTTP address to the Ethereum execution client, where to forward the standard calls to the execution client

First install Rust
debug_traceCall
Geth
Erigon
v1.12.0
Geth
solc
cargo-sort
cargo-udeps