FISCO-BCOS V3 搭建以及使用 Web3 工具开发

  • 0xE
  • 更新于 18小时前
  • 阅读 53

希望按照本篇文章的步骤,助你一遍搭完 FISCO-BCOS V3。

笔者由于学业原因,最近重新接触联盟链,发现现在的 FISCO-BCOS V3 版本是可以直接使用 Remix 等我们常用的合约开发工具,感觉非常好。

这篇文章我们来搭建单群组区块链(Air版本)并且借助 build_chain 一键建链工具

希望按照本篇文章的步骤,助你一遍搭完 FISCO-BCOS V3。

搭建链节点

安装ubuntu依赖

sudo apt install -y curl openssl wget

创建操作目录,下载安装脚本

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

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

脚本下载好后,如果不指定 fisco-bcos 的二进制文件,那么会在运行脚本的过程中下载。

往往由于网络原因,不能一次性下载好,或者其他原因,需要重新运行脚本,那么又会重新下载一遍。

所以,这里推荐可以先下载好压缩包,然后上传到服务器上,之后指定二进制文件路径来运行脚本。

下载地址:

https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.12.1/fisco-bcos-linux-x86_64.tar.gz

解压,可以选择放在 /fisco-bcos/bin 目录下解压:

tar -xvzf fisco-bcos-linux-x86_64.tar.gz

搭建4节点非国密联盟链

使用以下命令启动脚本,搭建 4 节点:

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200 -e ./fisco-bcos/bin

参数解释:

p 选项

指定节点P2P和RPC服务的监听的起始端口,P2P服务默认以30300为起始端口,RPC服务默认以20200为起始端口。

l 选项

生成节点的IP与对应IP上部署的区块链节点数目,参数格式为 ip1:nodeNum1, ip2:nodeNum2。

在IP为192.168.0.1的机器上部署2个节点,IP为127.0.0.1的机器上部署4个节点的l选项示例如下: 192.168.0.1:2, 127.0.0.1:4

e 选项[Optional]

指定Air版本FISCO BCOS的二进制可执行文件路径,若不指定,则默认拉取最新版本的FISCO BCOS。

结果如下:

[INFO] Use binary ./fisco-bcos
[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] GroupID              : group0
[INFO] ChainID              : chain0
[INFO] fisco-bcos path      : ./fisco-bcos
[INFO] Auth mode            : true
[INFO] Admin account        : 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518
[INFO] Start port           : 30300 20200
[INFO] Server IP            : 127.0.0.1:4
[INFO] SM model             : false
[INFO] enable HSM           : false
[INFO] nodes.json           : 127.0.0.1:30300,127.0.0.1:30301,127.0.0.1:30302,127.0.0.1:30303,
[INFO] Output dir           : ./nodes
[INFO] All completed. Files in ./nodes

修改配置文件

参考以下文档,我们把 Web3 Chain ID 的配置项打开。

节点配置介绍

使用Web3工具部署调用合约

具体操作只需要把其中一个节点的配置文件修改一下。

vim nodes/127.0.0.1/node0/config.ini
[web3_rpc]
    enable=true
    listen_ip=0.0.0.0
    listen_port=8545
    thread_count=8

启动FISCO BCOS链

这个时候我们就可以起链了:

bash nodes/127.0.0.1/start_all.sh

启动成功会输出如下信息:

try to start node0
try to start node1
try to start node2
try to start node3
 node1 start successfully pid=3412
 node0 start successfully pid=3408
 node3 start successfully pid=3414
 node2 start successfully pid=3416

检查节点进程

ps aux |grep -v grep |grep fisco-bcos

如果刚刚搭建使用的是 4 个节点,正常情况下,可以看到 4 个进程。

检查日志输出

查看每个节点的网络连接数目,以node0为例:

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

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

info|2024-12-13 03:24:27.312404|ioService-0x00007f86b0ff6640|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2024-12-13 03:24:37.312534|ioService-0x00007f86b0ff6640|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2024-12-13 03:24:47.312676|ioService-0x00007f86b0ff6640|[P2PService][Service][METRIC]heartBeat,connected count=3
info|2024-12-13 03:24:57.312915|ioService-0x00007f86b0ff6640|[P2PService][Service][METRIC]heartBeat,connected count=3
...

配置和使用控制台

安装依赖 oracle jdk 14

在这里根据官方的建议,安装 oracle jdk 14,否则之后会遇到问题,已经提前踩过坑。

https://www.oracle.com/sg/java/technologies/javase/jdk14-archive-downloads.html

这里附上网上公开分享的 oracle 账号密码:

账号:`83926039@qq.com`
密码:`Oracle0.`

创建安装目录:

sudo mkdir -p /usr/lib/jvm/

解压缩:

sudo tar -xvzf ~/jdk-14.0.2_linux-x64_bin.tar.gz -C /usr/lib/jvm/

将 JAVA_HOME 添加到环境变量中:

sudo vim /etc/profile

添加以下内容(根据实际路径):

export JAVA_HOME=/usr/lib/jvm/jdk-14.0.2
export PATH=$JAVA_HOME/bin:$PATH

保存并退出后,运行以下命令使更改生效:

source /etc/profile

验证是否生效:

java -version

java version "14.0.2" 2020-07-14
Java(TM) SE Runtime Environment (build 14.0.2+12-46)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

