前言

  • 本文的记录与总结依照于FISCO BCOS 技术文档学习联盟链搭建的相关知识,详细搭建过程见文档,本文仅作参考

  • 本文通过在单机上部署一条4节点的FISCO BCOS联盟链,掌握FISCO BCOS部署流程。

搭建

需要使用已经封装好的脚本程序build_chain.sh,由于该脚本依赖于openssl, curl

需要先安装相关依赖openssl, curl

下载脚本(可以新建一个文件夹管理)

curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.sh

启动脚本,生成一条单群组4节点的FISCO链,注意确保机器端口占用情况

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545

其中-p选项指定起始端口,分别是p2p_port,channel_port,jsonrpc_port

命令执行成功会输出All completed

启动

启动所有节点

bash nodes/127.0.0.1/start_all.sh

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

try to start node0
try to start node1
try to start node2
try to start node3node1 start successfullynode2 start successfullynode0 start successfullynode3 start successfully

检测

检查进程是否启动

ps -ef | grep -v grep | grep fisco-bcos

正常情况会有类似下面的输出; 如果进程数不为4,则进程没有启动(一般是端口被占用导致的)

fisco       5453     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
fisco       5459     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
fisco       5464     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
fisco       5476     1  1 17:11 pts/0    00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini

如下,查看节点node0链接的节点数

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

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

info|2019-01-21 17:30:58.316769| [P2P][Service] heartBeat,connected count=3
info|2019-01-21 17:31:08.316922| [P2P][Service] heartBeat,connected count=3
info|2019-01-21 17:31:18.317105| [P2P][Service] heartBeat,connected count=3

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

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

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

配置及使用控制台

在控制台链接FISCO BCOS节点,实现查询区块链状态、部署调用合约等功能,能够快速获取到所需要的信息。

本质上控制台也是使用命令调用的sdk

  • 需要依赖

    • Java
  • 下载控制台脚本
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.8.0/download_console.sh && bash download_console.sh
  • 拷贝控制台配置文件并配置控制台证书
