new README and new chaincode Lifecycle

Signed-off-by: jchen8tw <11806483+jchen8tw@users.noreply.github.com>
This commit is contained in:
jchen8tw 2020-08-13 20:17:57 +08:00
parent f361386231
commit 044e5b78ef
16 changed files with 145 additions and 112 deletions

View file

@ -71,39 +71,9 @@ can jump immediately to the chaincode calls.
.. note:: TLS is not enabled as it is not supported when running chaincode in dev mode. .. note:: TLS is not enabled as it is not supported when running chaincode in dev mode.
Terminal 2 - Build & start the chaincode Terminal 2 - Install the chaincode
---------------------------------------- ----------------------------------------
.. code:: bash
docker exec -it chaincode sh
You should see the following:
.. code:: sh
/opt/gopath/src/chaincode $
Now, compile your chaincode:
.. code:: sh
cd abstore/go
go build -o abstore
Now run the chaincode:
.. code:: sh
CORE_CHAINCODE_ID_NAME=mycc:0 CORE_PEER_TLS_ENABLED=false ./abstore -peer.address peer:7052
The chaincode is started with peer and chaincode logs indicating successful registration with the peer.
Note that at this stage the chaincode is not associated with any channel. This is done in subsequent steps
using the ``instantiate`` command.
Terminal 3 - Use the chaincode
------------------------------
Even though you are in ``--peer-chaincodedev`` mode, you still have to install the Even though you are in ``--peer-chaincodedev`` mode, you still have to install the
chaincode so the life-cycle system chaincode can go through its checks normally. chaincode so the life-cycle system chaincode can go through its checks normally.
This requirement may be removed in future when in ``--peer-chaincodedev`` mode. This requirement may be removed in future when in ``--peer-chaincodedev`` mode.
@ -112,24 +82,71 @@ We'll leverage the CLI container to drive these calls.
.. code:: bash .. code:: bash
docker exec -it cli bash docker exec -it cli bash
.. code:: bash .. code:: bash
peer chaincode install -p chaincodedev/chaincode/abstore/go -n mycc -v 0 ./installChaincode.sh abstore.tar.gz abstore 1 0
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["init","a","100","b","200"]}' -C myc
This will package the chaincode to ``abstore.tar.gz`` in the chaincode directory plus
approve and commit the chaincode definition for you.
.. code:: bash
========= CHAINCODE ID ===================================
abstore:377daf05b5f66815cc0bce7fd285dd9812c06243a2242c745c02e8962c1dcc6d
Use this chaincode id to start chaincode container
After the new chaincode has installed you will then see the output of chaincode id.
Terminal 3 - Build & start the chaincode
------------------------------
.. code:: bash
docker exec -it chaincode sh
You should see the following:
.. code:: sh
/opt/gopath/src/chaincode $
Now, compile your chaincode:
.. code:: sh
cd abstore/go
go build -o abstore
Now run the chaincode with the chaincode id previosly given:
.. code:: sh
CORE_CHAINCODE_ID_NAME=abstore:377daf05b5f66815cc0bce7fd285dd9812c06243a2242c745c02e8962c1dcc6d CORE_PEER_TLS_ENABLED=false ./abstore -peer.address peer:7052
The chaincode is started with peer and chaincode logs indicating successful registration with the peer.
Back to Terminal 2 - Invoke the chaincode
----------------------------------------
.. code:: bash
peer chaincode invoke -o orderer:7050 -C myc -n abstore -c '{"Args":["init","a","100","b","200"]}'
Now issue an invoke to move ``10`` from ``a`` to ``b``. Now issue an invoke to move ``10`` from ``a`` to ``b``.
.. code:: bash .. code:: bash
peer chaincode invoke -n mycc -c '{"Args":["invoke","a","b","10"]}' -C myc peer chaincode invoke -o orderer:7050 -n abstore -c '{"Args":["invoke","a","b","10"]}' -C myc
Finally, query ``a``. We should see a value of ``90``. Finally, query ``a``. We should see a value of ``90``.
.. code:: bash .. code:: bash
peer chaincode query -n mycc -c '{"Args":["query","a"]}' -C myc peer chaincode query -n abstore -c '{"Args":["query","a"]}' -C myc
Testing new chaincode Testing new chaincode
--------------------- ---------------------

View file

