2024-09-29 23:23:30 发布
网友
我希望对以太坊区块链做一些分析,特别是寻找可用哈希能力和交易确认时间之间的数据相关性。然而,我无法理解如何下载区块链或从中提取交易和工作者信息。在
理想情况下,我会下载区块链,然后使用python脚本将区块链中的相关信息提取到CSV文件或类似的文件中?在
关于如何实现这一点有什么建议吗?在
以下是如何将以太坊数据导出到csvhttps://medium.com/@medvedev1088/exporting-and-analyzing-ethereum-blockchain-f5353414a94e的指南
{{{cd2>输出到^{cd2}中。在
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
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 |
启动进程时提供RPC(RPC)选项。确保你拥有整个区块链。rpc在上启动服务器进程本地主机:8545。您可以根据需要通过rpcport选项更改端口。在
只需将httpget请求(通过CURL或一些HTTP模块)发送到本地主机:8545和获取JSON格式的必要信息。您还可以使用web3.js或web3.py api,它们与区块链接口,基本上在流程打开的控制台上执行。在
https://github.com/ethereum/wiki/wiki/JSON-RPC
标准以太坊节点可以公开^{} interface。它通常可以通过本地套接字(aka IPC)或HTTP进行访问,这取决于您拥有的节点以及如何启动它。在
从命令行中,要从geth获取5000000块的统计信息:
geth
$ curl -X POST data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x4c4b40", false],"id":1}' -H "Content-Type: application/json" http://localhost:8545/ {'id': 1, 'jsonrpc': '2.0', 'result': {'difficulty': '0x90c21c56929b2', 'extraData': '0x743132', 'gasLimit': '0x7a121d', 'gasUsed': '0x79fac5', 'hash': '0x7d5a4369273c723454ac137f48a4f142b097aa2779464e6505f1b1c5e37b5382', 'logsBloom': '0x8584009c4dd8101162295d8604b1850200788d4c81f39044821155049d2c036a8a00d07f2a10383180984400b0290ba00293400c1d414a5018104a010220101909b918c601251215109755b90003c6a2c23490829e319a506281d9641ac39a840d3aa03e4a287900e0c09641594409a2010543016e966382c02040754030430e2d708316ec64008f0c0100c713b51f8004005bd48980143e08b22bf2262365b8b2658804a560f1028207666d10288144a5a14609a5bcb221280b13da2f4c8800d8422cc27126a46a04f08c00ca9004081d65cc75d10c62862256118481d2e881a993780808e0a00086e321a4602cb214c0044215281c2ccbca824aca00824a80', 'miner': '0xb2930b35844a230f00e51431acae96fe543a0347', 'mixHash': '0x94cd4e844619ee20989578276a0a9046877d569d37ba076bf2e8e34f76189dea', 'nonce': '0x4617a20003ba3f25', 'number': '0x4c4b40', 'parentHash': '0xcae4df80f5862e4321690857eded0d8a40136dafb8155453920bade5bd0c46c0', 'receiptsRoot': '0x6db67db55d5d972c59646a3bda26a39422e71fe400e4cdf9eb7f5c09b0efa7d0', 'sha3Uncles': '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', 'size': '0x5dd1', 'stateRoot': '0x6092dfd6bcdd375764d8718c365ce0e8323034da3d3b0c6d72cf7304996b86ad', 'timestamp': '0x5a70760d', 'totalDifficulty': '0x7be181d83d2d77d052', 'transactions': ['0x569c5b35f203ca6db6e2cec44bceba756fad513384e2bd79c06a8c0181273379', ... '0xaa2703c3ae5d0024b2c3ab77e5200bb2a8eb39a140fad01e89a495d73760297c'], 'transactionsRoot': '0x91dfce7cc2174482b5ebcf6f4beedce854641982eadb1a8cf538e3206abf7836', 'uncles': []}}
有几个“web3”库可用于不同的语言,每个库都在json-rpc上提供一个抽象层。Web3.py是以太坊基金会资助的python接口。在
使用Web3.pyv4 beta(与pip install pre web3一起安装),您可以通过以下方式获得相同的信息:
pip install pre web3
注意:我是Web3.py的维护者
以下是如何将以太坊数据导出到csvhttps://medium.com/@medvedev1088/exporting-and-analyzing-ethereum-blockchain-f5353414a94e的指南
{{{cd2>输出到^{cd2}中。在
blocks.csv
^{pr2}$transactions.csv
erc20_transfers.csv
启动进程时提供RPC(RPC)选项。确保你拥有整个区块链。rpc在上启动服务器进程本地主机:8545。您可以根据需要通过rpcport选项更改端口。在
只需将httpget请求(通过CURL或一些HTTP模块)发送到本地主机:8545和获取JSON格式的必要信息。您还可以使用web3.js或web3.py api,它们与区块链接口,基本上在流程打开的控制台上执行。在
https://github.com/ethereum/wiki/wiki/JSON-RPC
标准接口
标准以太坊节点可以公开^{} interface 。它通常可以通过本地套接字(aka IPC)或HTTP进行访问,这取决于您拥有的节点以及如何启动它。在
从命令行中,要从
geth
获取5000000块的统计信息:Python API
有几个“web3”库可用于不同的语言,每个库都在json-rpc上提供一个抽象层。Web3.py是以太坊基金会资助的python接口。在
使用Web3.pyv4 beta(与
^{pr2}$pip install pre web3
一起安装),您可以通过以下方式获得相同的信息:注意:我是Web3.py的维护者
相关问题 更多 >
编程相关推荐