注意:

1.使用SSH连接时,首先必须要有ssh连接工具openssh-server, 新系统要安装。

sudo apt-get install openssh-server

2.在普通用户中设置root的密码。

sudo passwd root
su rootcd ~

3.使用root用户连接。

vi /etc/ssh/sshd_config

取消文件里PermitRootLogin yes的注释,退出保存;若没有需要手动添加,保存退出,然后重启sshd。

PermitRootLogin yes
systemctl restart sshd

一、搭链单机单群组4节点的链

1.准备环境

sudo apt install -y openssl curl

创建fisco目录

cd ~ && mkdir fisco && cd fisco

2.下载安装脚本build_chain.sh

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.8.0/build_chain.sh && chmod u+x build_chain.sh

常用的build_chain.sh命令

build_chain.sh直接输入会报错,因为没给入实际参数
build_chain.sh -l # 指定使用的ip及其节点数
build_chain.sh -p # 指定使用的起始端口号
build_chain.sh -e # 如果预先已经下载好fisco,则可以直接使用fisco程序路径

3.配置及安装

-p指定起始端口,分别是p2p_port,channel_port,jsonrpc_port

./build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545

4.启动链(节点)

cd nodes/127.0.0.1
./start_all.sh

5.检查进程及端口监听

检查进程是否启动 如果进程数不为4,那么进程没启动的原因一般是端口被占用(!)

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

检查监听的端口,当前版本每个节点监听3个端口,分被用于p2p,channel,jsonrpc通信

netstat -ntlp | grep fisco-bcos

6.检查日志输出

查看节点node0链接的节点数,从下面的输出可以看出node0与另外3个节点有链接

tail -f node0/log/log* | grep connected

检查是否在共识,如果不停输出++++Generating seal表示正常输出

tail -f node0/log/log* | grep +++

二、WeBASE-Front搭建:简介

三、WeBASE-Front搭建:依赖环境

(1)参考文献

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

(2)Java环境变量

sudo apt-get install openjdk-8-jdk

ubuntu系统设置java环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin

注意,以上几条配置命令每次都要在终端设置才会生效,为了方便,也可以执行vi ~/.profile 命令,在当前用户的配置文件末尾加上上面几条语句,用户每次登陆时会自动更新环境变量

四、WeBASE-Front搭建:部署

(1)下载安装包

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

(2)解压安装包(使用unzip之前要先安装对应的包)

unzip webase-front.zip

(3)拷贝证书文件

将节点所在目录nodes/${ip}/sdk下的证书文件拷贝到conf下,下面是拷贝127.0.0.1节点示例

cp -r nodes/127.0.0.1/sdk/* webase-front/conf/

(4)服务启停

首先进入服务中:

cd webase-front

启动:bash start.sh

停止:bash stop.sh

检查:bash status.sh

(5)访问

  • http://localhost:5002/WeBASE-Front

    其中localhost是主机ip,5002是默认端口

(6) 可能遇到的问题:

============== Starting WeBASE-Front ==============
==============WeBASE-Front start fail. Please check through the log file (default path: ./webase-front/log/). ==============

============== Starting WeBASE ==============
==============WeBASE-Node-Manager start fail. Please check through the log file (default path: ./webase.deploy/log/). ==============

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

原因:未开放网络端口

解决:

sudo apt-get install iptables

安装相应持续化规则扩展包,安装iptables-persistent后 开放端口需要root权限

sudo apt-get install iptables-persistent

开放端口5000,5002

sudo iptables -I INPUT -p tcp --dport 5000 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 5002 -j ACCEPT

五、第一个合约示例:实现Helloworld

(1)创建一个合约名称为Helloworld的sol文件(智能合约文件)

pragma solidity ^0.4.25;contract Helloworld{string name;function Helloworld(){name = "Helloworld";}function get()constant returns(string){return name;}function setname(string n){name = n;}}

(2)对得到的合约文件进行保存,编译

(3)部署,在部署前,我们需要创建一个新的角色来进行部署

部署成功后

(4)最后,我们对合约进行调用测试