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

news2024/11/20 2:39:50

在这里插入图片描述
官方技术文档: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.coloradmin.cn/o/1225731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32硬件调试器不一定准确,proteus不一定准确

我在做实验的过程中&#xff0c;发现里面的那个变量ii一直都不变搞了很久没有发现问题&#xff0c; 然后怀疑是不是软件出了问题&#xff0c;然后直接只用单片机的一个灯泡来检测是否正常&#xff0c;发现&#xff1a;单片机里面正常&#xff0c;但是硬件调试的时候&#xff0…

后端面经学习自测(三)

文章目录 1、ArrayList和Linkedlist区别&#xff1f;2、ArrayList扩容机制&#xff1f;3、ArrayList和Linkedlist分别能做什么场景&#xff1f;4、事务特性&#xff1f;MySQL事务Redis事务Spring事务5、在Spring中事务失效的场景&#xff1f;6、Java泛型&#xff1f;7、泛型擦除…

22 - 如何优化垃圾回收机制?

我们知道&#xff0c;在 Java 开发中&#xff0c;开发人员是无需过度关注对象的回收与释放的&#xff0c;JVM 的垃圾回收机制可以减轻不少工作量。但完全交由 JVM 回收对象&#xff0c;也会增加回收性能的不确定性。在一些特殊的业务场景下&#xff0c;不合适的垃圾回收算法以及…

VisualGDB 6.0 R2 Crack

轻松跨平台"VisualGDB 使 Visual Studio 的跨平台开发变得简单、舒适。它支持&#xff1a; 准系统嵌入式系统和物联网模块&#xff08;查看完整列表&#xff09; C/C Linux 应用程序 本机 Android 应用程序和库 Raspberry Pi 和其他Linux 板 Linux 内核模块&#xff08;单…

11 月 18 日 ROS 学习笔记——可视化和调试工具

文章目录 前言一、调试 ROS 节点1. gdb 调试器2. 在 ROS 节点启动时调用 gdb 调试器3. 在 ROS 节点启动时调用 valgrind 分析节点4. 设置 ROS 节点 core 文件转储5. 日志消息1). 输出日志消息2). 设置调试消息级别 二、检测系统状态1. rqt_graph2. 可视化坐标变换3. 保存与回放…

openGauss通过VIP实现的故障转移

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

浅谈WPF之控件模板和数据模板

WPF不仅支持传统的Windows Forms编程的用户界面和用户体验设计&#xff0c;同时还推出了以模板为核心的新一代设计理念。在WPF中&#xff0c;通过引入模板&#xff0c;将数据和算法的“内容”和“形式”进行解耦。模板主要分为两大类&#xff1a;数据模板【Data Template】和控…

实验(三):微程序计数器uPC实验

一、实验内容与目的 实验要求&#xff1a; 利用 CP226 实验仪上的 K16..K23 开关做为 DBUS 的数据&#xff0c;其它开关做为控制信号&#xff0c;实现微程序计数器 uPC 的写入和加1功能。 实验目的&#xff1a; 1、了解模型机中微程序的基本概念。 2、了解 uPC 的结构、工作原理…

Java 高等院校分析与推荐系统

1&#xff09;项目简介 随着我国高等教育的大众化&#xff0c;高校毕业生就业碰到了前所未有的压力&#xff0c;高校学生就业问题开始进入相关研究者们的视野。在高校学生供给忽然急剧增加的同时&#xff0c;我国高校大学生的就业机制也在发生着深刻的变化&#xff0c;作为就业…

RT-Thread STM32F407 BMI088--SPI

BMI088是一款高性能6轴惯性传感器&#xff0c;由16位数字三轴24g加速度计和16位数字三轴2000/ s陀螺仪组成。 这里用SPI来驱动BMI088进行数据解读 第一步&#xff0c;首先在 RT-Thread Settings中进行配置 第二步&#xff0c;退出RT-Thread Settings&#xff0c;进入board.h…

未来科技中的云计算之路

随着科技的不断发展&#xff0c;云计算已经不再是一个陌生的词汇&#xff0c;而是我们日常生活中不可或缺的一部分。从智能家居到无人驾驶&#xff0c;再到虚拟现实和人工智能&#xff0c;云计算在这些领域都扮演着至关重要的角色。在这篇博客中&#xff0c;我们将一同探索云计…

SUID提权教程

SUID提权方法 一、SUID是什么&#xff1f;二、如何设置SUID权限&#xff1f;三、已知的具有SUID权限的二进制可执行文件四、查找具有root权限的SUID的文件1.find命令提权2.nmap命令提权3.more命令提权4.less命令提权5.bash命令提权6.vim命令提权7.awk命令提权8.cp命令提权 五、…

【如何学习Python自动化测试】—— 页面元素定位

接上篇自动化测试环境搭建&#xff0c;现在我们介绍 webdriver 对浏览器操作的 API。 2、 页面元素定位 通过自动化操作 web 页面&#xff0c;首先要解决的问题就是定位到要操作的对象&#xff0c;比如要模拟用户在页面上的输入框中输入一段字符串&#xff0c;那就必须得定位到…

UiPath Studio 2023.10 Crack

UiPath Studio是一款功能强大且用户友好的集成开发环境 (IDE)&#xff0c;专为机器人流程自动化 (RPA) 设计。它由自动化技术领域的领先公司UiPath开发。 以下是 UiPath Studio 的一些主要功能和组件&#xff1a; 图形用户界面 (GUI)&#xff1a;UiPath Studio 具有直观且用户友…

sqli-labs关卡18(基于http头部报错盲注)通关思路

文章目录 前言一、靶场通关需要了解的知识点1、什么是http请求头2、为什么http头部可以进行注入 二、靶场第十八关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做…

【数据预处理3】数据预处理 - 归一化和标准化

处理数据之前&#xff0c;通常会使用一些转换函数将「特征数据」转换成更适合「算法模型」的特征数据。这个过程&#xff0c;也叫数据预处理。 比如&#xff0c;我们在择偶时&#xff0c;有身高、体重、存款三个特征&#xff0c;身高是180、体重是180、存款是180000&#xff1…

算法 LeetCode 题解 | 最小栈

大家好&#xff0c;我是木川 一、题目描述 请你设计一个 最小栈 。它提供 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除…

【Proteus仿真】【STM32单片机】公交车报站系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。 主要功能&#xff1a; 系统运行…

vulhub redis-4-unacc

环境搭建 cd vulhub/redis/4-unacc docker-compose up -d 漏洞复现 检测 redis-cli -h ip 使用redis工具 工具地址&#xff1a;https://github.com/vulhub/redis-rogue-getshell 下载完成后&#xff0c;先进入RedisModulesSDK/exp/ 目录进行make操作 获得exp.so后可以进行…

Linux shell编程学习笔记26:stty(set tty)

之前我们探讨了Linux中的tty&#xff0c;tty命令的主要功能是显示当前使用的终端名称。 如果我们想进一步对tty进行设置&#xff0c;就要用到stty。 stty的功能&#xff1a;显示和修改终端特性&#xff08;Print or change terminal characteristics&#xff09;。 1 stty -…