Hyperledger Fabric v2.x基础网络开发-API篇

Coding Alan 4年前 (2021-05-09) 3217次浏览 0个评论 扫描二维码

Fabric SDK

  • 与Fabric网络交互
    • fabric-client:已淘汰,v1.4中使用它开发的客户端仍可与 v2.x 进行交互但无法使用 v2.x的新功能
    • fabric-network:推荐使用
  • 管理和治理
    • fabric-client 中的 tx api 由 fabric-common 取代
    • fabric-client 中的链码管理 api 由fabric-admin 取代

jwt: https://jwt.io/

header+payload+signature

本文中的代码参见:https://github.com/alanhou/blockchain/tree/main/fabric-network

api-v1.4

注册用户

通过向 http://localhost:4000/users 提交 post 请求即可注册用户(首次注册会默认注册一个 admin),并在crypto和fabric-client-kv-xxx 中生成相应的文件:

Hyperledger Fabric v2.x基础网络开发-API篇

此时获取的 token 用作稍后请求时携带的 JWT 参数

交易调用

示例:POST http://192.168.xx.xxx:4000/channels/mychannel/chaincodes/fabcar

BODY(通过修改参数中最后一个字段即相关将所有权转让)

RESPONSE

Hyperledger Fabric v2.x基础网络开发-API篇

根据 id 查询内容

示例: GET http://192.168.xx.xxx:4000/channels/mychannel/chaincodes/fabcar?args=%5B“SuperCar”%5D&peer=peer0.org1.alanhou.org&fcn=queryCar

RESPONSE

交易更新操作

示例:POST http://192.168.xx.xxx:4000/channels/mychannel/chaincodes/fabcar

BODY

RESPONSE

根据交易id 查询交易内容

示例: GET http://192.168.xx.xxx:4000/channels/mychannel/transactions/921c7a68cb2355b5c30e3d22f27ab9d51c0a2dadbeae28225f94b3e624995f8e?peer=peer0.org1.alanhou.org

RESPONSE

Hyperledger Fabric v2.x基础网络开发-API篇

根据区块编号查询区块内容

示例: GET http://192.168.xx.xxx:4000/channels/mychannel/blocks/6?peer=peer0.org1.alanhou.org

RESPONSE

Hyperledger Fabric v2.x基础网络开发-API篇

查询资产历史交易

示例: GET http://192.168.xx.xxx:4000/channels/mychannel/chaincodes/fabcar?args=%5B“SuperCar”%5D&peer=peer0.org1.alanhou.org&fcn=getHistoryForAsset

RESPONSE

Composite Key

首先使用同一个人多次调用 createCar(之后再调用 changeCarOwner 不受影响)

Hyperledger Fabric v2.x基础网络开发-API篇

示例: GET http://192.168.xx.xxx:4000/channels/mychannel/chaincodes/fabcar?args=%5B“John”%5D&peer=peer0.org1.alanhou.org&fcn=queryCarsByOwner

RESPONSE

区块链浏览器

Hyperledger Fabric v2.x基础网络开发-API篇

logger

基于属性的权限控制

Ledger账本

账本是一个数据库,由两部分组成

版本号可参见数据中_rev 字段横杠前的部分

Hyperledger Fabric v2.x基础网络开发-API篇

更新链码

将更新后的链码上传到相应目录,然后修改 deploy-chaincode.sh 中的 version 重新执行即可,更新后镜像中的数字也会发生变化:

dev-peer0.org2.alanhou.org-fabcar_2-xxx

api-v2.x

在connection-org1.json和connection-org2.json中配置tlsCACerts,需使用单行模式(原换行替换为\n),证书示例地址为crypto-config/peerOrganizations/org1.alanhou.org/tlsca/tlsca.org1.alanhou.org-cert.pem

注册用户

通过向 http://localhost:4000/users 提交 post 请求即可注册用户(首次注册会默认注册一个 admin),并在xxx-wallet 中生成相应的文件,其中的 xxx 与orgName的值有关

参见api-1.4部分执行交易调用、交易更新操作、根据 id 查询内容

生成证书

Hyperledger Fabric v2.x基础网络开发-API篇

在线测试工具

Hyperledger Fabric v2.x基础网络开发-API篇

参见 app/sign-tx.js

手动创建证书部署链码

Hyperledger Fabric v2.x基础网络开发-API篇

 

常见问题

1、Failed to invoke chaincode. cause:Failed to send Proposal and receive all good ProposalResponse

可能是由于重新部署了节点,但未清除前端项目下的crypto和fabric-client-kv-xxx目录

Credit: https://www.youtube.com/c/PavanAdhav

Section 3 – Dive In to Network

喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址