- In CreateAsset, await was never called on putState causing issues
especially with tools such as caliper and is not correct practice.
Unfortunately all the other examples use `return` which works but is
actually not the idiomatic way of handling promises, so here await is
chosen rather than return
Signed-off-by: D <d_kelsey@uk.ibm.com>
Co-authored-by: D <d_kelsey@uk.ibm.com>
Peers and Orderers by default disable Go pprof profiling, however test
network was enabling pprof in peers by default. As a good practice,
pprof should be disabled by default and only enabled when needed
for debug profiling.
Signed-off-by: David Enyeart <enyeart@us.ibm.com>
* Enable TLS on asset-transfer-basic external chaincode
1. Introduce environment variables to enable or disable TLS
at runtime. Also, introduce environment variables which carries
the server key, cert and the client machine's root CA cert
information.
2. Read the environment variables to decide with appropriate
assumptions on default values to work as is today.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
* Update the chaincode.env with new options
1. Introduce four new environment variables to the default
chaincode environment file.
2. Add two new environment files for easy/automation running
of the external chaincodes for different organizations.
Note that when TLS enabled, the package contents will change.
So each organization will have their own package ID
generated unlike earlier. Also, there will be two chaincode
containers running instead of one for the given example.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
* Add docker compose file for running chaincodes
The file will build and run the chaincode on the fly.
Also, it will make use of the available files which is
configured by the user as part of execution. This will
help in bringup/bringdown of the chaincode containers.
In addition, it will help in updating the environment
variables on the go.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
* Introduce crypto directory and ignore the pem contents
The directory is used by the docker-compose file for
automation. Instructions in the README.md file will
suffice the filling up of required files in this directory.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
* Instructions on TLS enabled external chaincode server
1. Add instructions to generate a chaincode server TLS
parameters.
2. Add instructions on different parameters that peer node
expects and the chaincode expects.
3. Add instructions on steps to be followed in asset-transfer
-basic to work with iTLS enabled exteral chaincode.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
* Enable chaincode to work without TLS as well
1. Root certificate is an optional parameter supplied for
chaincode to verify the peer's connection in response.
2. If TLS is enabled, then specify the key and cert
parameters. Do not expect it otherwise.
Signed-off-by: S m, Aruna <arun.s.m.cse@gmail.com>
Using the ERC-20 sample, you can submit a transfer to and from
the same account. Because the code doesn't handle this, it ends
up minting new tokens into that account.
The correct behaviour is not specified by the ERC-20 specification,
although the OpenZeppelin implementation seems to permit it.
IMO we should just block it with an error because I can't see a use
case for allowing it and it is most likely a user error.
Signed-off-by: Simon Stone <sstone1@uk.ibm.com>
This PR adds a new non-fungible token sample using ERC721
functionalities. It includes javascript Chaincode and the README
explaining how to mint and transfer a non-fungible token in the
Fabric's test-network.
Signed-off-by: Yuki Kondo <yuki.kondo.ob@hitachi.com>
The `-i` flag was originally added to support an
upgrade sample. Since that sample is no longer available
remove the `-i` flag to clean up the network.sh options
and avoid confusion as it's possible now to specify
an image version that is no longer backwards compatible
with the new test-network with osnadmin.
Signed-off-by: Brett Logan <lindluni@github.com>
The new lint.sh script no longer requires the use
of a matrix and instead dynamically finds and lints
directories.
Signed-off-by: Brett Logan <lindluni@github.com>
Fix a small linting issue and add the es6 tag to handle
the return of a Promise as it is not defined in the ECMA
spec.
Signed-off-by: Brett Logan <lindluni@github.com>
The auction example had no ESLint configuration.
This change adds a .eslintrc.js file that matches
the rest of the projects.
This change also fixes all the linting issue in
the auction example.
Signed-off-by: Brett Logan <lindluni@github.com>
Add a service label to all containers launch by compose.
This allows us to filter on the label for removing running
containers.
Use filtering for querying running containers and
images to make sure we only target the containers
and images we want to remove.
Signed-off-by: Brett Logan <lindluni@github.com>
There have been lots of changes and quirks with the
docker-compose .env file, this change removes the file
and explicitly creates and assigns the networks in the
compose yaml files.
Signed-off-by: Brett Logan <lindluni@github.com>
* Fix creating channel when ${PWD} contains space.
If the path of the project contains spaces, the "test-network/scripts/envVar.sh" script sets the value of "$ORDERER_CA" to a value containg "${PWD}" which, in turn, contains space(s).
When the variable used in "test-network/scripts/createChannel.sh", The first part of the value (before the first space) is handled as the whole value for "--cafile". Other parts are considered to be part of the command!
I tried putting (escaped) quotes in the "test-network/scripts/envVar.sh" definition for the variable "$ORDERER_CA" to make the fix more general, but the quotation marks were sometime interpreted to be part of the path that consisted of concatenated parts somewhere and it did not work.
While this edit will fix this issue, I belive this is just a work around. I expect that there is a better way to solve the root cause of the problem instead of just fixing it in one place. Moreover, All variables/paths that may include spaces should be properly handled as well.
Thanks
Signed-off-by: Waleed Mortaja <waleedmortaja@protonmail.com>
* Double quote variables evaluations that depends on $PWD
I tried to handle most (if not all) of the variables evaluations in the project that depends on $PWD by wrapping them in double-quotations to avoid values that contains white spaces.
Some lines I was not sure if they are Okay or not but I left them as they are. Samples (not all lines) as follows:
- commercial-paper/network-clean.sh:15:DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- commercial-paper/network-starter.sh:15:DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- asset-transfer-basic/chaincode-javascript/node_modules/fabric-shim/coverage/fabric-shim/lib/chaincode.js.html:997: optsCpy.pem = fs.readFileSync(process.env.CORE_PEER_TLS_ROOTCERT_FILE).toString();
- commercial-paper/organization/digibank/digibank.sh:29:export PEER_PARMS="${PEER_CONN_PARMS##*( )}"
The next sample I was not really sure, but still edited it:
- test-network/addOrg3/fabric-ca/registerEnroll.sh:68: cp ${PWD}/../organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/tlscacerts/* ${PWD}/../organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
I deliberately ignored some lines because I think they are not problem. These lines include:
- `export` sentences
- assignment sentences like: test-network/scripts/createChannel.sh:48: FABRIC_CFG_PATH=$PWD/../config/
- gradlew files: the line SAVED="`pwd`"
- gradlew files: the line APP_HOME="`pwd -P`"
- gradlew files: the line CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
Signed-off-by: Waleed Mortaja <waleedmortaja@protonmail.com>
* remove unnecessary leading space trimming
Signed-off-by: Waleed Mortaja <waleedmortaja@protonmail.com>
* resolved conflict with master
Co-authored-by: Arnaud J Le Hors <lehors@us.ibm.com>
Update all of the Node deps to 2.2.<latest>
and regenerate existing package-lock.json files
Signed-off-by: Brett Logan <brett.t.logan@ibm.com>
Co-authored-by: Brett Logan <brett.t.logan@ibm.com>
* Remove Org3cli from test-network
FAB-18381
Signed-off-by: Will Lahti <wtlahti@us.ibm.com>
* Remove configtx.yaml anchor peers from test-network
These values were only used by configtxgen's --outputAnchorPeerUpdate
function and should not be set in a channel genesis block This is because
a peer cannot be an anchor peer for a channel until it has joined that
channel and it can't join a channel until the genesis block has been
created.
FAB-18381
Signed-off-by: Will Lahti <wtlahti@us.ibm.com>
* Stop using deprecated outputAnchorPeersUpdate in test-network
FAB-18381
Signed-off-by: Will Lahti <wtlahti@us.ibm.com>
* Improve consistency of test-network output
Signed-off-by: Will Lahti <wtlahti@us.ibm.com>
Instead of mounted the entire /var/run directory
explicitly mount the unix socket. Mounting the entire
directory causes issues with future versions of Docker
on some platforms.
Signed-off-by: Brett Logan <brett.t.logan@ibm.com>