- 创建Client的方式:
- 先配置文件路径:
- 初始化SDK并获取Client:
- BcosSDK:总管理工具
- Client:与区块链交互的核心对象
- 群组1:链接到群组1的链
二、三种链上合约函数调用方法 + 两种链状态信息获取方法
- 获取客户端与区块信息(基础查询)
- 区块高度、交易数、区块详情、链状态
- 区块高度
- 静态调用合约:
- 必须有java合约类(如:AccountContract.java)
- Client.getCryptoSuite():获取该群组的加密规则(接口)
- Client.getCrytoKeyPair():通过加密接口读取密钥
- Contract.deploy(合约地址,client,keyPair):部署新合约
- Contract.load(合约地址,client,keyPair):加载已部署合约
- 加载已部署合约:【注:createAccount是合约中的合约函数】
- 部署新合约:【注:AccountContract是链上合约的封装类】
- 动态调用合约:
- 参数(合约名、合约地址、方法名、函数传参)
- AssembleTractionProcessor:交易处理
- TransactionProcessionFractory:创建并获取交易处理器实例
- 交易签名与发送(底层交易)
- TransactionEncoder:签名器
- encoder.transactionEncoder(xxx):创建合约函数交易,签名并返回去签名字符串
- txHash:交易哈希(这比交易在链上的唯一ID)
注:data中包含“合约函数”与“合约参数”
- 事件监听(Event/Log)事件
- 监听合约抛出的事件(转账、账户创建事件)
- subscribeBlockEvent:当区块链出现新事件时会产生通知信息(返回区块数)
- 完整展示:
Client合约调用方法: