区块链FISCO BCOS 2.0部署文档

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

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

  • 环境:CentOS Linux release 7.3.1611 (Core) ,64位
  • 预准备环境,需要安装openssl与curl
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]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容