p2p_port: 节点通信端口。
channel_port: SDK 通知协议交换端口,使用的 SSL。
jsonrpc_port: http接口包含的此协议,网络明文。
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html
# CentOS
sudo yum install -y openssl curl
# 乌邦图
sudo apt install -y openssl curl
# macOS
brew install openssl curl
cd ~ && mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh
在 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
bash nodes/127.0.0.1/start_all.sh
注:如果失败请检查端口是否占用,netstat -an | grep tcp ,检查端口 30300~30303,20200~20203,8545~8548
ps -ef | grep -v grep | grep fisco-bcos
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,表示共识正常
# 乌邦图
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/
bash ~/fisco/console/start.sh
# 获取客户端版本
[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合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
contract address: 0xdb63e14a7e71458585dd3d47d0cdcc8f0ce99691
# 查看当前块高
[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
官方教程“快速入门搭建”: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