初步了解区块链技术落地——FISCO BCOS 快速搭建区块链

 

区块链端口

p2p_port: 节点通信端口。

channel_port: SDK 通知协议交换端口,使用的 SSL。

jsonrpc_port: http接口包含的此协议,网络明文。

 

官方教程

https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html

 

一、准备环境

  • 安装依赖(openssl 版本需要 1.0.2 以上,使用 openssl version 查询版本)
# CentOS 
sudo yum install -y openssl curl 
# 乌邦图 
sudo apt install -y openssl curl 
# macOS 
brew install openssl curl

 

  • 创建操作目录(在家目录单独创建一个文件夹)
cd ~ && mkdir -p fisco && cd fisco

 

  • 下载 build_chain.sh 脚本(可以直接使用下载好的)
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh

 

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

  • 生成一条单群组4节点的 FISCO 链。

在 fisco 目录下执行,确保机器的 30300~30303,20200~20203,8545~8548 端口未被占用。

如果是外网访问,不要使用 127.0.0.1。如果使用的是多个ip,会生成多个ip的文件夹,需要将对应ip的文件夹拷贝到对应机器上面启动即可。

# -p 选项指定起始端口,分别是p2p_port,channel_port,jsonrpc_port,出于安全考虑jsonrpc/channel默认监听127.0.0.1,需要外网访问请添加-i参数。
# -e 指定使用的二进制,如果没有网的环境需要提前加,fisco-bcos-Linux 文件需要提前准备好。如果是 mac,需要将文件改成 fisco-bcos-macOS。
# -v 指定版本号
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545 -e ./fisco-bcos-Linux -v 2.1.0

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第1张图片

 

三、启动 FISCO BCOS 链

  • 启动所有节点
bash nodes/127.0.0.1/start_all.sh

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第2张图片

注:如果失败请检查端口是否占用,netstat -an | grep tcp ,检查端口 30300~30303,20200~20203,8545~8548

 

 

四、检查进程

  • 检查进程是否启动(进程如果不为4,请检查端口占用情况)
ps -ef | grep -v grep | grep fisco-bcos

 

 

五、检查日志输出

  • 查看 node0 链接的节点数
tail -f nodes/127.0.0.1/node0/log/log*  | grep connected

正常情况会不停地输出链接信息,从输出可以看出node0与另外3个节点有链接

 

  • 检查是否在共识
tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

正常情况会不停输出++++Generating seal,表示共识正常

 

 

六、目录释义

  • nodes/127.0.0.1:如果使用的是多个ip,会生成多个ip的文件夹,需要将对应ip的文件夹拷贝到对应机器上面启动即可。
  • nodes/cert:P2P建立连接,channel 建立连接时候生成的证书,如果是找 CA 机构购买证书,需要将证书按照要求放到对应的位置。

 

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第3张图片

  • nodes/127.0.0.1/node0,nodes/127.0.0.1/node1,nodes/127.0.0.1/node2,nodes/127.0.0.1/node3:四个节点。
  • nodes/127.0.0.1/sdk:使用 sdk 开发需要拷贝证书,使用控制台交互也有拷贝证书的过程。
  • nodes/127.0.0.1/node0/config.ini:如果是在云服务器上,需要修改 listen_ip 为云服务器 ip。如果 channel 和 jsonrpc 端口冲突需要修改一下端口,重启生效。配置文件和配置项:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/configuration.html#

 

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第4张图片

  • nodes/127.0.0.1/node0/data:链上的数据。

 

 

七、配置及使用控制台(实现查询区块链状态、部署调用合约等)

  • 安装 openjdk
# 乌邦图
sudo apt install -y default-jdk
# CentOS
sudo yum install -y default-jdk
# mac
brew cask install java
  • 获取控制台(可以直接使用下载好的)
cd ~/fisco && bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/download_console.sh)
  • 拷贝控制台配置文件

若节点未采用默认端口,请将文件中的20200替换成节点对应的channle端口。

cp -n ~/fisco/console/conf/applicationContext-sample.xml ~/fisco/console/conf/applicationContext.xml
  • 配置控制台证书
cp ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/console/conf/

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第5张图片

 

八、启动控制台

  • 启动(未成功启动请检查conf/applicationContext.xml中节点端口配置是否正确)
bash ~/fisco/console/start.sh

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第6张图片

  • 使用控制台获取信息
# 获取客户端版本
[group:1]> getNodeVersion
{
    "Build Time":"20190923 13:22:09",
    "Build Type":"Linux/clang/Release",
    "Chain Id":"1",
    "FISCO-BCOS Version":"2.1.0",
    "Git Branch":"HEAD",
    "Git Commit Hash":"cb68124d4fbf3df563a57dfff5f0c6eedc1419cc",
    "Supported Version":"2.1.0"
}

# 获取节点链接信息
[group:1]> getPeers
[
    {
        "Agency":"agency",
        "IPAndPort":"127.0.0.1:33964",
        "Node":"node3",
        "NodeID":"dfd091cb377829957dfd40f41f5f2316751ed4d0728612c6d8f3ad0fc56142136b315cc922d0d6fb08130bb57148241a0dd9f6d14e5fc84573587cddba89e747",
        "Topic":[]
    },
    {
        "Agency":"agency",
        "IPAndPort":"127.0.0.1:33948",
        "Node":"node1",
        "NodeID":"ade12ef11712bb9402bfd6e753351d0b4b7b72856cd3d59035c60727ec55ee1b92ec757b7e580086b61df28ba128b29af443b1610d38e4348203424184758efd",
        "Topic":[]
    },
    {
        "Agency":"agency",
        "IPAndPort":"127.0.0.1:33956",
        "Node":"node2",
        "NodeID":"4ab266ae9ed9299f982a5e165d2b68d49b0016ab1f5ce63a9041782621b80642ba431fbf2b6fca22d77398f44d3fcc338d3674f456afa2ae56208c2af1e80b5f",
        "Topic":[]
    }
]

 

九、部署及调用HelloWorld合约

  • HelloWorld合约

HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol

# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
contract address: 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691
  • 调用HelloWorld合约
# 查看当前块高
[group:1]> getBlockNumber
1
  
# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 get
Hello, World!
  
# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1
  
# 调用set设置name
[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 set "Hello, FISCO BCOS"
transaction hash: 0xf753959e7b88a64cec4d4ef7000364e06fc520e2d16e7a543433d1d5e6852694
  
# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2
  
# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691 get
Hello, FISCO BCOS
  
# 退出控制台
[group:1]> quit

 

十、WeBase 可视化界面

官方教程“快速入门搭建”:https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/developer.html

 

  • 下载安装包
wget https://www.fisco.com.cn/cdn/webase/releases/download/v1.2.1/webase-front.zip
  • 拷贝证书
cp ~/fisco/nodes/127.0.0.1/sdk/* ~/fisco/webase-front/conf/
  • 启动可视化界面
bash ~/fisco/webase-front/start.sh

  • 网页打开可视化界面
http://localhost:5002/WeBASE-Front

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第7张图片

  • 直接在界面上开发合约

初步了解区块链技术落地——FISCO BCOS 快速搭建区块链_第8张图片

 

 

 

 

 

你可能感兴趣的:(区块链)