看了半天re-birth的readme,还是不知道怎么安装

原谅我是个小白用户,我clone下代码之后,安装完依赖,不知道怎么操作了,,,有没有白痴点的操作手册,服务器环境是centos7.4

区块链和区块链浏览器安装完成了,我想通过区块链浏览器链接rebirth,卡在这了。。

文档上有写最简单的步骤:

$ make setup # 如果是第一次运行的话要执行该命令来初始化数据库
$ make up # 执行这个命令会在后台运行 docker 来运行程序
$ make update # 执行该命令以更新

执行到哪一步,遇到什么问题?

Remember to run rails secret to generate secret key and write in .env.local (read .env for more info) Remember to change your sidekiq username and password in .env.local
“rails secret”这个命令怎么执行?
rebirth和cita链怎么通信的?没看到连接配置文件
节点分布式部署的时候,rebirth怎么安装?
谢谢

使用docker部署的时候抛出这些异常。环境: CentOS7.4, docker-compose version 1.27.4, build 40524192

docker容器起来后,可以利用容器的运行环境来执行,例如:

$ docker-compose exec app rails secret

没看到有确切的错误信息,最后的运行结果是什么?截取最后的一段看看。


是指这段吗?

应该是部署失败了,调用api的时候提示抛500错误

我的理解不知道有没有错,安装rebirth的步骤是这样的
1、服务器安装docker-compose
2、clone代码,cd到代码目录
3、docker-compose exec app rails secret 执行这个命令,替换掉.env文件里面的SECRET_KEY_BASE值
4、执行make setup
5、执行make up
完成部署

docker-compose exec 命令是利用已经运行起来的容器来执行命令,容器没启动前可以用这个代替:

$ docker-compose run app rails secret

这时可以用

$ docker-compose logs -f app

来查看app 容器的运行日志,看下是什么错误

生成secret这个有什么用?
谢谢


调用了下rebirth的api,没有任何输出

rebirth的web页面显示这个

这不很正常吗。rebirth的服务应该是起来了,你可以去rebirth/ 目录下来编辑 .env 文件,修改 cita相关的连接:

# cita config
# set default to localhost
CITA_URL="http://[某个联盟链节点的内网地址,不能是localhost]:1337/"
CITA_WS_PORT="4337"

生成 secret 是用于 secret_key_base, 是基于 rails 框架的项目的基础设置参数,作为各种内建加密消息的base key,详细说明看API 文档:https://api.rubyonrails.org/v5.2.1/classes/Rails/Application.html#method-i-secret_key_base

从截图看服务启动正常,没看出有问题。

另外 re-birth 是个API服务(没有WEB UI),具体接口可看文档描述:https://github.com/citahub/re-birth/blob/develop/API_DOC.md

产生请求后,再看日志是否有错误信息。

如果有4个节点,应该是只用在一台服务器上配置rebirth服务吗?配置CITA_URL的时候,只能配置一个节点地址,会自动负载均衡吗?
ps:谢谢你的耐心解答

一个节点配一个 re-birth,节点本来就是分布式部署的,re-birth 当然也是。

CITA_URL 是对应其中一个节点的RPC。

可以自己实现LB服务(例如用nginx),LB 后面反向代理几个节点RPC API,re-birth 只配LB的地址即可。但这样相当于做集群。但要理解,这个是分布式系统,不是做集群系统(2者的区别自己体会下),别人的部署的节点RPC API 不一定对你的LB开放访问权限。

我这样理解你看对不对:假设我部署4个节点,分别为机器ABCD
机器A:部署cita,部署re-birth,其中re-birth配置中的cita_url填写的地址是通过nginx反向代理的指向4台机器的地址。
机器B=机器C=机器D=机器A
那么区块链浏览器里面的re-birth地址呢?还需要一台服务器反向代理到机器ABCD吗?
谢谢你的耐心解答