跳转到主要内容

用于访问Filecoin链数据的Python客户端。

项目描述

mercury-py

mercury-py是一个Python包,简化了与存储在BigQuery上的历史Filecoin链数据的交互。

Mercury客户端的结果是pandas.DataFrame对象。

先决条件

安装gcloud CLI。

对于homebrew用户

brew install --cask google-cloud-sdk

其他安装方法请点击这里

安装

pip安装mercury-fil

使用

确保您已认证:gcloud auth login。您还需要位于正确的项目中:gcloud config set project protocol-labs-data

💡 只查询您需要的列(以及高度范围)。查询费用为$6.25/TB。

简单API

fevm_contractsderived_gas_outputs方法只有两个必需的参数,即start_heightend_height

查询所有高度的成本很高,因此请确保您**只查询您需要的**高度。这些表在BigQuery中以height为间隔3000分区。

API默认为试运行,因此它会在您决定是否运行查询作业之前计算将要处理的字节数。

>>> from mercury import Client
>>> client = Client()
>>> df = client.fevm_contracts(start_height=2683348, end_height=2683348+2880)
>>> df
'0.1322889 GiB'
>>> df = client.fevm_contracts(start_height=2683348, end_height=2683348+2880, dry_run=False)
       height                                 eth_address                                          byte_code                         balance
0     2684783  0x8b9ebed1f4a0892097b913ba938c069330652947  60806040526004361061004a5760003560e01c806363a5...                            0E-9
1     2684264  0x719e14fcb364bb05649bd525eb6c4a2d0d4ea2b7  6080604052600436106100a05760003560e01c8063313c...   2212000000000000000.000000000
2     2684238  0x719e14fcb364bb05649bd525eb6c4a2d0d4ea2b7  6080604052600436106100a05760003560e01c8063313c...   2211000000000000000.000000000
3     2684210  0x719e14fcb364bb05649bd525eb6c4a2d0d4ea2b7  6080604052600436106100a05760003560e01c8063313c...   1211000000000000000.000000000
4     2684204  0x719e14fcb364bb05649bd525eb6c4a2d0d4ea2b7  6080604052600436106100a05760003560e01c8063313c...   1201000000000000000.000000000
...       ...                                         ...                                                ...                             ...
3657  2685897  0x8f81929b4b8e0a76d13e90dfb5d2316a4a163d26  6080604052600436106101e35760003560e01c80635c97...  58400000000000000000.000000000
3658  2685891  0x8f81929b4b8e0a76d13e90dfb5d2316a4a163d26  6080604052600436106101e35760003560e01c80635c97...  57400000000000000000.000000000
3659  2685887  0x8f81929b4b8e0a76d13e90dfb5d2316a4a163d26  6080604052600436106101e35760003560e01c80635c97...  53400000000000000000.000000000
3660  2685716  0x8f81929b4b8e0a76d13e90dfb5d2316a4a163d26  6080604052600436106101e35760003560e01c80635c97...  49400000000000000000.000000000
3661  2685132  0x8f81929b4b8e0a76d13e90dfb5d2316a4a163d26  6080604052600436106101e35760003560e01c80635c97...  47400000000000000000.000000000

[3662 rows x 4 columns]

>>> df = client.derived_gas_outputs(start_height=0, end_height=2880, dry_run=False)
>>> df
        height                                               from      to           value  method   gas_used
