必备开发工具:node(通过nvm安装)、npm包管理工具(再通过npm安装level、crypto.js)
Fisco BCOS依赖:openssl 、curl
Webase中间件依赖:Java(推荐Oracle JDK)、python2.7(Linux自带)、MySQL-python、mysql
官方推荐用nvm安装node和npm:这里是nvm安装及使用方法
以下是我们用到的操作:
操作 | 命令 |
---|---|
安装nvm | wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh |
验证nvm安装成功(先重启terminal) | command -v nvm |
安装node | nvm install node |
安装npm | nvm install-latest-npm |
使用npm安装level | npm i level |
使用npm安装 | npm i crypto-js |
上述nvm安装后,输入命令command -v nvm若输出nvm则表示nvm安装成功。
环境 | 版本 |
---|---|
Java | jdk1.8.0_121或以上版本 |
python | 2.7 |
MySQL-python | 1.2.5 |
mysql | mysql-5.6或以上版本 |
到JAVA官网下载linux-x64_bin.tar.gz包,复制到目标目录下解压。(建议选择/home/XXX/ 下新建 software )
安装:
cd ~
mkdir /software
cp ~/Downloads/jdkXXX ~/software
cd ~/software
tar -zxvf jdkXXX.tar.gz
配置环境变量:
建议先把Linux自带的vi更新到vim:
sudo apt install vim
修改/etc/profile文件配置环境变量:
vim /etc/profile
/*在vim界面中输入以下内容:*/
export JAVA_HOME=/software/jdkXXX //你的Java安装路径
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib
//完成退出vim后:
source /etc/profile
vim操作介绍:
vim默认有四种模式:normal mode;insert mode; visual mode; command-line mode; 进入vim默认处于normal mode不能键入内容,按下i进入insert mode就可以进行编辑,编辑完成后按下esc键退回normal mode,再按下Shift-:可进入command-line mode,输入wq保存并退出。
详细操作可以在terminal中输入vim -Help查看。
pip install requests
sudo apt-get install -y python-pip
sudo pip install MySQL-python //直接安装MySQL-python大概率报错:
/*EnvironmentError: mysql_config not found
Command "python setup.py egg_info" failed with error code 1*/
//可以尝试以下:
sudo apt-get install libmysqlclient-dev
//libmysqlclient-dev安装成功后应该可以正常安装MySQL-python:
sudo pip install MySQL-python
若还是报错,需要确认python的pip setuptools wheel是否为最新版本:
pip install --upgrade pip setuptools wheel
sudo -s
apt install mysql*
service mysqld start //启动mysql
//若提示找不到mysqld.service|mysql.service|mariadb.service, 可能需要卸载mysql重新安装。也要注意同时安装mysql和mariadb会造成冲突。
mysql -u root //初次登录
//给root设置密码和授权远程访问
mysql > SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
//授权test用户本地访问数据库
mysql > create user 'test'@'localhost' identified by '123456';
//另开一个ssh测试本地用户test是否可以登录数据库
mysql -utest -p123456 -h 127.0.0.1 -P 3306
//登陆成功后,执行以下sql语句,若出现错误,则用户授权不成功
mysql > show databases;
mysql > use test;
//创建数据库
mysql -utest -p123456 -h 127.0.0.1 -P 3306
mysql > create database db_browser;
如果登录报错:Access denied for user ‘root’@’localhost’:
编辑 /etc/my.cnf ,在[mysqld] 部分最后添加一行
skip-grant-tables
② 保存后重启mysql
service mysqld restart
③ 输入以下命令,回车后输入密码再回车登录mysql
mysql -uroot -p mysql
sudo apt install -y openssl curl //安装依赖
cd ~ && mkdir -p fisco && cd fisco //创建操作目录
bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master/tools/get_buildchain.sh) //下载build_chain.sh脚本
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545 //搭建单群组4节点联盟链
命令执行成功会输出All completed。
bash nodes/127.0.0.1/start_all.sh //启动所有节点
/*启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp检查机器的30300~30303,20200~20203,8545~8548端口是否被占用。
try to start node0
try to start node1
try to start node2
try to start node3
node1 start successfully
node2 start successfully
node0 start successfully
node3 start successfully
*/
ps -ef | grep -v grep | grep fisco-bcos //检查进程是否启动
/*正常情况会有类似下面的输出;如果进程数不为4,则进程没有启动(一般是端口被占用导致的)
fisco 5453 1 1 17:11 pts/0 00:00:02 /home/fisco/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
fisco 5459 1 1 17:11 pts/0 00:00:02 /home/fisco/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
fisco 5464 1 1 17:11 pts/0 00:00:02 /home/fisco/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
fisco 5476 1 1 17:11 pts/0 00:00:02 /home/fisco/fisco/nodes/127.0.0.1/node3/../fisco-bco*/
tail -f nodes/127.0.0.1/node0/log/log* | grep connected //查看节点node0链接的节点数
/*正常情况会不停地输出链接信息,从输出可以看出node0与另外3个节点有链接。
info|2019-01-21 17:30:58.316769| [P2P][Service] heartBeat connected count,size=3
info|2019-01-21 17:31:08.316922| [P2P][Service] heartBeat connected count,size=3
info|2019-01-21 17:31:18.317105| [P2P][Service] heartBeat connected count,size=3*/
tail -f nodes/127.0.0.1/node0/log/log* | grep +++ //检查是否在共识
/*正常情况会不停输出++++Generating seal,表示共识正常。
info|2019-01-21 17:23:32.576197| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++Generating seal on,blkNum=1,tx=0,myIdx=2,hash=13dcd2da...
info|2019-01-21 17:23:36.592280| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++Generating seal on,blkNum=1,tx=0,myIdx=2,hash=31d21ab7...
info|2019-01-21 17:23:40.612241| [g:1][p:264][CONSENSUS][SEALER]++++++++++++++++Generating seal on,blkNum=1,t*/
配置控制台依赖JAVA,我们之前已安装。
cd ~/fisco && bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/download_console.sh) //获取控制台并回到fisco目录
cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml //拷贝控制台配置文件
cp nodes/127.0.0.1/sdk/* console/conf/ //配置控制台证书
/*启动控制台*/
cd ~/fisco/console && bash start.sh
/*
输出下述信息表明启动成功 否则请检查conf/applicationContext.xml中节点端口配置是否正确
=============================================================================================
Welcome to FISCO BCOS console(1.0.3)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
________ ______ ______ ______ ______ _______ ______ ______ ______
| \| \ / \ / \ / \ | \ / \ / \ / \
| $$$$$$$$ \$$$$$$| $$$$$$\| $$$$$$\| $$$$$$\ | $$$$$$$\| $$$$$$\| $$$$$$\| $$$$$$\
| $$__ | $$ | $$___\$$| $$ \$$| $$ | $$ | $$__/ $$| $$ \$$| $$ | $$| $$___\$$
| $$ \ | $$ \$$ \ | $$ | $$ | $$ | $$ $$| $$ | $$ | $$ \$$ \
| $$$$$ | $$ _\$$$$$$\| $$ __ | $$ | $$ | $$$$$$$\| $$ __ | $$ | $$ _\$$$$$$\
| $$ _| $$_ | \__| $$| $$__/ \| $$__/ $$ | $$__/ $$| $$__/ \| $$__/ $$| \__| $$
| $$ | $$ \ \$$ $$ \$$ $$ \$$ $$ | $$ $$ \$$ $$ \$$ $$ \$$ $$
\$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$
=============================================================================================
*/
wget https://github.com/mingzhenliu/sss/releases/download/111/webase-deploy.zip //获取部署安装包
unzip webase-deploy.zip //解压安装包
cd webase-deploy
数据库需要提前安装 && 服务端口不能小于1024
vim common.properties
必须修改的配置项目:
8080 端口nginx 占用,所以端口也要改一下,改为8096 只要不冲突就好了:
python deploy.py startAll //部署所有服务
python deploy.py stopAll //停止所有服务
python deploy.py help //单独启停命令和说明可查看帮助
管理平台:
http://{deployIP}:{webPort}
节点前置控制台:
http://{deployIP}:{frontPort}/webase-front
部署日志:log/
节点日志:nodes/127.0.0.1/node*/log/
web服务日志:webase-web/log/
mgr服务日志:webase-node-mgr/logs/
front服务日志:webase-front/log/
1 Fisco-BCOS单群组FISCO BCOS联盟链的搭建
2 WeBase 中间件快速搭建教程
3 linbin524 的博客
4 关于pip install MySQL-python 报错mysql_config not found的解决方案
5 ./webase.sh not found 解决方案