My purpose is to analyze some Ethereum transactions. Which is the best way to download the full blockchain on my machine, and which libraries do you recommend for interacting with it using Python? Thanks in advance.
-
1Here is a reddit post describing how to download the ethereum blockchain, reddit.com/r/ethereum/comments/5viint/… – DFord Jan 10 '18 at 15:05
-
web3py.readthedocs.io/en/stable – atomh33ls Jan 10 '18 at 17:32
That tutorial is a little complicated and has some extra steps because things have changed since then. If you are willing to wait while the sync is complete, just download and install the Ethereum wallet from git and choose the main network during install.
Try this tutorial https://medium.com/@attores/step-by-step-guide-getting-started-with-ethereum-mist-wallet-772a3cc99af4
For Python, try https://github.com/ethereum/web3.py
Here is a guide on how to export Ethereum data to csv https://medium.com/@medvedev1088/exporting-and-analyzing-ethereum-blockchain-f5353414a94e
It uses https://github.com/medvedev1088/ethereum-etl which outputs the data into blocks.csv
, transactions.csv
, erc20_transfers.csv
.
blocks.csv
Column | Type |
------------------------|---------------------
block_number | bigint |
block_hash | hex_string |
block_parent_hash | hex_string |
block_nonce | hex_string |
block_sha3_uncles | hex_string |
block_logs_bloom | hex_string |
block_transactions_root | hex_string |
block_state_root | hex_string |
block_miner | hex_string |
block_difficulty | bigint |
block_total_difficulty | bigint |
block_size | bigint |
block_extra_data | hex_string |
block_gas_limit | bigint |
block_gas_used | bigint |
block_timestamp | bigint |
block_transaction_count | bigint |
transactions.csv
Column | Type |
--------------------|--------------
tx_hash | hex_string |
tx_nonce | bigint |
tx_block_hash | hex_string |
tx_block_number | bigint |
tx_index | bigint |
tx_from | hex_string |
tx_to | hex_string |
tx_value | bigint |
tx_gas | bigint |
tx_gas_price | bigint |
tx_input | hex_string |
erc20_transfers.csv
Column | Type |
--------------------|--------------
erc20_token | hex_string |
erc20_from | hex_string |
erc20_to | hex_string |
erc20_value | bigint |
erc20_tx_hash | hex_string |
erc20_block_number | bigint |