原文地址:http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html
Setting up a Development Environment
First, remove the containers:
docker rm -f $(docker ps -aq)
Next, delete the chaincode image:
docker rmi dev-peer0.org1.example.com-fabcar-1.0
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/fabcar
使用startFabric.sh脚本启动网络。此脚本下载并提取Fabric Docker图像,因此需要几分钟时间才能完成:
./startFabric.sh
最后一件事。我们需要安装SDK(软件开发工具包)节点模块:
npm install
How Applications Interact with the Network
开人员更有兴趣了解应用程序的功能,现在最重要的是应用程序使用软件开发工具包(SDK)访问允许查询和更新分类帐的API。
Querying the Ledger
查询是如何从分类帐中读取数据。该数据存储为一系列键/值对,您可以查询单个键,多个键的值,或者 - 如果分类帐以丰富的数据存储格式(如JSON)编写 - 对其执行复杂的搜索(寻找包含某些关键字的所有资产)。
下图表示查询是如何工作的:
智能合约Init方法在智能合约被区块链网络实例化时调用
每次当有请求调用智能合约时,会调用Invoke函数
Updating the Ledger
Chaincode for Developers
参考文档:http://hyperledger-fabric.readthedocs.io/en/latest/chaincode4ade.html
智能合约接口: https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#Chaincode
“shim”API: https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStub
Chaincode for Operators
智能合约的生命周期
Hyperledger Fabric API支持块链网络中的各种节点(peer,orderer和MSP)进行交互,并且还允许在批准的peer节点上进行包装,安装,实例化和升级智能合约。 Hyperledger Fabric语言特定的SDK抽象了Hyperledger Fabric API的细节,以促进应用程序开发,尽管它可以用于管理智能合约的生命周期。此外,Hyperledger Fabric API可以通过CLI直接访问,我们将在本文档中使用。
我们提供四个命令来管理链码的生命周期:包,安装,实例化和升级。
封装
安装
交易封装了智能合约的源码用规定好的格式称作CSD,在通道中的每一个peer节点安装CSD,这些节点会运行智能合约。
peer chaincode install -n asset_mgmt -v 1.0 -p sacc
实例化
升级