mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 07:25:10 +00:00
Created project directory, app.go and connect.go files. Reused the logic for connect.go from the events application and added second organization setup. Implemented private data transaction example in go as described in the main documentation in "Tutorials/Using Private Data in Fabric". Updated README.md with the command to run the go application and the script which runs the application in the Github Actions workflow. Fixed typos and punctuation in the private data typescript application. Signed-off-by: Stanislav Jakuschevskij <stas@two-giants.com>
79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
# Asset transfer private data sample
|
|
|
|
The asset transfer private data sample demonstrates:
|
|
|
|
- Usage of organization private data collections
|
|
- Read data from the organization private data collection.
|
|
- Store data in organization private data collection.
|
|
|
|
For more information about private data, visit the
|
|
[Private Data](https://hyperledger-fabric.readthedocs.io/en/latest/private-data-arch.html)
|
|
page in the Fabric documentation.
|
|
|
|
## About the sample
|
|
|
|
This sample includes smart contract and application code in multiple languages. In a use-case similar to basic asset transfer (see [asset-transfer-basic](../asset-transfer-basic) folder) this sample shows sending and receiving of asset along with its private data owned by organizations during create / delete of an asset , and during transfer of an asset to a new owner.
|
|
|
|
### Application
|
|
|
|
Please refer the below link to understand the application flow.
|
|
https://hyperledger-fabric.readthedocs.io/en/latest/private-data/private-data.html#example-scenario-asset-transfer-using-private-data-collections
|
|
|
|
### Smart Contract
|
|
|
|
The smart contract (in folder `chaincode-xyz`) implements the following functions to support the application:
|
|
|
|
CreateAsset
|
|
AgreeToTransfer
|
|
TransferAsset
|
|
DeleteAsset
|
|
DeleteTranferAgreement
|
|
|
|
ReadAsset
|
|
ReadAssetPrivateDetails
|
|
ReadTransferAgreement
|
|
GetAssetByRange
|
|
QueryAssetByOwner
|
|
QueryAssets
|
|
getQueryResultForQueryString
|
|
|
|
## Running the sample
|
|
|
|
Like other samples, the Fabric test network is used to deploy and run this sample. Follow these steps in order:
|
|
|
|
1. Create the test network and a channel (from the `test-network` folder).
|
|
```
|
|
./network.sh up createChannel -c mychannel -ca
|
|
```
|
|
|
|
2. Deploy one of the smart contract implementations (from the `test-network` folder).
|
|
```
|
|
# To deploy the Java chaincode implementation
|
|
./network.sh deployCC -ccn private -ccp ../asset-transfer-private-data/chaincode-java -ccl java -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -cccg '../asset-transfer-private-data/chaincode-java/collections_config.json' -ccep "OR('Org1MSP.peer','Org2MSP.peer')"
|
|
|
|
# To deploy the go chaincode implementation
|
|
./network.sh deployCC -ccn private -ccp ../asset-transfer-private-data/chaincode-go -ccl go -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -cccg '../asset-transfer-private-data/chaincode-go/collections_config.json' -ccep "OR('Org1MSP.peer','Org2MSP.peer')"
|
|
|
|
# To deploy the typescript chaincode implementation
|
|
./network.sh deployCC -ccn private -ccp ../asset-transfer-private-data/chaincode-typescript/ -ccl typescript -ccep "OR('Org1MSP.peer','Org2MSP.peer')" -cccg ../asset-transfer-private-data/chaincode-typescript/collections_config.json
|
|
```
|
|
|
|
3. Run the application (from the `asset-transfer-private-data` folder).
|
|
```
|
|
# To run the Typescript sample application
|
|
cd application-gateway-typescript
|
|
npm install
|
|
npm start
|
|
|
|
# To run the Go sample application
|
|
cd application-gateway-go
|
|
go run .
|
|
```
|
|
|
|
## Clean up
|
|
|
|
When you are finished, you can bring down the test network (from the `test-network` folder). The command will remove all the nodes of the test network, and delete any ledger data that you created.
|
|
|
|
```
|
|
./network.sh down
|
|
```
|