@ -67,7 +67,7 @@ services:
chaincode: chaincode:
container_name: chaincode container_name: chaincode
image: hyperledger/fabric-ccenv image: hyperledger/fabric-ccenv:2.2
tty: true tty: true
environment: environment:
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock

View file

@ -0,0 +1,28 @@
#!/bin/bash
CHAINCODE_PACKAGE_NAME=$1
CHAINCODE_NAME=$2
SEQUENCE=$3
VERSION=$4
set -e
echo "========= Installing the newest version of chaincode ================"
echo "Chaincode name: $CHAINCODE_NAME"
peer lifecycle chaincode package "chaincode/$CHAINCODE_NAME/go/$CHAINCODE_PACKAGE_NAME" -p "chaincode/$CHAINCODE_NAME/go" --label $CHAINCODE_NAME -l node
peer lifecycle chaincode install "chaincode/$CHAINCODE_NAME/go/$CHAINCODE_PACKAGE_NAME"
CC_PACKAGE_ID=$(peer lifecycle chaincode queryinstalled | tail -n 1 |awk '{print $3}' | tr -d ",")
echo "========= Approving chaincode definition ================="
peer lifecycle chaincode approveformyorg -o orderer:7050 --channelID myc --name $CHAINCODE_NAME --version $VERSION --sequence $SEQUENCE --package-id $CC_PACKAGE_ID
echo "========= Committing chaincode definition ================"
peer lifecycle chaincode commit -o orderer:7050 --channelID myc --name $CHAINCODE_NAME --version $VERSION --sequence $SEQUENCE
echo "========= Finished Committing chaincode definition ======="
echo "Use peer invoke to invoke init transactions:"
echo "peer chaincode invoke -o orderer:7050 -C myc -n $CHAINCODE_NAME -c '{\"Args\":[\"init\",\"a\",\"100\",\"b\",\"200\"]}'"
echo "========= CHAINCODE ID ==================================="
echo $CC_PACKAGE_ID
echo "Use this chaincode id to start chaincode container"

View file

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGTCCAcCgAwIBAgIRANhKqXD3pDK/0eywm4EgimMwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwODEyMDgwMjAwWhcNMzAwODEwMDgwMjAw
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABDpxU8uyUKn/YVqtG28qqMVX43UMSLi8
KZURGpR3S74tgmuB4rYTFjuXqsHGKSSjTkJjFXzo9D/mlRiMdilgHP2jTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKnf/Q0oAer+
g7yn4j4sYE6TK00jrJj1W8stvut8QrpgMAoGCCqGSM49BAMCA0cAMEQCIHMXO2/u
gVfnsNsrdDaBJp9AxbSWp/oiQ5i5C9gjrn9kAiBxKZKAFiI5PPdtruLSz92askwe
W0mxhLAlFPt8NV79Ig==
-----END CERTIFICATE-----

View file

@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAd2gAwIBAgIRAMnf9/dmV9RvCCVw9pZQUfUwCgYIKoZIzj0EAwIwgYEx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g
RnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMQwwCgYDVQQLEwND
T1AxHDAaBgNVBAMTE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcxMTEyMTM0MTEx
WhcNMjcxMTEwMTM0MTExWjBpMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEMMAoGA1UECxMDQ09QMR8wHQYD
VQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEZ8S4V71OBJpyMIVZdwYdFXAckItrpvSrCf0HQg40WW9XSoOOO76I+Umf
EkmTlIJXP7/AyRRSRU38oI8Ivtu4M6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1Ud
EwEB/wQCMAAwKwYDVR0jBCQwIoAginORIhnPEFZUhXm6eWBkm7K7Zc8R4/z7LW4H
ossDlCswCgYIKoZIzj0EAwIDRwAwRAIgVikIUZzgfuFsGLQHWJUVJCU7pDaETkaz
PzFgsCiLxUACICgzJYlW7nvZxP7b6tbeu3t8mrhMXQs956mD4+BoKuNI
-----END CERTIFICATE-----