下载控制台

可以通过脚本下载:

cd ~/fisco
curl -LO https://github.com/FISCO-BCOS/console/releases/download/v3.8.0/download_console.sh
bash download_console.sh

同样,推荐手动下载,再传到服务器上:

下载链接: https://github.com/FISCO-BCOS/console/releases/download/v3.8.0/console.tar.gz

放在 ~/fisco 后解压:

tar -xvzf console.tar.gz

配置控制台

拷贝控制台配置文件

cp -n console/conf/config-example.toml console/conf/config.toml

配置控制台证书

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

cp -r nodes/127.0.0.1/sdk/* console/conf

启动并使用控制台

cd ~/fisco/console && bash start.sh

如果遇到以下报错: the error = [libproviders.so: cannot open shared object file: No such file or directory]

则先退出控制台:

[group0]: /apps> exit

在 openssl 的配置文件(/etc/ssl/openssl.cnf)中找到 openssl_conf = ....,注释掉此行即可。

sudo vim /etc/ssl/openssl.cnf

注释行 openssl_conf = ....

再重新启动控制台。

启动完控制台后,可以选择把余额功能打开:

# 开启总体功能
setSystemConfigByKey feature_balance 1
# 开启Balance预编译功能
setSystemConfigByKey feature_balance_precompiled 1

权限治理配置

我们在建链的时候,会默认开启权限治理和随机生成一个 admin 账户地址。

现在我们需要这个地址来进入控制台,以便使用管理员权限才能使用的功能。

当然,在建链的时候可以 -a 来指定 admin 账户,前提是你有对应该地址的私钥文件。

如果第一次搭建,建议还是直接让脚本随机生成一个公私钥,在链的ca目录中,然后再复制到控制台的目录中。

查看治理委员地址:

[group0]: /apps> getCommitteeInfo

---------------------------------------------------------------------------------------------
Governor Address                                        | Weight
index0 : 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518     | 1

从私钥文件中获取 admin 账户的信息。

bash ~/fisco/console/get_account.sh -k ~/fisco/nodes/ca/accounts/0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518.pem
[INFO] Account Address   : 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518
[INFO] Account privateHex: 0xa0f2e328112274abc5c92e66cc7c38b5b804c330ad7faf1a6ad4f6dbc6aa3ce6
[INFO] Account publicHex : 0x02fe90486403f3b7e3e04a838325bc054af226528695c215d1a296e51a12ffc8501c6951d544ffd3f925e44ba7bd3d1f2286a5fb02c626356891b1a9be33db5a

其中 privateHex 就是我们平时熟悉的私钥,可导入到小狐狸钱包。

为了能在控制台使用治理委员的功能,所以我们需要把账户私钥对放在~/fisco/console/account/ecdsa/ 目录下。

sudo cp -r ~/fisco/nodes/ca/accounts/0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518.pem ~/fisco/console/account/ecdsa/

修改私钥文件的权限:

sudo chmod 777 ~/fisco/console/account/ecdsa/0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518.pem

重新进入控制台,输入命令,查看文件中可用的地址:

listAccount

切换账号成 admin :

[group0]: /apps> loadAccount 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518
Load account 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518 success!

试试管理员才能使用的增加余额:

[group0]: /apps> addBalance 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518  10000 ether

addBalance 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518  10000 ether
transaction hash:0x356e8cb9ee85e78e469838d4f666c53e49f2b6b1251676db3bc4bc0ae8f91da7
add balance 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518 success. You can use 'getBalance' to check

查看余额:

[group0]: /apps> getBalance 0x4b6887da11e0d40c5cef05d18f0f8678dd4c0518
balance: 10000000000000000000000 wei

安装区块链浏览器

官方手册:https://webasedoc.readthedocs.io/zh-cn/latest/docs/WeBASE-Install/developer.html

下载安装包:

wget https://github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.1.1/webase-front.zip

同样,如果遇到网络问题,可以先下载到本地,再上传到服务器。

可以选择放在根目录下:

unzip webase-front.zip
cd webase-front

拷贝sdk证书文件(build_chain的时候生成的):

cp -r ~/fisco/nodes/127.0.0.1/sdk/* ./conf/

服务启停命令:

启动: bash start.sh
停止: bash stop.sh
检查: bash status.sh

启动服务后出现:

===============================================================================================
Server com.webank.webase.front.Application Port 5002 ...PID(82593) [Starting]. Please check message through the log file (default path:./log/).
===============================================================================================

并且查看日志 WeBASE-Front.log,最后出现:

[main] INFO  Application() - main run success...

说明启动成功。

之后需要检查浏览器运行情况,可以检查服务:

bash status.sh

===============================================================================================
Server com.webank.webase.front.Application Port 5002 is running PID(82593)
===============================================================================================

访问浏览器

使用该链接访问:

http://{deployIP}:5002/WeBASE-Front

到此为止,链、控制台和浏览器就搭建好了。

然后做合约开发的时候,和往常一样,把链的 RPC (http://{deployIP}:8545) 接入,Chain ID 为 20200 配置好就行。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
0xE
0xE
0x59f6...a17e
17年进入币圈,做过FHE,联盟链,现在是智能合约开发者。 刨根问底探链上真相,品味坎坷悟Web3人生。