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

在这里插入图片描述
官方技术文档: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

在这里插入图片描述

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

在这里插入图片描述

3初始化配置

bash init_env.sh -i

该脚本执行操作如下: # 1. 拷贝client_config.py.template->client_config.py # 2. 下载solc编译器
在这里插入图片描述

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

文档这里有问题,后面的就不用看了,看下面我的实现
我们需要更改client_config.py
更改前
在这里插入图片描述

更改后
在这里插入图片描述不更改的报错信息在文末

【重要,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

在这里插入图片描述在这里插入图片描述
配置文件设置成功
在这里插入图片描述

由上图可以
[peers]

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

在这里插入图片描述
主要设置这里
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
在这里插入图片描述解决方案
我们直接下载libbcos-c-sdk.so文件,后放在bcos3sdklib下
在这里插入图片描述
完成

查看版本
在这里插入图片描述

部署合约
在这里插入图片描述具体使用信息,可输入 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: <function Bcos3Client.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’

在这里插入图片描述
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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193808.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫谈广告机制设计 | 万剑归宗:聊聊广告机制设计与收入提升的秘密(2)

书接上文漫谈广告机制设计 | 万剑归宗&#xff1a;聊聊广告机制设计与收入提升的秘密&#xff08;1&#xff09;&#xff0c;我们谈到流量作为一种有限资源&#xff0c;其分配方式&#xff08;或者交易方式&#xff09;也经历了几个阶段&#xff1a;第一个是谈判定价阶段&#…

【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)

参考 Go语言基础之包 | 李文周的博客Go mod的使用、发布、升级 | weiGo Module如何发布v2及以上版本1.2.7. go mod命令 — 新溪-gordon V1.7.9 文档golang go 包管理工具 go mod的详细介绍-腾讯云开发者社区-腾讯云Go Mod 常见错误的原因 | walker的博客 项目案例 oceanweav…

数据结构【DS】树的性质

度为m的树 m叉树 至少有一个节点的度m 允许所有节点的度都<m 一定是非空树&#xff0c;至少有m1个节点 可以是空树 节点数 总度数 1m叉树&#xff1a; 高度为h的m叉树 节点数最少为&#xff1a;h具有n个结点的m叉树 最大高度&#xff1a;n度为m的树&#xff1a; 具有…

【MySQL--->事务】

文章目录 [TOC](文章目录) 一、基本概念二、事务的操作1.设置全局事务隔离级别2.设置事务提交方式3.事务操作 三、事务隔离性1.隔离性概念2 .隔离级别设置 四、MVCC多版本控制2. read view 一、基本概念 事务是由若干条具有逻辑相关性的SQL语句组成的,用来完成某种任务的**逻辑…

Java 省考试院自学考试考籍管理系统

1) 项目简介 考籍管理系统是省考试院自学考试管理系统的一部分&#xff0c;包括考生考籍档案管理、考生免考管理、课程顶替、考籍转入转出管理、毕业管理和日志管理等功能模块。该项目的建设方便和加强了省考试院对自学考试考籍的一系列管理操作&#xff0c;社会效应明显。…

【开源】基于Vue.js的高校实验室管理系统的设计和实现

项目编号&#xff1a; S 015 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S015&#xff0c;文末获取源码。} 项目编号&#xff1a;S015&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

数据结构【DS】图的遍历

BFS 要点 需要一个辅助队列visited数组&#xff0c;防止重复访问 复杂度 时间复杂度&#xff1a;访问结点的时间访问所有的边的时间 广度优先生成树 邻接表存储的图的表示方式不唯一&#xff0c;生成树也不唯一 DFS 复杂度 时间复杂度&#xff1a;访问结点的时间访问所有…

【自然语言处理】【大模型】赋予大模型使用工具的能力:Toolformer与ART

赋予大模型使用工具的能力&#xff1a;Toolformer与ART ​ 本文介绍两种赋予大模型使用外部工具能力的方法&#xff1a;Toolformer和ART。 Toolformer论文地址&#xff1a;https://arxiv.org/pdf/2302.04761.pdf ART论文地址&#xff1a;https://arxiv.org/pdf/2303.09014.pd…

优质好文链接

文章目录 1.开放源码有利于系统安全2.yum源配置&#xff0c;这一篇就够了&#xff01;(包括本地&#xff0c;网络&#xff0c;本地共享yum源)3.rpm包是什么4.SSH是什么意思&#xff1f;有什么功能&#xff1f; 1.开放源码有利于系统安全 开放源码有利于系统安全 2.yum源配置…

「Verilog学习笔记」根据状态转移表实现时序电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 可得逻辑表达式为 可得逻辑表达式为 timescale 1ns/1nsmodule seq_circuit(input A ,input clk ,input rst_n,outpu…

TCP协议相关实验

文章目录 一.TCP相关实验1.理解CLOSE_WAIT状态2.理解TIME_WAIT状态3.解决TIME_WAIT状态引起的bind失败的方法4.理解listen的第二个参数5.使用Wireshark分析TCP通信流程 二.TCP与UDP1.TCP与UDP对比2.用UDP实现可靠传输&#xff08;经典面试题&#xff09; 一.TCP相关实验 1.理解…

STM32电源名词解析

先来简单了解一下各种电源端口的命名 VCC&#xff1a;Ccircuit 表示电路的意思, 即接入电路的电压 VDD&#xff1a;Ddevice 表示器件的意思, 即器件内部的工作电压。 VSS&#xff1a;Sseries 表示公共连接的意思&#xff0c;通常指电路公共接地端电压。 GND&#xff1a;在电…