A Python library to push ethereum blockchain data into an sql database.
ether_sql was built by Analyse Ether, with the goal of making Ethereum data easily available to everyone. This library can be used as a backbone for creating block explorers or performing data analysis.
It is written in Python 3.5+, uses web3.py for geting data using JSON-RPC calls and uses SqlAlchemy to connect to a postgressql database.
This is currently in very alpha stage, and not recommended for production use until it has received sufficient testing. Currently supports Geth, Infura and Parity node, but transaction traces (eg. internal transactions) are currently available only with Parity node.
Documentation available at: http://ether-sql.readthedocs.io
Please find the detailed installation guide here
ether_sql has several built in cli commands to facilitate scraping data.
To start the sync just type.
$ ether_sql scrape_block_range
This will start start pushing the data from an Infura node to the psql database.
To switch nodes use the settings flag:
$ ether_sql --settings='PersonalParitySettings' scrape_block_range
To start 4 parallel workers use.
$ ether_sql --settings=YourSettings celery start -c4
The above command will start 4 workers using the settings YourSettings
Then start the sync, which will automatically use the setting used to start workers.
$ ether_sql scrape_block_range
Here is a demo of the process: https://www.youtube.com/watch?v=rnkfyAgGJwI&feature=youtu.be
To export the pushed data as a csv
$ ether_sql sql export_to_csv
To access other Command Line Interfaces (CLI) checkout the cli docs.