Building and running from source
Silius is built in Rust. First install 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:
libclang-dev
,pkg-config
andlibssl-dev
on Debian/Ubuntu.Ethereum execution client JSON-RPC API with enabled
debug_traceCall
. For production, you can use Geth or Erigon. For testing, we are using Geth dev mode (tested with v1.12.0); so you need to install Geth for running tests.solc
>=0.8.12.cargo-sort
andcargo-udeps
.
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 havedebug
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 accountdatadir
: path to the folder where db file will be saved (in case the storage is database)beneficiary
: address to where the gas left is sententry-points
: address of the ERC-4337 singleton entry point smart contracthttp
: enable HTTP JSON-RPC endpointsws
: enablr WS JSON-RPC endpointseth-client-proxy-address
: HTTP address to the Ethereum execution client, where to forward the standard calls to the execution client
Last updated