Skip to main content

EIP-4337 python Bundler

Project description

Voltaire

Modular and lighting-fast Python Bundler for Ethereum EIP-4337 Account Abstraction

Using an instance

For a quick bundler instance, use one of our public hosted endpoints for your developement.

Deployment

Deploy Voltaire using the latest docker image

docker run --net=host --rm -ti ghcr.io/candidelabs/voltaire/voltaire-bundler:latest --bundler_secret $BUNDLER_SECRET --rpc_url $RPC_URL --rpc_port $PORT --ethereum_node_url $ETHEREUM_NODE_URL --chain_id $CHAIN_ID --verbose --unsafe --disable_p2p

Development

Ubuntu: Get started testing the bundler in 5 minutes

Install Poetry

curl -sSL https://install.python-poetry.org | python3 -

Install dependencies

poetry install

Make sure you are using the right python version

poetry env use python3.11

Install Docker

Follow the installation guide to install docker on ubunutu

Post docker installation

Follow the instruction for docker's post linux instalation

Start geth

docker run --rm -ti --name geth -p 8545:8545 ethereum/client-go:v1.10.26 \
  --miner.gaslimit 12000000 \
  --http --http.api personal,eth,net,web3,debug \
  --http.vhosts '*,localhost,host.docker.internal' --http.addr "0.0.0.0" \
  --ignore-legacy-receipts --allow-insecure-unlock --rpc.allow-unprotected-txs \
  --dev \
  --verbosity 4 \
  --nodiscover --maxpeers 0 --mine --miner.threads 1 \
  --networkid 1337

Deploy the EntryPoint and fund the signer (in another terminal)

geth --exec 'loadScript("scripts/deploy.js")' attach http://0.0.0.0:8545

Set env values

source scripts/init-params 

Run the bundler

poetry run python3 -m voltaire_bundler --entrypoint $ENTRYPOINT --bundler_secret $BUNDLER_SECRET --chain_id 1337 --verbose

Test the bundler by cloning eth-infinitism/bundler-spec-tests

Follow the instruction in eth-infinitism/bundler-spec-tests to install dependencies and run the test

P2P rust section development

Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Install build dependencies

sudo apt install musl-tools
rustup target add x86_64-unknown-linux-musl

Build the rust section using poetry script

poetry run build_p2p

Contributions

Thank you for considering contributing to open-source code! We welcome contributions and are grateful for even the smallest of fixes.

If you want to contribute today or follow along with the contributor discussion, you can use our main discord to chat with us about the development of Voltaire.

License

LGPL

Acknowledgments

None of this would have been possible without the following teams and organizations below:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voltaire_bundler-0.1.0a24.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

voltaire_bundler-0.1.0a24-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

File details

Details for the file voltaire_bundler-0.1.0a24.tar.gz.

File metadata

  • Download URL: voltaire_bundler-0.1.0a24.tar.gz
  • Upload date:
  • Size: 43.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.5.0-14-generic

File hashes

Hashes for voltaire_bundler-0.1.0a24.tar.gz
Algorithm Hash digest
SHA256 059988f5f194b736a25f1edd92a6581907e94a3966c1e233ae207d4a95cde6d1
MD5 2ced3e9c8a53ad0897f7561ffb7ed70b
BLAKE2b-256 f03dc5cf6f347dfa82ef4779ba35f1a22715b54532fa580453ce24a3bafb0ffc

See more details on using hashes here.

File details

Details for the file voltaire_bundler-0.1.0a24-py3-none-any.whl.

File metadata

  • Download URL: voltaire_bundler-0.1.0a24-py3-none-any.whl
  • Upload date:
  • Size: 53.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.6 Linux/6.5.0-14-generic

File hashes

Hashes for voltaire_bundler-0.1.0a24-py3-none-any.whl
Algorithm Hash digest
SHA256 45ecc0717cdb2d0a0ce108bd790a9699f5086769ab33f61f498298e6b7e739b7
MD5 c4f86c19007fc726c7a5a683fa29f8e4
BLAKE2b-256 a62ca21b4bcbe5317d582ab52c8c8d85b962236d1bef175cc07c9fd35a03e354

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page