EthSlurp

Drink the blockchain

Download as .zip Download as .tar.gz View on GitHub

Installing and building the software

At the top of this and every page are buttons to download the source code for this project. This should download and unpack itself into a folder. In that folder, you will find a file called INSTALL. Follow the simple instructions in the INSTALL file to build and run EthSlurp.

Usage:

ethslurp [-b|-c|-d|-e|-f|-i|-l|-m|-n|-o|-r|-s|-t|-v|-h] addr Fetches data off the Ethereum blockchain for an arbitrary account or smart contract. Optionally, ethslurp formats the output to your specification. Where: addr the address of the account or contract to slurp (required) -i include income transactions only -e include expenditures only -d specify date range as '[:start:[end]]' (yyyymmdd[hhmmss]) -f pretty print, optionally add ':txt,' ':csv,' or ':html' -l list previously slurped addresses in cache -m maximum number of transactions to slurp (100000) -n name this address -r re-run the most recent slurp -s force EthSlurp to take a slurp (ignore cached data) -o open the configuration file for editing -b export records in block range (:0[:max]) -c clear all previously cached slurps -v verbose: -v1 for minimal debug output, -v3 for max -h display this help screen

Running the software the first time

The first time you run EthSlurp, it will ask you for an API key from the http://etherscan.io/apis website. We have to do this because if we didn't, and used our own API key, and we got a non-zero install base, the number of requests to ehterscan.io would exceed the limit of api calls per second. If each user supplies their own API key, this problem is alliviated.

Cached data

EthSlurp pulls data from the blockchain under three scenarios: (1) the first time you slurp an address, (2) on subsequent slurps of the same address if the previous slurp is older than five minutes, and (3) if you supply the '-s' flag. At all other times, EthSlurp pulls its data from a locally stored cache. This is necessary to minimize the number of times the program hits the etherscan.io apis and improve performance. You may change the refresh rate in a configuration file.

Planned improvements

The primary improvement we hope to provide in the future would be to pull the data directly from the Ethereum blockchain as opposed to using a web api such as etherscan.io. This will greatly improve the performance of the software and remove the five minute caching requirement. Furthermore, it will remove the dependency that currently exists on an external website. Additionally, our end users will no longer need an etherscan.io API key.

Another primary area of improvement will be in the long-term storage of cached data, which is currently implemented in a sub-optimal way.

The final major area for improvement will be in the area of summarizing data at the page level. Currently we provide only a rudimentary level of summarization data, listing instead only transaction data.