FISCO-BCOS学习——区块链浏览器搭建

注意:
本系列文章遇到的问题都可以参考查找 官方文档 或 本系列问题总结!

FISCO-BCOS 及 WeBase 问题记录

FISCO-BCOS 官方文档

WeBase 官方文档

FISCO BCOS区块链浏览器搭建

前提条件

环境 版本
Java JDK8或以上版本
MySQL MySQL-5.6或以上版本
Python Python3.4+
PyMySQL 使用python3时需安装

重要提示:
目前FISCO BCOS还不算完善,所以在搭建浏览器以及后面WeBASE调试时,需要使用谷歌浏览器,而不要使用新版Edge

一、配置Java环境

可以参考本文Java环境配置

二、配置Mysql环境

此处以Centos安装MariaDB为例。MariaDB数据库是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB完全兼容 MySQL,包括API和命令行。

首先在服务器安全组规则中加入3306端口,这是mysql的默认端口

1、安装MariaDB

sudo yum install -y mariadb*

下面为mysql安装

sudo yum install -y mysql*

2、启动与停止

# 启动
sudo systemctl start mariadb.service
sudo systemctl start mysqld.service
# 停止
sudo systemctl stop  mariadb.service

3、设置开启启动

sudo systemctl enable mariadb.service

4、初始化

执行以下命令:
sudo mysql_secure_installation
以下根据提示输入:
Enter current password for root (enter for none):<–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

5、使用root用户登录,密码为初始化设置的密码

这一步之前一定先要将3306端口添加到安全组规则

至于如何添加安全组规则,可以参考本文安全组规则部分

mysql -uroot -p -h localhost -P 3306

6、授权root用户远程访问

mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql > flush PRIVILEGES;
  • 例子中给出的数据库密码(123456)仅为样例,强烈建议设置成复杂密码
  • 例子中root用户的远程授权设置会使数据库在所有网络上都可以访问,请按具体的网络拓扑和权限控制情况,设置网络和权限帐号

7、创建test用户并授权本地访问

mysql > GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql > flush PRIVILEGES;

8、登录数据库

-p后面为自己的密码

mysql -utest -p123456 -h localhost -P 3306

9、创建数据库

mysql > create database db_browser;

mariaDB是完全兼容mysql的,所以安装完mariaDB之后,使用mysql的命令方式完全可行

三、配置Python环境

1、下载安装Python

sudo yum install -y python-requests

下列命令为指定安装 python3.6.*版本

sudo yum install -y python36

可以使用python3 --version命令查看python3版本号
若没有修改py默认版本,可以使用python --version命令查看python2版本号

2、修改Python默认版本(可跳过)

(可以不进行修改,后面使用python时输入python3就行,因担心导致bug,本人没有修改默认版本)

因为yum需要python2.7做支持,所以需要对其修改

vim /usr/bin/yum
# 打开后将第一行修改
#!/usr/bin/python
修改为
#!/usr/bin/python2.7

修改urlgrabber-ext-down配置

vim /usr/libexec/urlgrabber-ext-down

将第一行
#! /usr/bin/python
修改为
#! /usr/bin/python2.7

删除原有的软连接

rm -rf /usr/bin/python

建立新的软连接

 ln -s /usr/local/python3/bin/python3 /usr/bin/python(连接位置为python3安装目录)

四、配置PyMySQL环境

1、Python3.4及以上版本,需安装PyMysql依赖包。

sudo pip3 install PyMySQL

不支持pip命令的话,可以使用以下方式:

git clone https://github.com/PyMySQL/PyMySQL
cd PyMySQL/
python3 setup.py install

注意:使用python2.7+时,需安装MySQL-python

sudo yum install -y MySQL-python

拉取代码

一、执行命令

1、安装git

yum install git

2、克隆代码

git clone https://github.com/FISCO-BCOS/fisco-bcos-browser.git

修改配置(没有变化的可以不修改)

  • 可以使用以下命令修改,也可以直接修改文件(vim common.properties)

  • 数据库需要提前安装

  • 服务端口不能小于1024

数据库IP:sed -i "s/127.0.0.1/${your_db_ip}/g" common.properties
数据库端口:sed -i "s/3306/${your_db_port}/g" common.properties
数据库用户名:sed -i "s/dbUsername/${your_db_account}/g" common.properties
数据库密码:sed -i "s/dbPassword/${your_db_password}/g" common.properties
数据库名称:sed -i "s/db_browser/${your_db_name}/g" common.properties

前端服务端口:sed -i "s/5100/${your_web_port}/g" common.properties
后端服务端口:sed -i "s/5101/${your_server_port}/g" common.properties

例子(将数据库IP由127.0.0.1改为0.0.0.0):sed -i "s/127.0.0.1/0.0.0.0/g" application.yml

部署

一、进入目录

cd fisco-bcos-browser/deploy

二、部署所有服务

此处因为安装了python3,配置了PyMySQL环境,并且没有修改python默认版本,才可以使用python3命令

python3 deploy.py installAll

其他指令:

# 停止所有服务:

python3 deploy.py stopAll

# 启动所有服务:

python3 deploy.py startAll

# 单独启停命令和说明可查看帮助

python3 deploy.py help

如果在此过程中遇到问题 可以在此文查看!

访问

例如:在浏览器输入以下访问地址,IP为部署服务器IP,端口为前端服务端口

http://服务器ip:5100/

1、新增群组

由于我们是单群组,所以也可得知群组id为1,其他信息随意输入

2、新增节点

IP:127.0.0.1
rpc接口:8545
p2p接口:30300

IP:127.0.0.1
rpc接口:8546
p2p接口:30301

IP:127.0.0.1
rpc接口:8547
p2p接口:30302

IP:127.0.0.1
rpc接口:8548
p2p接口:30303

这些节点的信息可以通过如下路径查看
/root/fisco/nodes/127.0.0.1/node0/config.ini

[rpc]
   channel_listen_ip=0.0.0.0
   channel_listen_port=20200
   jsonrpc_listen_ip=127.0.0.1
   jsonrpc_listen_port=8545
[p2p]
   listen_ip=0.0.0.0
   listen_port=30300
   ; nodes to connect
   node.0=127.0.0.1:30300
   node.1=127.0.0.1:30301
   node.2=127.0.0.1:30302
   node.3=127.0.0.1:30303

/root/fisco/nodes/127.0.0.1/node1/config.ini
/root/fisco/nodes/127.0.0.1/node2/config.ini
/root/fisco/nodes/127.0.0.1/node3/config.ini

3、上传编译合约

这里可以将前面的HelloWorld合约进行上产编译部署一下试一试。

合约内容可以 参考官方文档!

首先创建一个空白文本,将合约内容粘贴上去

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

将该文本命名为 HelloWorld.sol 上传 并 进行编译

编译等待时间较长的话多刷新几次就好!

日志路径

部署日志:log/
后端日志:server/log/
前端日志:web/log/

你可能感兴趣的:(FISCO,BCOS学习,区块链)