# Python SDK
![](./images/FISCO_BCOS_Logo.svg)
[![Build Status](https://travis-ci.org/FISCO-BCOS/python-sdk.svg?branch=master)](https://travis-ci.org/FISCO-BCOS/python-sdk)
[![CodeFactor](https://www.codefactor.io/repository/github/fisco-bcos/python-sdk/badge)](https://www.codefactor.io/repository/github/fisco-bcos/python-sdk)
[![GitHub license](https://img.shields.io/github/license/FISCO-BCOS/python-sdk.svg)](https://github.com/FISCO-BCOS/python-sdk/blob/master/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/FISCO-BCOS/python-sdk.svg)](https://github.com/FISCO-BCOS/python-sdk/issues)
---
Python SDK为[FISCO BCOS](https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master)提供Python API,使用FISCO BCOS Python SDK可以简单快捷的基于FISCO-BCOS进行区块链应用开发。
2022.09版本同时支持FISCO BCOS 2.x / 3.x。与3.x相关的技术说明参见 [FISCO BCOS 3.x 开发介绍](./README_bcos3.md)
**Python SDK定位为开发版本,持续迭代,供使用Python语言开发FISCO BCOS应用的开发者参考。企业级应用推荐使用 Java SDK**
如需将Python SDK用于正式环境,请认真阅读和理解代码,掌握相关知识点,按自己的需求进行二次开发并**严谨测试**后上线。
如有任何问题,欢迎到社区提问交流,或修改扩展提交pr,共建项目
## 关键特性
- 支持FISCO BCOS 3.x接口: [JSON-RPC](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/api.html)。对于FISCO BCOS3.x,客户端采用Python包装C语言开发的底层SDK库,由SDK库负责网络协议封装和安全通信细节。
- 支持FISCO BCOS 2.x接口: [JSON-RPC](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/api.html)。对于FISCO BCOS2.x,客户端基于[Channel协议](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/design/protocol_description.html#channelmessage)与FISCO BCOS进行通信,保证节点与SDK安全加密通信的同时,可接收节点推送的消息。
- 支持交易解析功能:包括交易输入、交易输出、Event Log等ABI数据的拼装和解析。
- 支持合约编译,将`sol`合约编译成`abi`和`bin`文件。
- 支持基于keystore的账户管理。支持从pem文件加载ECDSA算法的私钥,以便和其他私钥管理模块互通。
- 支持本地的合约部署历史查询 (不支持链上所有部署的合约查询)。
- 支持国密(SM2,SM3,SM4算法)。对于FISCO BCOS2.x如需支持国密SSL通信需要独立编译组件,参见 [cython_tassl_wrap的README](./cython_tassl_wrap)。对于FISCO BCOS 3.x,国密特性已经由底层库封装,参见FISCO BCOS 3.x 配置和库文件下载。
- 支持event回调监听
- 支持liquid智能合约。需要采用[liquid开发环境](https://liquid-doc.readthedocs.io/)编译wasm合约。使用python-sdk部署和调用liquid合约时,合约名带上.wasm后缀,以和sol合约区别。
- 控制台支持Struct参数,数组等复杂数据结构,SDK调用方法参见[tests/teststructclient.py](tests/teststructclient.py)
## 部署Python SDK
### 环境要求
- Python环境:python 3.6.3, 3.7.x
- FISCO BCOS节点:请参考
[FISCO BCOS 2.x节点安装](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html#fisco-bcos)搭建
[FISCO BCOS 3.x节点安装](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/quick_start/air_installation.html)搭建
### 依赖软件
- **Ubuntu**: `sudo apt install -y zlib1g-dev libffi6 libffi-dev wget git`
- **CentOS**:`sudo yum install -y zlib-devel libffi-devel wget git`
- **MacOs**: `brew install wget npm git`
### 初始化环境(若python环境符合要求,可跳过)
#### **Linux环境初始化**
> 拉取源代码
```bash
git clone https://github.com/FISCO-BCOS/python-sdk
```
> 配置环境(安装pyenv和python,若python版本>=3.6.3可跳过本步)
```bash
# 获取python版本
python --version
## --------若python版本小于3.6.3,执行下面流程--------------------------------------
# 判断python版本,并为不符合条件的python环境安装python 3.7.3的虚拟环境,命名为python-sdk
# 若python环境符合要求,可以跳过此步
# 若脚本执行出错,请检查是否参考[依赖软件]说明安装了依赖
# 提示:安装python-3.7.3可能耗时比较久
cd python-sdk && bash init_env.sh -p
## --------若通过bash init_env.sh -p安装了python-sdk虚拟环境,执行下面流程-------------
# 激活python-sdk虚拟环境
source ~/.bashrc && pyenv activate python-sdk && pip install --upgrade pip
```
#### **Windows环境初始化**
在Windows运行Python SDK,需要按照以下步骤安装依赖软件并配置合约编译器:
**安装依赖软件**
- 直接安装[Python-3.7.x](https://www.python.org/downloads/release/python-373/)和[git](https://git-scm.com/download/win)软件
> python环境变量配置可参考[这里](https://jingyan.baidu.com/article/b0b63dbff271e24a4830708d.html)
- [Visual C++ 14.0库](https://visualstudio.microsoft.com/downloads)
> (注:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"解决方法: https://visualstudio.microsoft.com/downloads (注意选择vs 2005即14.0版)或 https://pan.baidu.com/s/1ZmDUGZjZNgFJ8D14zBu9og 提取码: zrby)
- 下载Windows版本solc, 点击[这里](https://github.com/ethereum/solidity/releases/download/v0.4.25/solidity-windows.zip)下载
> solc编译器下载成功后,解压,将其中的 solc.exe 文件复制 ${python-sdk}\bin 目录下。若 python-sdk 路为 D:\\open-source\\python-sdk, 则 solc.exe 文件复制路径为D:\\open-source\\python-sdk\\bin\\solc.exe
**拉取源代码**
打开 git,在任意目录执行如下命令
```bash
git clone https://github.com/FISCO-BCOS/python-sdk
```
**配置solc编译器路径**
```bash
# 修改client_config.py.template:
# 配置solc编译器路径,若solc存放路径为D:\\open-source\\python-sdk\\bin\\solc.exe,则solc_path配置如下:
solc_path = "D:\\open-source\\python-sdk\\bin\\solc.exe"
# 将client_config.py.template拷贝到client_config.py
```
### **安装Python SDK依赖**
```bash
cd python-sdk
pip install -r requirements.txt
```
> **若因网络原因,安装依赖失败,可使用清华的pip源下载,安装命令如下:**
```bash
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
```
### 初始化配置(Windows环境可跳过)
```bash
# 该脚本执行操作如下:
# 1. 拷贝client_config.py.template -> client_config.py
# 2. 安装solc编译器
bash init_env.sh -i
```
> **若MacOS环境solc安装较慢,可在python-sdk目录下执行如下命令安装solcjs**,python-sdk自动加载nodejs编译器:
```bash
# 安装编译器
npm install solc@v0.4.25
```
> 若没有执行以上初始化步骤,需要将`contracts/`目录下的`sol`代码手动编译成`bin`和`abi`文件并放置于`contracts`目录,才可以部署和调用相应合约。合约编译可以使用[remix](https://remix.ethereum.org)
## 国密支持
- 支持国密版本的非对称加密、签名验签(SM2), HASH算法(SM3),对称加解密(SM4)
- 国密版本在使用上和非国密版本基本一致,主要是配置差异。
- 国密版本sdk同一套代码可以连接国密和非国密的节点,需要根据不同的节点配置相应的IP端口和证书
- 因为当前版本的实现里,账户文件格式有差异,所以国密的账户文件和ECDSA的账户文件采用不同的配置
- FISCO BCOS 2.x国密SSL目前需要手动编译,配置,方法参见 [cython_tassl_wrap的README](./cython_tassl_wrap)
- FISCO BCOS 3.x的国密同样由底层库支持,lib库下载已经在CDN下载提供,参见[相关连接](https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develo
没有合适的资源?快使用搜索试试~ 我知道了~
sdk配置完成自己使用版
需积分: 0 0 下载量 172 浏览量
2024-01-08
22:54:30
上传
评论
收藏 27.9MB GZ 举报
温馨提示
共1020个文件
pyc:545个
py:262个
sol:21个
sdk配置完成自己使用版
资源推荐
资源详情
资源评论
收起资源包目录
sdk配置完成自己使用版 (1020个子文件)
Asset.abi.20220324170821 2KB
Asset.bin.20220324170909 51KB
Asset.bin.20220330184615 5KB
HelloWorld.bin.20220330184615 2KB
Asset.abi.20220330184615 546B
HelloWorld.abi.20220330184615 487B
blockchain.abi.20220402093017 818B
SimpleInfo.abi 3KB
Entry.abi 2KB
Condition.abi 2KB
AddrTableWorker.abi 1KB
Asset.abi 1KB
Table.abi 1KB
KVTable.abi 550B
Asset.abi 546B
HelloWorld.abi 487B
TableFactory.abi 417B
KVTableFactory.abi 417B
hello_world.abi 378B
Entries.abi 314B
Asset 88B
Asset.bin 16KB
SimpleInfo.bin 8KB
Asset.bin 5KB
HelloWorld.bin 2KB
TableFactory.bin 0B
Entries.bin 0B
Table.bin 0B
Condition.bin 0B
KVTableFactory.bin 0B
Entry.bin 0B
KVTable.bin 0B
litenote.c 113KB
test_tassl.c 13KB
sm3.c 11KB
wrap_test.c 32B
call 0B
CHANGELOG 26B
config 302B
py_ssock_wrap.cpp 159KB
tassl_sock_wrap_win.cpp 18KB
tassl_sock_wrap.cpp 17KB
test_tassl_sock.cpp 4KB
test_native.cpp 4KB
test_native.cpp 3KB
native_tassl_sock_wrap.cpp 3KB
test_tassl_sock.cpp 3KB
test_simple.cpp 2KB
client_tools.cpp 2KB
libtest.cpp 2KB
clib.cpp 1KB
wrap_test.cpp 868B
ssock_wrap.cpp 852B
litenote.cpp 174B
ca.crt 1KB
sdk.crt 1KB
description 73B
libeay32.dll 2.99MB
libpython3.8.dll 2.75MB
libstdc++-6.dll 1.67MB
ssleay32.dll 754KB
native_tassl_sock_wrap.dll 379KB
libtassl_sock_wrap.dll 340KB
libgcc_s_seh-1.dll 80KB
libwinpthread-1.dll 57KB
cython_tassl_sock_wrap-cpython-38.dll 44KB
Dockerfile 1KB
exclude 240B
ssock_wrap.exp 3KB
.gitignore 2KB
.gitignore 1KB
bin_NhKj3p.tar.gz 4.97MB
sm3.h 3KB
native_tassl_sock_wrap.h 2KB
tassl_sock_wrap.h 2KB
tassl_sock_wrap.h 2KB
native_tassl_sock_wrap_api_def.h 2KB
clib.h 478B
ssock_wrap.h 343B
client_tools.h 192B
litenote.h 107B
test.h 48B
HEAD 191B
HEAD 191B
HEAD 32B
HEAD 23B
pack-6621c9590fedc4023bdee124319a927c7f486b79.idx 56KB
pack-062b1a2b1e71afee70a0b65a4df451d34a8aa323.idx 48KB
MANIFEST.in 144B
index 39KB
contract.ini 2KB
tox.ini 926B
bcos3_sdk_config_sample.ini 667B
clog.ini 215B
pytest.ini 188B
total.jpg 180KB
receipt.json 3KB
tx_simpleinfo_set.json 791B
gm_account.json 318B
error.json 152B
共 1020 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
奇奇妙妙屋
- 粉丝: 15
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功