fabric-samples/asset-transfer-secured-agreement
Mark S. Lewis 63cc77bdc3
Avoid usage of deprecated ioutil Go package (#843)
* Refactor Go files
1. replace deprecated ioutil functions (ioutil is deprecated since Go 1.16)
2. fix variable names that collide with imported package name
3. fix typos

Also update Go version specified by Go modules to ensure a Go version is used in which ioutil is deprecated and replacement functions are available in os and io packages.

Signed-off-by: Tommy TIAN <xtianae@connect.ust.hk>
Co-authored-by: Mark S. Lewis <mark_lewis@uk.ibm.com>

* Specify go 1.18 instead of go 1.19 in go.mod files

Signed-off-by: Mark S. Lewis <mark_lewis@uk.ibm.com>

Signed-off-by: Tommy TIAN <xtianae@connect.ust.hk>
Signed-off-by: Mark S. Lewis <mark_lewis@uk.ibm.com>
Co-authored-by: Tommy TIAN <xtianae@connect.ust.hk>
2022-10-25 07:04:39 -04:00
..
application-gateway-typescript Update samples to use fabric-gateway v1.1.1 (#842) 2022-10-20 17:43:55 +01:00
application-javascript Update secured asset transfer sample (#781) 2022-07-13 14:09:14 -04:00
chaincode-go Avoid usage of deprecated ioutil Go package (#843) 2022-10-25 07:04:39 -04:00
README.md updated and improved asset-transfer-secured-agreement sample (#751) 2022-05-26 13:42:01 +01:00

Asset transfer secured agreement sample

The asset transfer events sample demonstrates how to transfer a private asset between two organizations without publicly sharing data .

About the sample

This sample includes smart contract and application code in multiple languages. This sample shows how Fabric features state based endorsement, private data, and access control to provide secured transactions.

Application

Refer Secured asset transfer in Fabric for application details .

Smart Contract

The smart contract (in folder chaincode-go) implements the following functions to support the application:

  • CreateAsset
  • ChangePublicDescription
  • AgreeToSell
  • AgreeToBuy
  • VerifyAssetProperties
  • TransferAsset
  • ReadAsset
  • GetAssetPrivateProperties
  • GetAssetSalesPrice
  • GetAssetBidPrice
  • GetAssetHashId
  • QueryAssetSaleAgreements
  • QueryAssetBuyAgreements
  • QueryAssetHistory

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 the smart contract implementations.

    # To deploy the go chaincode implementation
    ./network.sh deployCC -ccn secured -ccp ../asset-transfer-secured-agreement/chaincode-go/ -ccl go -ccep "OR('Org1MSP.peer','Org2MSP.peer')"
    
  3. Run the application (from the asset-transfer-secured-agreement folder).

    # To run the Typescript sample application
    cd application-gateway-typescript
    npm install
    npm start
    
    # To run the Javascript sample application
    cd application-javascript
    node app.js
    

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