fabric-samples/asset-transfer-basic
Mark S. Lewis 86c71099cb
Simplify Java client error-handling example
The latest fabric-gateway client API release (v1.7.0) includes the gRPC error
details in the GatewayExcetion stack trace so it is not necessary to
programmatically access them to demonstrate that they are present.

This change updates the asset-transfer-basic/application-gateway-java
sample to simplify the updateNonExistentAsset example method. It also:

- Updates all samples to use the latest fabric-gateway release.
- Adds equivalent Maven POM files for fabric-gateway application samples.

Signed-off-by: Mark S. Lewis <Mark.S.Lewis@outlook.com>
2024-10-20 01:49:34 +01:00
..
application-gateway-go Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
application-gateway-java Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
application-gateway-javascript Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
application-gateway-typescript Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
chaincode-external Consistent Go version in go.mod and go.work files 2024-10-14 10:25:34 -04:00
chaincode-go Consistent Go version in go.mod and go.work files 2024-10-14 10:25:34 -04:00
chaincode-java Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
chaincode-javascript Use more specific chaincode package versions 2024-06-14 00:24:08 -04:00
chaincode-typescript Update TypeScript implementations 2024-06-18 06:51:58 -04:00
rest-api-go Simplify Java client error-handling example 2024-10-20 01:49:34 +01:00
rest-api-typescript Update TypeScript implementations 2024-06-18 06:51:58 -04:00
.gitignore Adding NodeJS app for asset-transfer-basic sample. (#206) 2020-06-30 15:36:47 -04:00
README.md Add JavaScript asset-transfer-basic application 2024-06-21 12:16:31 -04:00

Asset transfer basic sample

The asset transfer basic sample demonstrates:

  • Connecting a client application to a Fabric blockchain network.
  • Submitting smart contract transactions to update ledger state.
  • Evaluating smart contract transactions to query ledger state.
  • Handling errors in transaction invocation.

About the sample

This sample includes smart contract and application code in multiple languages. This sample shows create, read, update, transfer and delete of an asset.

For a more detailed walk-through of the application code and client API usage, refer to the Running a Fabric Application tutorial in the main Hyperledger Fabric documentation.

Application

Follow the execution flow in the client application code, and corresponding output on running the application. Pay attention to the sequence of:

  • Transaction invocations (console output like "--> Submit Transaction" and "--> Evaluate Transaction").
  • Results returned by transactions (console output like "*** Result").

Smart Contract

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

  • CreateAsset
  • ReadAsset
  • UpdateAsset
  • DeleteAsset
  • TransferAsset

Note that the asset transfer implemented by the smart contract is a simplified scenario, without ownership validation, meant only to demonstrate how to invoke transactions.

Running the sample

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 TypeScript chaincode implementation:

      ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-typescript/ -ccl typescript
      
    • To deploy the JavaScript chaincode implementation:

      ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-javascript/ -ccl javascript
      
    • To deploy the Go chaincode implementation:

      ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go/ -ccl go
      
    • To deploy the Java chaincode implementation:

      ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java/ -ccl java
      
  3. Run the application (from the asset-transfer-basic folder).

    • To run the TypeScript sample application:

      cd application-gateway-typescript
      npm install
      npm start
      
    • To run the JavaScript sample application:

      cd application-gateway-javascript
      npm install
      npm start
      
    • To run the Go sample application:

      cd application-gateway-go
      go run .
      
    • To run the Java sample application:

      cd application-gateway-java
      ./gradlew 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