1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 初步了解区块链技术落地——FISCO BCOS 快速搭建区块链

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链

时间:2021-07-01 20:26:33

相关推荐

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链

区块链端口

p2p_port: 节点通信端口。

channel_port: SDK 通知协议交换端口,使用的 SSL。

jsonrpc_port: http接口包含的此协议,网络明文。

官方教程

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html

一、准备环境

安装依赖(openssl 版本需要 1.0.2 以上,使用 openssl version 查询版本)

# CentOS sudo yum install -y openssl curl # 乌邦图 sudo apt install -y openssl curl # macOS brewinstallopensslcurl

创建操作目录(在家目录单独创建一个文件夹)

cd ~ && mkdir -p fisco && cd fisco

下载 build_chain.sh 脚本(可以直接使用下载好的)

curl -LO /FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh

二、搭建单群组4节点联盟链

生成一条单群组4节点的 FISCO 链。

在 fisco 目录下执行,确保机器的 30300~30303,0~3,8545~8548 端口未被占用。

如果是外网访问,不要使用 127.0.0.1。如果使用的是多个ip,会生成多个ip的文件夹,需要将对应ip的文件夹拷贝到对应机器上面启动即可。

# -p 选项指定起始端口,分别是p2p_port,channel_port,jsonrpc_port,出于安全考虑jsonrpc/channel默认监听127.0.0.1,需要外网访问请添加-i参数。# -e 指定使用的二进制,如果没有网的环境需要提前加,fisco-bcos-Linux 文件需要提前准备好。如果是 mac,需要将文件改成 fisco-bcos-macOS。# -v 指定版本号bash build_chain.sh -l "127.0.0.1:4" -p 30300,0,8545 -e ./fisco-bcos-Linux -v 2.1.0

三、启动 FISCO BCOS 链

启动所有节点

bash nodes/127.0.0.1/start_all.sh

注:如果失败请检查端口是否占用,netstat -an | grep tcp ,检查端口 30300~30303,0~3,8545~8548

四、检查进程

检查进程是否启动(进程如果不为4,请检查端口占用情况)

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

五、检查日志输出

查看 node0 链接的节点数

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

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

检查是否在共识

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

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

六、目录释义

nodes/127.0.0.1:如果使用的是多个ip,会生成多个ip的文件夹,需要将对应ip的文件夹拷贝到对应机器上面启动即可。nodes/cert:P2P建立连接,channel 建立连接时候生成的证书,如果是找 CA 机构购买证书,需要将证书按照要求放到对应的位置。 nodes/127.0.0.1/node0,nodes/127.0.0.1/node1,nodes/127.0.0.1/node2,nodes/127.0.0.1/node3:四个节点。nodes/127.0.0.1/sdk:使用 sdk 开发需要拷贝证书,使用控制台交互也有拷贝证书的过程。nodes/127.0.0.1/node0/config.ini:如果是在云服务器上,需要修改 listen_ip 为云服务器 ip。如果 channel 和 jsonrpc 端口冲突需要修改一下端口,重启生效。配置文件和配置项:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html# nodes/127.0.0.1/node0/data:链上的数据。

七、配置及使用控制台(实现查询区块链状态、部署调用合约等)

安装 openjdk

# 乌邦图sudo apt install -y default-jdk# CentOSsudo yum install -y default-jdk# macbrew cask install java

获取控制台(可以直接使用下载好的)

cd ~/fisco && bash <(curl -s /FISCO-BCOS/console/master/tools/download_console.sh)

拷贝控制台配置文件

若节点未采用默认端口,请将文件中的0替换成节点对应的channle端口。

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

配置控制台证书

cp ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/console/conf/

八、启动控制台

启动(未成功启动请检查conf/applicationContext.xml中节点端口配置是否正确)

bash ~/fisco/console/start.sh

使用控制台获取信息

# 获取客户端版本[group:1]> getNodeVersion{"Build Time":"0923 13:22:09","Build Type":"Linux/clang/Release","Chain Id":"1","FISCO-BCOS Version":"2.1.0","Git Branch":"HEAD","Git Commit Hash":"cb68124d4fbf3df563a57dfff5f0c6eedc1419cc","Supported Version":"2.1.0"}# 获取节点链接信息[group:1]> getPeers[{"Agency":"agency","IPAndPort":"127.0.0.1:33964","Node":"node3","NodeID":"dfd091cb377829957dfd40f41f5f2316751ed4d0728612c6d8f3ad0fc56142136b315cc922d0d6fb08130bb57148241a0dd9f6d14e5fc84573587cddba89e747","Topic":[]},{"Agency":"agency","IPAndPort":"127.0.0.1:33948","Node":"node1","NodeID":"ade12ef11712bb9402bfd6e753351d0b4b7b72856cd3d59035c60727ec55ee1b92ec757b7e580086b61df28ba128b29af443b1610d38e4348203424184758efd","Topic":[]},{"Agency":"agency","IPAndPort":"127.0.0.1:33956","Node":"node2","NodeID":"4ab266ae9ed9299f982a5e165d2b68d49b0016ab1f5ce63a9041782621b80642ba431fbf2b6fca22d77398f44d3fcc338d3674f456afa2ae56208c2af1e80b5f","Topic":[]}]

九、部署及调用HelloWorld合约

HelloWorld合约

HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol

# 在控制台输入以下指令 部署成功则返回合约地址[group:1]> deploy HelloWorldcontract address: 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691

调用HelloWorld合约

# 查看当前块高[group:1]> getBlockNumber1# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 getHello, World!# 查看当前块高,块高不变,因为get接口不更改账本状态[group:1]> getBlockNumber1# 调用set设置name[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 set "Hello, FISCO BCOS"transaction hash: 0xf753959e7b88a64cec4d4ef7000364e06fc520e2d16e7a543433d1d5e6852694# 再次查看当前块高,块高增加表示已出块,账本状态已更改[group:1]> getBlockNumber2# 调用get接口获取name变量,检查设置是否生效[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 getHello, FISCO BCOS# 退出控制台[group:1]> quit

十、WeBase 可视化界面

官方教程“快速入门搭建”:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/developer.html

下载安装包

wget /cdn/webase/releases/download/v1.2.1/webase-front.zip

拷贝证书

cp ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/webase-front/conf/

启动可视化界面

bash ~/fisco/webase-front/start.sh

网页打开可视化界面

http://localhost:5002/WeBASE-Front

直接在界面上开发合约

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。