首页 > 其他分享 >搭建Air版本FISCO BCOS联盟链(搬运)

搭建Air版本FISCO BCOS联盟链(搬运)

时间:2023-05-19 16:34:37浏览次数:52  
标签:INFO fisco 0.1 Air BCOS 控制台 FISCO

1. 搭建Air版本FISCO BCOS联盟链

本节以搭建单群组FISCO BCOS链为例操作,使用开发部署工具build_chain.sh脚本在本地搭建一条Air版本的4节点的FISCO BCOS链,以Ubuntu 18.04 64bit系统为例操作。

第一步. 安装依赖

安装macOS依赖

# 最新homebrew默认下载的为openssl@3,需要指定版本[email protected]下载
brew install [email protected] curl wget
Copy to clipboard

安装ubuntu依赖

sudo apt install -y curl openssl wget
Copy to clipboard

安装centos依赖

sudo yum install -y curl openssl openssl-devel wget
Copy to clipboard

第二步. 创建操作目录,下载安装脚本

注解

如果因为网络问题导致长时间无法下载build_chain.sh脚本,请尝试 curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.3.0/build_chain.sh && chmod u+x build_chain.sh

# 创建操作目录
cd ~ && mkdir -p fisco && cd fisco

# 下载建链脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.3.0/build_chain.sh && chmod u+x build_chain.sh

# Note: 若访问git网速太慢,可尝试如下命令下载建链脚本:
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.3.0/build_chain.sh && chmod u+x build_chain.sh
Copy to clipboard

第三步. 搭建4节点非国密联盟链

注解

请确保机器的30300~30303,20200~20203,8545~8548端口没有被占用。

在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链:

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200
Copy to clipboard

注解

  • 其中-p选项指定起始端口,分别是p2p监听端口、rpc监听端口

  • Air版搭建脚本build_chain.sh介绍文档 参考这里

命令成功后会输出All completed

[INFO] Generate ca cert successfully!
Processing IP:127.0.0.1 Total:4
[INFO] Generate ./nodes/127.0.0.1/sdk cert successful!
[INFO] Generate ./nodes/127.0.0.1/node0/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node1/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node2/conf cert successful!
[INFO] Generate ./nodes/127.0.0.1/node3/conf cert successful!
[INFO] Generate uuid success: e273464c-827d-47ce-921f-8c16d72234b0
[INFO] Generate uuid success: b3a54d03-dadb-4cfb-9ae9-86d8ce507110
[INFO] Generate uuid success: 1bf757a5-6649-4d35-9514-d7de95ea7306
[INFO] Generate uuid success: 3c90d210-a202-4d46-a04b-89fcc8c47dd9
==============================================================
[INFO] fisco-bcos Path     : bin/fisco-bcos
[INFO] Auth Mode           : false
[INFO] Start Port          : 30300 20200
[INFO] Server IP           : 127.0.0.1:4
[INFO] SM Model            : false
[INFO] output dir          : ./nodes
[INFO] All completed. Files in ./nodes
Copy to clipboard

第四步. 启动FISCO BCOS链

  • 启动所有节点

bash nodes/127.0.0.1/start_all.sh
Copy to clipboard

启动成功会输出如下信息。否则请使用netstat -an |grep tcp检查机器30300~30303, 20200~20203端口是否被占用。

try to start node0
try to start node1
try to start node2
try to start node3
 node3 start successfully pid=36430
 node2 start successfully pid=36427
 node1 start successfully pid=36433
 node0 start successfully pid=36428
Copy to clipboard

第五步. 检查节点进程

  • 检查进程是否启动

ps aux |grep -v grep |grep fisco-bcos
Copy to clipboard

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

fisco        35249   7.1  0.2  5170924  57584 s003  S     2:25下午   0:31.63 /home/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini -g config.genesis
fisco        35218   6.8  0.2  5301996  57708 s003  S     2:25下午   0:31.78 /home/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini -g config.genesis
fisco        35277   6.7  0.2  5301996  57660 s003  S     2:25下午   0:31.85 /home/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini -g config.genesis
fisco        35307   6.6  0.2  5301996  57568 s003  S     2:25下午   0:31.93 /home/fisco/nodes//127.0.0.1/node3/../fisco-bcos -c config.ini -g config.genesis
Copy to clipboard

