mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-20 16:45:09 +00:00
As the Typescript examples are essentially just reiterations of the same Javascript code, there is no benefit to having providing examples in both languages. The functional code was exactly the same in both languages. On the contrary it meant we widened the surface of maitainence and thus we are removing due to the limited benefit provided by the example chaincode and applications. Signed-off-by: Brett Logan <brett.t.logan@ibm.com>
100 lines
3.2 KiB
Bash
Executable file
100 lines
3.2 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Copyright IBM Corp All Rights Reserved
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Exit on first error
|
|
set -e
|
|
|
|
# don't rewrite paths for Windows Git Bash users
|
|
export MSYS_NO_PATHCONV=1
|
|
starttime=$(date +%s)
|
|
CC_SRC_LANGUAGE=${1:-"go"}
|
|
CC_SRC_LANGUAGE=`echo "$CC_SRC_LANGUAGE" | tr [:upper:] [:lower:]`
|
|
|
|
if [ "$CC_SRC_LANGUAGE" = "go" -o "$CC_SRC_LANGUAGE" = "golang" ] ; then
|
|
CC_SRC_PATH="../chaincode/fabcar/go/"
|
|
elif [ "$CC_SRC_LANGUAGE" = "javascript" ]; then
|
|
CC_SRC_PATH="../chaincode/fabcar/javascript/"
|
|
elif [ "$CC_SRC_LANGUAGE" = "java" ]; then
|
|
CC_SRC_PATH="../chaincode/fabcar/java"
|
|
else
|
|
echo The chaincode language ${CC_SRC_LANGUAGE} is not supported by this script
|
|
echo Supported chaincode languages are: go, java, and javascript
|
|
exit 1
|
|
fi
|
|
|
|
# clean out any old identites in the wallets
|
|
rm -rf javascript/wallet/*
|
|
rm -rf java/wallet/*
|
|
rm -rf go/wallet/*
|
|
|
|
# launch network; create channel and join peer to channel
|
|
pushd ../test-network
|
|
./network.sh down
|
|
./network.sh up createChannel -ca -s couchdb
|
|
./network.sh deployCC -ccn fabcar -ccv 1 -cci initLedger -ccl ${CC_SRC_LANGUAGE} -ccp ${CC_SRC_PATH}
|
|
popd
|
|
|
|
cat <<EOF
|
|
|
|
Total setup execution time : $(($(date +%s) - starttime)) secs ...
|
|
|
|
Next, use the FabCar applications to interact with the deployed FabCar contract.
|
|
The FabCar applications are available in multiple programming languages.
|
|
Follow the instructions for the programming language of your choice:
|
|
|
|
JavaScript:
|
|
|
|
Start by changing into the "javascript" directory:
|
|
cd javascript
|
|
|
|
Next, install all required packages:
|
|
npm install
|
|
|
|
Then run the following applications to enroll the admin user, and register a new user
|
|
called appUser which will be used by the other applications to interact with the deployed
|
|
FabCar contract:
|
|
node enrollAdmin
|
|
node registerUser
|
|
|
|
You can run the invoke application as follows. By default, the invoke application will
|
|
create a new car, but you can update the application to submit other transactions:
|
|
node invoke
|
|
|
|
You can run the query application as follows. By default, the query application will
|
|
return all cars, but you can update the application to evaluate other transactions:
|
|
node query
|
|
|
|
Java:
|
|
|
|
Start by changing into the "java" directory:
|
|
cd java
|
|
|
|
Then, install dependencies and run the test using:
|
|
mvn test
|
|
|
|
The test will invoke the sample client app which perform the following:
|
|
- Enroll admin and appUser and import them into the wallet (if they don't already exist there)
|
|
- Submit a transaction to create a new car
|
|
- Evaluate a transaction (query) to return details of this car
|
|
- Submit a transaction to change the owner of this car
|
|
- Evaluate a transaction (query) to return the updated details of this car
|
|
|
|
Go:
|
|
|
|
Start by changing into the "go" directory:
|
|
cd go
|
|
|
|
Then, install dependencies and run the test using:
|
|
go run fabcar.go
|
|
|
|
The test will invoke the sample client app which perform the following:
|
|
- Import user credentials into the wallet (if they don't already exist there)
|
|
- Submit a transaction to create a new car
|
|
- Evaluate a transaction (query) to return details of this car
|
|
- Submit a transaction to change the owner of this car
|
|
- Evaluate a transaction (query) to return the updated details of this car
|
|
|
|
EOF
|