FISCO BCOS 3.0【03】配置和使用pythonSDK

FISCO BCOS 3.0【03】配置和使用pythonSDK_第1张图片
官方技术文档:https://fisco-bcos-doc.readthedocs.io/zh-cn/latest/index.html
我们在官方技术文档的基础上,进行,对文档中一些不清楚的地方进行修正

依赖软件

Ubuntu

sudo apt install -y zlib1g-dev libffi6 libffi-dev wget git

在这里插入图片描述

初始化环境

文档有些乱,仔细看这里

1 Linux环境初始化

1.1拉取源代码

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

#若因为网络问题导致长时间无法执行上面的命令,请尝试以下命令:

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

FISCO BCOS 3.0【03】配置和使用pythonSDK_第2张图片

1.2配置环境
我使用conda
新建conda环境即可,注意新建时要安装python版本 python 3.6.3【fisco 3.x会报错】或者最后使用3.7.x
conda安装可以参考miniconda安装

我们这里要做的事
新建虚拟环境,安装python

conda create --name ihan python=3.7.3

激活环境

conda activate ihan

在这里插入图片描述

conda

2安装Python SDK依赖

python-sdk文件下执行

pip install -r requirements.txt

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

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

FISCO BCOS 3.0【03】配置和使用pythonSDK_第3张图片

3初始化配置

bash init_env.sh -i

该脚本执行操作如下: # 1. 拷贝client_config.py.template->client_config.py # 2. 下载solc编译器
FISCO BCOS 3.0【03】配置和使用pythonSDK_第4张图片

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

文档这里有问题,后面的就不用看了,看下面我的实现
我们需要更改client_config.py
更改前
FISCO BCOS 3.0【03】配置和使用pythonSDK_第5张图片

更改后
FISCO BCOS 3.0【03】配置和使用pythonSDK_第6张图片不更改的报错信息在文末

【重要,2.0的channel信息也是在client_config.py,但是3.x不是,接下来我们设置证书和channel信息】

# FISCO BCOS3.0的配置段,如连接FISCO BCOS2.0版本,无需关心此段
# FISCO BCOS3.0 c底层sdk的配置,都在bcos3_config_file里,无需配置在此文件
bcos3_lib_path ="./bcos3sdklib"
bcos3_config_file ="./bcos3sdklib/bcos3_sdk_config.ini"
group = "group0"

由上面可以知道,库文件和配置文件在./bcos3sdklib,配置文件是./bcos3sdklib/bcos3_sdk_config.ini
设置开始
拷贝bcos3_sdk_config_sample.ini->bcos3_sdk_config.ini【和bcos3_config_file ="./bcos3sdklib/bcos3_sdk_config.ini"字段对应即可,可以自己更改】
可以手动改【界面化系统】,也可以用命令行

cp -n bcos3sdklib/bcos3_sdk_config_sample.ini bcos3sdklib/bcos3_sdk_config.ini

FISCO BCOS 3.0【03】配置和使用pythonSDK_第7张图片FISCO BCOS 3.0【03】配置和使用pythonSDK_第8张图片
配置文件设置成功
FISCO BCOS 3.0【03】配置和使用pythonSDK_第9张图片

由上图可以
[peers]

#supported ipv4 and ipv6
node.0=127.0.0.1:20200
这里可以更改成自己的,我们使用默认的,所以不改

FISCO BCOS 3.0【03】配置和使用pythonSDK_第10张图片
主要设置这里
ca_path放证书文件
可以在/home/sysadmin/python-sdk/bcos3sdklib下新建conf来存放,上面的设置是在bcos3sdklib,直接放在bcos3sdklib里也行,要是新建需要改ca_path=./bcos3sdklib/conf

实现将证书放在bcos3sdklib下
在pythonsdk下执行

cp ~/fisco/nodes/127.0.0.1/sdk/* bcos3sdklib/

在这里插入图片描述
由于FISCO BCOS 3.x使用SDK的C语言库实现pythonsdk,诸多细节封装在库里,我们要在bcos3sdklib下放入libbcos-c-sdk.so
否则报错
OSError: /home/sysadmin/python-sdk/bcos3sdklib/libbcos-c-sdk.so: cannot open shared object file: No such file or directory
可以在文档里找到c sdk自己下载编译后的,也可以cmake
FISCO BCOS 3.0【03】配置和使用pythonSDK_第11张图片解决方案
我们直接下载libbcos-c-sdk.so文件,后放在bcos3sdklib下
FISCO BCOS 3.0【03】配置和使用pythonSDK_第12张图片
完成

查看版本
FISCO BCOS 3.0【03】配置和使用pythonSDK_第13张图片

部署合约
FISCO BCOS 3.0【03】配置和使用pythonSDK_第14张图片具体使用信息,可输入 python console3.py usage 查看

报错1:不更改账号文件相关路径,报错
INFO >> user input : [‘version’]

ERROR >> execute version failed
ERROR >> error information: key file bin/accounts/pemtest.pem doesn’t exist, please check client_config.py again and make sure this account exist

报错2:不更改编译器报错(编译器地址可以是你自己下载的地方)
INFO >> compile with nodejs compiler
/usr/bin/env: ‘node’: No such file or directory
ERROR >> execute deploy failed
ERROR >> error information: compile error for compile failed, error information: Command ‘[’./solcjs’, ‘–bin’, ‘–abi’, ‘./contracts/HelloWorld.sol’, ‘-o’, ‘contracts’]’ returned non-zero exit status 127.

报错3:没有csdk库文件
OSError: /home/sysadmin/python-sdk/bcos3sdklib/libbcos-c-sdk.so: cannot open shared object file: No such file or directory

Exception ignored in: del at 0x7f5f243f5d08>
Traceback (most recent call last):
File “/home/sysadmin/python-sdk/bcos3sdk/bcos3client.py”, line 59, in del
self.finish()
File “/home/sysadmin/python-sdk/bcos3sdk/bcos3client.py”, line 111, in finish
self.bcossdk.finish()
AttributeError: ‘Bcos3Client’ object has no attribute ‘bcossdk’

FISCO BCOS 3.0【03】配置和使用pythonSDK_第15张图片
4报错python版本太高,我使用的3.7.3没有报错,可以自己尝试
(ihan) sysadmin@sysadmin-virtual-machine:~/python-sdk$ python console3.py version
Traceback (most recent call last):
File “/home/sysadmin/python-sdk/console3.py”, line 19, in
from bcos3sdk.bcos3client import Bcos3Client
File “/home/sysadmin/python-sdk/bcos3sdk/bcos3client.py”, line 28, in
from client.common import common
File “/home/sysadmin/python-sdk/client/common/common.py”, line 20, in
from client.datatype_parser import DatatypeParser
File “/home/sysadmin/python-sdk/client/datatype_parser.py”, line 19, in
from client.format_param_by_abi import format_args_by_function_abi
File “/home/sysadmin/python-sdk/client/format_param_by_abi.py”, line 17, in
from collections import Iterable
ImportError: cannot import name ‘Iterable’ from ‘collections’ (/home/sysadmin/anaconda3/envs/ihan/lib/python3.12/collections/init.py)

你可能感兴趣的:(FISCOBCOS3.X金链盟,python)