ReBirth是一个提供区块链数据缓存服务的服务器端组件。它通过在服务器本地缓存 AppChain上的数据,为 Microscope等提供所需的数据缓存和查询服务,加快查询区块数据的速度。
ReBirth 具体有什么用
如果Microscope不配置ReBirth,首页右侧的最近交易列表没有数据,也不支持查询!
大概工作原理
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即可。
参考:
https://juejin.im/post/5baedabcf265da0a9624dead
关于ReBirth的更多内容请戳原文链接,从源码入手。
原文始发于微信公众号(Rebase社区):Nervos AppChain组件之ReBirth