View file

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICUjCCAfegAwIBAgIQZULAGLJq4GT3ZUcwLVjjMDAKBggqhkjOPQQDAjBzMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
b3JnMS5leGFtcGxlLmNvbTAeFw0yMDA4MTIwODAyMDBaFw0zMDA4MTAwODAyMDBa
MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
5rFsMtL0pyPfoGbuWfyHeJYBkmnVhkJQlNJF4bQTlhZz+9qB0Ul26e6GkFc3DxA0
NS64g31SyDqGyt25pDyjl6NtMGswDgYDVR0PAQH/BAQDAgGmMB0GA1UdJQQWMBQG
CCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MCkGA1UdDgQiBCCp
3/0NKAHq/oO8p+I+LGBOkytNI6yY9VvLLb7rfEK6YDAKBggqhkjOPQQDAgNJADBG
AiEAlGAKBKzF95CMYttTHce6xJ+idWVf8XQV8hd/J59a8qgCIQDxIWrkBQ+OCFts
uL6j7TfJ6P5yAaAP9dGe1WDivsfm1A==
-----END CERTIFICATE-----

View file

@ -1,15 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICYjCCAgigAwIBAgIRAL1fEAnz5zp4moJ8MdSb/lYwCgYIKoZIzj0EAwIwgYEx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g
RnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMQwwCgYDVQQLEwND
T1AxHDAaBgNVBAMTE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcxMTEyMTM0MTEx
WhcNMjcxMTEwMTM0MTExWjCBgTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlm
b3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhh
bXBsZS5jb20xDDAKBgNVBAsTA0NPUDEcMBoGA1UEAxMTY2Eub3JnMS5leGFtcGxl
LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGrsQ6oJpk6hDWf63HU3OSNd
bou9KNw/VIee1IngPDI4YJU7O+Xa/XLJuwnFv7BpR8Ytl3f+njC8i/RZP2/svO+j
XzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQF
MAMBAf8wKQYDVR0OBCIEIIpzkSIZzxBWVIV5unlgZJuyu2XPEeP8+y1uB6LLA5Qr
MAoGCCqGSM49BAMCA0gAMEUCIQDUh/+CC2dAICnYtACXspwUaaEbiyZxYIx+XDvW
o8VVcgIgGz5S4iC5+xkxgeaISPfxKTTVy6yzTdYGzCw1vPppjzo=
-----END CERTIFICATE-----

View file

@ -1,5 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXa3mln4anewXtqrM
hMw6mfZhslkRa/j9P790ToKjlsihRANCAARnxLhXvU4EmnIwhVl3Bh0VcByQi2um
9KsJ/QdCDjRZb1dKg447voj5SZ8SSZOUglc/v8DJFFJFTfygjwi+27gz
-----END PRIVATE KEY-----

View file

@ -0,0 +1,5 @@
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghkJLuWTJekGrAG8n
8nxj57fpOJKSunOxspDzqau28QChRANCAAQ6cVPLslCp/2FarRtvKqjFV+N1DEi4
vCmVERqUd0u+LYJrgeK2ExY7l6rBxikko05CYxV86PQ/5pUYjHYpYBz9
-----END PRIVATE KEY-----

View file

@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICGTCCAcCgAwIBAgIRANhKqXD3pDK/0eywm4EgimMwCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwODEyMDgwMjAwWhcNMzAwODEwMDgwMjAw
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABDpxU8uyUKn/YVqtG28qqMVX43UMSLi8
KZURGpR3S74tgmuB4rYTFjuXqsHGKSSjTkJjFXzo9D/mlRiMdilgHP2jTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKnf/Q0oAer+
g7yn4j4sYE6TK00jrJj1W8stvut8QrpgMAoGCCqGSM49BAMCA0cAMEQCIHMXO2/u
gVfnsNsrdDaBJp9AxbSWp/oiQ5i5C9gjrn9kAiBxKZKAFiI5PPdtruLSz92askwe
W0mxhLAlFPt8NV79Ig==
-----END CERTIFICATE-----

View file

