部署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
文档链接: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证书文件
将各个机构 ${ip}/sdk 目录下的所有文件(ca.crt、node.crt和node.key文件)拷贝到webase-front/conf 目录下。
cp -r sdk/* ~/webase-front/conf
启动webase-front服务
./start.sh # 启动服务
./status.sh # 检查状态服务
netstat -tunpl | grep 5002 # webase-front默认的服务端口是5002,检测5002端口下是否有服务启动了
访问webase-front web服务
url为 http://${ip}:5002/WeBASE-Front/
自此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. 创建测试用户
2. 新建工作文件夹(fengfeng)
3. 在工作文件夹下创建HelloWorld.sol文件
4. 编译合约
5. 部署合约
选择用户部署合约,(选择部署时,会自动编译合约)
6. 调用合约接口
共两个方法,一个get,一个set,其中get是在访问name的值,set是在修改name是值。所以我们调用get的时候不会增加区块的数目,set的时候会增加一个区块。
调用get方法
调用get方法之前,我们先查看一下区块的数量。
可见区块数量为1,这个1是因为我们部署了HelloWorld.sol。
调用之后,区块数量不会改变。
调用set方法
在交易回执里的message字段也了我们“success”的提示,但是为了更直接的检查,这个数据是否改变以及交易是否进行过,我们可以重新调用一下get方法以及查看一下区块数量或者交易数量。
首先通过get方法可以查看到数据确实是有被修改。
随后查看区块数量
调用set之后,因为产生了交易,所以区块的数量也增加了一个。
总结
内存分配问题
节点搭建成功了,但是异常退出 或者 webase-front提示搭建成功了,但是启动失败了,这些却在log文件里找不到报警内容的时候,这个情况就很有可能是内存太小导致的原因。
推荐内存配置 javaWeb/500mb 节点数/1G
更多总结。。。
关于作者
我们的公众号平台 — (湖师区块人)
欢迎各位大大关注我们湖州师范区块链协会的公众号(湖师区块人),我们会在这里不定期推送区块链相关的“精神食粮”。
欢迎评论关注+点赞啊!