FISCO-BCOS-Python-SDK 在window系统的安装

官网文档说明:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/sdk/python_sdk/install.html

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

1、环境要求

  Python:3.0 +

  Microsoft Visual C++ ,下载地址:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

  solc编译器,下载地址

2、源码下载

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

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

3、配置solc编译器

   修改client_config.py.template,配置solc编译器路径,solc二进制下载请参考bcos_solc.py中的描述,

# ---------runtime related--------------
# path of solc compiler
solc_path = "D:\Program Files (x86)\solidity-windows\solc.exe"

  将client_config.py.template拷贝为client_config.py

4、安装Python-SDK依赖

pip install -r requirements.txt

#若网络失败,使用以下命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

5、配置Channel信息以及证书

  将client_config.py 文件中channel_host为实际的IP,channel_portchannel_listen_port

  IP和端口在,在BOS部署机器的节点目录下config.ini 文件中获取 

 # ---------client communication config--------------
 client_protocol = "channel"  # or PROTOCOL_CHANNEL to use channel prototol
 # client_protocol = PROTOCOL_CHANNEL
 remote_rpcurl = "http://192.168.31.129:8545"  # 采用rpc通信时,节点的rpc端口,和要通信的节点*必须*一致,如采用channel协议通信,这里可以留空
 channel_host = "192.168.31.129"  # 采用channel通信时,节点的channel ip地址,如采用rpc协议通信,这里可以留空
 channel_port = 20200  # 节点的channel 端口,如采用rpc协议通信,这里可以留空

  将节点sdk目录下的所以文件拷贝到bin目录下

6、验证

  到此python-sdk环境以搭建完成

  在此项目的目录下,打开cmd,可通过以下命令进行验证

python console.py list

输出结果如下说明成功:

INFO >> user input : ['list']

 : RPC commands
    [getNodeVersion]
    [getBlockNumber]
    [getPbftView]
    [getSealerList]
    [getObserverList]
    [getConsensusStatus]
    [getSyncStatus]
    [getPeers]
    [getGroupPeers]
    [getNodeIDList]
    [getGroupList]
    [getPendingTxSize]
    [getTotalTransactionCount]
    [getPendingTransactions]
    [getBlockHashByNumber] [number]
    [getTransactionByHash] [hash] [contract_name]
    [getTransactionReceipt] [hash] [contract_name]
    [getCode] [contract_address]
    [getTransactionByBlockHashAndIndex] [blockHash] [transactionIndex] [contract_name]
    [getTransactionByBlockNumberAndIndex] [blockNumber] [transactionIndex] [contract_name]
    [getSystemConfigByKey] [tx_count_limit/tx_gas_limit]
    [getBlockByNumber] [blockNumber] True/False
    [getBlockByHash] [blockHash] True/False

7、API说明

接口名

描述

参数

getNodeVersion

获取区块链节点版本信息

getBlockNumber

获取最新块高

getPbftView

获取PBFT视图

getSealerList

获取共识节点列表

getObserverList

获取观察者节点列表

getConsensusStatus

获取区块链节点共识状态

getSyncStatus

获取区块链节点同步状态

getPeers

获取区块链节点的连接信息

getGroupPeers

获取指定群组的共识节点
和观察节点列表

getNodeIDList

获取节点及其连接节点的列表

getGroupList

获取节点所属群组的群组ID列表

getBlockByHash

根据区块哈希获取区块信息

区块哈希

getBlockByNumber

根据区块高度获取区块信息

区块高度

getBlockHashByNumber

根据区块高度获取区块哈希

区块高度

getTransactionByHash

根据交易哈希获取交易信息

交易哈希

getTransactionByBlockHashAndIndex

根据交易所属的区块哈希、
交易索引获取交易信息

交易所属的区块哈希
交易索引

getTransactionByBlockNumberAndIndex

根据交易所属的区块高度、
交易索引获取交易信息

交易所属的区块高度
交易索引

getTransactionReceipt

根据交易哈希获取交易回执

交易哈希

getPendingTransactions

获取交易池内所有未上链的交易

getPendingTxSize

获取交易池内未上链的交易数目

getCode

根据合约地址查询的合约数据

合约地址

getTotalTransactionCount

获取指定群组的上链交易数目

getSystemConfigByKey

获取系统配置

系统配置关键字
如:
- tx_count_limit
- tx_gas_limit

deploy

部署合约

合约binary code

call

调用合约

合约地址
合约abi
调用接口名称
参数列表

sendRawTransaction

发送交易

合约地址
合约abi
接口名
参数列表
合约binary code

sendRawTransactionGetReceipt

发送交易
并获取交易执行结果

合约地址
合约abi接口名
参数列表
合约binary code

备注:

sendRawTransaction ,在脚本中使用的是 sendtx ,详见 console_utils/cmd_transaction.py 

sendtx [contractname] [address] [func] [args...]
发送交易调用指定合约的接口,交易如成功,结果会写入区块和状态,address可以是last或latest,表示调用最近部署的该合约实例

原文地址:https://www.cnblogs.com/luyilan/p/15104505.html