部署webase-front/部署合约 | FISCO BCOS开发系列(二)


实验环境

两台centos7机器(虚拟机和远程服务器都可以)


  • 192.168.80.144
  • 192.168.80.145

java1.8

搭建多机多群FISCO BCOS链

剧情回放:我们搭建了两个机构A和B,一个机构4节点一个机构5节点,一共两个群组,A和B均在这两个群组里,呈现一种嵌套的结构。

我将192.168.80.144 作为机构A, 192.168.80.145机器作为机构B

如图,这是我们的拓扑图(嵌套结构)

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链

​​

搭建webase-front

文档链接:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/developer.html

下载安装包

cd ~
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.2/webase-front.zip

解压

unzip webase-front.zip cd webase-front

拷贝sdk证书文件

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_get方法_02

将各个机构 ${ip}/sdk 目录下的所有文件(ca.crt、node.crt和node.key文件)拷贝到webase-front/conf 目录下。

cp -r sdk/* ~/webase-front/conf

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_get方法_03

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_04

启动webase-front服务

./start.sh # 启动服务
./status.sh # 检查状态服务
netstat -tunpl | grep 5002 # webase-front默认的服务端口是5002,检测5002端口下是否有服务启动了

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_05

访问webase-front web服务

url为 http://${ip}:5002/WeBASE-Front/

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_06

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_07

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_08

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_09

自此webase-front搭建成功

部署合约示例(“废话”HelloWorld篇)

通过webase-front部署HelloWorld.sol

url: ​​http://192.168.80.145:5002/WeBASE-Front/#/contract​

HelloWorld.sol 合约内容:

pragma solidity>=0.4.24 <0.6.11;

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

1. 创建测试用户

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_10

2. 新建工作文件夹(fengfeng)

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_11

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_12

3. 在工作文件夹下创建HelloWorld.sol文件

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_FISCO BCOS_13

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_14

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_15

4. 编译合约

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_FISCO BCOS_16

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_17

5. 部署合约

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_18

选择用户部署合约,(选择部署时,会自动编译合约)

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_19

6. 调用合约接口

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_sed_20

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_21

共两个方法,一个get,一个set,其中get是在访问name的值,set是在修改name是值。所以我们调用get的时候不会增加区块的数目,set的时候会增加一个区块。

调用get方法

调用get方法之前,我们先查看一下区块的数量。

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_FISCO BCOS_22

可见区块数量为1,这个1是因为我们部署了HelloWorld.sol。

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_23

调用之后,区块数量不会改变。

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_24

调用set方法

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_FISCO BCOS_25

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_get方法_26

在交易回执里的message字段也了我们“success”的提示,但是为了更直接的检查,这个数据是否改变以及交易是否进行过,我们可以重新调用一下get方法以及查看一下区块数量或者交易数量。

首先通过get方法可以查看到数据确实是有被修改。

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_27

随后查看区块数量

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_区块链_28

调用set之后,因为产生了交易,所以区块的数量也增加了一个。

总结

内存分配问题

节点搭建成功了,但是异常退出 或者 webase-front提示搭建成功了,但是启动失败了,这些却在log文件里找不到报警内容的时候,这个情况就很有可能是内存太小导致的原因。

推荐内存配置 javaWeb/500mb 节点数/1G

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_FISCO BCOS_29

更多总结。。。

关于作者


部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_30

我们的公众号平台 — (湖师区块人)

欢迎各位大大关注我们湖州师范区块链协会的公众号(湖师区块人),我们会在这里不定期推送区块链相关的“精神食粮”。

部署webase-front/部署合约 | FISCO BCOS开发系列(二)_html_31

欢迎评论关注+点赞啊!