FISCO BCOS Python SDK(centos7)

环境要求

依赖软件

CentOS:

sudo yum install -y zlib-devel libffi-devel wget git

在这里插入图片描述

Python环境要求支持版本:
python 3.6.3
python 3.7.x

部署Python SDK

环境要求
Python环境:python 3.6.3, 3.7.x
FISCO BCOS节点:请参考FISCO BCOS安装搭建
初始化环境(若python环境符合要求,可跳过)

Linux环境初始化

拉取源代码

git clone https://github.com/FISCO-BCOS/python-sdk

#若因为网络问题导致长时间无法执行上面的命令,请尝试以下命令:
git clone https://gitee.com/FISCO-BCOS/python-sdk

在这里插入图片描述

配置环境

注解

bash init_env.sh -p 主要功能是安装pyenv,并使用pyenv安装名称为 python-sdk 的python-3.7.3虚拟环境
若python环境符合要求,可以跳过此步
若脚本执行出错,请检查是否参考[依赖软件]说明安装了依赖
安装python-3.7.3可能耗时比较久
此步骤仅需初始化一遍,再次登录直接使用命令 pyenv activate python-sdk 激活 python-sdk 虚拟环境即可

#判断python版本,并为不符合条件的python环境安装python 3.7.3的虚拟环境,命名为python-sdk
#若python环境符合要求,可以跳过此步
#若脚本执行出错,请检查是否参考[依赖软件]说明安装了依赖
#提示:安装python-3.7.3可能耗时比较久
cd python-sdk && bash init_env.sh -p

#激活python-sdk虚拟环境
source ~/.bashrc && pyenv activate python-sdk && pip install --upgrade pip

在这里插入图片描述

在这里插入图片描述

安装Python SDK依赖

pip install -r requirements.txt

在这里插入图片描述

若因网络原因,安装依赖失败,可使用清华的pip源下载,安装命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

在这里插入图片描述

初始化配置

#该脚本执行操作如下:
在这里插入图片描述

#1. 拷贝client_config.py.template->client_config.py

cp -r client_config.py.template client_config.py

在这里插入图片描述

#2. 下载solc编译器

bash init_env.sh -i

SOLC_LINUX_URL=“https://github.com/FISCO-BCOS/solidity/releases/download/v0.4.25/solc-linux.tar.gz”
SOLC_MAC_URL=“https://github.com/FISCO-BCOS/solidity/releases/download/v0.4.25/solc-mac.tar.gz”
SOLC_LINUX_GM_URL=“https://github.com/FISCO-BCOS/solidity/releases/download/v0.4.25/solc-linux-gm.tar.gz”
SOLC_MAC_GM_URL=“https://github.com/FISCO-BCOS/solidity/releases/download/v0.4.25/solc-mac-gm.tar.gz”

在这里插入图片描述
在这里插入图片描述

若没有执行以上初始化步骤,需要将contracts/目录下的sol代码手动编译成bin和abi文件并放置于contracts目录,才可以部署和调用相应合约。合约编译可以使用remix

配置Channel通信协议

Python SDK支持使用Channel协议与FISCO BCOS节点通信,通过SSL加密通信保障SDK与节点通信的机密性。

设SDK连接的节点部署在目录~/fisco/nodes/127.0.0.1目录下,则通过如下步骤使用Channel协议:

配置Channel信息

注解

为便于开发和体验,channel_listen_ip参考配置是 0.0.0.0,出于安全考虑,请根据实际业务网络情况,修改为安全的监听地址,如:内网IP或特定的外网IP

在节点目录下的 config.ini 文件中获取 channel_listen_port, 这里为20200

[rpc]
    channel_listen_ip=0.0.0.0
    jsonrpc_listen_ip=127.0.0.1
    channel_listen_port=20200
    jsonrpc_listen_port=8545

在这里插入图片描述

切换到python-sdk目录,修改 client_config.py 文件中channel_host为实际的IP,channel_port为上步获取的channel_listen_port:

channel_host = "127.0.0.1"
channel_port = 20200

在这里插入图片描述

配置证书

#若节点与python-sdk位于不同机器,请将节点sdk目录下所有相关文件拷贝到bin目录
#若节点与sdk位于相同机器,直接拷贝节点证书到SDK配置目录
cp ~/fisco/nodes/127.0.0.1/sdk/* bin/

在这里插入图片描述

配置证书路径

注解

client_config.py 的 channel_node_cert 和 channel_node_key选项分别用于配置SDK证书和私钥

release-2.1.0 版本开始,SDK证书和私钥更新为 sdk.crt 和 sdk.key ,配置证书路径前,请先检查上步拷贝的证书名和私钥名,并将 channel_node_cert 配置为SDK证书路径,将channel_node_key 配置为SDK私钥路径

FISCO-BCOS 2.5及之后的版本,添加了SDK只能连本机构节点的限制,操作时需确认拷贝证书的路径,否则建联报错

检查从节点拷贝的sdk证书路径,若sdk证书和私钥路径分别为bin/sdk.crtbin/sdk.key,则client_config.py中相关配置项如下:

channel_node_cert = "bin/sdk.crt"  # 采用channel协议时,需要设置sdk证书,如采用rpc协议通信,这里可以留空
channel_node_key = "bin/sdk.key"   # 采用channel协议时,需要设置sdk私钥,如采用rpc协议通信,这里可以留空

若sdk证书和私钥路径分别为bin/node.crtbin/node.key,则client_config.py中相关配置项如下:

channel_node_cert = "bin/node.crt"  # 采用channel协议时,需要设置sdk证书,如采用rpc协议通信,这里可以留空
channel_node_key = "bin/node.key"   # 采用channel协议时,需要设置sdk私钥,如采用rpc协议通信,这里可以留空

在这里插入图片描述

使用Channel协议访问节点

注解

windows环境下执行console.py请使用 .\console.py 或者 python console.py

#获取FISCO BCOS节点版本号
./console.py getNodeVersion

在这里插入图片描述

开启命令行自动补全

Python SDK引入argcomplete支持命令行补全,运行如下命令开启此功能(bashrc仅需设置一次,设置之后每次登陆自动生效)

注解

此步骤仅需设置一次,设置之后以后每次登陆自动生效
请在 bash环境 下执行此步骤
目前仅支持bash,不支持zsh

echo "eval \"\$(register-python-argcomplete ./console.py)\"" >> ~/.bashrc
source ~/.bashrc

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值