Skip to main content

Graphsense fork of Ethereum ETL

Build Status License Telegram Twitter

This fork is a purpose tailored version for the graphsense infrastructure.

Changes allow more recent python versions to be used [upstream ethereum etl] (https://github.com/ethereum-etl/ethereum-etl)

Ethereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.

Do you just want to query Ethereum data right away? Use the public dataset in BigQuery.

Full documentation available here.

Quickstart

Install Graphsense Ethereum ETL:

pip3 install graphsense-ethereum-etl

Export blocks and transactions (Schema, Reference):

> ethereumetl export_blocks_and_transactions --start-block 0 --end-block 500000 \
--blocks-output blocks.csv --transactions-output transactions.csv \
--provider-uri https://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643c

Export ERC20 and ERC721 transfers (Schema, Reference):

> ethereumetl export_token_transfers --start-block 0 --end-block 500000 \
--provider-uri file://$HOME/Library/Ethereum/geth.ipc --output token_transfers.csv

Export traces (Schema, Reference):

> ethereumetl export_traces --start-block 0 --end-block 500000 \
--provider-uri file://$HOME/Library/Ethereum/parity.ipc --output traces.csv

Stream blocks, transactions, logs, token_transfers continually to console (Reference):

> pip3 install ethereum-etl[streaming]
> ethereumetl stream --start-block 500000 -e block,transaction,log,token_transfer --log-file log.txt \
--provider-uri https://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643c

Find other commands here.

For the latest version, check out the repo and call

> pip3 install -e . 
> python3 ethereumetl.py

Useful Links

Running Tests

> pip3 install -e .[dev,streaming]
> export ETHEREUM_ETL_RUN_SLOW_TESTS=True
> export PROVIDER_URL=<your_provider_uri>
> pytest -vv

Running Tox Tests

> pip3 install tox
> tox

Running in Docker

  1. Install Docker: https://docs.docker.com/get-docker/

  2. Build a docker image

     > docker build -t ethereum-etl:latest .
     > docker image ls
    
  3. Run a container out of the image

     > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 0 -e 5499999 -b 100000 -p https://mainnet.infura.io
     > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 2018-01-01 -e 2018-01-01 -p https://mainnet.infura.io
    
  4. Run streaming to console or Pub/Sub

     > docker build -t ethereum-etl:latest .
     > echo "Stream to console"
     > docker run ethereum-etl:latest stream --start-block 500000 --log-file log.txt
     > echo "Stream to Pub/Sub"
     > docker run -v /path_to_credentials_file/:/ethereum-etl/ --env GOOGLE_APPLICATION_CREDENTIALS=/ethereum-etl/credentials_file.json ethereum-etl:latest stream --start-block 500000 --output projects/<your_project>/topics/crypto_ethereum
    

If running on an Apple M1 chip add the --platform linux/x86_64 option to the build and run commands e.g.:

docker build --platform linux/x86_64 -t ethereum-etl:latest .
docker run --platform linux/x86_64 ethereum-etl:latest stream --start-block 500000

Projects using Ethereum ETL

  • Google - Public BigQuery Ethereum datasets
  • Nansen - Analytics platform for Ethereum

Metadata

Release files for graphsense-ethereum-etl 2.4.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for graphsense-ethereum-etl 2.4.6
File Size Uploaded
graphsense_ethereum_etl-2.4.6.tar.gz 342.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for graphsense-ethereum-etl 2.4.6
File Interpreter ABI Platform
graphsense_ethereum_etl-2.4.6-py3-none-any.whl Python 3 none any Details

Total release size: 784.2 kB

Release files / graphsense_ethereum_etl-2.4.6.tar.gz

Download URL graphsense_ethereum_etl-2.4.6.tar.gz
Size 342.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eb2d857dcef39a4af82256a551ef0e536490f160ad0f7668c5b04771b9e1f9eb
BLAKE2b-256 checksum
How to use checksums
02eb500acc00b53a09a28f2666bed636707a832b8a75b617f8f32961bdf4d560
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23

Release files / graphsense_ethereum_etl-2.4.6-py3-none-any.whl

Download URL graphsense_ethereum_etl-2.4.6-py3-none-any.whl
Size 441.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed08902ee7aba4d0daf235c0768c656a49345fa19beec00b813d0c63335cc7ab
BLAKE2b-256 checksum
How to use checksums
8be2380d9fadecd384e91883c8c9406bd308aa2987185cfcb184be1b8504c9d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23

Release history Release notifications | RSS feed

This release

2.4.6 This release

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page