Изучение и анализ цепной цепи Ethereum

Я хотел бы изучить данные внутри блок-цепи Ethereum. Там хранятся все транзакции и контракты с Ethereum Blockchain. Так что это интересный открытый набор данных, и я хотел бы получить некоторые идеи из этого. Но я не совсем уверен, как я могу получить доступ к этим данным. Внутри ~ /.ethereum /chaindata (Linux) Я могу видеть файлы, содержащие блок-цепь, но в отличие от ключей, которые они не могут легко изучить. Что это за кодировка? Каковы лучшие технические средства (например, базы данных) для работы с ним (не интерактивным способом)?

Я действительно не думаю, что использование веб-сайта для изучения определенных транзакций или кода контракта, как то, что вы можете сделать на https: //www.etherchain. org / - лучшее решение. Но вместо этого я хочу сначала изучить (целые) данные и провести классический анализ исследовательских данных, чтобы позже я мог сосредоточиться на некоторых частях, которые я хочу исследовать.

Предложения о том, как работать с этими данными, о его формате и о том, как манипулировать им, приветствуются.

29 голосов | спросил wacax 19 MarpmSat, 19 Mar 2016 23:55:14 +03002016-03-19T23:55:14+03:0011 2016, 23:55:14

5 ответов


14

Структуры данных хранятся в попытках Merkle Patricia (читайте это и this ), обычно внутри LevelDB магазин. chaindata - это именно то, что.

Я думаю, что структура может немного зависеть от реальной реализации узла?

Вот две из реализаций trie, может быть хорошей отправной точкой:

Как только это будет понято, вам нужно будет искать структуры данных, отправленные по сети, особенно blocks, transactions, accounts и storage. Учетные записи относятся как к внешним, так и к договорным счетам, а последний - к коду контракта. Хранение относится к хранилищу контрактов.

Назад к точке анализа данных

Возможно, вам лучше создать традиционную базу данных NoSQL или SQL, если вы хотите быстро просмотреть любые транзакции, выполненные учетной записью или контрактом. Оптимизация chaindata - это проверка транзакций и поддержание допустимого состояния, а не для исторических запросов.

ответил axic 20 MarpmSun, 20 Mar 2016 15:58:49 +03002016-03-20T15:58:49+03:0003 2016, 15:58:49
6

Меня интересует тот же проект. В настоящее время мне кажется, что API javascript обеспечивает наиболее надежный доступ к данным блок-цепи:

https://github.com/ethereum/wiki/wiki/JavaScript-API

Вы можете использовать этот API из Geth или автономный сценарий Node.js. Я заполнил таблицу транзакций в PostgreSQL, используя этот API. Тем не менее, я не знаю, как получить транзакции по контракту в дополнение к транзакциям через этот API. Эти сообщения доступны через API etherchain.org, но я согласен с вами в том, что API-интерфейс etherchain, вероятно, не подходит для аналитики. Посмотреть это сообщение:

Можно ли получать сообщения от Geth ?

ответил antianticamper 21 MarpmMon, 21 Mar 2016 15:33:25 +03002016-03-21T15:33:25+03:0003 2016, 15:33:25
6

Я также заинтересован в анализе блочной цепи Ethereum. На самом деле, я в первую очередь смотрю на умные контракты. Пока я изучал статьи и статьи об этом, я наткнулся на эту статью где авторы анализируют Ethereum, namecoin и peercoin . У них есть довольно интересные результаты по количеству контрактов, прекращению контрактов и транзакциям.

В частности, они предоставляют модифицированный гет-клиент, чтобы копать глубоко в сети Ethereum. Он представлен на странице GitHub . У меня еще не было времени попробовать себя, но сделаю это в ближайшие дни.

ответил Dominik Harz 25 Jpm1000000pmWed, 25 Jan 2017 18:16:11 +030017 2017, 18:16:11
3

Это ваше местоположение: обеспечить полную прозрачность умного исполнения контракта:

https://live.ether.camp/

Вот как умный контракт прослеживается

 введите описание изображения здесь>> </a> </p></body></html>

ответил Roman Mandeleil 20 MarpmSun, 20 Mar 2016 12:38:25 +03002016-03-20T12:38:25+03:0012 2016, 12:38:25
1

Вот руководство о том, как экспортировать данные Ethereum в csv и проанализировать его с помощью Amazon Athena https://medium.com/@medvedev1088/exporting-and-analyzing-ethereum-blockchain-f5353414a94e

Он использует https://github.com/medvedev1088/ethereum-etl , который выводит данные в 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      |
ответил medvedev1088 1 Maypm18 2018, 16:53:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132