0          315  f3ro3i54tule2vtdcsjdkzjkf6djx3wwe5znv5h4kwxprx...     f05            0E-9       4   29167738
1         2150  f3sqdk3xwrfrxb77upn4jjnqzamoiuzmykavyguodsmxgh...     f05            0E-9       4   39859680
2         2119  f3qcagyij6lb7ixssn5vxgrqekike2ujcn7b7v5jci4foq...     f05            0E-9       4   42993922
3         1743  f3r6vel3cnsvc4ct2zymfxorxz5by4rc5tuwjb3ykbl4cn...  f07919  1000.000000000       5  382976458
4         2592  f3qjn4pqvipuaxyjigcbzp4zn5625646ogbqwuzmakgx5q...  f03362  1000.000000000       5  380578332
...        ...                                                ...     ...             ...     ...        ...
675645     342  f3uxgextdo6bmkn5ax3gtfn6t3j3js5ywnojwpmc7suhyp...     f04            0E-9       2   16488846
675646     342  f3uxgextdo6bmkn5ax3gtfn6t3j3js5ywnojwpmc7suhyp...     f04            0E-9       2   16844158
675647     342  f3uxgextdo6bmkn5ax3gtfn6t3j3js5ywnojwpmc7suhyp...     f04            0E-9       2   16563776
675648     342  f3uxgextdo6bmkn5ax3gtfn6t3j3js5ywnojwpmc7suhyp...     f04            0E-9       2   16691916
675649    2051          f16aum7jrmrwa7aqr2d5feu7on4emsgqh2gmxdf7q     f04            0E-9       2   16382158

[675650 rows x 6 columns]

选择列

BigQuery是一个列式数据存储,这意味着数据按列存储在磁盘上。例如,derived_gas_outputs.method列将按如下方式存储

| method | 4 | 4 | 4 | 5 | 5 | 2 | 2 |

因此,通过列读取表中的多个记录更为高效。由于一列通常包含相当数量的数据(以字节为单位),如果你选择表中所有列,查询可能会变得昂贵。财务成本是默认情况下,在 fevm_contractsderived_gas_outputs 方法中不包含lilium.sh 列表中的所有列的原因。

要选择你需要的列,你需要传递一个包含那些列名的元组。例如

>>> df = client.fevm_contracts(start_height=2683348, end_height=2683348+2880, columns=("height", "actor_id", "byte_code_hash"), dry_run=False)
>>> df
       height                                      actor_id                                     byte_code_hash
0     2684783  f410fropl5upuucesbf5zco5jhdagsmygkkkhgifa3pi  36cdf3ab5e4b065b46d89eb1b595da8acdbb725520983d...
1     2684264  f410fogpbj7ftms5qkze32us6w3ckfugu5ivx4eoycoi  af58eb543e44897848df115f2276f7b5ffc12fa068de8c...
2     2684238  f410fogpbj7ftms5qkze32us6w3ckfugu5ivx4eoycoi  af58eb543e44897848df115f2276f7b5ffc12fa068de8c...
3     2684210  f410fogpbj7ftms5qkze32us6w3ckfugu5ivx4eoycoi  af58eb543e44897848df115f2276f7b5ffc12fa068de8c...
4     2684204  f410fogpbj7ftms5qkze32us6w3ckfugu5ivx4eoycoi  af58eb543e44897848df115f2276f7b5ffc12fa068de8c...
...       ...                                           ...                                                ...
3657  2685897  f410fr6azfg2lryfhnuj6sdp3lurrnjfbmpjgwco5svi  a48a535d2921613878ca9393b62022db4e2caaafd5a23f...
3658  2685891  f410fr6azfg2lryfhnuj6sdp3lurrnjfbmpjgwco5svi  a48a535d2921613878ca9393b62022db4e2caaafd5a23f...
3659  2685887  f410fr6azfg2lryfhnuj6sdp3lurrnjfbmpjgwco5svi  a48a535d2921613878ca9393b62022db4e2caaafd5a23f...
3660  2685716  f410fr6azfg2lryfhnuj6sdp3lurrnjfbmpjgwco5svi  a48a535d2921613878ca9393b62022db4e2caaafd5a23f...
3661  2685132  f410fr6azfg2lryfhnuj6sdp3lurrnjfbmpjgwco5svi  a48a535d2921613878ca9393b62022db4e2caaafd5a23f...

[3662 rows x 3 columns]

与只查询你需要的范围内的数据一样,只选择你需要的列。

支持的表

  • fevm_contracts
  • derived_gas_outputs
  • miner_sector_events
  • miner_sector_infos

contributing

要贡献力量,你需要使用 Poetry 安装依赖项。

要运行测试,只需运行 pytest

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

mercury_fil-0.1.4.tar.gz (5.0 kB 查看散列)

上传时间

构建分发

mercury_fil-0.1.4-py3-none-any.whl (5.4 kB 查看散列)

上传时间 Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面