第六步. 检查日志输出

  • 查看每个节点的网络连接数目

以node0为例:

tail -f nodes/127.0.0.1/node0/log/* |grep -i "heartBeat,connected count"
Copy to clipboard

正常情况下会每间隔10秒输出连接信息,从输出日志可看出node0与另外3个节点均有连接,网络连接正常:

info|2022-08-15 19:38:59.270112|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-08-15 19:39:09.270210|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-08-15 19:39:19.270335|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2022-08-15 19:39:29.270427|[P2PService][Service][METRIC]heartBeat,connected count=3
Copy to clipboard

2. 配置和使用控制台

控制台提供了向FISCO BCOS节点部署合约、发起合约调用、查询链状态等功能。

第一步. 安装控制台依赖

控制台运行依赖java环境(推荐使用java 14),安装命令如下:

# ubuntu系统安装java
sudo apt install -y default-jdk

# centos系统安装java
sudo yum install -y java java-devel
Copy to clipboard

第二步. 下载控制台

cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v3.3.0/download_console.sh && bash download_console.sh
Copy to clipboard

注解

第三步. 配置控制台

  • 拷贝控制台配置文件

cp -n console/conf/config-example.toml console/conf/config.toml
Copy to clipboard

注解

若节点未采用默认端口,请将文件中的20200替换成节点对应的rpc端口,可通过节点config.ini的 ``[rpc].listen_port``配置项获取节点的rpc端口。

  • 配置控制台证书

控制台与节点之间默认开启SSL连接,控制台需要配置证书才可连接节点。开发建链脚本在生成节点的同时,生成了SDK证书,可直接拷贝生成的证书供控制台使用:

cp -r nodes/127.0.0.1/sdk/* console/conf
Copy to clipboard

第四步. 启动并使用控制台

注解

  • 请确保机器的30300~30303,20200~20203,8545~8548端口没有被占用。

  • 控制台的配置方法和命令请参考 这里

  • 启动

cd ~/fisco/console && bash start.sh
Copy to clipboard

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

=============================================================================================
Welcome to FISCO BCOS console(3.3.0)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
 ________ ______  ______   ______   ______       _______   ______   ______   ______
|        |      \/      \ /      \ /      \     |       \ /      \ /      \ /      \
| $$$$$$$$\$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\    | $$$$$$$|  $$$$$$|  $$$$$$|  $$$$$$\
| $$__     | $$ | $$___\$| $$   \$| $$  | $$    | $$__/ $| $$   \$| $$  | $| $$___\$$
| $$  \    | $$  \$$    \| $$     | $$  | $$    | $$    $| $$     | $$  | $$\$$    \
| $$$$$    | $$  _\$$$$$$| $$   __| $$  | $$    | $$$$$$$| $$   __| $$  | $$_\$$$$$$\
| $$      _| $$_|  \__| $| $$__/  | $$__/ $$    | $$__/ $| $$__/  | $$__/ $|  \__| $$
| $$     |   $$ \\$$    $$\$$    $$\$$    $$    | $$    $$\$$    $$\$$    $$\$$    $$
 \$$      \$$$$$$ \$$$$$$  \$$$$$$  \$$$$$$      \$$$$$$$  \$$$$$$  \$$$$$$  \$$$$$$

=============================================================================================
Copy to clipboard
  • 用控制台获取信息

# 获取节点列表信息
[group0]: /> getGroupPeers
peer0: 48fde62f1d2dc59a65bed2e3bb9bd199de26de6b9894e2201199726d6e9e98d090bb1d7e22c931b412728a832ffacdd2727b34fc808f5a755af6bc623c44aba6
peer1: 8e510d66644a8a6caa7e031f097f604501bc42a3851b817f65a18eede0c539f2d011349d470da74cb84a3cf88dbd64a4cc18369fa09b17dac4eec9f65975ecc2
peer2: 9d7ff3f0d3abd54054a99d17a6af27c839f8f7702a4335bdb502323c87a0d7978534a2479cfedb614e1548a869efe038fc49da442b5770aa52c0cc793ca13602
peer3: f0ffa45cee35dcc1bcf1e1ef7b7c3d96590c25ba75198a28ef5ceb89dc6bec310619cb6850231018c8d5a5d698eaf1e5669118e17ea79379211bd332896aa56a

# 获取共识节点列表信息
[group0]: /> getSealerList
[
    Sealer{
        nodeID='9d7ff3f0d3abd54054a99d17a6af27c839f8f7702a4335bdb502323c87a0d7978534a2479cfedb614e1548a869efe038fc49da442b5770aa52c0cc793ca13602',
        weight=1
    },
    Sealer{
        nodeID='f0ffa45cee35dcc1bcf1e1ef7b7c3d96590c25ba75198a28ef5ceb89dc6bec310619cb6850231018c8d5a5d698eaf1e5669118e17ea79379211bd332896aa56a',
        weight=1
    },
    Sealer{
        nodeID='8e510d66644a8a6caa7e031f097f604501bc42a3851b817f65a18eede0c539f2d011349d470da74cb84a3cf88dbd64a4cc18369fa09b17dac4eec9f65975ecc2',
        weight=1
    },
    Sealer{
        nodeID='48fde62f1d2dc59a65bed2e3bb9bd199de26de6b9894e2201199726d6e9e98d090bb1d7e22c931b412728a832ffacdd2727b34fc808f5a755af6bc623c44aba6',
        weight=1
    }
]
Copy to clipboard

3. 部署和调用合约

第一步. 编写HelloWorld合约

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

pragma solidity >=0.6.10 <0.8.20;
contract HelloWorld {
    string name;

    constructor() public {
        name = "Hello, World!";
    }

    function get() public view returns (string memory) {
        return name;
    }

    function set(string memory n) public {
        name = n;
    }
}
Copy to clipboard

第二步. 部署HelloWorld合约

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

# 在控制台输入以下指令 部署成功则返回合约地址
[group0]: /> deploy HelloWorld
transaction hash: 0x796b573aece250bba891b9251b8fb464d22f41cb36e7cae407b2bd0a870f5b72
contract address: 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1
currentAccount: 0x7b047472a4516e9697446576f8c7fcc064f967fa

# 查看当前块高
[group0]: /> getBlockNumber
1
Copy to clipboard

第三步. 调用HelloWorld合约

# 调用get接口获取name变量,此处的合约地址是deploy指令返回的地址
[group0]: /> call HelloWorld 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return value size:1
Return types: (string)
Return values:(Hello, World!)
---------------------------------------------------------------------------------------------

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

# 调用set方法设置name
[group0]: /> call HelloWorld 0x6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1 set "Hello, FISCO BCOS"
transaction hash: 0x2f7c85c2c59a76ccaad85d95b09497ad05ca7983c5ec79c8f9d102d1c8dddc30
---------------------------------------------------------------------------------------------
transaction status: 0
description: transaction executed successfully
---------------------------------------------------------------------------------------------
Receipt message: Success
Return message: Success
Return value size:0
Return types: ()
Return values:()
---------------------------------------------------------------------------------------------
Event logs
Event: {}

# 查看当前块高,因为set接口修改了账本状态,块高增加到2
[group0]: /> getBlockNumber
2

# 退出控制台
[group0]: /> exit
Copy to clipboard

至此,我们完成了第一条FISCO-BCOS链的搭建、控制台的配置和使用,并部署和调用了第一个合约。关于Pro版本FISCO BCOS的搭建、配置和使用请参考这里

标签:INFO,fisco,0.1,Air,BCOS,控制台,FISCO
From: https://www.cnblogs.com/codingclub/p/17415555.html

相关文章

  • airasia Superapp × HMS Core:便捷出行,悦享全程
    2023年5月9日-5月11日,HUAWEIP60系列及旗舰产品发布会在欧洲德国、中东非阿联酋、亚太马来西亚、拉美墨西哥陆续举办,为消费者带来高端影像旗舰HUAWEIP60Pro及系列全场景智能新品。其中在亚太站,还传递了一个重要消息:2023年6月30日之前,购买HUAWEIP60系列及折叠旗舰HUAWEIMateX3......
  • Docker安装Airflow
    环境系统:Ubuntu22.04.2LTSdockerVersion:20.10.21docker-composeversion1.29.2,python3--versionPython3.10.61、安装docker1.1先更新系统 sudoapt-getupdate sudoapt-getupgrade1.2安装docker: apt-getinstalldocker.io1.3查看docker版本: ......
  • Kali Linux使用 airmon-ng 等相关命令爆破 Wifi 密码
    首先我是在淘宝上买的免驱动的无线网卡,插上一般可以直接使用,不过买回来发现无法连接一些wifi,是wifi除了满格信号,就是没有信号黑色的。我还以为这个wifi信号怎么这么差,联系客服发现是最新的kali需要安装一个软件包realtek-rtl8188eus-dkms淘宝客服的教程:kali单频无线网卡驱动更......
  • Python爱彼迎Airbnb新用户体验数据XGBoost、随机森林预测
    全文链接:http://tecdat.cn/?p=32380原文出处:拓端数据部落公众号分析师:ZhuhuaHuang在多项用户数据中寻找与预测值相关的属性。查看各个特征的分布与特征之间的关联。分析用户数据,查看特定人群的使用习惯进行产品优化。最后选择合适的模型与参数来进行预测。解决方案任务/目标......
  • Range Pair Distance Query
    洛谷6778给定一棵\(n\)个点的树,边带权(\(<2^{32}\)),\(q\)次查询\(\sum_{l\lei<j\ler}dis(i,j)\)。其中\(dis(i,j)\)代表点\(i\)到\(j\)的距离。......
  • 定了!AIRIOT新品发布会,6月6日北京见。
    随着物联网、大数据、AI技术的成熟和演进,智能物联网技术正在加速、深入渗透至各行业应用。 AIRIOT物联网平台作为赋能数字经济发展和产业转型的数字基座,由航天科技控股集团股份有限公司(股票代码:000901)历时数年倾力打造,致力于以低代码搭建IOT平台,以企业可靠、产品可靠、服务可......
  • AtCoder Beginner Contest 234 Ex Enumerate Pairs
    洛谷传送门AtCoder传送门把每个点分到\((\left\lfloor\frac{x}{K}\right\rfloor,\left\lfloor\frac{y}{K}\right\rfloor)\)的正方形内,枚举相邻正方形,计入答案。正确性显然。复杂度证明就是所有每个正方形内距离为\(K\)的点对下界为\(\Omega(n^2)\)。考虑分成四个边长为......
  • pair numbe
    在DNA测序数据中,pairnumber通常指的是双端测序(paired-endsequencing)中的对应序列的编号。在双端测序中,一条DNA分子会被从两端进行测序,并生成两段相互对应的序列,这两段序列的编号称为pairnumber。双端测序可以提供高质量的测序结果和更准确的基因组组装。当一个DNA分子被割裂成......
  • xfs_repair命令详解
    1.现状 目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏。一线人员大部分采用的是umont和mount的方式恢复,这种恢复方式不能真正修复已经损坏的文件系统,在后续使用过程中,仍然会再次出现主机端输入输出错误。 2.需要修复的场景 <1>.主机侧发现存在文件系统不......
  • MacOS苹果系统投屏工具—AirServer
    AirServer是一个Mac专用投屏工具,功能强大,并且可以通过网络和其他平台同步视频内容。可以使用多个设备进行投屏,快速查看同一局域网内的视频。支持的设备:苹果系统。支持Windows、Mac、Android、iOS、windows平台。→→↓↓载AirServer 1、支持Windows、Mac(部分苹果用......