CITA 安装

快速安装

依赖

系统平台要求

CITA的运行环境是Linux和OSX操作系统,目前不支持Windows系统。CITA是基于Ubuntu 16.04稳定版开发的,在该系统版本上运行将是正确无误的。如果在Linux系统的其他版本上运行出现问题,建议将系统版本切换到Ubuntu 16.04版本。python版本是2.7。

注意:

  • Ubuntu要获取root权限,然后操作,否则会出现很多问题。获取权限方法,

参考:http://blog.csdn.net/xiatiancc/article/details/79298229

安装编译器及开发库

不要直接从Github仓库下载CITA的源代码,解压缩编译,通过git命令获取CITA的源代码目录

git clone https://github.com/cryptape/cita
cd cita
git submodule init
git submodule update

启动 install_develop.sh 脚本安装依赖,命令如下:

scripts/install_develop.sh

如果出现以下问题

  • setuptools版本

如果出现此问题,证明setuptools版本太高,降版本到3.7即可,

pip install setuptools==37

  • 安装中断
 出现安装中断等问题,可能因为网络问题,多运行几遍 “sudo scripts/install_develop.sh”命令即可。

安装完成后,可以重新登录使Rust相关的环境变量生效,也可直接使用以下命令立即生效:

source ~/.cargo/env

经过如上设置,CITA的依赖便安装完成了。

安装

单元测试依赖rabbitmq, 如果没有启动,需要用以下脚本启动并配置

scripts/config_rabbitmq.sh

可以按照自己的需求自行选择相应的编译方式(Debug-调试模式 或 Release-发行模式)

make debug

或者

make release

如果编译出现问题,重新启动的OS。

出现下图问题,则证明没有在root下进行安装操作:


编译成功后,其生成的可执行文件将放在target/install目录下,生产环境下只能看到target/install里面的内容。


配置

先切换到发布件目录,并将bin目录加入到PATH环境变量中:

cd target/install
export PATH=$PWD/bin:$PATH

另外,脚本admintool.sh主要用来创建创世块配置、节点相关配置、网络连接配置、私钥配置等相关文件。

设置节点的配置信息,该默认示例Demo中配置了4个节点,对Demo中的节点进行默认初始化的操作命令为:

./bin/admintool.sh

此外,用户可以根据需要更改其中的默认配置,使用命令admintool.sh -h来获得详细帮助,允许自定义配置包括:

./bin/admintool.sh: option requires an argument -- h

usage: ./bin/admintool.sh -a admin_id -l ip_list -n consensus_name -m crypto_method -d block_duration -t
option:
-a admin_id    admin identifier
    default value is 'admin'

-l ip_list     list all the node's IP and port
    default value is '127.0.0.1:4000,127.0.0.1:4001,127.0.0.1:4002,127.0.0.1:4003'

-n consensus_name  name of consensus algorithm
    default value is 'tendermint', other is 'raft' and 'poa'

-m crypto_method    name of crypto algorithm
    default value is 'SECP'

-d block_duration    block generating duration(millisecond)
    default value is '3000'

-t consensus test flag, only valid for tendermint

-h enable jsonrpc http
   default enable 'true'

-w enable jsonrpc websocket 
   default enable 'true'

-H define jsonrpc HTTP port
   default port is '1337'

-W define jsonrpc websocket port
   default port is '4337'

-k start with kafka

-Q node id


共识算法参考: https://cryptape.github.io/cita/architecture/consensus/
  • 系统管理员账户:(默认值:admin
  • 网络列表,按照IP1:PORT1,IP2:PORT2,IP3:PORT3 ... IPn:PORTn的格式
  • 共识算法选择,可供选择的有tendermintraft 和poa默认值:tendermint
  • 加密方法选择默认值:secp
  • 出块时间间隔默认值:3000ms
  • 单数据块中交易数量限制(kafka)
  • 累积多少历史交易量后进行重复交易的检查

节点初始化操作成功后,将在发布件目录下生成节点的配置文件,其生成的节点目录为:

  • node0
  • node1
  • node2
  • node3



可以使用cita start node0等命令对节点进行启动和停止等操作了。

运行

启动节点的服务步骤都是相同的,以node0为例,其启动CITA节点的具体步骤为:

链接cita

ln -s /summer/cita-develop/cita/scripts/cita /usr/local/bin/cita      //"summer/cita-develop/cita"我自己路径


1) 启动节点node0之前需进行初始化:

cita setup node0

2) 启动节点node0的服务:

cita start node0

而停止节点 node0 服务只需执行以下操作:

cita stop node0
此外, cita 命令中还包括其他操作,具体使用可以查看相关说明:

cita


root@ubuntu:/summer/cita-develop/cita/scripts# cita 
      usage: /usr/local/bin/cita COMMAND node_dir [args...]
      Commands:
      setup            setup cita run environment
      start            start cita
      stop             stop cita
      restart          restart cita
      logrotate        logrotate cita
      status           display cita process status
      logs             display cita's service(jsonrpc/chain/consensus/network/auth) logs
      clean            backup and clean cita data&log file
      stat             display cita's cpu/ram/io/disk information
      usage            display help information

除了上述的基本操作命令,为了方便用户对Demo进行相关测试,我们在目录 cita/tests/integreate_test 下提供了一些测试脚本。 例如,测试所有节点服务启动并成功出块,然后停止节点服务的操作为:

./cita_start.sh

停止所有节点服务的命令为:

./cita_stop.sh

备注:以上示例Demo的节点启动都是位于同一台机器上,如果需要部署到不同的服务器上,只需删除其他节点的配置("target/install/nodeX"),并保留自己节点的配置,然后将整个目录(即target/install目录)拷贝到其他服务器上运行即可。

3) 将不同节点部署到不同服务器

节点的服务器需要安装依赖

bash ./scripts/install_runtime.sh

将节点拷贝到对应的服务器,并修改network.toml目录下的配置文件,修改为对应的IP地址。 使用cita start启动各个节点。


/summer/cita-develop/cita/target/install/node0/network.toml

id_card = 0
port = 4000
max_peer = 3
[[peers]]
id_card = 1
ip = "127.0.0.1"
port = 4001
[[peers]]
id_card = 2
ip = "127.0.0.1"
port = 4002
[[peers]]
id_card = 3
ip = "127.0.0.1"
port = 4003

/summer/cita-develop/cita/target/install/node1/network.toml

id_card = 1
port = 4001
max_peer = 3
[[peers]]
id_card = 0
ip = "127.0.0.1"
port = 4000
[[peers]]
id_card = 2
ip = "127.0.0.1"
port = 4002
[[peers]]
id_card = 3
ip = "127.0.0.1"
port = 4003

验证
  • 查询节点个数

Request:

curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}' 127.0.0.1:1337 | jq
Result:

{
  "jsonrpc": "2.0",
  "id": 74,
  "result": "0x3"
}


  • 查询当前块高度。

Request:

curl -X POST --data '{"jsonrpc":"2.0","method":"cita_blockNumber","params":[],"id":83}' 127.0.0.1:1337 | jq

Result:

{
  "jsonrpc": "2.0",
  "id": 83,
  "result": "0x8"
}

返回块高度,表示节点已经开始正常出块。

更多API(如合约调用、交易查询)请参见RPC调用



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值