FISCO BCOS(联盟链)搭建并使用控制台部署智能合约

FISCO BCOS

FISCO BCOS 是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环境运行的实际检验。
说明文档:FISCO BCOS官方说明文档

FISCO(一)搭建FISCO BCOS

1、安装ubuntu依赖

sudo apt install -y openssl curl

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

  • 创建操作目录

    cd ~ && mkdir -p fisco && cd fisco
    
  • 下载脚本

    curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh && chmod u+x build_chain.sh
    

    FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第1张图片
    在这里插入图片描述

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

bash build_chain.sh -l 127.0.0.1:4 

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第2张图片

查看node目录下情况
FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第3张图片

4、启动FISCO BCOS链

进入到127.0.0.1文件下,打开节点

bash start_all.sh

在这里插入图片描述

如果出现问题则需要检查端口是否被占用,被占用则需要关闭端口(杀死相关进程),直到4个节点均工作。
FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第4张图片

5、检查进程

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

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第5张图片

6、检查日志输出

  • 回到fisco目录下查看节点node0链接的节点数,执行下面指令,检查是否在共识

    cd ~/fisco
    tail -f nodes/127.0.0.1/node0/log/log*  | grep connected
    
    
    tail -f nodes/127.0.0.1/node0/log/log*  | grep +++
    
    

正常情况会不停地输出连接信息,从输出可以看出node0与另外3个节点有连接
FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第6张图片
在这里插入图片描述

至此,单群组fisco bcos联盟链搭建成功。

FISCO(二)配置及使用控制台

1、准备依赖

  • 安装java (推荐使用java 14)
sudo apt install -y default-jdk
  • 获取控制台并回到fisco目录,出现成功才为下载完成。
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.8.0/download_console.sh && bash download_console.sh
cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第7张图片

进入节点查看证书,再回到fisco目录下中将下面四个证书拷贝到console/conf/下

cd ~/fisco/nodes/127.0.0.1/sdk
ll
cd ~/fisco
cp -n console/conf/config-example.toml console/conf/config.toml
cp -r nodes/127.0.0.1/sdk/* console/conf/

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第8张图片

2、启动并使用控制台

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

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第9张图片

  • 用控制台获取信息
#获取客户端版本信息
getNodeVersion
# 获取节点信息
getPeers

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第10张图片

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第11张图片

FISCO BCOS(三)部署及调用HelloWorld合约

1、编写HelloWorld合约

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

pragma solidity ^0.4.24;

contract HelloWorld {
    string name;

    function HelloWorld() {
        name = "Hello, World!";
    }

    function get()constant returns(string) {
        return name;
    }

    function set(string n) {
        name = n;
    }
}

2、部署HelloWorld合约

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

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

在这里插入图片描述

3、 调用HelloWorld合约

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

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第12张图片
FISCO BCOS(联盟链)搭建并使用控制台部署智能合约_第13张图片
至此便可以使用控制台部署智能合约了。

你可能感兴趣的:(区块链,智能合约,智能合约,linux,区块链)