以太坊区块链索引器

eth-index的Python项目详细描述


Build StatusCode style: black

ETH指数

eth index是以太坊区块链上事件的索引器。它 将事件导入PostgreSQL数据库。它是 TrustLines项目中继服务器组件。

安装

在尝试安装py eth索引之前,请确保您拥有postgresql 已安装开发头文件和库。基于debian的系统 这可以通过运行:

apt install libpq-dev

eth index使用python 3.6或更高版本。请确保您有所需的 已安装版本。

请将源代码从github,cd签入签出的 repo并用一个新的virtualenv运行下面的pip命令:

pip install -c constraints.txt  .

发展

一个完整的开发环境可以安装:

pip install -c constraints.txt -r requirements.txt
pip install -c constraints.txt -e .

这将安装黑色,片状8,mypy和tox等。

黑色

源代码的格式为black。如果 如果选择不使用预提交挂钩,则应该能够格式化 使用black setup.py ethindex的源代码。

薄片8

我们使用flake8检查错误。运行flake8 ethindex检查错误。

mypy

mypy用于检查类型错误。运行mypy --ignore-missing-imports ethindex手动检查。

毒性

运行tox将在本地运行black、flake8、mypy和pytest。

由于我们也对postgres运行了一些测试,postgres数据库服务器必须 安装在本地计算机上。不过,也不必启动,因为 测试将使用临时数据目录启动postgres。

在基于debian的系统上,apt install postgresql将安装postgresql 数据库。

预提交

存储库附带一个配置文件,用于 pre-commit。我们建议使用PIPSI 安装预提交。在安装预提交之后,git 提交挂钩可以在 PY ETH索引存储库。

初始化数据库

请设置一个工作的postgres环境,即设置pg* 环境变量和配置~/.pgpass。

然后运行

psql -f create-table.sql

创建数据库表。

ethindex

ethindex是一个命令行程序,用于运行 同步进程。它还使用pg*变量来确定 要连接的Postgres服务器。

输入索引

在将事件导入postgres数据库之前,abis必须 知道。

ethindex importabi可用于将abis导入postgres 数据库。默认情况下,它读取两个json文件addresses.jsoncontracts.json从当前目录添加到abis 桌子。这些文件正是中继服务器读取的文件。 它们的位置可以通过--addresses-contracts命令行参数。

用法:

Usage: ethindex importabi [OPTIONS]

Options:
  --addresses TEXT
  --contracts TEXT
  --help            Show this message and exit.

ethindex运行同步

ethindex runsync将启动实际的同步过程。打开 第一次启动时,它将读取所有abis并在 包含所有协定地址的同步表。然后它将所有 事件放入postgres表events

用法

Usage: ethindex runsync [OPTIONS]

Options:
  --jsonrpc TEXT                  jsonrpc URL to use
  --required-confirmations INTEGER
                                  number of confirmations until we consider a
                                  block final
  --waittime INTEGER              time to sleep in milliseconds waiting for a
                                  new block
  --startblock INTEGER            Block from where events should be synced
  --syncid TEXT                   syncid to use
  --merge-with-syncid TEXT        syncid to merge with
  --help                          Show this message and exit.

添加新合同

使用ethindex importabi命令导入合同。然后同步 这些契约并将它们与默认的 以下命令:

ethindex runsync --syncid new --merge-with-syncid default

此命令将同步所有尚未同步的合同 对于默认值syncid,并将新的syncid合并到默认值 syncid,当它们都与链完全同步时。这意味着 必须为默认值运行runsync作业。

状态和限制

  • ethindex是alpha-softw是。

更改日志

CHANGELOG

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序