cp -n console/conf/config-example.toml console/conf/config.toml
cp -r nodes/127.0.0.1/sdk/* console/conf/
  • 使用控制台
cd ~/fisco/console && bash start.sh
# 获取客户端版本
[group:1]> getNodeVersion
ClientVersion{version='2.6.0',supportedVersion='2.6.0',chainId='1',buildTime='20200819 15:47:59',buildType='Darwin/appleclang/RelWithDebInfo',gitBranch='HEAD',gitCommitHash='e4a5ef2ef64d1943fccc4ebc61467a91779fb1c0'
}
# 获取节点信息
[group:1]> getPeers
[PeerInfo{nodeID='c1bd77e188cd0783256ee06838020f24a697f9af785438403d3620967a4a3612e3abc4bbe986d1e9dddf62d4236bff0b7d19a935a3cd44889f681409d5bf8692',ipAndPort='127.0.0.1:30302',agency='agency',topic=[],node='node2'},PeerInfo{nodeID='7f27f5d67f104eacf689790f09313e4343e7887a1a7b79c31cd151be33c7c8dd57c895a66086c3c8e0b54d2fa493407e0d9646b2bd9fc29a94fd3663a5332e6a',ipAndPort='127.0.0.1:57266',agency='agency',topic=[_block_notify_1],node='node1'},PeerInfo{nodeID='862f26d9681ed4c12681bf81a50d0b8c66dd5b6ee7b0b42a4af12bb37b1ad2442f7dcfe8dac4e737ce9fa46aa94d904e8c474659eabf575d6715995553245be5',ipAndPort='127.0.0.1:30303',agency='agency',topic=[],node='node3'}
]

总结

本过程本质上包含两个部分,搭建一个联盟链和使用联盟链的控制台。核心自然是下载了其GitHub上的两个脚本(fisco搭建脚本与fisco控制台脚本)实现区块链搭建,当然在脚本的bash前需要安装脚本依赖环境,控制台在bash前还需要进行一定的配置

补充:部署及调用简单合约

简单合约编写

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;}
}

HelloWorld合约提供两个接口,分别是get()set(),用于获取/设置合约变量name

部署

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

# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
transaction hash: 0xd0305411e36d2ca9c1a4df93e761c820f0a464367b8feb9e3fa40b0f68eb23fa
contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344

调用

# 查看当前块高
[group:1]> getBlockNumber
1# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return values:
["Hello,World!"
]
---------------------------------------------------------------------------------------------# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1# 调用set设置name
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS"
transaction hash: 0x7e742c44091e0d6e4e1df666d957d123116622ab90b718699ce50f54ed791f6e
---------------------------------------------------------------------------------------------
transaction status: 0x0
description: transaction executed successfully
---------------------------------------------------------------------------------------------
Output
Receipt message: Success
Return message: Success
---------------------------------------------------------------------------------------------
Event logs
Event: {}# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return values:
["Hello,FISCO BCOS"
]
---------------------------------------------------------------------------------------------# 退出控制台
[group:1]> quit

Fisco技术文档总结1---搭建第一个区块链网络相关推荐

  1. Fisco技术文档总结2---开发第一个区块链应用

    开发第一个区块链应用 本文介绍合约编译以及如何部署到区块链,通过Java SDK实现对区块链上合约的调用访问. 本教程要求用户熟悉Linux操作环境,具备Java开发的基本技能,能够使用Gradle工 ...

  2. Linux下搭建第一个区块链网络(FISCO BCOS)

    Linux下搭建第一个区块链网络(FISCO BCOS) 概述 搭建单群组FISCO BCOS联盟链 配置及使用控制台 部署及调用HelloWorld合约 概述 FISCO BCOS是由国内企业主导研 ...

  3. FISCO BCOS搭建多机区块链网络

    我使用两台虚拟机,IP地址分别是192.168.217.132,192.168.217.128,每台配置一个节点. 1.生成区块链网络配置文件 #根据自己的机器IP填写cat >> ipc ...

  4. 区块链基础知识系列 第一课 区块链网络简介

    区块链是一种分布式分类帐技术 (DLT),通过建立新一代事务性应用程序的新信任度.可计帐性和透明度,来简化业务流程.区块链网络首次引入到了比特币兑换市场,但其实际使用范围远远超出了加密数字货币事务处理 ...

  5. Ubuntu21.04搭建FISCO BCOS第一个区块链helloword

    官方地址:搭建第一个区块链网络 - FISCO BCOS v2.7.2 文档 1. 搭建单群组FISCO BCOS联盟链 安装依赖curl sudo apt install -y openssl cu ...

  6. Atitit usrQBK1600 技术文档的规范标准化解决方案

    Atitit usrQBK1600 技术文档的规范标准化解决方案 1.1. Keyword关键词..展关键词,横向拓展比较,纵向抽象细化拓展知识点1 1.2. 标题必须有高大上词汇,参考文章排行榜,1 ...

  7. VuePress 手摸手教你搭建一个类Vue文档风格的技术文档/博客

    前言: VuePress是尤大为了支持 Vue 及其子项目的文档需求而写的一个项目,VuePress界面十分简洁,并且非常容易上手,一个小时就可以将项目架构搭好.现在已经有很多这种类型的文档,如果你有 ...

  8. (马世龙)Linux下CACTI完全搭建技术文档二

    续(马世龙)Linux下CACTI完全搭建技术文档一 6.完成cacti的安装 1. 首先检查一下rra/下面,有没有数据 2. snmpwalk -v 2c -c public ServerIP i ...

  9. 使用Docker搭建RAP2(技术文档管理私服)

    文章目录 前言 准备工作 安装 mariadb及redis安装 rap2-delos安装 rap2-dolores 安装 nginx配置ssl正式及解决跨域问题 安装确认 使用说明 前言 技术团队,文 ...

最新文章

  1. 机器学习笔记——皮尔逊相关系数
  2. 数据库_第一第二第三范式讲解(通俗易懂)
  3. 数据结构:线性数据结构(3)-deques(栈,队列,deques, 列表)
  4. SAP UI5里input field live search的实现例子
  5. 详细的DedeCMS(织梦)目录权限安全设置教程
  6. abb智能控制系统_ABB助力国网冀北电力打造虚拟电厂
  7. 《02》let 和 const 命令
  8. 【算法】剑指 Offer 22. 链表中倒数第k个节点
  9. mybatis防止sql注入
  10. min-max容斥【概念+例题解析】
  11. 浙大计算机科学与技术专业课表,浙江大学 计算机科学与技术专业课程设置
  12. 摄影爱好者尝试图库销售时需要注意什么?| 拍者手记
  13. 你真的会写for循环吗?来看看这些常见的for循环优化方式
  14. 吴恩达-机器学习课后题07-PCA-主成分分析法
  15. 转载CSDN博客时的错误
  16. watch蜂窝开通服务器中断,原因找到了!Apple Watch Series 3为何无法连接蜂窝网络...
  17. Android设置iptable实现外网访问
  18. 【腾讯位置服务】使用地点云实现企业官网中的门店地图
  19. 德国短期(小于90天)学术访问签证经验申根签证
  20. mysql使用 union all查询统计总数量

热门文章

  1. 如何停止计算机设备,电脑出现“该设备因问题而停止”该怎么办?
  2. Apollo配置中心使用篇
  3. Swift - lazy 修饰符和lazy 方法
  4. sqlite如何创建数据库
  5. 计算字符串长度.length()和数组长度.length的区别
  6. 网站导航SEO优化技巧
  7. JAVA 如何使用File类创建文件,文件夹
  8. 2021年上半年软考高级信息系统项目管理师论文和案例分析
  9. 二重积分的计算.02
  10. 网页设计~登陆页面源代码