区块链

区块链FISCO BCOS 2.0部署文档

2019-11-25  本文已影响0人  杨康他兄弟

区块链知识点本文不做介绍,如有需要,请查看我的关于区块链的博文。
此文记录我的FISCO BCOS 2.0的安装过程。

百度百科:FISCO BCOS是BCOS开源平台的金融分支,是基于BCOS平台加以模块升级与功能重塑 ,为金融行业深度定制而成。
FISCO BCOS“仲裁链”基于区块链多中心化、防篡改、可信任特征,利用分布式数据存储、加密算法等技术对交易数据共识签名后上链,实时保全的数据通过智能合约形成证据链,满足证据真实性、合法性、关联性的要求,实现证据及审判的标准化。 [3]
FISCO BCOS还提供了完整的存证样例供开发者学习和使用,包括完整的业务sdk代码和详细的说明文档,以便为帮助开发者在存证场景中快速启动存证应用开发。 [3]
在安全性上,通过节点准入控制、密钥管理、权限控制,在应用、存储、网络、主机层实现全面的安全保障。在可用性方面,FISCO BCOS 设计为7×24小时运行,达到金融级高可用性。在监管支持方面,可支持监管和审计机构作为观察节点加入联盟链,获取实时数据进行监管审计。

yum install -y openssl curl

安装步骤:

1. 创建目录
mkdir fisco
2. 下载build_chain.sh脚本
1. cd fisco
2. curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh
image.png
3. 搭建单群组4节点联盟链
./build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545
image.png

执行成功后,控制台会输出:All completed. Files in /data/disk2/blockchain/fisco/nodes
如果失败,请查看nodes/build.log

4. 启动FISCO BCOS链
bash nodes/127.0.0.1/start_all.sh

启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp检查机器的30300 - 30303,20200 - 20203,8545 - 8548端口是否被占用

image.png
5. 检查进程
ps -ef | grep -v grep | grep fisco-bcos
image.png
6. 检查日志输出
tail -f nodes/127.0.0.1/node0/log/log* | grep connected

正常情况会不停地输出链接信息,从输出可以看出node0与另外3个节点有链接


image.png

执行下面命令,检查是否存在共识

tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

正常情况会不停输出++++Generating seal,表示共识正常。


image.png
7. 配置及使用控制台

在控制台通过Web3SDK链接FISCO BCOS节点,实现 查询区块链状态、部署调用合约 等功能,能够快速获取到所需要的信息。控制台指令详细介绍 [参考这里 :https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/console.html ]
获取控制台并回到fisco目录

bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/download_console.sh)
image.png

拷贝控制台配置文件
若节点未采用默认端口,请将文件中的20200替换成节点对应的channle端口。

cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml

配置控制台证书

cp nodes/127.0.0.1/sdk/* console/conf/
image.png
8. 启动控制台
1. cd console
2. bash start.sh

输出下述信息表明启动成功 否则请检查conf/applicationContext.xml中节点端口配置是否正确


image.png
9. 使用控制台获取信息

获取客户端版本 : getNodeVersion


image.png

获取节点链接信息 : getPeers


image.png
10. 部署及调用HelloWorld合约

HelloWorld合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。合约内容如下:

pragma solidity ^0.4.24;

contract HelloWorld {
    string name;

    function HelloWorld() {
        name = "Hello, World!";
    }

    function get()constant returns(string) {
        return name;
    }

    function set(string n) {
        name = n;
    }
}
11. 部署HelloWorld合约

为了方便用户快速体验,HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol,参考下面命令部署即可。


image.png
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
image.png
12. 调用HelloWorld合约

[group:1]> deploy HelloWorld
contract address: 0x137d59e57e2dd5a1e84ff915c586a40378dcf937

# 查看当前块高
[group:1]> getBlockNumber
1

# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0x137d59e57e2dd5a1e84ff915c586a40378dcf937 get
Hello, World!

# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1

# 调用set设置name
[group:1]> call HelloWorld 0x137d59e57e2dd5a1e84ff915c586a40378dcf937 set "Hello, FISCO BCOS"
transaction hash: 0xf09750cd18281ebdb6864e60cef350eb0a898ec9187d5fa9ca0b02451d64e737

# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2

# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0x137d59e57e2dd5a1e84ff915c586a40378dcf937 get
Hello, FISCO BCOS

# 退出控制台
[group:1]> quit

注:

  1. 部署合约还可以通过deployByCNS命令,可以指定部署的合约版本号,使用方式[参考这里 https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/console.html#deploybycns]
  2. 调用合约通过callByCNS命令,使用方式[参考这里 https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/console.html#callbycns]
上一篇下一篇

猜你喜欢

热点阅读