ReBirth是一个提供区块链数据缓存服务的服务器端组件。它通过在服务器本地缓存 AppChain上的数据,为 Microscope等提供所需的数据缓存和查询服务,加快查询区块数据的速度。


ReBirth 具体有什么用


如果Microscope不配置ReBirth,首页右侧的最近交易列表没有数据,也不支持查询!

Nervos AppChain组件之ReBirth-Rebase



大概工作原理

ReBirth是一个典型的Rails Api服务,后端数据库是PostgreSQL。

启动后台任务,通过rpc请求获取AppChain链的数据,保存到数据库中,
通过PostgreSQL支持查询功能。

rails task -T |grep sync

rails daemons:sync:restart              # restart sync process
rails daemons:sync:start                 # start sync process
rails daemons:sync:status               # get sync process status
rails daemons:sync:stop                  # stop sync process
rails ethereum:node:waitforsync    # Check if node is syncing

目前一共有9张表

1. abis
2. balances
3. blocks
4. transactions
5. erc20_transfers
6. event_logs

7. sync_errors
8. sync_infos
9. validator_caches

1~6 表是保存区块的基本数据
7~9 可能是记录同步状态

如果不使用docker 安装还是很麻烦的,需要

Ruby

Secp256k1(椭圆曲线加密算法实现)

PostgreSQL

ReBirth依赖


使用Docker启动服务


第一次运行使用 make setup

启动docker daemon make up

命令会自动拉取 docker 镜像并运行容器,默认运行在http://localhost:8888

输入 make ps,应该至少有4个容器在运行,分别为:
rebirth_db: PostgreSQL 的容器
rebirth_sync: 同步区块数据到数据库
rebirth_app: 启动rails进程服务
rebirth_web: web服务,端口是8888

Microscope配置ReBirth

在Other Chain处输入刚刚设置好的ReBirth服务器地址 http://localhost:8888即可。 

Nervos AppChain组件之ReBirth-Rebase


参考:

https://juejin.im/post/5baedabcf265da0a9624dead

关于ReBirth的更多内容请戳原文链接,从源码入手。

原文始发于微信公众号(Rebase社区):Nervos AppChain组件之ReBirth