Skip to main content

Tools for exporting Ethereum blockchain data to CSV or JSON

Project description

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

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

graphsense_ethereum_etl-2.4.3.tar.gz (342.6 kB view details)

Uploaded Source

Built Distribution

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

graphsense_ethereum_etl-2.4.3-py3-none-any.whl (441.3 kB view details)

Uploaded Python 3

File details

Details for the file graphsense_ethereum_etl-2.4.3.tar.gz.

File metadata

  • Download URL: graphsense_ethereum_etl-2.4.3.tar.gz
  • Upload date:
  • Size: 342.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for graphsense_ethereum_etl-2.4.3.tar.gz
Algorithm Hash digest
SHA256 284b4e9cc63b500db7b064352ef77bdb777fedcaadd9b69e48ea442d5faf4728
MD5 ddda59a5cac38026ab56ed7532d475c0
BLAKE2b-256 1c5caaead5e8474a651c564f5a70d3773db7efff18e4d05a402c028f80417c5f

See more details on using hashes here.

File details

Details for the file graphsense_ethereum_etl-2.4.3-py3-none-any.whl.

File metadata

File hashes

Hashes for graphsense_ethereum_etl-2.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 35bdb5066b8c912296fac8025103013db84ddb941424f7753672a3ec883a2f9b
MD5 564ea9dfd5a48139eb8970ee4f8e4e2e
BLAKE2b-256 d66a54cf82440b91ff616b55269b47d4bcd93ab7f7253a49d4e2dbac2121a141

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