@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICNjCCAd2gAwIBAgIRAMnf9/dmV9RvCCVw9pZQUfUwCgYIKoZIzj0EAwIwgYEx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4g
RnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMQwwCgYDVQQLEwND
T1AxHDAaBgNVBAMTE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcxMTEyMTM0MTEx
WhcNMjcxMTEwMTM0MTExWjBpMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZv
cm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEMMAoGA1UECxMDQ09QMR8wHQYD
VQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEZ8S4V71OBJpyMIVZdwYdFXAckItrpvSrCf0HQg40WW9XSoOOO76I+Umf
EkmTlIJXP7/AyRRSRU38oI8Ivtu4M6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1Ud
EwEB/wQCMAAwKwYDVR0jBCQwIoAginORIhnPEFZUhXm6eWBkm7K7Zc8R4/z7LW4H
ossDlCswCgYIKoZIzj0EAwIDRwAwRAIgVikIUZzgfuFsGLQHWJUVJCU7pDaETkaz
PzFgsCiLxUACICgzJYlW7nvZxP7b6tbeu3t8mrhMXQs956mD4+BoKuNI
-----END CERTIFICATE-----

View file

@ -0,0 +1,15 @@
-----BEGIN CERTIFICATE-----
MIICWDCCAf6gAwIBAgIRAOCCqVdgUPN4U0+5NsRIab8wCgYIKoZIzj0EAwIwdjEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwODEyMDgwMjAwWhcNMzAwODEwMDgw
MjAwWjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0G
A1UEAxMWdGxzY2Eub3JnMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABN2sZV1RL455qVYbIi3oQuUg/RSwIvAnJBE9RwZJkvfN2oW46EpAIEEi
r8tNpNXsh6ijwV1Nu1WXxBs+7nrhvpijbTBrMA4GA1UdDwEB/wQEAwIBpjAdBgNV
HSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zApBgNV
HQ4EIgQg9n1bWd+u9z0lpb/VZshVYuIxO0junZ5bLw4VaoO8J1AwCgYIKoZIzj0E
AwIDSAAwRQIgPkxRGDA6x65gGyZ4fOXjekP9Gduccy0ZXTbbbqeCQsQCIQDvC3qn
oFjUDyvr3OLAfYrI5ejqs1akC3EQZNywaNY6aQ==
-----END CERTIFICATE-----

View file

@ -1,13 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIB8jCCAZigAwIBAgIRANxd4D3sY0656NqOh8Rha0AwCgYIKoZIzj0EAwIwWDEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xDTALBgNVBAoTBE9yZzIxDTALBgNVBAMTBE9yZzIwHhcNMTcwNTA4
MDkzMDM0WhcNMjcwNTA2MDkzMDM0WjBYMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzENMAsGA1UEChMET3Jn
MjENMAsGA1UEAxMET3JnMjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDYy+qzS
J/8CMfhpBFhUhhz+7up4+lwjBWDSS01koszNh8camHTA8vS4ZsN+DZ2DRsSmRZgs
tG2oogLLIdh6Z1CjQzBBMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUA
MA8GA1UdEwEB/wQFMAMBAf8wDQYDVR0OBAYEBAECAwQwCgYIKoZIzj0EAwIDSAAw
RQIgWnMmH0yxAjub3qfzxQioHKQ8+WvUjAXm0ejId9Q+rDICIQDr30UCPj+SXzOb
Cu4psMMBfLujKoiBNdLE1KEpt8lN1g==
-----END CERTIFICATE-----

View file

@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICETCCAbagAwIBAgIQNpgoASE9fi0ooZVKcnwnZzAKBggqhkjOPQQDAjBYMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzENMAsGA1UEChMET3JnMjENMAsGA1UEAxMET3JnMjAeFw0xNzA1MDgw
OTMwMzRaFw0yNzA1MDYwOTMwMzRaMGYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
YWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRQwEgYDVQQKEwtPcmcy
LWNoaWxkMTEUMBIGA1UEAxMLT3JnMi1jaGlsZDEwWTATBgcqhkjOPQIBBggqhkjO
PQMBBwNCAARTBJ8/o1tpHPwuixYDgRwcrzAru0cWJJhE6KWHAa0vBCG4nl0zjjRS
og+iAuUcY4Z/gJoHol6dKSHk9h5jrqtEo1QwUjAOBgNVHQ8BAf8EBAMCAaYwDwYD
VR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8G
A1UdIwQIMAaABAECAwQwCgYIKoZIzj0EAwIDSQAwRgIhAIkPzk7ORV/WhfG7QY/6
/OJg4++ftz2SZc44NIuogMArAiEAqbnpnmmHnzo2Qc6gnliCegpGnJ18RUT/jZlj
1qXHcvg=
-----END CERTIFICATE-----

Binary file not shown.