자산 전송(기본) 스마트 계약을 패키징한 후 트랜잭션을 승인할 모든 피어에 체인코드를 설치
Org1과 Org2 모두의 보증을 요구하도록 보증 정책을 설정할 것이기 때문에 두 조직에서 운영하는 피어에 체인코드를 설치해야 함.
peer0.org1.example.com
peer0.org2.example.com
먼저 Org1 피어에 체인코드를 설치
peer CLI를 사용하기 위해 다음의 환경 변수를 설정CORE_PEER_ADDRESS 는 Org1 피어를 가리키도록 설정 :peer0.org1.example.com.yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
peer lifecycle chaincode install 명령을 실행하여 피어에 체인코드를 설치
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode install basic.tar.gz 2023-08-09 14:26:45.445 KST 0001 INFO [cli.lifecycle.chaincode] submitInstallProposal -> Installed remotely: response:<status:200 payload:"\nJbasic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578\022\tbasic_1.0" > 2023-08-09 14:26:45.445 KST 0002 INFO [cli.lifecycle.chaincode] submitInstallProposal -> Chaincode code package identifier: basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578
이제 Org2 피어에 체인코드를 설치
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051
다음 명령을 실행하여 체인코드를 설치
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode install basic.tar.gz 2023-08-09 14:34:37.923 KST 0001 INFO [cli.lifecycle.chaincode] submitInstallProposal -> Installed remotely: response:<status:200 payload:"\nJbasic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578\022\tbasic_1.0" > 2023-08-09 14:34:37.923 KST 0002 INFO [cli.lifecycle.chaincode] submitInstallProposal -> Chaincode code package identifier: basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578
체인코드는 체인코드가 설치될 때 피어에 의해 빌드 됨.
설치 명령은 스마트 계약 코드에 문제가 있는 경우 체인코드에서 빌드 오류를 반환
체인코드 패키지를 설치한 후 조직에 대한 체인코드 정의를 승인해야 함.
체인코드를 배포하기 전에 승인해야 하는 채널 구성원 집합은 /Channel/Application/LifecycleEndorsement 정책을 따른다.
기본적으로 이 정책에서는 대부분의 채널 구성원이 체인코드를 채널에서 사용하기 전에 승인해야 함.
조직이 피어에 체인코드를 설치한 경우 조직에서 승인한 체인코드 정의에 packageID를 포함해야 함.
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode queryinstalled Installed chaincodes on peer: Package ID: basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578, Label: basic_1.0
체인코드를 승인할 때 패키지 ID를 사용할 것이므로 계속해서 환경 변수로 저장할 거임.
peer lifecycle chaincode queryinstalled 에서 받은 패키지 ID 붙여넣기
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ export CC_PACKAGE_ID=basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578
Org2 관리자로써 peer CLI를 동작하도록 환경 변수가 설정되어 있기 때문에, 자산 전송(기본)의 체인코드 정의를 Org2로 승인할 수 있음.
체인코드는 조직 수준에서 승인되므로 명령은 하나의 피어만 대상으로 하면 됨
peer lifecycle chaincode approveformyorg 명령을 사용하여 체인코드 정의를 승인
--package-id 플래그 : 체인코드 정의에 패키지 식별자를 포함--sequence 매개변수 : 체인코드가 정의되거나 업데이트된 횟수를 추적하는 정수 --init-required 플래그 : Fabric Chaincode Shim API를 통해 제공되는 저수준 API를 사용하는 경우, 해당 플래그로 체인코드를 초기화하기 위해 Init 함수의 실행을 요청가능--isInit 플래그를 포함해야 한다.--signature-policy 또는 --channel-config-policy 인수를 approvalformyorg 명령에 제공하여 체인코드 승인 정책을 지정했다.
보증 정책은 서로 다른 채널 구성원에 속하는 피어가 주어진 체인코드에 대해 트랜잭션을 검증해야 하는 수를 지정
우리는 여기서 정책을 설정하지 않았기 때문에 자산 이전(기본)의 정의는 트랜잭션이 제출될 때 참석한 채널 구성원의 대다수가 트랜잭션을 보증하도록 요구하는 기본 보증 정책을 사용
이 튜토리얼에서 기본 정책은 2개 중 2개가 필요하며 트랜잭션은 Org1 및 Org2의 동료가 승인해야 함.
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
2023-08-09 14:55:23.473 KST 0001 INFO [chaincodeCmd] ClientWait -> txid [31dfb0e43cf3b57cb25d67ad2d445a438add1f34ce5804d03ac108a2dc2705ea] committed with status (VALID) at localhost:9051
관리자 역할이 있는 ID로 체인코드 정의를 승인해야 함.
CORE_PEER_MSPCONFIGPATH 변수는 관리자 ID가 포함된 MSP 폴더를 가리켜야 함.여전히 체인코드 정의를 Org1로 승인 -> Org1 관리자로 작동하도록 다음 환경 변수를 설정합
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_ADDRESS=localhost:7051
이제 체인코드 정의를 Org1로 승인 가능
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
결과
2023-08-09 18:38:08.194 KST 0001 INFO [chaincodeCmd] ClientWait -> txid [fe9259acbf1b9bd3bfed9f3f2828698bea2b603063a110d5a8db61c742904a6a] committed with status (VALID) at localhost:7051
'대부분'의 조직이 체인코드 정의(기본 정책 포함)를 승인하고, '모든' 조직은 피어에서 체인코드를 시작하기 위해 체인코드 정의를 승인해야 함.
채널 구성원이 체인코드를 승인하기 전에, 정의를 커밋하면 조직에서 트랜잭션을 보증할 수 없음.
=> 모든 채널 구성원이 체인코드 정의를 커밋하기 전에 체인코드를 승인하는 것을 권고
충분한 수의 조직이 체인코드 정의를 승인한 후, 한 조직이 체인코드 정의를 채널에 커밋O
대다수의 채널 구성원이 정의를 승인한 경우, 커밋 트랜잭션이 성공하고 체인코드 정의에서 동의한 매개변수가 채널에서 구현됨.
피어 수명 주기 체인코드 checkcommitreadiness 명령 : 채널 구성원이 동일한 체인코드 정의를 승인했는지 확인
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name basic --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --output json
{
"Approvals": {
"Org1MSP": true,
"Org2MSP": true
}
}peer lifecycle chaincode commit 명령을 사용하여 체인코드 정의를 채널에 커밋
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name basic --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"2023-08-09 18:58:19.503 KST 0001 INFO [chaincodeCmd] ClientWait -> txid [3d3b09d80712cdc4a1f128eb5ef800b19f28e72e015e1b6fff7240115173ac5c] committed with status (VALID) at localhost:7051 2023-08-09 18:58:19.518 KST 0002 INFO [chaincodeCmd] ClientWait -> txid [3d3b09d80712cdc4a1f128eb5ef800b19f28e72e015e1b6fff7240115173ac5c] committed with status (VALID) at localhost:9051
--peerAddresses 플래그 : Org1에서 peer0.org1.example.com, Org2에서peer0.org2.example.com. 타겟팅
commit 트랜잭션은 피어를 운영하는 조직에서 승인한 체인코드 정의를 쿼리하기 위해 채널에 가입한 피어에게 제출됨.채널 멤버의 체인코드 정의 보증은 주문 서비스에 제출되어 블록에 추가되고 채널에 배포
-> 채널의 피어는 충분한 수의 조직이 체인코드 정의를 승인했는지 확인
peer lifecycle chaincode commit 명령은 응답을 반환하기 전에 피어의 유효성 검사를 기다림.peer lifecycle chaincode querycommitted : 체인코드 정의가 채널에 커밋되었는지 확인yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer lifecycle chaincode querycommitted --channelID mychannel --name basic --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
<pre>Committed chaincode definition for chaincode 'basic' on channel 'mychannel':
Version: 1.0, Sequence: 1, Endorsement Plugin: escc, Validation Plugin: vscc, Approvals: [Org1MSP: true, Org2MSP: true]
</pre>
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[]}'
2023-08-09 20:01:11.398 KST 0001 INFO [chaincodeCmd] chaincodeInvokeOrQuery -> Chaincode invoke successful. result: status:200
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
[{"AppraisedValue":300,"Color":"blue","ID":"asset1","Owner":"Tomoko","Size":5},{"AppraisedValue":400,"Color":"red","ID":"asset2","Owner":"Brad","Size":5},{"AppraisedValue":500,"Color":"green","ID":"asset3","Owner":"Jin Soo","Size":10},{"AppraisedValue":600,"Color":"yellow","ID":"asset4","Owner":"Max","Size":10},{"AppraisedValue":700,"Color":"black","ID":"asset5","Owner":"Adriana","Size":15},{"AppraisedValue":800,"Color":"white","ID":"asset6","Owner":"Michel","Size":15}]
docker stop logspout
docker rm logspout
./network.sh down
yujeong@yujeong-VirtualBox:~$ cd go/src
yujeong@yujeong-VirtualBox:~/go/src$ ^C fabric-samples/test-network
yujeong@yujeong-VirtualBox:~/go/src$ cd fabric-samples/test-network
yujeong@yujeong-VirtualBox:~/go/src/fabric-samples/test-network$ ./monitordocker.sh fabric_test
Starting monitoring on all containers on the network fabric_test
Unable to find image 'gliderlabs/logspout:latest' locally
latest: Pulling from gliderlabs/logspout
8572bc8fb8a3: Pull complete
bd801371a862: Pull complete
58100c398b34: Pull complete
Digest: sha256:2d81c026e11ac67f7887029dbfd7d36ee986d946066b45c1dabd966278eb5681
Status: Downloaded newer image for gliderlabs/logspout:latest
a6139444d7dc3604282693a4fbd4d64f320e9bb27d02bcc5a10e66a3cc2b05d3
peer0.org1.example.com|2023-08-09 05:25:37.491 UTC 004e INFO [chaincode.externalbuilder.ccaas_builder] waitForExit -> ::Detect command=detect
peer0.org1.example.com|2023-08-09 05:25:37.492 UTC 004f INFO [chaincode.externalbuilder.ccaas_builder] waitForExit -> ::Error: chaincode type not supported: golang command=detect
cranky_leavitt|go: downloading github.com/hyperledger/fabric-contract-api-go v1.2.1
cranky_leavitt|go: downloading github.com/hyperledger/fabric-chaincode-go v0.0.0-20230228194215-b84622ba6a7a
cranky_leavitt|go: downloading github.com/hyperledger/fabric-protos-go v0.3.0
cranky_leavitt|go: downloading github.com/golang/protobuf v1.5.2
cranky_leavitt|go: downloading google.golang.org/grpc v1.53.0
cranky_leavitt|go: downloading github.com/xeipuuv/gojsonschema v1.2.0
cranky_leavitt|go: downloading github.com/go-openapi/spec v0.20.8
cranky_leavitt|go: downloading github.com/gobuffalo/packr v1.30.1
cranky_leavitt|go: downloading google.golang.org/protobuf v1.28.1
cranky_leavitt|go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
cranky_leavitt|go: downloading github.com/go-openapi/jsonpointer v0.19.5
cranky_leavitt|go: downloading github.com/go-openapi/jsonreference v0.20.0
cranky_leavitt|go: downloading github.com/go-openapi/swag v0.21.1
cranky_leavitt|go: downloading github.com/gobuffalo/envy v1.10.1
cranky_leavitt|go: downloading github.com/gobuffalo/packd v1.0.1
cranky_leavitt|go: downloading golang.org/x/net v0.7.0
cranky_leavitt|go: downloading google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f
cranky_leavitt|go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
cranky_leavitt|go: downloading github.com/mailru/easyjson v0.7.7
cranky_leavitt|go: downloading gopkg.in/yaml.v2 v2.4.0
cranky_leavitt|go: downloading github.com/joho/godotenv v1.4.0
cranky_leavitt|go: downloading github.com/rogpeppe/go-internal v1.8.1
cranky_leavitt|go: downloading golang.org/x/sys v0.5.0
cranky_leavitt|go: downloading github.com/josharian/intern v1.0.0
cranky_leavitt|go: downloading golang.org/x/text v0.7.0
cranky_leavitt|internal/goarch
cranky_leavitt|internal/unsafeheader
cranky_leavitt|internal/abi
cranky_leavitt|internal/cpu
cranky_leavitt|internal/bytealg
cranky_leavitt|internal/coverage/rtcov
cranky_leavitt|internal/goexperiment
cranky_leavitt|internal/goos
cranky_leavitt|runtime/internal/atomic
cranky_leavitt|runtime/internal/math
cranky_leavitt|runtime/internal/sys
cranky_leavitt|runtime/internal/syscall
cranky_leavitt|runtime
cranky_leavitt|internal/reflectlite
cranky_leavitt|errors
cranky_leavitt|internal/race
cranky_leavitt|sync/atomic
cranky_leavitt|sync
cranky_leavitt|io
cranky_leavitt|unicode
cranky_leavitt|unicode/utf8
cranky_leavitt|bytes
cranky_leavitt|encoding
cranky_leavitt|math/bits
cranky_leavitt|math
cranky_leavitt|internal/itoa
cranky_leavitt|strconv
cranky_leavitt|reflect
cranky_leavitt|encoding/binary
cranky_leavitt|encoding/base64
cranky_leavitt|sort
cranky_leavitt|internal/fmtsort
cranky_leavitt|internal/oserror
cranky_leavitt|syscall
cranky_leavitt|internal/syscall/unix
cranky_leavitt|time
cranky_leavitt|internal/poll
cranky_leavitt|internal/safefilepath
cranky_leavitt|internal/syscall/execenv
cranky_leavitt|internal/testlog
cranky_leavitt|path
cranky_leavitt|io/fs
cranky_leavitt|os
cranky_leavitt|fmt
cranky_leavitt|strings
cranky_leavitt|unicode/utf16
cranky_leavitt|encoding/json
cranky_leavitt|hash
cranky_leavitt|crypto
cranky_leavitt|crypto/internal/alias
cranky_leavitt|crypto/subtle
cranky_leavitt|crypto/cipher
cranky_leavitt|crypto/internal/boring/sig
cranky_leavitt|crypto/internal/boring
cranky_leavitt|crypto/aes
cranky_leavitt|crypto/des
cranky_leavitt|crypto/internal/randutil
cranky_leavitt|internal/godebug
cranky_leavitt|math/rand
cranky_leavitt|math/big
cranky_leavitt|crypto/dsa
cranky_leavitt|crypto/internal/edwards25519/field
cranky_leavitt|crypto/internal/nistec/fiat
cranky_leavitt|embed
cranky_leavitt|crypto/internal/nistec
cranky_leavitt|crypto/ecdh
cranky_leavitt|crypto/elliptic
cranky_leavitt|crypto/internal/bigmod
cranky_leavitt|crypto/internal/boring/bbig
cranky_leavitt|crypto/sha512
cranky_leavitt|encoding/asn1
cranky_leavitt|vendor/golang.org/x/crypto/cryptobyte/asn1
cranky_leavitt|vendor/golang.org/x/crypto/cryptobyte
cranky_leavitt|crypto/ecdsa
cranky_leavitt|crypto/internal/edwards25519
cranky_leavitt|crypto/rand
cranky_leavitt|crypto/ed25519
cranky_leavitt|crypto/md5
cranky_leavitt|crypto/rsa
cranky_leavitt|crypto/sha1
cranky_leavitt|crypto/sha256
cranky_leavitt|encoding/hex
cranky_leavitt|crypto/x509/pkix
cranky_leavitt|encoding/pem
cranky_leavitt|context
cranky_leavitt|vendor/golang.org/x/net/dns/dnsmessage
cranky_leavitt|internal/nettrace
cranky_leavitt|internal/singleflight
cranky_leavitt|internal/intern
cranky_leavitt|net/netip
cranky_leavitt|runtime/cgo
cranky_leavitt|net
cranky_leavitt|net/url
cranky_leavitt|path/filepath
cranky_leavitt|crypto/x509
cranky_leavitt|bufio
cranky_leavitt|compress/flate
cranky_leavitt|hash/crc32
cranky_leavitt|compress/gzip
cranky_leavitt|hash/fnv
cranky_leavitt|google.golang.org/protobuf/internal/detrand
cranky_leavitt|google.golang.org/protobuf/internal/errors
cranky_leavitt|google.golang.org/protobuf/encoding/protowire
cranky_leavitt|google.golang.org/protobuf/internal/pragma
cranky_leavitt|google.golang.org/protobuf/reflect/protoreflect
cranky_leavitt|google.golang.org/protobuf/internal/encoding/messageset
cranky_leavitt|google.golang.org/protobuf/internal/flags
cranky_leavitt|go/token
cranky_leavitt|google.golang.org/protobuf/internal/strs
cranky_leavitt|google.golang.org/protobuf/internal/encoding/text
cranky_leavitt|google.golang.org/protobuf/internal/genid
cranky_leavitt|google.golang.org/protobuf/internal/order
cranky_leavitt|google.golang.org/protobuf/internal/set
cranky_leavitt|google.golang.org/protobuf/reflect/protoregistry
cranky_leavitt|google.golang.org/protobuf/runtime/protoiface
cranky_leavitt|google.golang.org/protobuf/proto
cranky_leavitt|google.golang.org/protobuf/encoding/prototext
cranky_leavitt|google.golang.org/protobuf/internal/encoding/defval
cranky_leavitt|google.golang.org/protobuf/internal/descfmt
cranky_leavitt|google.golang.org/protobuf/internal/descopts
cranky_leavitt|google.golang.org/protobuf/internal/filedesc
cranky_leavitt|google.golang.org/protobuf/internal/encoding/tag
cranky_leavitt|io/ioutil
cranky_leavitt|google.golang.org/protobuf/internal/impl
cranky_leavitt|google.golang.org/protobuf/internal/filetype
cranky_leavitt|google.golang.org/protobuf/internal/version
cranky_leavitt|google.golang.org/protobuf/runtime/protoimpl
cranky_leavitt|google.golang.org/protobuf/types/descriptorpb
cranky_leavitt|google.golang.org/protobuf/reflect/protodesc
cranky_leavitt|github.com/golang/protobuf/proto
cranky_leavitt|github.com/hyperledger/fabric-protos-go/msp
cranky_leavitt|github.com/hyperledger/fabric-chaincode-go/pkg/attrmgr
cranky_leavitt|github.com/hyperledger/fabric-chaincode-go/pkg/cid
cranky_leavitt|container/list
cranky_leavitt|crypto/hmac
cranky_leavitt|crypto/rc4
cranky_leavitt|vendor/golang.org/x/crypto/internal/alias
cranky_leavitt|vendor/golang.org/x/crypto/chacha20
cranky_leavitt|vendor/golang.org/x/crypto/internal/poly1305
cranky_leavitt|vendor/golang.org/x/sys/cpu
cranky_leavitt|vendor/golang.org/x/crypto/chacha20poly1305
cranky_leavitt|vendor/golang.org/x/crypto/hkdf
cranky_leavitt|crypto/tls
cranky_leavitt|flag
cranky_leavitt|google.golang.org/protobuf/types/known/timestamppb
cranky_leavitt|github.com/golang/protobuf/ptypes/timestamp
cranky_leavitt|github.com/hyperledger/fabric-protos-go/common
cranky_leavitt|github.com/hyperledger/fabric-protos-go/ledger/rwset
cranky_leavitt|log
cranky_leavitt|golang.org/x/net/internal/timeseries
cranky_leavitt|html
cranky_leavitt|text/template/parse
cranky_leavitt|text/template
cranky_leavitt|html/template
cranky_leavitt|vendor/golang.org/x/text/transform
cranky_leavitt|vendor/golang.org/x/text/unicode/bidi
cranky_leavitt|vendor/golang.org/x/text/secure/bidirule
cranky_leavitt|vendor/golang.org/x/text/unicode/norm
cranky_leavitt|vendor/golang.org/x/net/idna
cranky_leavitt|net/textproto
cranky_leavitt|vendor/golang.org/x/net/http/httpguts
cranky_leavitt|vendor/golang.org/x/net/http/httpproxy
cranky_leavitt|vendor/golang.org/x/net/http2/hpack
cranky_leavitt|mime
cranky_leavitt|mime/quotedprintable
cranky_leavitt|mime/multipart
cranky_leavitt|net/http/httptrace
cranky_leavitt|net/http/internal
cranky_leavitt|net/http/internal/ascii
cranky_leavitt|net/http
cranky_leavitt|text/tabwriter
cranky_leavitt|golang.org/x/net/trace
cranky_leavitt|google.golang.org/grpc/backoff
cranky_leavitt|golang.org/x/sys/unix
cranky_leavitt|google.golang.org/grpc/internal/grpclog
cranky_leavitt|google.golang.org/grpc/grpclog
cranky_leavitt|google.golang.org/grpc/connectivity
cranky_leavitt|google.golang.org/grpc/attributes
cranky_leavitt|google.golang.org/grpc/internal/credentials
cranky_leavitt|google.golang.org/grpc/credentials
cranky_leavitt|google.golang.org/grpc/internal/channelz
cranky_leavitt|google.golang.org/grpc/channelz
cranky_leavitt|regexp/syntax
cranky_leavitt|regexp
cranky_leavitt|google.golang.org/protobuf/internal/encoding/json
cranky_leavitt|google.golang.org/protobuf/encoding/protojson
cranky_leavitt|github.com/golang/protobuf/jsonpb
cranky_leavitt|google.golang.org/grpc/internal/pretty
cranky_leavitt|google.golang.org/grpc/serviceconfig
cranky_leavitt|google.golang.org/grpc/resolver
cranky_leavitt|google.golang.org/grpc/internal
cranky_leavitt|google.golang.org/grpc/metadata
cranky_leavitt|google.golang.org/grpc/balancer
cranky_leavitt|google.golang.org/grpc/balancer/base
cranky_leavitt|google.golang.org/grpc/internal/grpcrand
cranky_leavitt|google.golang.org/grpc/balancer/roundrobin
cranky_leavitt|google.golang.org/grpc/codes
cranky_leavitt|google.golang.org/grpc/credentials/insecure
cranky_leavitt|google.golang.org/grpc/internal/envconfig
cranky_leavitt|google.golang.org/grpc/internal/grpcutil
cranky_leavitt|google.golang.org/grpc/encoding
cranky_leavitt|google.golang.org/grpc/encoding/proto
cranky_leavitt|google.golang.org/grpc/internal/backoff
cranky_leavitt|google.golang.org/grpc/internal/balancer/gracefulswitch
cranky_leavitt|google.golang.org/grpc/internal/balancerload
cranky_leavitt|google.golang.org/protobuf/types/known/anypb
cranky_leavitt|github.com/golang/protobuf/ptypes/any
cranky_leavitt|google.golang.org/protobuf/types/known/durationpb
cranky_leavitt|github.com/golang/protobuf/ptypes/duration
cranky_leavitt|github.com/golang/protobuf/ptypes
cranky_leavitt|google.golang.org/grpc/binarylog/grpc_binarylog_v1
cranky_leavitt|google.golang.org/genproto/googleapis/rpc/status
cranky_leavitt|google.golang.org/grpc/internal/status
cranky_leavitt|google.golang.org/grpc/status
cranky_leavitt|google.golang.org/grpc/internal/binarylog
cranky_leavitt|google.golang.org/grpc/internal/buffer
cranky_leavitt|google.golang.org/grpc/internal/grpcsync
cranky_leavitt|google.golang.org/grpc/internal/metadata
cranky_leavitt|google.golang.org/grpc/internal/serviceconfig
cranky_leavitt|google.golang.org/grpc/internal/resolver
cranky_leavitt|google.golang.org/grpc/balancer/grpclb/state
cranky_leavitt|google.golang.org/grpc/internal/resolver/dns
cranky_leavitt|google.golang.org/grpc/internal/resolver/passthrough
cranky_leavitt|google.golang.org/grpc/internal/transport/networktype
cranky_leavitt|google.golang.org/grpc/internal/resolver/unix
cranky_leavitt|golang.org/x/text/transform
cranky_leavitt|golang.org/x/text/unicode/bidi
cranky_leavitt|golang.org/x/text/secure/bidirule
cranky_leavitt|golang.org/x/text/unicode/norm
cranky_leavitt|golang.org/x/net/idna
cranky_leavitt|golang.org/x/net/http/httpguts
cranky_leavitt|golang.org/x/net/http2/hpack
cranky_leavitt|golang.org/x/net/http2
cranky_leavitt|google.golang.org/grpc/internal/syscall
cranky_leavitt|google.golang.org/grpc/keepalive
cranky_leavitt|google.golang.org/grpc/peer
cranky_leavitt|google.golang.org/grpc/stats
cranky_leavitt|google.golang.org/grpc/tap
cranky_leavitt|net/http/httputil
cranky_leavitt|google.golang.org/grpc/internal/transport
cranky_leavitt|google.golang.org/grpc
cranky_leavitt|google.golang.org/protobuf/types/known/emptypb
cranky_leavitt|github.com/hyperledger/fabric-protos-go/peer
cranky_leavitt|github.com/hyperledger/fabric-chaincode-go/shim/internal
cranky_leavitt|github.com/hyperledger/fabric-protos-go/ledger/queryresult
cranky_leavitt|github.com/hyperledger/fabric-chaincode-go/shim
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/contractapi/utils
cranky_leavitt|internal/saferio
cranky_leavitt|encoding/gob
cranky_leavitt|github.com/josharian/intern
cranky_leavitt|github.com/mailru/easyjson/jlexer
cranky_leavitt|github.com/mailru/easyjson/buffer
cranky_leavitt|github.com/mailru/easyjson/jwriter
cranky_leavitt|gopkg.in/yaml.v2
cranky_leavitt|github.com/go-openapi/swag
cranky_leavitt|github.com/go-openapi/jsonpointer
cranky_leavitt|github.com/go-openapi/jsonreference/internal
cranky_leavitt|github.com/go-openapi/jsonreference
cranky_leavitt|github.com/go-openapi/spec
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/internal/types
cranky_leavitt|github.com/xeipuuv/gojsonpointer
cranky_leavitt|github.com/xeipuuv/gojsonreference
cranky_leavitt|net/mail
cranky_leavitt|github.com/xeipuuv/gojsonschema
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/internal/utils
cranky_leavitt|os/exec
cranky_leavitt|github.com/joho/godotenv
cranky_leavitt|github.com/rogpeppe/go-internal/semver
cranky_leavitt|github.com/rogpeppe/go-internal/module
cranky_leavitt|github.com/rogpeppe/go-internal/modfile
cranky_leavitt|github.com/gobuffalo/envy
cranky_leavitt|github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx
cranky_leavitt|github.com/gobuffalo/packd
cranky_leavitt|github.com/gobuffalo/packr
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/metadata
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/serializer
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/internal
cranky_leavitt|github.com/hyperledger/fabric-contract-api-go/contractapi
cranky_leavitt|github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode
cranky_leavitt|github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go
cranky_leavitt|# github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go
cranky_leavitt|/usr/bin/ld: /tmp/go-link-1139198089/000004.o: in function `_cgo_cbcce81e6342_C2func_getaddrinfo':
cranky_leavitt|/tmp/go-build/cgo-gcc-prolog:58: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
cranky_leavitt|Done!
peer0.org1.example.com|2023-08-09 05:26:45.440 UTC 0050 INFO [lifecycle] InstallChaincode -> Successfully installed chaincode with package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578'
peer0.org1.example.com|2023-08-09 05:26:45.441 UTC 0051 INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 67985ms channel= txID=5f72ff16
peer0.org1.example.com|2023-08-09 05:26:45.441 UTC 0052 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:40758 grpc.code=OK grpc.call_duration=1m7.987343868s
peer0.org2.example.com|2023-08-09 05:33:12.788 UTC 0049 INFO [chaincode.externalbuilder.ccaas_builder] waitForExit -> ::Detect command=detect
peer0.org2.example.com|2023-08-09 05:33:12.788 UTC 004a INFO [chaincode.externalbuilder.ccaas_builder] waitForExit -> ::Error: chaincode type not supported: golang command=detect
inspiring_diffie|go: downloading github.com/hyperledger/fabric-contract-api-go v1.2.1
inspiring_diffie|go: downloading github.com/hyperledger/fabric-chaincode-go v0.0.0-20230228194215-b84622ba6a7a
inspiring_diffie|go: downloading github.com/hyperledger/fabric-protos-go v0.3.0
inspiring_diffie|go: downloading github.com/golang/protobuf v1.5.2
inspiring_diffie|go: downloading google.golang.org/grpc v1.53.0
inspiring_diffie|go: downloading github.com/xeipuuv/gojsonschema v1.2.0
inspiring_diffie|go: downloading github.com/go-openapi/spec v0.20.8
inspiring_diffie|go: downloading github.com/gobuffalo/packr v1.30.1
inspiring_diffie|go: downloading google.golang.org/protobuf v1.28.1
inspiring_diffie|go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
inspiring_diffie|go: downloading github.com/go-openapi/jsonpointer v0.19.5
inspiring_diffie|go: downloading github.com/go-openapi/jsonreference v0.20.0
inspiring_diffie|go: downloading github.com/go-openapi/swag v0.21.1
inspiring_diffie|go: downloading github.com/gobuffalo/envy v1.10.1
inspiring_diffie|go: downloading github.com/gobuffalo/packd v1.0.1
inspiring_diffie|go: downloading golang.org/x/net v0.7.0
inspiring_diffie|go: downloading google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f
inspiring_diffie|go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb
inspiring_diffie|go: downloading github.com/mailru/easyjson v0.7.7
inspiring_diffie|go: downloading gopkg.in/yaml.v2 v2.4.0
inspiring_diffie|go: downloading github.com/joho/godotenv v1.4.0
inspiring_diffie|go: downloading github.com/rogpeppe/go-internal v1.8.1
inspiring_diffie|go: downloading golang.org/x/sys v0.5.0
inspiring_diffie|go: downloading github.com/josharian/intern v1.0.0
inspiring_diffie|go: downloading golang.org/x/text v0.7.0
inspiring_diffie|internal/goarch
inspiring_diffie|internal/unsafeheader
inspiring_diffie|internal/abi
inspiring_diffie|internal/cpu
inspiring_diffie|internal/bytealg
inspiring_diffie|internal/coverage/rtcov
inspiring_diffie|internal/goexperiment
inspiring_diffie|internal/goos
inspiring_diffie|runtime/internal/atomic
inspiring_diffie|runtime/internal/math
inspiring_diffie|runtime/internal/sys
inspiring_diffie|runtime/internal/syscall
inspiring_diffie|runtime
inspiring_diffie|internal/reflectlite
inspiring_diffie|errors
inspiring_diffie|internal/race
inspiring_diffie|sync/atomic
inspiring_diffie|sync
inspiring_diffie|io
inspiring_diffie|unicode
inspiring_diffie|unicode/utf8
inspiring_diffie|bytes
inspiring_diffie|encoding
inspiring_diffie|math/bits
inspiring_diffie|math
inspiring_diffie|internal/itoa
inspiring_diffie|strconv
inspiring_diffie|reflect
inspiring_diffie|encoding/binary
inspiring_diffie|encoding/base64
inspiring_diffie|sort
inspiring_diffie|internal/fmtsort
inspiring_diffie|internal/oserror
inspiring_diffie|syscall
inspiring_diffie|internal/syscall/unix
inspiring_diffie|time
inspiring_diffie|internal/poll
inspiring_diffie|internal/safefilepath
inspiring_diffie|internal/syscall/execenv
inspiring_diffie|internal/testlog
inspiring_diffie|path
inspiring_diffie|io/fs
inspiring_diffie|os
inspiring_diffie|fmt
inspiring_diffie|strings
inspiring_diffie|unicode/utf16
inspiring_diffie|encoding/json
inspiring_diffie|hash
inspiring_diffie|crypto
inspiring_diffie|crypto/internal/alias
inspiring_diffie|crypto/subtle
inspiring_diffie|crypto/cipher
inspiring_diffie|crypto/internal/boring/sig
inspiring_diffie|crypto/internal/boring
inspiring_diffie|crypto/aes
inspiring_diffie|crypto/des
inspiring_diffie|crypto/internal/randutil
inspiring_diffie|internal/godebug
inspiring_diffie|math/rand
inspiring_diffie|math/big
inspiring_diffie|crypto/dsa
inspiring_diffie|crypto/internal/edwards25519/field
inspiring_diffie|crypto/internal/nistec/fiat
inspiring_diffie|embed
inspiring_diffie|crypto/internal/nistec
inspiring_diffie|crypto/ecdh
inspiring_diffie|crypto/elliptic
inspiring_diffie|crypto/internal/bigmod
inspiring_diffie|crypto/internal/boring/bbig
inspiring_diffie|crypto/sha512
inspiring_diffie|encoding/asn1
inspiring_diffie|vendor/golang.org/x/crypto/cryptobyte/asn1
inspiring_diffie|vendor/golang.org/x/crypto/cryptobyte
inspiring_diffie|crypto/ecdsa
inspiring_diffie|crypto/internal/edwards25519
inspiring_diffie|crypto/rand
inspiring_diffie|crypto/ed25519
inspiring_diffie|crypto/md5
inspiring_diffie|crypto/rsa
inspiring_diffie|crypto/sha1
inspiring_diffie|crypto/sha256
inspiring_diffie|encoding/hex
inspiring_diffie|crypto/x509/pkix
inspiring_diffie|encoding/pem
inspiring_diffie|context
inspiring_diffie|vendor/golang.org/x/net/dns/dnsmessage
inspiring_diffie|internal/nettrace
inspiring_diffie|internal/singleflight
inspiring_diffie|internal/intern
inspiring_diffie|net/netip
inspiring_diffie|runtime/cgo
inspiring_diffie|net
inspiring_diffie|net/url
inspiring_diffie|path/filepath
inspiring_diffie|crypto/x509
inspiring_diffie|bufio
inspiring_diffie|compress/flate
inspiring_diffie|hash/crc32
inspiring_diffie|compress/gzip
inspiring_diffie|hash/fnv
inspiring_diffie|google.golang.org/protobuf/internal/detrand
inspiring_diffie|google.golang.org/protobuf/internal/errors
inspiring_diffie|google.golang.org/protobuf/encoding/protowire
inspiring_diffie|google.golang.org/protobuf/internal/pragma
inspiring_diffie|google.golang.org/protobuf/reflect/protoreflect
inspiring_diffie|google.golang.org/protobuf/internal/encoding/messageset
inspiring_diffie|google.golang.org/protobuf/internal/flags
inspiring_diffie|go/token
inspiring_diffie|google.golang.org/protobuf/internal/strs
inspiring_diffie|google.golang.org/protobuf/internal/encoding/text
inspiring_diffie|google.golang.org/protobuf/internal/genid
inspiring_diffie|google.golang.org/protobuf/internal/order
inspiring_diffie|google.golang.org/protobuf/internal/set
inspiring_diffie|google.golang.org/protobuf/reflect/protoregistry
inspiring_diffie|google.golang.org/protobuf/runtime/protoiface
inspiring_diffie|google.golang.org/protobuf/proto
inspiring_diffie|google.golang.org/protobuf/encoding/prototext
inspiring_diffie|google.golang.org/protobuf/internal/encoding/defval
inspiring_diffie|google.golang.org/protobuf/internal/descfmt
inspiring_diffie|google.golang.org/protobuf/internal/descopts
inspiring_diffie|google.golang.org/protobuf/internal/filedesc
inspiring_diffie|google.golang.org/protobuf/internal/encoding/tag
inspiring_diffie|io/ioutil
inspiring_diffie|google.golang.org/protobuf/internal/impl
inspiring_diffie|google.golang.org/protobuf/internal/filetype
inspiring_diffie|google.golang.org/protobuf/internal/version
inspiring_diffie|google.golang.org/protobuf/runtime/protoimpl
inspiring_diffie|google.golang.org/protobuf/types/descriptorpb
inspiring_diffie|google.golang.org/protobuf/reflect/protodesc
inspiring_diffie|github.com/golang/protobuf/proto
inspiring_diffie|github.com/hyperledger/fabric-protos-go/msp
inspiring_diffie|github.com/hyperledger/fabric-chaincode-go/pkg/attrmgr
inspiring_diffie|github.com/hyperledger/fabric-chaincode-go/pkg/cid
inspiring_diffie|container/list
inspiring_diffie|crypto/hmac
inspiring_diffie|crypto/rc4
inspiring_diffie|vendor/golang.org/x/crypto/internal/alias
inspiring_diffie|vendor/golang.org/x/crypto/chacha20
inspiring_diffie|vendor/golang.org/x/crypto/internal/poly1305
inspiring_diffie|vendor/golang.org/x/sys/cpu
inspiring_diffie|vendor/golang.org/x/crypto/chacha20poly1305
inspiring_diffie|vendor/golang.org/x/crypto/hkdf
inspiring_diffie|crypto/tls
inspiring_diffie|flag
inspiring_diffie|google.golang.org/protobuf/types/known/timestamppb
inspiring_diffie|github.com/golang/protobuf/ptypes/timestamp
inspiring_diffie|github.com/hyperledger/fabric-protos-go/common
inspiring_diffie|github.com/hyperledger/fabric-protos-go/ledger/rwset
inspiring_diffie|log
inspiring_diffie|golang.org/x/net/internal/timeseries
inspiring_diffie|html
inspiring_diffie|text/template/parse
inspiring_diffie|text/template
inspiring_diffie|html/template
inspiring_diffie|vendor/golang.org/x/text/transform
inspiring_diffie|vendor/golang.org/x/text/unicode/bidi
inspiring_diffie|vendor/golang.org/x/text/secure/bidirule
inspiring_diffie|vendor/golang.org/x/text/unicode/norm
inspiring_diffie|vendor/golang.org/x/net/idna
inspiring_diffie|net/textproto
inspiring_diffie|vendor/golang.org/x/net/http/httpguts
inspiring_diffie|vendor/golang.org/x/net/http/httpproxy
inspiring_diffie|vendor/golang.org/x/net/http2/hpack
inspiring_diffie|mime
inspiring_diffie|mime/quotedprintable
inspiring_diffie|mime/multipart
inspiring_diffie|net/http/httptrace
inspiring_diffie|net/http/internal
inspiring_diffie|net/http/internal/ascii
inspiring_diffie|net/http
inspiring_diffie|text/tabwriter
inspiring_diffie|golang.org/x/net/trace
inspiring_diffie|google.golang.org/grpc/backoff
inspiring_diffie|golang.org/x/sys/unix
inspiring_diffie|google.golang.org/grpc/internal/grpclog
inspiring_diffie|google.golang.org/grpc/grpclog
inspiring_diffie|google.golang.org/grpc/connectivity
inspiring_diffie|google.golang.org/grpc/attributes
inspiring_diffie|google.golang.org/grpc/internal/credentials
inspiring_diffie|google.golang.org/grpc/credentials
inspiring_diffie|google.golang.org/grpc/internal/channelz
inspiring_diffie|google.golang.org/grpc/channelz
inspiring_diffie|regexp/syntax
inspiring_diffie|regexp
inspiring_diffie|google.golang.org/protobuf/internal/encoding/json
inspiring_diffie|google.golang.org/protobuf/encoding/protojson
inspiring_diffie|github.com/golang/protobuf/jsonpb
inspiring_diffie|google.golang.org/grpc/internal/pretty
inspiring_diffie|google.golang.org/grpc/serviceconfig
inspiring_diffie|google.golang.org/grpc/resolver
inspiring_diffie|google.golang.org/grpc/internal
inspiring_diffie|google.golang.org/grpc/metadata
inspiring_diffie|google.golang.org/grpc/balancer
inspiring_diffie|google.golang.org/grpc/balancer/base
inspiring_diffie|google.golang.org/grpc/internal/grpcrand
inspiring_diffie|google.golang.org/grpc/balancer/roundrobin
inspiring_diffie|google.golang.org/grpc/codes
inspiring_diffie|google.golang.org/grpc/credentials/insecure
inspiring_diffie|google.golang.org/grpc/internal/envconfig
inspiring_diffie|google.golang.org/grpc/internal/grpcutil
inspiring_diffie|google.golang.org/grpc/encoding
inspiring_diffie|google.golang.org/grpc/encoding/proto
inspiring_diffie|google.golang.org/grpc/internal/backoff
inspiring_diffie|google.golang.org/grpc/internal/balancer/gracefulswitch
inspiring_diffie|google.golang.org/grpc/internal/balancerload
inspiring_diffie|google.golang.org/protobuf/types/known/anypb
inspiring_diffie|github.com/golang/protobuf/ptypes/any
inspiring_diffie|google.golang.org/protobuf/types/known/durationpb
inspiring_diffie|github.com/golang/protobuf/ptypes/duration
inspiring_diffie|github.com/golang/protobuf/ptypes
inspiring_diffie|google.golang.org/grpc/binarylog/grpc_binarylog_v1
inspiring_diffie|google.golang.org/genproto/googleapis/rpc/status
inspiring_diffie|google.golang.org/grpc/internal/status
inspiring_diffie|google.golang.org/grpc/status
inspiring_diffie|google.golang.org/grpc/internal/binarylog
inspiring_diffie|google.golang.org/grpc/internal/buffer
inspiring_diffie|google.golang.org/grpc/internal/grpcsync
inspiring_diffie|google.golang.org/grpc/internal/metadata
inspiring_diffie|google.golang.org/grpc/internal/serviceconfig
inspiring_diffie|google.golang.org/grpc/internal/resolver
inspiring_diffie|google.golang.org/grpc/balancer/grpclb/state
inspiring_diffie|google.golang.org/grpc/internal/resolver/dns
inspiring_diffie|google.golang.org/grpc/internal/resolver/passthrough
inspiring_diffie|google.golang.org/grpc/internal/transport/networktype
inspiring_diffie|google.golang.org/grpc/internal/resolver/unix
inspiring_diffie|golang.org/x/text/transform
inspiring_diffie|golang.org/x/text/unicode/bidi
inspiring_diffie|golang.org/x/text/secure/bidirule
inspiring_diffie|golang.org/x/text/unicode/norm
inspiring_diffie|golang.org/x/net/idna
inspiring_diffie|golang.org/x/net/http/httpguts
inspiring_diffie|golang.org/x/net/http2/hpack
inspiring_diffie|golang.org/x/net/http2
inspiring_diffie|google.golang.org/grpc/internal/syscall
inspiring_diffie|google.golang.org/grpc/keepalive
inspiring_diffie|google.golang.org/grpc/peer
inspiring_diffie|google.golang.org/grpc/stats
inspiring_diffie|google.golang.org/grpc/tap
inspiring_diffie|net/http/httputil
inspiring_diffie|google.golang.org/grpc/internal/transport
inspiring_diffie|google.golang.org/grpc
inspiring_diffie|google.golang.org/protobuf/types/known/emptypb
inspiring_diffie|github.com/hyperledger/fabric-protos-go/peer
inspiring_diffie|github.com/hyperledger/fabric-chaincode-go/shim/internal
inspiring_diffie|github.com/hyperledger/fabric-protos-go/ledger/queryresult
inspiring_diffie|github.com/hyperledger/fabric-chaincode-go/shim
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/contractapi/utils
inspiring_diffie|internal/saferio
inspiring_diffie|encoding/gob
inspiring_diffie|github.com/josharian/intern
inspiring_diffie|github.com/mailru/easyjson/jlexer
inspiring_diffie|github.com/mailru/easyjson/buffer
inspiring_diffie|github.com/mailru/easyjson/jwriter
inspiring_diffie|gopkg.in/yaml.v2
inspiring_diffie|github.com/go-openapi/swag
inspiring_diffie|github.com/go-openapi/jsonpointer
inspiring_diffie|github.com/go-openapi/jsonreference/internal
inspiring_diffie|github.com/go-openapi/jsonreference
inspiring_diffie|github.com/go-openapi/spec
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/internal/types
inspiring_diffie|github.com/xeipuuv/gojsonpointer
inspiring_diffie|github.com/xeipuuv/gojsonreference
inspiring_diffie|net/mail
inspiring_diffie|github.com/xeipuuv/gojsonschema
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/internal/utils
inspiring_diffie|os/exec
inspiring_diffie|github.com/joho/godotenv
inspiring_diffie|github.com/rogpeppe/go-internal/semver
inspiring_diffie|github.com/rogpeppe/go-internal/module
inspiring_diffie|github.com/rogpeppe/go-internal/modfile
inspiring_diffie|github.com/gobuffalo/envy
inspiring_diffie|github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx
inspiring_diffie|github.com/gobuffalo/packd
inspiring_diffie|github.com/gobuffalo/packr
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/metadata
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/serializer
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/internal
inspiring_diffie|github.com/hyperledger/fabric-contract-api-go/contractapi
inspiring_diffie|github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode
inspiring_diffie|github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go
inspiring_diffie|# github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go
inspiring_diffie|/usr/bin/ld: /tmp/go-link-4085013870/000004.o: in function `_cgo_cbcce81e6342_C2func_getaddrinfo':
inspiring_diffie|/tmp/go-build/cgo-gcc-prolog:58: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
inspiring_diffie|Done!
peer0.org2.example.com|2023-08-09 05:34:37.921 UTC 004b INFO [lifecycle] InstallChaincode -> Successfully installed chaincode with package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578'
peer0.org2.example.com|2023-08-09 05:34:37.921 UTC 004c INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 85149ms channel= txID=7af380e4
peer0.org2.example.com|2023-08-09 05:34:37.921 UTC 004d INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:54216 grpc.code=OK grpc.call_duration=1m25.152027105s
peer0.org2.example.com|2023-08-09 05:45:13.162 UTC 004e INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 1ms channel= txID=5aafb1de
peer0.org2.example.com|2023-08-09 05:45:13.162 UTC 004f INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:59736 grpc.code=OK grpc.call_duration=2.456688ms
peer0.org2.example.com|2023-08-09 05:55:21.386 UTC 0050 INFO [lifecycle] ApproveChaincodeDefinitionForOrg -> Successfully endorsed chaincode approval with name 'basic', package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578', on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: ()}
peer0.org2.example.com|2023-08-09 05:55:21.386 UTC 0051 INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 5ms channel=mychannel txID=31dfb0e4
peer0.org2.example.com|2023-08-09 05:55:21.390 UTC 0052 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:52842 grpc.code=OK grpc.call_duration=10.79962ms
orderer.example.com|2023-08-09 05:55:23.403 UTC 003b INFO [orderer.consensus.etcdraft] propose -> Created block [3], there are 0 blocks in flight channel=mychannel node=1
orderer.example.com|2023-08-09 05:55:23.410 UTC 003c INFO [orderer.consensus.etcdraft] writeBlock -> Writing block [3] (Raft index: 5) to ledger channel=mychannel node=1
peer0.org2.example.com|2023-08-09 05:55:23.427 UTC 0053 INFO [gossip.privdata] StoreBlock -> Received block [3] from buffer channel=mychannel
peer0.org1.example.com|2023-08-09 05:55:23.424 UTC 0053 INFO [gossip.privdata] StoreBlock -> Received block [3] from buffer channel=mychannel
peer0.org1.example.com|2023-08-09 05:55:23.436 UTC 0054 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [3] in 5ms
peer0.org2.example.com|2023-08-09 05:55:23.438 UTC 0054 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [3] in 10ms
peer0.org2.example.com|2023-08-09 05:55:23.442 UTC 0055 INFO [gossip.privdata] RetrievePvtdata -> Successfully fetched (or marked to reconcile later) all 1 eligible collection private write sets for block [3] (0 from local cache, 1 from transient store, 0 from other peers) channel=mychannel
peer0.org1.example.com|2023-08-09 05:55:23.463 UTC 0055 INFO [kvledger] commit -> [mychannel] Committed block [3] with 1 transaction(s) in 22ms (state_validation=0ms block_and_pvtdata_commit=13ms state_commit=4ms) commitHash=[6f1967298e705a865006906f25bab925e7dd2349d29434ee4225172a6b725fc4]
peer0.org2.example.com|2023-08-09 05:55:23.470 UTC 0056 INFO [kvledger] commit -> [mychannel] Committed block [3] with 1 transaction(s) in 26ms (state_validation=0ms block_and_pvtdata_commit=13ms state_commit=3ms) commitHash=[6f1967298e705a865006906f25bab925e7dd2349d29434ee4225172a6b725fc4]
orderer.example.com|2023-08-09 05:55:23.480 UTC 003d WARN [orderer.common.broadcast] Handle -> Error reading from 172.18.0.1:55914: rpc error: code = Canceled desc = context canceled
orderer.example.com|2023-08-09 05:55:23.480 UTC 003e INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.18.0.1:55914 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=2.098570428s
peer0.org2.example.com|2023-08-09 05:55:23.483 UTC 0057 INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=protos.Deliver grpc.method=DeliverFiltered grpc.request_deadline=2023-08-09T05:55:51.393Z grpc.peer_address=172.18.0.1:52850 error="context finished before block retrieved: context canceled" grpc.code=Unknown grpc.call_duration=2.090130644s
peer0.org1.example.com|2023-08-09 09:38:06.078 UTC 0056 INFO [lifecycle] ApproveChaincodeDefinitionForOrg -> Successfully endorsed chaincode approval with name 'basic', package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578', on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: ()}
peer0.org1.example.com|2023-08-09 09:38:06.079 UTC 0057 INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 3ms channel=mychannel txID=fe9259ac
peer0.org1.example.com|2023-08-09 09:38:06.086 UTC 0058 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:48786 grpc.code=OK grpc.call_duration=10.687797ms
orderer.example.com|2023-08-09 09:38:08.092 UTC 003f INFO [orderer.consensus.etcdraft] propose -> Created block [4], there are 0 blocks in flight channel=mychannel node=1
orderer.example.com|2023-08-09 09:38:08.104 UTC 0040 INFO [orderer.consensus.etcdraft] writeBlock -> Writing block [4] (Raft index: 6) to ledger channel=mychannel node=1
peer0.org2.example.com|2023-08-09 09:38:08.112 UTC 0058 INFO [gossip.privdata] StoreBlock -> Received block [4] from buffer channel=mychannel
peer0.org1.example.com|2023-08-09 09:38:08.115 UTC 0059 INFO [gossip.privdata] StoreBlock -> Received block [4] from buffer channel=mychannel
peer0.org2.example.com|2023-08-09 09:38:08.132 UTC 0059 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [4] in 10ms
peer0.org1.example.com|2023-08-09 09:38:08.134 UTC 005a INFO [committer.txvalidator] Validate -> [mychannel] Validated block [4] in 10ms
peer0.org1.example.com|2023-08-09 09:38:08.137 UTC 005b INFO [gossip.privdata] RetrievePvtdata -> Successfully fetched (or marked to reconcile later) all 1 eligible collection private write sets for block [4] (0 from local cache, 1 from transient store, 0 from other peers) channel=mychannel
peer0.org1.example.com|2023-08-09 09:38:08.182 UTC 005c INFO [kvledger] commit -> [mychannel] Committed block [4] with 1 transaction(s) in 41ms (state_validation=1ms block_and_pvtdata_commit=28ms state_commit=6ms) commitHash=[52b410b175d947976576b1390edda5eceb73793907d1e95b320ac5fa70c6c082]
peer0.org2.example.com|2023-08-09 09:38:08.191 UTC 005a INFO [kvledger] commit -> [mychannel] Committed block [4] with 1 transaction(s) in 52ms (state_validation=4ms block_and_pvtdata_commit=30ms state_commit=4ms) commitHash=[52b410b175d947976576b1390edda5eceb73793907d1e95b320ac5fa70c6c082]
orderer.example.com|2023-08-09 09:38:08.198 UTC 0041 WARN [orderer.common.broadcast] Handle -> Error reading from 172.18.0.1:44444: rpc error: code = Canceled desc = context canceled
orderer.example.com|2023-08-09 09:38:08.198 UTC 0042 INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.18.0.1:44444 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=2.124032921s
peer0.org1.example.com|2023-08-09 09:38:08.200 UTC 005d INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=protos.Deliver grpc.method=DeliverFiltered grpc.request_deadline=2023-08-09T09:38:36.096Z grpc.peer_address=172.18.0.1:48788 error="context finished before block retrieved: context canceled" grpc.code=Unknown grpc.call_duration=2.103690209s
peer0.org1.example.com|2023-08-09 09:45:10.840 UTC 005e INFO [lifecycle] CheckCommitReadiness -> Successfully checked commit readiness of chaincode name 'basic' on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: (<nil>)}
peer0.org1.example.com|2023-08-09 09:45:10.841 UTC 005f INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 1ms channel=mychannel txID=39dc1ef2
peer0.org1.example.com|2023-08-09 09:45:10.842 UTC 0060 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:57060 grpc.code=OK grpc.call_duration=3.45275ms
peer0.org1.example.com|2023-08-09 09:58:17.408 UTC 0061 INFO [lifecycle] CheckCommitReadiness -> Successfully checked commit readiness of chaincode name 'basic' on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: (<nil>)}
peer0.org1.example.com|2023-08-09 09:58:17.408 UTC 0062 INFO [lifecycle] CommitChaincodeDefinition -> Successfully endorsed commit for chaincode name 'basic' on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: (<nil>)}
peer0.org1.example.com|2023-08-09 09:58:17.410 UTC 0063 INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 2ms channel=mychannel txID=3d3b09d8
peer0.org1.example.com|2023-08-09 09:58:17.410 UTC 0064 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:55862 grpc.code=OK grpc.call_duration=3.76187ms
peer0.org2.example.com|2023-08-09 09:58:17.417 UTC 005b INFO [lifecycle] CheckCommitReadiness -> Successfully checked commit readiness of chaincode name 'basic' on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: (<nil>)}
peer0.org2.example.com|2023-08-09 09:58:17.420 UTC 005c INFO [lifecycle] CommitChaincodeDefinition -> Successfully endorsed commit for chaincode name 'basic' on channel 'mychannel' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: (<nil>)}
peer0.org2.example.com|2023-08-09 09:58:17.420 UTC 005d INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 3ms channel=mychannel txID=3d3b09d8
peer0.org2.example.com|2023-08-09 09:58:17.422 UTC 005e INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:53146 grpc.code=OK grpc.call_duration=5.939229ms
orderer.example.com|2023-08-09 09:58:19.426 UTC 0043 INFO [orderer.consensus.etcdraft] propose -> Created block [5], there are 0 blocks in flight channel=mychannel node=1
orderer.example.com|2023-08-09 09:58:19.432 UTC 0044 INFO [orderer.consensus.etcdraft] writeBlock -> Writing block [5] (Raft index: 7) to ledger channel=mychannel node=1
peer0.org1.example.com|2023-08-09 09:58:19.441 UTC 0065 INFO [gossip.privdata] StoreBlock -> Received block [5] from buffer channel=mychannel
peer0.org2.example.com|2023-08-09 09:58:19.443 UTC 005f INFO [gossip.privdata] StoreBlock -> Received block [5] from buffer channel=mychannel
peer0.org2.example.com|2023-08-09 09:58:19.447 UTC 0060 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [5] in 3ms
peer0.org1.example.com|2023-08-09 09:58:19.450 UTC 0066 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [5] in 5ms
peer0.org1.example.com|2023-08-09 09:58:19.452 UTC 0067 INFO [lifecycle] update -> Updating cached definition for chaincode 'basic' on channel 'mychannel'
peer0.org2.example.com|2023-08-09 09:58:19.458 UTC 0061 INFO [lifecycle] update -> Updating cached definition for chaincode 'basic' on channel 'mychannel'
peer0.org2.example.com|2023-08-09 09:58:19.460 UTC 0062 INFO [lifecycle] update -> Chaincode with package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578' now available on channel mychannel for chaincode definition basic:1.0
peer0.org1.example.com|2023-08-09 09:58:19.461 UTC 0068 INFO [lifecycle] update -> Chaincode with package ID 'basic_1.0:fa7da118f496cd4a3deb4e43c77f9af4f3265b7555942c74c9810557fa5c6578' now available on channel mychannel for chaincode definition basic:1.0
peer0.org1.example.com|2023-08-09 09:58:19.478 UTC 0069 INFO [cceventmgmt] HandleStateUpdates -> Channel [mychannel]: Handling deploy or update of chaincode [basic]
peer0.org2.example.com|2023-08-09 09:58:19.479 UTC 0063 INFO [cceventmgmt] HandleStateUpdates -> Channel [mychannel]: Handling deploy or update of chaincode [basic]
peer0.org1.example.com|2023-08-09 09:58:19.499 UTC 006a INFO [kvledger] commit -> [mychannel] Committed block [5] with 1 transaction(s) in 48ms (state_validation=28ms block_and_pvtdata_commit=8ms state_commit=6ms) commitHash=[87a12b89927c4d246fb326f72959cc2f372da0a5ab0ce01fba8eb7af248e2a07]
orderer.example.com|2023-08-09 09:58:19.525 UTC 0045 WARN [orderer.common.broadcast] Handle -> Error reading from 172.18.0.1:39486: rpc error: code = Canceled desc = context canceled
orderer.example.com|2023-08-09 09:58:19.525 UTC 0046 INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.18.0.1:39486 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=2.110307788s
peer0.org2.example.com|2023-08-09 09:58:19.517 UTC 0064 INFO [kvledger] commit -> [mychannel] Committed block [5] with 1 transaction(s) in 66ms (state_validation=30ms block_and_pvtdata_commit=8ms state_commit=20ms) commitHash=[87a12b89927c4d246fb326f72959cc2f372da0a5ab0ce01fba8eb7af248e2a07]
peer0.org2.example.com|2023-08-09 09:58:19.600 UTC 0065 INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=protos.Deliver grpc.method=DeliverFiltered grpc.request_deadline=2023-08-09T09:58:47.427Z grpc.peer_address=172.18.0.1:53154 error="context finished before block retrieved: context canceled" grpc.code=Unknown grpc.call_duration=2.17212258s
peer0.org1.example.com|2023-08-09 09:58:19.594 UTC 006b INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=protos.Deliver grpc.method=DeliverFiltered grpc.request_deadline=2023-08-09T09:58:47.426Z grpc.peer_address=172.18.0.1:55876 error="context finished before block retrieved: context canceled" grpc.code=Unknown grpc.call_duration=2.168257296s
peer0.org1.example.com|2023-08-09 10:15:01.271 UTC 006c INFO [lifecycle] QueryChaincodeDefinition -> Successfully queried chaincode name 'basic' with definition {sequence: 1, endorsement info: (version: '1.0', plugin: 'escc', init required: false), validation info: (plugin: 'vscc', policy: '12202f4368616e6e656c2f4170706c69636174696f6e2f456e646f7273656d656e74'), collections: ()},
peer0.org1.example.com|2023-08-09 10:15:01.272 UTC 006d INFO [endorser] callChaincode -> finished chaincode: _lifecycle duration: 1ms channel=mychannel txID=78344a6d
peer0.org1.example.com|2023-08-09 10:15:01.282 UTC 006e INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:41988 grpc.code=OK grpc.call_duration=11.973938ms
peer0.org2.example.com|2023-08-09 11:01:11.385 UTC 0066 INFO [endorser] callChaincode -> finished chaincode: basic duration: 2ms channel=mychannel txID=b2969bcc
peer0.org1.example.com|2023-08-09 11:01:11.390 UTC 006f INFO [endorser] callChaincode -> finished chaincode: basic duration: 2ms channel=mychannel txID=b2969bcc
peer0.org2.example.com|2023-08-09 11:01:11.391 UTC 0067 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:59452 grpc.code=OK grpc.call_duration=9.470456ms
peer0.org1.example.com|2023-08-09 11:01:11.392 UTC 0070 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:52526 grpc.code=OK grpc.call_duration=5.491763ms
orderer.example.com|2023-08-09 11:01:11.402 UTC 0047 WARN [orderer.common.broadcast] Handle -> Error reading from 172.18.0.1:45160: rpc error: code = Canceled desc = context canceled
orderer.example.com|2023-08-09 11:01:11.402 UTC 0048 INFO [comm.grpc.server] 1 -> streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.18.0.1:45160 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=15.37168ms
orderer.example.com|2023-08-09 11:01:13.396 UTC 0049 INFO [orderer.consensus.etcdraft] propose -> Created block [6], there are 0 blocks in flight channel=mychannel node=1
orderer.example.com|2023-08-09 11:01:13.406 UTC 004a INFO [orderer.consensus.etcdraft] writeBlock -> Writing block [6] (Raft index: 8) to ledger channel=mychannel node=1
peer0.org2.example.com|2023-08-09 11:01:13.417 UTC 0068 INFO [gossip.privdata] StoreBlock -> Received block [6] from buffer channel=mychannel
peer0.org1.example.com|2023-08-09 11:01:13.418 UTC 0071 INFO [gossip.privdata] StoreBlock -> Received block [6] from buffer channel=mychannel
peer0.org1.example.com|2023-08-09 11:01:13.422 UTC 0072 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [6] in 1ms
peer0.org2.example.com|2023-08-09 11:01:13.426 UTC 0069 INFO [committer.txvalidator] Validate -> [mychannel] Validated block [6] in 6ms
peer0.org1.example.com|2023-08-09 11:01:13.443 UTC 0073 INFO [kvledger] commit -> [mychannel] Committed block [6] with 1 transaction(s) in 15ms (state_validation=0ms block_and_pvtdata_commit=9ms state_commit=3ms) commitHash=[346f9ac883c581b799341b3b483764991c468095a66a44c25439274303f5b078]
peer0.org2.example.com|2023-08-09 11:01:13.445 UTC 006a INFO [kvledger] commit -> [mychannel] Committed block [6] with 1 transaction(s) in 16ms (state_validation=0ms block_and_pvtdata_commit=9ms state_commit=3ms) commitHash=[346f9ac883c581b799341b3b483764991c468095a66a44c25439274303f5b078]
peer0.org1.example.com|2023-08-09 11:04:24.101 UTC 0074 INFO [endorser] callChaincode -> finished chaincode: basic duration: 2ms channel=mychannel txID=ea174cf0
peer0.org1.example.com|2023-08-09 11:04:24.103 UTC 0075 INFO [comm.grpc.server] 1 -> unary call completed grpc.service=protos.Endorser grpc.method=ProcessProposal grpc.peer_address=172.18.0.1:50998 grpc.code=OK grpc.call_duration=4.446394ms
curl: (18) transfer closed with outstanding read data remaining