以太坊区块链索引器

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第三方库


热门话题
使用MongoDB进行java漏斗分析?   java如何重构此代码以仅执行一次方法logViolation(),并在单个字符串中获取字符串变量(speedType)的所有值   java如何将方向向量转换为角度?   Java中json文件中的股票价格   java有没有一种方法可以查看网站中的哪些资源加载了selenium?   java文件定位器可以指向不同文件服务器上的目录吗?   java GWT等待SetVisibleRange和ClearData完成   macos Java Applet无法在Mac OS下接收鼠标输入   java BottomNavigationView不支持单次单击必须单击两次   MS SQL Server 2012中的java:我的数据库名称是J.3.0.0\u DEV我无法在Oracle SQL Developer IDE中连接它?   java对JFileChooser的修改,只显示文件夹内容   java如何将动态对象查询更改为criteria builder或更好的性能   java中的swing新字体类型   java Hibernate。删除未使用的条目   上载CSV文件并将其转换为Java模型对象   java如何将信息添加到库的日志消息中?   JavaEclipseGit:使用egit从另一个分支、标记或引用打开版本   使用Firebase控制台消息的java开放视频