Running FabricV1.1.0 Fabcar under Ubuntu20.04 and solving related problems

Running FabricV1.1.0 Fabcar under Ubuntu20.04 and solving related problems

Running FabricV1.1.0 Fabcar under Ubuntu20.04 and solving related problems

Note: This guide is based on the operation and configuration instructions of Fabric V2.2.0 and V1.1.0 under Ubuntu 20.04 (both can be run) . It is recommended to read the previous blog if the foundation is not solid.

It's too long to read the version - 4 necessary conditions to run Fabcar successfully

1. Modify the configuration file docker-compose.yml in fabric-samples/basic-network/

Just replace the following content in full (see details 1.1.4 解决方案:修改配置文件)

#
# Copyright IBM Corp All Rights Reserved
#
# SPDX-License-Identifier: Apache-2.0
#
version: '2'

networks:
  basic:

services:
  ca.example.com:
    image: hyperledger/fabric-ca:latest
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca.example.com
      - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
      - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk
    ports:
      - "7054:7054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw -d'
    volumes:
      - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
    container_name: ca.example.com
    networks:
      - basic

  orderer.example.com:
    container_name: orderer.example.com
    image: hyperledger/fabric-orderer:latest
    environment:
      - GODEBUG=netdns=go
      - ORDERER_GENERAL_LOGLEVEL=debug
      - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
      - ORDERER_GENERAL_GENESISMETHOD=file
      - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block
      - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
      - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer
    command: orderer
    ports:
      - 7050:7050
    volumes:
        - ./config/:/etc/hyperledger/configtx
        - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/msp/orderer
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/msp/peerOrg1
    networks:
      - basic

  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    image: hyperledger/fabric-peer:latest
    environment:
      - GODEBUG=netdns=go
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_PEER_ID=peer0.org1.example.com
      - CORE_LOGGING_PEER=debug
      - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      # # the following setting starts chaincode containers on the same
      # # bridge network as the peers
      # # https://docs.docker.com/compose/networking/
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_basic
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
      # The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD
      # provide the credentials for ledger to connect to CouchDB.  The username and password must
      # match the username and password set for the associated CouchDB.
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    command: peer node start
    # command: peer node start --peer-chaincodedev=true
    ports:
      - 7051:7051
      - 7053:7053
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/msp/peer
        - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
        - ./config:/etc/hyperledger/configtx
    depends_on:
      - orderer.example.com
      - couchdb
    networks:
      - basic

  couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb:latest
    # Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password
    # for CouchDB.  This will prevent CouchDB from operating in an "Admin Party" mode.
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - 5984:5984
    networks:
      - basic

  cli:
    container_name: cli
    image: hyperledger/fabric-tools:latest
    tty: true
    environment:
      - GODEBUG=netdns=go
      - GOPATH=/opt/gopath
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_PEER_ID=cli
      - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
      - CORE_CHAINCODE_KEEPALIVE=10
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: /bin/bash
    volumes:
        - /var/run/:/host/var/run/
        - ./../chaincode/:/opt/gopath/src/github.com/
        - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
    networks:
        - basic
    #depends_on:
    #  - orderer.example.com
    #  - peer0.org1.example.com
    #  - couchdb

2. Uninstall npm and node, install V8.9.4

#apt-get 卸载
sudo apt-get remove --purge npm
sudo apt-get remove --purge nodejs
sudo apt-get remove --purge nodejs-legacy
sudo apt-get autoremove
wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz
tar -xzvf node-v8.9.4-linux-x64.tar.gz
mv node-v8.9.4-linux-x64/ /usr/local/software/node/
rm -rf /usr/local/bin/npm /usr/local/bin/node
ln -s /usr/local/software/node/bin/npm /usr/local/bin/npm
ln -s /usr/local/software/node/bin/node /usr/local/bin/node

3. Change the python version corresponding to npm to 2.7.9

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=usr/local/python-2.7.9
make
make install
python2.7.9 -V
npm config set python python2.7.9

4. Install node-gyp dependencies

sudo apt-get update
sudo apt-get install libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev build-essential g++
sudo npm install -g node-gyp

The following is the main text, including the problems encountered, solutions and solutions:

Fabcar case study

1. Run the startFabric.sh file directly - report an error

./workspace/github.com/fabric/fabric-samples/fabcar/startFabric.sh

Error response from daemon: Container ac9a4d8e1b7e3f39d77fe3787a6a786a4a2cb005d644d0627d7097db512e3952 is not running

working process:

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# ./startFabric.sh 

# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1

docker-compose -f docker-compose.yml down
Removing network net_basic

docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Pulling ca.example.com (hyperledger/fabric-ca:)...
latest: Pulling from hyperledger/fabric-ca
b8f262c62ec6: Pull complete
db9dbc6799b3: Pull complete
9c5c884a6020: Pull complete
370868734ec0: Pull complete
cbce57ae4cad: Pull complete
fc00299dbf2c: Pull complete
a1e42212f1ce: Pull complete
add0e148da22: Pull complete
Digest: sha256:28f50c6aa4f4642842e706d3ae6dcee181921d03bd30ab2a8b09b66e0349d92f
Status: Downloaded newer image for hyperledger/fabric-ca:latest
Creating couchdb             ... done
Creating orderer.example.com ... done
Creating ca.example.com      ... done
Creating peer0.org1.example.com ... done

# wait for Hyperledger Fabric to start
# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=<larger number>
export FABRIC_START_TIMEOUT=10
#echo ${FABRIC_START_TIMEOUT}
sleep ${FABRIC_START_TIMEOUT}

# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
Error response from daemon: Container ac9a4d8e1b7e3f39d77fe3787a6a786a4a2cb005d644d0627d7097db512e3952 is not running

1.1 Troubleshooting: Check the running process of the container—check that the peer node of the container is not started, indicating that the peer node has an error

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samproot@The-Land-Like-as-A-Picture:/workspace/githroot@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# docker ps -a
CONTAINER ID   IMAGE                        COMMAND                  CREATED       STATUS                   PORTS                                                           NAMES
ac9a4d8e1b7e   hyperledger/fabric-peer      "peer node start"        2 hours ago   Exited (2) 2 hours ago                                                                   peer0.org1.example.com
da410dea0ea0   hyperledger/fabric-ca        "sh -c 'fabric-ca-se…"   2 hours ago   Up 2 hours               0.0.0.0:7054->7054/tcp, :::7054->7054/tcp                       ca.example.com
dda264da6e6e   hyperledger/fabric-orderer   "orderer"                2 hours ago   Up 2 hours               0.0.0.0:7050->7050/tcp, :::7050->7050/tcp                       orderer.example.com
ec63f99bb248   hyperledger/fabric-couchdb   "tini -- /docker-ent…"   2 hours ago   Up 2 hours               4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp, :::5984->5984/tcp   couchdb
1.1.1 Solve the problem:

View the running logic of the script startFabric.sh:

  1. Start the network from basic-networkthe folder ;start.sh
  2. Then by:docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdbCall the corresponding docker container
1.1.2 Solution idea: consider the corresponding peer node startup process, prepare to manually start the network and set it up before proceeding to the next step of container startup

Refer to the previous tutorial on the operation and configuration instructions of Fabric V2.2.0 and V1.1.0 under Ubuntu 20.04 (both can be run) : 4. 1.1.0版本安装教程:verify in first-network first.

  1. Preliminary work
    After 4.1 网络初始化the initialization is complete, press 4.4 部署智能合约to 4.4.1 fabric 1.1 初始声明complete the statement, and call it through the command:
docker-compose -f docker-compose-cli.yaml up -d
docker ps -a

Result: The peer is found to be in the startup state

  1. Then fabcartest the command in
docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb

Result: found that peer is not started
insert image description here

  1. Make sure the statement is complete

insert image description here

insert image description here

1.1.3 Solution: consider the configuration file

Comparing with docker-compose.ymland docker-compose-cli.yaml,
it is found that the call docker-compose-cli.yamlon the peer isbase/docker-compose-base.yaml
insert image description here

By comparison, it is found that there is no version numberdocker-compose.yml in , and there is no treatment for3. 1.1.0版本启动网络报 SIGSEGV 错误
insert image description here

  1. First, declare the required container ca.example.com (Ca) orderer.example.com (Order) peer0.org1.example.com (Peer) couchdb version as latest

Run it again and find that the peer still cannot start:
insert image description here

  1. Consider breaking into the container to view the logs:

docker logs e5526c24374e
found the same error:
[signal SIGSEGV: segmentation violation code=0x1 addr=0x63 pc=0x7f8a103ce259]
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Creating couchdb             ... done
Creating orderer.example.com ... done
Creating ca.example.com      ... done
Creating peer0.org1.example.com ... done
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker ps -a
CONTAINER ID   IMAGE                               COMMAND                  CREATED         STATUS                     PORTS                                                           NAMES
e5526c24374e   hyperledger/fabric-peer:latest      "peer node start"        4 seconds ago   Exited (2) 3 seconds ago                                                                   peer0.org1.example.com
1468cc59e562   hyperledger/fabric-orderer:latest   "orderer"                5 seconds ago   Up 3 seconds               0.0.0.0:7050->7050/tcp, :::7050->7050/tcp                       orderer.example.com
7f5fe223191b   hyperledger/fabric-couchdb:latest   "tini -- /docker-ent…"   5 seconds ago   Up 4 seconds               4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp, :::5984->5984/tcp   couchdb
c2fb4f4619ed   hyperledger/fabric-ca:latest        "sh -c 'fabric-ca-se…"   5 seconds ago   Up 3 seconds               0.0.0.0:7054->7054/tcp, :::7054->7054/tcp                       ca.example.com
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker logs e5526c24374e
2022-06-02 14:15:05.778 UTC [nodeCmd] serve -> INFO 001 Starting peer:
 Version: 1.1.0
 Go version: go1.9.2
 OS/Arch: linux/amd64
 Experimental features: false
 Chaincode:
  Base Image Version: 0.4.6
  Base Docker Namespace: hyperledger
  Base Docker Label: org.hyperledger.fabric
  Docker Namespace: hyperledger

2022-06-02 14:15:05.778 UTC [ledgermgmt] initialize -> INFO 002 Initializing ledger mgmt
2022-06-02 14:15:05.778 UTC [kvledger] NewProvider -> INFO 003 Initializing ledger provider
2022-06-02 14:15:05.791 UTC [couchdb] handleRequest -> WARN 004 Retrying couchdb request in 125ms. Attempt:1  Error:Get http://couchdb:5984/: dial tcp 172.23.0.2:5984: getsockopt: connection refused
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x63 pc=0x7f8a103ce259]

runtime stack:
runtime.throw(0xf11259, 0x2a)
	/opt/go/src/runtime/panic.go:605 +0x95
runtime.sigpanic()
	/opt/go/src/runtime/signal_unix.go:351 +0x2b8

goroutine 46 [syscall, locked to thread]:
runtime.cgocall(0xbf3800, 0xc420280ac8, 0xf0fa21)
	/opt/go/src/runtime/cgocall.go:132 +0xe4 fp=0xc420280a88 sp=0xc420280a48 pc=0x4023b4
net._C2func_getaddrinfo(0x7f8a0c0008c0, 0x0, 0xc4202a6810, 0xc42013c100, 0x0, 0x0, 0x0)
	net/_obj/_cgo_gotypes.go:86 +0x5f fp=0xc420280ac8 sp=0xc420280a88 pc=0x5f893f
net.cgoLookupIPCNAME.func2(0x7f8a0c0008c0, 0x0, 0xc4202a6810, 0xc42013c100, 0x0, 0x0, 0x0)
	/opt/go/src/net/cgo_unix.go:151 +0x13f fp=0xc420280b20 sp=0xc420280ac8 pc=0x5ffedf
net.cgoLookupIPCNAME(0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/cgo_unix.go:151 +0x175 fp=0xc420280c18 sp=0xc420280b20 pc=0x5fa195
net.cgoLookupIP(0x1667b00, 0xc42001c090, 0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/cgo_unix.go:209 +0x38f fp=0xc420280d80 sp=0xc420280c18 pc=0x5fad1f
net.(*Resolver).lookupIP(0x169d370, 0x1667b00, 0xc42001c090, 0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/lookup_unix.go:95 +0x12d fp=0xc420280df8 sp=0xc420280d80 pc=0x5e59bd
net.(*Resolver).(net.lookupIP)-fm(0x1667b00, 0xc42001c090, 0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/lookup.go:187 +0x56 fp=0xc420280e58 sp=0xc420280df8 pc=0x602836
net.glob..func10(0x1667b00, 0xc42001c090, 0xc4202a40d0, 0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/hook.go:19 +0x52 fp=0xc420280eb0 sp=0xc420280e58 pc=0x5fc722
net.(*Resolver).LookupIPAddr.func1(0xc420148000, 0x1667b00, 0xc42001c090, 0x0)
	/opt/go/src/net/lookup.go:193 +0x5c fp=0xc420280f38 sp=0xc420280eb0 pc=0x5febac
internal/singleflight.(*Group).doCall(0x169d360, 0xc420196370, 0xc42025a054, 0x7, 0xc4202a6750)
	/opt/go/src/internal/singleflight/singleflight.go:93 +0x2e fp=0xc420280fb8 sp=0xc420280f38 pc=0x5c0dce
runtime.goexit()
	/opt/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc420280fc0 sp=0xc420280fb8 pc=0x45e391
created by internal/singleflight.(*Group).DoChan
	/opt/go/src/internal/singleflight/singleflight.go:86 +0x31f

goroutine 1 [select]:
net/http.(*Transport).getConn(0xc420148000, 0xc4202a65a0, 0x0, 0xc4200169c0, 0x4, 0xc42025a054, 0xc, 0x0, 0x0, 0x4)
	/opt/go/src/net/http/transport.go:948 +0x5bf
net/http.(*Transport).RoundTrip(0xc420148000, 0xc420170500, 0xc420148000, 0xc09e4f6336ab64da, 0x8305de086)
	/opt/go/src/net/http/transport.go:400 +0x6a6
net/http.send(0xc420170400, 0x165aac0, 0xc420148000, 0xc09e4f6336ab64da, 0x8305de086, 0x169e900, 0xc42013c0f0, 0xc09e4f6336ab64da, 0xc420134e20, 0x1)
	/opt/go/src/net/http/client.go:249 +0x1a9
net/http.(*Client).send(0xc420258ff0, 0xc420170400, 0xc09e4f6336ab64da, 0x8305de086, 0x169e900, 0xc42013c0f0, 0x0, 0x1, 0x42b3c8)
	/opt/go/src/net/http/client.go:173 +0xfd
net/http.(*Client).Do(0xc420258ff0, 0xc420170400, 0x0, 0xef2cf7, 0x11)
	/opt/go/src/net/http/client.go:602 +0x28d
github.com/hyperledger/fabric/core/ledger/util/couchdb.(*CouchInstance).handleRequest(0xc4200739a0, 0xee7426, 0x3, 0xc4200169c0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/util/couchdb/couchdb.go:1598 +0x4f0
github.com/hyperledger/fabric/core/ledger/util/couchdb.(*CouchInstance).VerifyCouchConfig(0xc4200739a0, 0x0, 0x0, 0x0, 0x0)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/util/couchdb/couchdb.go:388 +0x200
github.com/hyperledger/fabric/core/ledger/util/couchdb.CreateCouchInstance(0xc4200180af, 0xc, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x826299e00, 0xc420135498, ...)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/util/couchdb/couchdbutil.go:66 +0x2ec
github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/statedb/statecouchdb.NewVersionedDBProvider(0xc42000c001, 0x1669260, 0xc42000c180)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/statedb/statecouchdb/statecouchdb.go:76 +0xc1
github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/privacyenabledstate.NewCommonStorageDBProvider(0xc42000c1c0, 0x36, 0xc4201a2060, 0x1)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/privacyenabledstate/common_storage_db.go:38 +0x37
github.com/hyperledger/fabric/core/ledger/kvledger.NewProvider(0xe4f9e0, 0xc420211d40, 0xc4203b0c90, 0x0)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/kv_ledger_provider.go:60 +0xad
github.com/hyperledger/fabric/core/ledger/ledgermgmt.initialize(0xc420258090)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:64 +0x227
github.com/hyperledger/fabric/core/ledger/ledgermgmt.Initialize.func1()
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:52 +0x2a
sync.(*Once).Do(0x16c57f0, 0xc4201b7660)
	/opt/go/src/sync/once.go:44 +0xbe
github.com/hyperledger/fabric/core/ledger/ledgermgmt.Initialize(0xc420258090)
	/opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:51 +0x4d
github.com/hyperledger/fabric/peer/node.serve(0x16c5708, 0x0, 0x0, 0x0, 0x0)
	/opt/gopath/src/github.com/hyperledger/fabric/peer/node/start.go:117 +0x155
github.com/hyperledger/fabric/peer/node.glob..func1(0x164ce80, 0x16c5708, 0x0, 0x0, 0x0, 0x0)
	/opt/gopath/src/github.com/hyperledger/fabric/peer/node/start.go:87 +0x3f
github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).execute(0x164ce80, 0x16c5708, 0x0, 0x0, 0x164ce80, 0x16c5708)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:599 +0x3e8
github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x164d4e0, 0x11, 0xc42025acb0, 0x5)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:689 +0x2fe
github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).Execute(0x164d4e0, 0x1a, 0xc420016055)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:648 +0x2b
main.main()
	/opt/gopath/src/github.com/hyperledger/fabric/peer/main.go:112 +0x5e1

goroutine 34 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc4202b8300)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x119
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:139 +0x4bd

goroutine 10 [syscall]:
os/signal.signal_recv(0x0)
	/opt/go/src/runtime/sigqueue.go:131 +0xa6
os/signal.loop()
	/opt/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.0
	/opt/go/src/os/signal/signal_unix.go:28 +0x41

goroutine 11 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc4202b48c0)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0x172
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x195

goroutine 35 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc4202b8300)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go:96 +0x13b
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:140 +0x4df

goroutine 36 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc4202b8300)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:804 +0x2c8
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:146 +0x65e

goroutine 37 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc4202b8300)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:751 +0x192
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:147 +0x680

goroutine 38 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc4202b4000)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0x172
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x195

goroutine 39 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc4207fe600)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x119
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:139 +0x4bd

goroutine 40 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc4207fe600)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go:96 +0x13b
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:140 +0x4df

goroutine 41 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc4207fe600)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:804 +0x2c8
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:146 +0x65e

goroutine 42 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc4207fe600)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:751 +0x192
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:147 +0x680

goroutine 43 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0xc4202b40e0)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:206 +0x172
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go:237 +0x195

goroutine 50 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).compactionError(0xc4207f0d80)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:90 +0x119
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:139 +0x4bd

goroutine 51 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mpoolDrain(0xc4207f0d80)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go:96 +0x13b
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:140 +0x4df

goroutine 52 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).tCompaction(0xc4207f0d80)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:804 +0x2c8
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:146 +0x65e

goroutine 53 [select]:
github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.(*DB).mCompaction(0xc4207f0d80)
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go:751 +0x192
created by github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb.openDB
	/opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/syndtr/goleveldb/leveldb/db.go:147 +0x680

goroutine 44 [select]:
net/http.setRequestCancel.func3(0x0, 0xc4202a6570, 0xc42005e100, 0xc42025a050, 0xc4203ba4e0)
	/opt/go/src/net/http/client.go:320 +0x118
created by net/http.setRequestCancel
	/opt/go/src/net/http/client.go:319 +0x2bf

goroutine 45 [select]:
net.(*Resolver).LookupIPAddr(0x169d370, 0x1667b00, 0xc42001c090, 0xc42025a054, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/opt/go/src/net/lookup.go:196 +0x52b
net.(*Resolver).internetAddrList(0x169d370, 0x1667b00, 0xc42001c090, 0xee7636, 0x3, 0xc42025a054, 0xc, 0x0, 0x0, 0x0, ...)
	/opt/go/src/net/ipsock.go:293 +0x644
net.(*Resolver).resolveAddrList(0x169d370, 0x1667b00, 0xc42001c090, 0xee7b40, 0x4, 0xee7636, 0x3, 0xc42025a054, 0xc, 0x0, ...)
	/opt/go/src/net/dial.go:193 +0x594
net.(*Dialer).DialContext(0x169e8a0, 0x1667b00, 0xc42001c090, 0xee7636, 0x3, 0xc42025a054, 0xc, 0x0, 0x0, 0x0, ...)
	/opt/go/src/net/dial.go:375 +0x248
net/http.(*Transport).dial(0xc420148000, 0x1667b00, 0xc42001c090, 0xee7636, 0x3, 0xc42025a054, 0xc, 0x422023202020200a, 0x6c75616665642079, 0x6977207469202c74, ...)
	/opt/go/src/net/http/transport.go:893 +0x193
net/http.(*Transport).dialConn(0xc420148000, 0x1667b00, 0xc42001c090, 0x0, 0xc4200169c0, 0x4, 0xc42025a054, 0xc, 0x0, 0x0, ...)
	/opt/go/src/net/http/transport.go:1060 +0x1d62
net/http.(*Transport).getConn.func4(0xc420148000, 0x1667b00, 0xc42001c090, 0xc4202a66c0, 0xc4203ba540)
	/opt/go/src/net/http/transport.go:943 +0x78
created by net/http.(*Transport).getConn
	/opt/go/src/net/http/transport.go:942 +0x393
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# ./teardown.sh 
Killing orderer.example.com ... done
Killing couchdb             ... done
Killing ca.example.com      ... done
Removing peer0.org1.example.com ... done
Removing orderer.example.com    ... done
Removing couchdb                ... done
Removing ca.example.com         ... done
Removing network net_basic
"docker rmi" requires at least 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images
1.1.4 Solution: modify the configuration file

Refer to the previous blog to modify the three configuration files, this time to modify the three places of3. 1.1.0版本启动网络报 SIGSEGV 错误docker-compose.yml
insert image description here
insert image description here
insert image description here

1.1.5 Problem solved - peer node can start normally

execute again

docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb

peer can start normally
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Creating ca.example.com      ... done
Creating couchdb             ... done
Creating orderer.example.com ... done
Creating peer0.org1.example.com ... done
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker ps -a
CONTAINER ID   IMAGE                               COMMAND                  CREATED         STATUS         PORTS                                                                                  NAMES
4f4217a59f38   hyperledger/fabric-peer:latest      "peer node start"        5 seconds ago   Up 4 seconds   0.0.0.0:7051->7051/tcp, :::7051->7051/tcp, 0.0.0.0:7053->7053/tcp, :::7053->7053/tcp   peer0.org1.example.com
1a819391e690   hyperledger/fabric-ca:latest        "sh -c 'fabric-ca-se…"   6 seconds ago   Up 4 seconds   0.0.0.0:7054->7054/tcp, :::7054->7054/tcp                                              ca.example.com
05f5c917a9d2   hyperledger/fabric-orderer:latest   "orderer"                6 seconds ago   Up 4 seconds   0.0.0.0:7050->7050/tcp, :::7050->7050/tcp                                              orderer.example.com
ffefb0820e37   hyperledger/fabric-couchdb:latest   "tini -- /docker-ent…"   6 seconds ago   Up 4 seconds   4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp, :::5984->5984/tcp                          couchdb

1.2 Manually start the network - replace the start.sh script file

After completing the startup of the peer container, by viewing the start.sh script file, you can confirm that there are declarations and channel creation, and node joining:
insert image description here

Just call the commands one by one:

export FABRIC_START_TIMEOUT=10
sleep ${FABRIC_START_TIMEOUT}
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel join -b mychannel.block

insert image description here
working process:

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# export FABRIC_START_TIMEOUT=10
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# sleep ${FABRIC_START_TIMEOUT}
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
2022-06-02 14:50:59.483 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2022-06-02 14:50:59.496 UTC [channelCmd] InitCmdFactory -> INFO 002 Endorser and orderer connections initialized
2022-06-02 14:50:59.703 UTC [main] main -> INFO 003 Exiting.....
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel join -b mychannel.block
2022-06-02 14:51:09.398 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2022-06-02 14:51:09.455 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
2022-06-02 14:51:09.455 UTC [main] main -> INFO 003 Exiting.....

1.3 Everything goes well, continue to manually run the commands in startFabric.sh

After completing start.shthe commands in the script file, continue to view the contents of startFabric.shthe script file:
insert image description here

1.3.1 Call tools to complete the contract initialization: —— report an error

insert image description here

1.3.2 Reason: The input parameter is wrong, this command needs to declare the name-n, version-v and path-p of the corresponding contract

Solution: Just add a path statement

docker exec -it cli bash
echo $CORE_PEER_LOCALMSPID
export CC_SRC_PATH=github.com/fabcar/go
eer chaincode install -n fabcar -v 1.0 -p "$CC_SRC_PATH"

insert image description here
working process

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples# docker exec -it cli bash
root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# echo $CORE_PEER_LOCALMSPID
Org1MSP
root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# export CC_SRC_PATH=github.com/fabcar/go
root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n fabcar -v 1.0 -p "$CC_SRC_PATH"
2022-06-02 15:06:50.929 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2022-06-02 15:06:50.929 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2022-06-02 15:06:50.929 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2022-06-02 15:06:50.929 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2022-06-02 15:06:50.929 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2022-06-02 15:06:50.953 UTC [golang-platform] getCodeFromFS -> DEBU 006 getCodeFromFS github.com/fabcar/go
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 007 Discarding GOROOT package bytes
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 008 Discarding GOROOT package encoding/json
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 009 Discarding GOROOT package fmt
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 00a Discarding provided package github.com/hyperledger/fabric/core/chaincode/shim
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 00b Discarding provided package github.com/hyperledger/fabric/protos/peer
2022-06-02 15:06:51.035 UTC [golang-platform] func1 -> DEBU 00c Discarding GOROOT package strconv
2022-06-02 15:06:51.035 UTC [golang-platform] GetDeploymentPayload -> DEBU 00d done
2022-06-02 15:06:51.036 UTC [container] WriteFileToPackage -> DEBU 00e Writing file to tarball: src/github.com/fabcar/go/fabcar.go
2022-06-02 15:06:51.036 UTC [msp/identity] Sign -> DEBU 00f Sign: plaintext: 0A9B070A5B08031A0B088BA4E3940610...F1F3DF000000FFFF06BA999800200000 
2022-06-02 15:06:51.037 UTC [msp/identity] Sign -> DEBU 010 Sign: digest: 79CEED64A1D1E2EFB937844F98D167DA193614DE57F2262F7EFF9465F49AB7DB 
2022-06-02 15:06:51.049 UTC [chaincodeCmd] install -> DEBU 011 Installed remotely response:<status:200 payload:"OK" > 
2022-06-02 15:06:51.049 UTC [main] main -> INFO 012 Exiting.....

1.4 Call the contract in order to initialize and query—everything goes well

peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n fabcar -v 1.0 -c '{"Args":[""]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
sleep 10
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n fabcar -c '{"function":"initLedger","Args":[""]}'

working process

root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n fabcar -v 1.0 -c '{"Args":[""]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
2022-06-02 15:07:49.700 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2022-06-02 15:07:49.700 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2022-06-02 15:07:49.702 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2022-06-02 15:07:49.702 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2022-06-02 15:07:49.702 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2022-06-02 15:07:49.703 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AA7070A6708031A0C08C5A4E3940610...324D53500A04657363630A0476736363 
2022-06-02 15:07:49.703 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: 8A98B1CCA5644EA799BF681E2718DFCED56BE4F3B728FAE6CE99A8270D681DDC 
2022-06-02 15:07:55.886 UTC [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0AA7070A6708031A0C08C5A4E3940610...94CDC6B08B24C12B9970C877C7459B8A 
2022-06-02 15:07:55.886 UTC [msp/identity] Sign -> DEBU 009 Sign: digest: 5FFB6882674BFBBCA3B49EE5DB6B506E8AD6B52A06E16CC6139C73F80A8A7D22 
2022-06-02 15:07:55.887 UTC [main] main -> INFO 00a Exiting.....
root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# sleep 10
root@d34a01085ab4:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n fabcar -c '{"function":"initLedger","Args":[""]}'
2022-06-02 15:08:20.247 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2022-06-02 15:08:20.247 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2022-06-02 15:08:20.248 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2022-06-02 15:08:20.248 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
2022-06-02 15:08:20.248 UTC [chaincodeCmd] getChaincodeSpec -> DEBU 005 java chaincode disabled
2022-06-02 15:08:20.249 UTC [msp/identity] Sign -> DEBU 006 Sign: plaintext: 0AA8070A6808031A0B08E4A4E3940610...1A0E0A0A696E69744C65646765720A00 
2022-06-02 15:08:20.249 UTC [msp/identity] Sign -> DEBU 007 Sign: digest: E2ED32056BB6C7B421B6E219E83F042456AF36E1D7935D11FAEC8FAC72C63A86 
2022-06-02 15:08:20.254 UTC [msp/identity] Sign -> DEBU 008 Sign: plaintext: 0AA8070A6808031A0B08E4A4E3940610...266BFB9E2BEB5A4420DAEC691DFE04FF 
2022-06-02 15:08:20.254 UTC [msp/identity] Sign -> DEBU 009 Sign: digest: 27FE311869786FC718A4D5AE45B51BA8E00BE33A8915643E6BDB986E1427AB25 
2022-06-02 15:08:20.256 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> DEBU 00a ESCC invoke result: version:1 response:<status:200 message:"OK" > payload:"\n S\240\213NS\233@4\032\332 (.\033\007i\327\"*\365d\325\303\034\323\374\223\326\250\201;\347\022\267\006\n\240\006\022\205\006\n\006fabcar\022\372\005\032J\n\004CAR0\032B{
    
    \"make\":\"Toyota\",\"model\":\"Prius\",\"colour\":\"blue\",\"owner\":\"Tomoko\"}\032G\n\004CAR1\032?{
    
    \"make\":\"Ford\",\"model\":\"Mustang\",\"colour\":\"red\",\"owner\":\"Brad\"}\032N\n\004CAR2\032F{
    
    \"make\":\"Hyundai\",\"model\":\"Tucson\",\"colour\":\"green\",\"owner\":\"Jin Soo\"}\032N\n\004CAR3\032F{
    
    \"make\":\"Volkswagen\",\"model\":\"Passat\",\"colour\":\"yellow\",\"owner\":\"Max\"}\032G\n\004CAR4\032?{
    
    \"make\":\"Tesla\",\"model\":\"S\",\"colour\":\"black\",\"owner\":\"Adriana\"}\032K\n\004CAR5\032C{
    
    \"make\":\"Peugeot\",\"model\":\"205\",\"colour\":\"purple\",\"owner\":\"Michel\"}\032H\n\004CAR6\032@{
    
    \"make\":\"Chery\",\"model\":\"S22L\",\"colour\":\"white\",\"owner\":\"Aarav\"}\032H\n\004CAR7\032@{
    
    \"make\":\"Fiat\",\"model\":\"Punto\",\"colour\":\"violet\",\"owner\":\"Pari\"}\032J\n\004CAR8\032B{
    
    \"make\":\"Tata\",\"model\":\"Nano\",\"colour\":\"indigo\",\"owner\":\"Valeria\"}\032M\n\004CAR9\032E{
    
    \"make\":\"Holden\",\"model\":\"Barina\",\"colour\":\"brown\",\"owner\":\"Shotaro\"}\022\026\n\004lscc\022\016\n\014\n\006fabcar\022\002\010\001\032\003\010\310\001\"\r\022\006fabcar\032\0031.0" endorsement:<endorser:"\n\007Org1MSP\022\226\006-----BEGIN CERTIFICATE-----\nMIICGjCCAcCgAwIBAgIRAPlwF/rUZUP9mqN4wSml4iswCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwODMxMDkxNDMyWhcNMjcwODI5MDkxNDMy\nWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNvbTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHihxW6ks3B2+5XdbAVq3CBgxRRRZ22x\nzzpqnD86nKkz7fBElBuhlXl2K6rTxyY2OBOB0ts8keqZ93xueRGymrajTTBLMA4G\nA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIEI5qg3Ndtru\nuLoM2nAYUdFFBNMarRst3dusalc2Xkl8MAoGCCqGSM49BAMCA0gAMEUCIQD4j0Rn\ne1rrd0FSCzsR6u+IuuPK5dI/kR/bh7+VLf0TNgIgCfUtkJvfvzVEwZLFoFyjoHtr\ntvwzNUS1U0hEqIaDeo4=\n-----END CERTIFICATE-----\n" signature:"0D\002 W\364]:|\333\235\257A\305\340f\003s#\341=\276\022\003\347\2655j\354\274\315\373\007\360\361\216\002 \026\264\0332u\241T\311\035\227\346\262\370\017*\322&k\373\236+\353ZD \332\354i\035\376\004\377" > 
2022-06-02 15:08:20.256 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 00b Chaincode invoke successful. result: status:200 
2022-06-02 15:08:20.256 UTC [main] main -> INFO 00c Exiting.....

1.5 Manually close the network

basic-network/stop.shStop the container based on first , then basic-network/teardown.shdelete the container

1.5.1 There is a problem: ca cannot be deleted after stopping the container
1.5.2 Solutions:

Reference: docker starts, shuts down, stops, deletes all containers,
closes first

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

delete again

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

insert image description here

2 At this point the problem has been solved - you can run startFabric.sh directly

After each step is completed, you can directly enter and fabcarrun ./startFabric.sh, everything is normal and it will appear:

Total setup execution time : 31 secs ...


Start by installing required packages run 'npm install'
Then run 'node enrollAdmin.js', then 'node registerUser'

The 'node invoke.js' will fail until it has been updated with valid arguments
The 'node query.js' may be run at anytime once the user has been registered

JS file call - enrollAdmin, invoke, query, etc.

Reference Tutorial: White Paper V1.1 https://hyperledger-fabric.readthedocs.io/en/release-1.1/write_first_app.html

1. npm install installation dependencies - error npm ERR! node-pre-gyp ERR! build error

npm ERR! node-pre-gyp ERR! build error 
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc' (1)

1.1 Idea 1: Universal software update:

Refer to Ubuntu 18.04 Node.js to install and use Alibaba Cloud image acceleration + Ubuntu upgrade nodejs version Try to update the latest version of node and npm

1.1.1 Install the latest version of node through n

Uninstall first:

sudo apt remove nodejs npm

Install npm again:

sudo apt-get install npm

Modify the npm source:

npm config set registry https://registry.npm.taobao.org
npm config list

Install the n module:

npm -g install n

Select nodejs version by n:

n lts
n latest

Update the node version:

hash -r

insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# n lts
  installing : node-v16.15.1
       mkdir : /usr/local/n/versions/node/16.15.1
       fetch : https://npm.taobao.org/mirrors/node/v16.15.1/node-v16.15.1-linux-x64.tar.xz
################################################################################################################################# 100.0%     copying : node/16.15.1
   installed : v16.15.1 (with npm 8.11.0)

Note: the node command changed location and the old location may be remembered in your current shell.
         old : /usr/bin/node
         new : /usr/local/bin/node
If "node --version" shows the old version then start a new shell, or reset the location hash with:
hash -r  (for bash, zsh, ash, dash, and ksh)
rehash   (for csh and tcsh)
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# n latest
  installing : node-v18.3.0
       mkdir : /usr/local/n/versions/node/18.3.0
       fetch : https://npm.taobao.org/mirrors/node/v18.3.0/node-v18.3.0-linux-x64.tar.xz
################################################################################################################################# 100.0%     copying : node/18.3.0
   installed : v18.3.0 (with npm 8.11.0)
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node -v
v10.19.0
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# n
     copying : node/18.3.0
   installed : v18.3.0 (with npm 8.11.0)
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node -v
v10.19.0
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# hash -r
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node -v
v18.3.0
1.1.2 Result: The installation still reports an error - the gyp-pre binary file cannot be downloaded (network problem)insert image description here

Error:

npm ERR! node-pre-gyp http GET https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz
npm ERR! node-pre-gyp http 403 https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz
npm ERR! node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz 
npm ERR! node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v108 ABI, glibc) (falling back to source compile with node-gyp) 

working process:

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# npm install -g node-gyp
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

changed 94 packages in 1s
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# npm install --location=global node-gyp

changed 94 packages in 2s
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# npm install
npm WARN EBADENGINE Unsupported engine {
    
    
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: {
    
     node: '^8.9.0', npm: '^5.5.1' },
npm WARN EBADENGINE   current: {
    
     node: 'v18.3.0', npm: '8.11.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
    
    
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: {
    
     node: '^8.9.0', npm: '^5.5.1' },
npm WARN EBADENGINE   current: {
    
     node: 'v18.3.0', npm: '8.11.0' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: This library will not receive further updates other than security fixes. We recommend using @grpc/grpc-js instead.
npm ERR! code 1
npm ERR! path /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
npm ERR! command failed
npm ERR! command sh -c ./node_modules/.bin/node-pre-gyp install --fallback-to-build --library=static_library
npm ERR! make: 进入目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build”
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/init.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/avl/avl.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/backoff/backoff.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_args.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_stack.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/channel_stack_builder.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/connected_channel.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_factory.o
npm ERR! make: 进入目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build”
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_registry.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_registry.o
npm ERR! make: 离开目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build”
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/compression.o
npm ERR! Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc' (1)
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/compression_internal.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/message_compress.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression_gzip.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/compression/stream_compression_identity.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/stats.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/stats_data.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/format_request.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/httpcli.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/http/parser.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/call_combiner.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/combiner.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/endpoint_pair_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/error.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_epoll1_linux.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_epollex_linux.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_epollsig_linux.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_poll_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/ev_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/exec_ctx.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/executor.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/fork_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/fork_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_fallback.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_host_name_max.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/gethostname_sysconf.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iocp_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/iomgr_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/is_epollexclusive_available.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/load_file.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/lockfree_event.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/network_status_tracker.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/polling_entity.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_set_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_set_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/pollset_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resolve_address_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/resource_quota.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/sockaddr_utils.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_factory_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_mutator.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_common_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_linux.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_utils_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/socket_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_client_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_common.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_server_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/tcp_windows.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/time_averaged_stats.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_generic.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_heap.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_manager.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/timer_uv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/udp_server.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/unix_sockets_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/unix_sockets_posix_noop.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_cv.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_eventfd.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_nospecial.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_pipe.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/iomgr/wakeup_fd_posix.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_reader.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_string.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/json/json_writer.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/b64.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/percent_encoding.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_buffer.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_hash_table.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_intern.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/slice/slice_string_helpers.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/api_trace.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/byte_buffer.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/byte_buffer_reader.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call_details.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/call_log_batch.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_init.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_ping.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/channel_stack_type.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/completion_queue.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/completion_queue_factory.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/event_string.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/lame_client.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/metadata_array.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/server.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/validate_metadata.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/surface/version.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/bdp_estimator.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/byte_stream.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/connectivity_state.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/error_utils.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/metadata.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/metadata_batch.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/pid_controller.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/service_config.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/static_metadata.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/status_conversion.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/timeout_encoding.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/transport.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/transport/transport_op_string.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/lib/debug/trace.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/bin_decoder.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/bin_encoder.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_plugin.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/chttp2_transport.o
npm ERR!   CXX(target) Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/flow_control.o
npm ERR! make: 离开目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build”
npm ERR! node-pre-gyp info it worked if it ends with ok
npm ERR! node-pre-gyp info using [email protected]
npm ERR! node-pre-gyp info using [email protected] | linux | x64
npm ERR! node-pre-gyp info check checked for "/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node" (not found)
npm ERR! node-pre-gyp http GET https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz
npm ERR! node-pre-gyp http 403 https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz
npm ERR! node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz 
npm ERR! node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v108 ABI, glibc) (falling back to source compile with node-gyp) 
npm ERR! node-pre-gyp http 403 status code downloading tarball https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v108-linux-x64-glibc.tar.gz 
npm ERR! node-pre-gyp ERR! Pre-built binaries not installable for [email protected] and [email protected] (node-v108 ABI, glibc) (falling back to source compile with node-gyp) 
npm ERR! node-pre-gyp ERR! Hit error Connection closed while downloading tarball file 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info ok 
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.8.10 found at "/usr/bin/python3"
npm ERR! gyp info find Python using Python version 3.8.10 found at "/usr/bin/python3"
npm ERR! gyp http GET https://nodejs.org/download/release/v18.3.0/node-v18.3.0-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v18.3.0/node-v18.3.0-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.3.0/node-v18.3.0-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.3.0/node-v18.3.0-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v18.3.0/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.3.0/SHASUMS256.txt
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/root/.cache/node-gyp/18.3.0/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/18.3.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/18.3.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! gyp http GET https://nodejs.org/download/release/v18.3.0/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v18.3.0/SHASUMS256.txt
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/root/.cache/node-gyp/18.3.0/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/18.3.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/18.3.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! rm: 无法删除 './Release/.deps/Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_registry.o.d.raw': 没有那个文件或目录
npm ERR! make: *** [grpc.target.mk:408:Release/obj.target/grpc/deps/grpc/src/core/lib/channel/handshaker_registry.o] 错误 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.13.0-44-generic
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--library=static_library" "--module=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc"
npm ERR! gyp ERR! cwd /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
npm ERR! gyp ERR! node -v v18.3.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok 
npm ERR! node-pre-gyp ERR! build error 
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --library=static_library --module=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node --module_name=grpc_node --module_path=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1090:16)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm ERR! node-pre-gyp ERR! System Linux 5.13.0-44-generic
npm ERR! node-pre-gyp ERR! command "/usr/local/bin/node" "/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--library=static_library"
npm ERR! node-pre-gyp ERR! cwd /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
npm ERR! node-pre-gyp ERR! node -v v18.3.0
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v0.7.0
npm ERR! node-pre-gyp ERR! not ok 
npm ERR! ../deps/grpc/src/core/ext/transport/chttp2/transport/flow_control.cc: In member function ‘virtual uint32_t grpc_core::chttp2::TransportFlowControl::MaybeSendUpdate(bool)’:
npm ERR! ../deps/grpc/src/core/ext/transport/chttp2/transport/flow_control.cc:188:50: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
npm ERR!   188 |       static_cast<const uint32_t>(target_window());
npm ERR!       |                                                  ^
npm ERR! cc1plus: all warnings being treated as errors
npm ERR! make: *** [grpc.target.mk:411:Release/obj.target/grpc/deps/grpc/src/core/ext/transport/chttp2/transport/flow_control.o] 错误 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:527:28)
npm ERR! gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Linux 5.13.0-44-generic
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--library=static_library" "--module=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc/grpc_node.node" "--module_name=grpc_node" "--module_path=/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v108-linux-x64-glibc"
npm ERR! gyp ERR! cwd /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
npm ERR! gyp ERR! node -v v18.3.0
npm ERR! gyp ERR! node-gyp -v v9.0.0
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-06-02T08_14_30_850Z-debug-0.log
1.1.3 Consider manually downloading node source files for installation
1.1.3.1 Uninstall node and npm first
#apt-get 卸载
sudo apt-get remove --purge npm
sudo apt-get remove --purge nodejs
sudo apt-get remove --purge nodejs-legacy
sudo apt-get autoremove
1.1.3.2 Select the appropriate version to download——V 8.9.4

Refer to the book Fabric-sample fabcar (3) Finalize the download V8.9.4version
Corresponding official website: https://nodejs.org/download/release/v8.9.4/
Execute the command:

wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz
tar -xzvf node-v8.9.4-linux-x64.tar.gz
mv node-v8.9.4-linux-x64/ /usr/local/software/node/
rm -rf /usr/local/bin/npm /usr/local/bin/node
ln -s /usr/local/software/node/bin/npm /usr/local/bin/npm
ln -s /usr/local/software/node/bin/node /usr/local/bin/node
node -v
npm -v

working process:

root@The-Land-Like-as-A-Picture:/usr/local/software# wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz
root@The-Land-Like-as-A-Picture:/usr/local/software# tar -xzvf node-v8.9.4-linux-x64.tar.gz
root@The-Land-Like-as-A-Picture:/usr/local/software# mv node-v8.9.4-linux-x64/ /usr/local/software/node/

insert image description here

1.2 Try npm install under normal user - but get stuck in node-gyp rebuild || node suppress-error.js process:

npm config set registry http://registry.npm.taobao.org/
npm install
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# exit
exit
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network$ cd ../fabcar/
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ ll
总用量 36
drwxrwxrwx  2 root root 4096 63 23:47 ./
drwxrwxrwx 14 root root 4096 531 19:16 ../
-rwxrwxrwx  1 root root 2809 531 19:15 enrollAdmin.js*
-rwxrwxrwx  1 root root 6353 531 19:15 invoke.js*
-rwxrwxrwx  1 root root  533 531 19:15 package.json*
-rwxrwxrwx  1 root root 2606 531 19:15 query.js*
-rwxrwxrwx  1 root root 3147 531 19:15 registerUser.js*
-rwxrwxrwx  1 root root 2070 531 19:15 startFabric.sh*
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ npm config set registry http://registry.npm.taobao.org/
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ npm -v
5.6.0
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ npm install
npm WARN deprecated [email protected]: This library will not receive further updates other than security fixes. We recommend using @grpc/grpc-js instead.
npm WARN deprecated [email protected]: This library will not receive further updates other than security fixes. We recommend using @grpc/grpc-js instead.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: jsSHA versions < 3.0.0 will no longer receive feature updates
npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN deprecated [email protected]: This package is no longer maintained.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).

> [email protected] install /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

^C
1.2.1 Solution 1: Change the python version

Refer to Solving node-gyp rebuild problems and try first 更改python版本:

In order to prevent insufficient permissions, the following commands are rooted and compiled:
insert image description here
Execute the command:

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=usr/local/python-2.7.9
make
make install
python2.7.9 -V
npm config set python python2.7.9

Results of the:
insert image description here

1.2.2 npm install no longer reports errors

npm install
insert image description here

1.3 调用node enrollAdmin.js 报错——Error: The gRPC binary module was not installed. This may be fixed by running "npm rebuild

npm installAfter the dependencies have been successfully acquired, the corresponding JS script file is called, and node enrollAdmin.jsan error is reported:

The gRPC binary module was not installed.
insert image description here

working process

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node enrollAdmin.js
/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/grpc_extension.js:45
    throw error;
    ^

Error: The gRPC binary module was not installed. This may be fixed by running "npm rebuild"
Original error: Cannot find module '/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node'
    at Object.<anonymous> (/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/grpc_extension.js:43:17)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:37:12)
    at Module._compile (module.js:643:30)
1.3.1 Based on the comments given, run npm rebuild — stuck at node-gyp rebuild

insert image description here

1.3.2 Solution: install node-gyp dependencies

Refer to the problem of installing node on ubuntu

sudo apt-get update
sudo apt-get install libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev build-essential g++
1.3.2.1 Re-npm rebuild: stuck in node-pre-gyp install

Re-npm rebuild: Stuck at

node-pre-gyp install --fallback-to-build --library=static_library

1.3.2.2 Solution: sudo npm install -g node-gyp
sudo npm install -g node-gyp
npm rebuild

1.3 Problem Solving

jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ sudo npm install -g node-gyp
/usr/local/software/node/bin/node-gyp -> /usr/local/software/node/lib/node_modules/node-gyp/bin/node-gyp.js
+ [email protected]
added 94 packages in 4.273s
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ npm install
npm WARN [email protected] requires a peer of encoding@^0.1.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] No repository field.

up to date in 0.958s
jack@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar$ npm rebuild

> [email protected] install /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

[grpc] Success: "/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile

> [email protected] install /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pkcs11js
> node-gyp rebuild

make: 进入目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pkcs11js/build”
  CXX(target) Release/obj.target/pkcs11/src/main.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/main.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
In file included from ../../nan/nan.h:60,
                 from ../src/main.cpp:1:
../src/main.cpp: At global scope:
/home/jack/.node-gyp/8.9.4/include/node/node.h:475:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE){
    
    aka ‘void (*)(v8::Local<v8::Object>)} to ‘node::addon_register_func’ {
    
    aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)} [-Wcast-function-type]
  475 |       (node::addon_register_func) (regfunc),                          \
      |                                           ^
/home/jack/.node-gyp/8.9.4/include/node/node.h:506:3: note: in expansion of macro ‘NODE_MODULE_X’
  506 |   NODE_MODULE_X(modname, regfunc, NULL, 0)
      |   ^~~~~~~~~~~~~
../src/main.cpp:27:1: note: in expansion of macro ‘NODE_MODULE’
   27 | NODE_MODULE(pkcs11, init)
      | ^~~~~~~~~~~
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/main.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/dl.o
  CXX(target) Release/obj.target/pkcs11/src/const.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../src/const.h:5,
                 from ../src/const.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/error.o
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/v8_convert.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/v8_convert.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/template.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/template.h:6,
                 from ../src/pkcs11/template.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/mech.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/mech.h:5,
                 from ../src/pkcs11/mech.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/param.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/param.h:5,
                 from ../src/pkcs11/param.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_aes.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/param.h:5,
                 from ../src/pkcs11/param_aes.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_rsa.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/param.h:5,
                 from ../src/pkcs11/param_rsa.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/param_ecdh.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/pkcs11/v8_convert.h:12,
                 from ../src/pkcs11/param.h:5,
                 from ../src/pkcs11/param_ecdh.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/pkcs11/pkcs11.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../src/pkcs11/pkcs11.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/async.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../../nan/nan.h:60,
                 from ../src/./pkcs11/v8_convert.h:12,
                 from ../src/./pkcs11/template.h:6,
                 from ../src/./pkcs11/pkcs11.h:6,
                 from ../src/./async.h:4,
                 from ../src/async.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  CXX(target) Release/obj.target/pkcs11/src/node.o
In file included from /home/jack/.node-gyp/8.9.4/include/node/node.h:63,
                 from ../src/node.cpp:1:
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::SetAllowCodeGenerationFromStringsCallback(v8::DeprecatedAllowCodeGenerationFromStringsCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10177:19: warning: cast between incompatible function types from ‘v8::DeprecatedAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>)} to ‘v8::FreshNewAllowCodeGenerationFromStringsCallback’ {
    
    aka ‘bool (*)(v8::Local<v8::Context>, v8::Local<v8::String>)} [-Wcast-function-type]
10177 |           callback));
      |                   ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCPrologueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10222:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10222 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In static member function ‘static void v8::V8::RemoveGCEpilogueCallback(v8::GCCallback)’:
/home/jack/.node-gyp/8.9.4/include/node/v8.h:10229:53: warning: cast between incompatible function types from ‘v8::GCCallback’ {
    
    aka ‘void (*)(v8::GCType, v8::GCCallbackFlags)} to ‘v8::Isolate::GCCallback’ {
    
    aka ‘void (*)(v8::Isolate*, v8::GCType, v8::GCCallbackFlags)} [-Wcast-function-type]
10229 |       reinterpret_cast<Isolate::GCCallback>(callback));
      |                                                     ^
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/jack/.node-gyp/8.9.4/include/node/node_object_wrap.h:85:78:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
 9200 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jack/.node-gyp/8.9.4/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/jack/.node-gyp/8.9.4/include/node/v8.h:9200:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)} to ‘Callback’ {
    
    aka ‘void (*)(const v8::WeakCallbackInfo<void>&)} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/pkcs11.node
  COPY Release/pkcs11.node
make: 离开目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pkcs11js/build”

> [email protected] install /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/grpc
> node-pre-gyp install --fallback-to-build --library=static_library

[grpc] Success: "/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64-glibc/grpc_node.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile

> [email protected] install /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

make: 进入目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dtrace-provider/build”
  TOUCH Release/obj.target/DTraceProviderStub.stamp
make: 离开目录“/workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dtrace-provider/build”
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-ca-client
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/bn.js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/elliptic
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/brorand
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/hash.js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/inherits
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minimalistic-assert
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/hmac-drbg
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minimalistic-crypto-utils
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fs-extra
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/graceful-fs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/jsonfile
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/klaw
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/path-is-absolute
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/rimraf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/glob
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fs.realpath
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/inflight
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/once
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/wrappy
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minimatch
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/brace-expansion
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/balanced-match
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/concat-map
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/js-sha3
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/jsrsasign
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/jssha
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/long
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/nconf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/async
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ini
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/secure-keys
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/yargs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/camelcase
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/cliui
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/string-width
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/code-point-at
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/is-fullwidth-code-point
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/number-is-nan
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/strip-ansi
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ansi-regex
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/wrap-ansi
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/decamelize
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/os-locale
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lcid
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/invert-kv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/window-size
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/y18n
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/sjcl
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/url
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/punycode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/querystring
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/util
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/util/node_modules/inherits
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/winston
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/winston/node_modules/async
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/colors
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/cycle
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/eyes
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/isstream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/stack-trace
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/callsite
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lodash
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/nan
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/node-pre-gyp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/detect-libc
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/mkdirp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/mkdirp/node_modules/minimist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/nopt
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/abbrev
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/osenv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/os-homedir
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/os-tmpdir
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/npmlog
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/are-we-there-yet
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/delegates
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/readable-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/core-util-is
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/inherits
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/isarray
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/process-nextick-args
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/safe-buffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/string_decoder
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/util-deprecate
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/console-control-strings
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/gauge
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/aproba
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/has-unicode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/object-assign
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/signal-exit
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/string-width
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/code-point-at
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/is-fullwidth-code-point
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/number-is-nan
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/strip-ansi
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/ansi-regex
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/wide-align
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/set-blocking
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/rc
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/deep-extend
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/ini
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/minimist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/strip-json-comments
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/request
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/aws-sign2
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/aws4
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/caseless
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/combined-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/delayed-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/extend
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/forever-agent
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/form-data
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/asynckit
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/mime-types
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/mime-db
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/har-validator
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/ajv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/co
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/fast-deep-equal
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/fast-json-stable-stringify
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/json-schema-traverse
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/har-schema
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/hawk
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/boom
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/hoek
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/cryptiles
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/cryptiles/node_modules/boom
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/sntp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/http-signature
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/assert-plus
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/jsprim
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/extsprintf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/json-schema
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/verror
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/sshpk
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/asn1
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/dashdash
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/getpass
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/is-typedarray
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/isstream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/json-stringify-safe
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/oauth-sign
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/performance-now
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/qs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/stringstream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/tough-cookie
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/punycode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/tunnel-agent
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/uuid
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/rimraf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/glob
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/fs.realpath
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/inflight
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/once
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/wrappy
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/minimatch
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/brace-expansion
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/balanced-match
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/concat-map
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/path-is-absolute
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/semver
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/tar
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/block-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/fstream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/graceful-fs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/tar-pack
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/debug
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/ms
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/fstream-ignore
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/uid-number
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/protobufjs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ascli
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/colour
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/optjs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/bytebuffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/bcrypt-pbkdf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/tweetnacl
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/ecc-jsbn
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/node_modules/jsbn
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/hoek
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ignore-walk
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/js-yaml
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/argparse
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/sprintf-js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/esprima
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/nano
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/cloudant-follow
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/browser-request
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/cloudant-follow/node_modules/debug
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ms
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/request
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/aws-sign2
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/aws4
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/caseless
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/combined-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/delayed-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/extend
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/forever-agent
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/form-data
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/asynckit
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mime-types
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mime-db
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/har-validator
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ajv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fast-deep-equal
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fast-json-stable-stringify
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/json-schema-traverse
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/uri-js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/uri-js/node_modules/punycode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/har-schema
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/http-signature
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/assert-plus
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/jsprim
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/extsprintf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/json-schema
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/verror
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/core-util-is
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/sshpk
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/asn1
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/safer-buffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/bcrypt-pbkdf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tweetnacl
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dashdash
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ecc-jsbn
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/jsbn
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/getpass
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/is-typedarray
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/json-stringify-safe
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/oauth-sign
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/performance-now
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/qs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/safe-buffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tough-cookie
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/psl
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tough-cookie/node_modules/punycode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tunnel-agent
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/uuid
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/debug
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/debug/node_modules/ms
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/errs
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lodash.isempty
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/path
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/process
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pkcs11js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/promise-settle
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/restify
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/bunyan
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/clone-regexp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/is-regexp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/is-supported-regexp-flag
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/csv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/csv-generate
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/csv-parse
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/csv-stringify
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lodash.get
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/stream-transform
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/escape-regexp-component
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ewma
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/formidable
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lru-cache
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pseudomap
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/yallist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mime
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/negotiator
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/pidusage
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/restify-errors
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/semver
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/spdy
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/handle-thing
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/http-deceiver
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/select-hose
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/spdy-transport
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/detect-node
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/hpack.js
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/obuf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/readable-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/isarray
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/process-nextick-args
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/readable-stream/node_modules/safe-buffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/string_decoder
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/string_decoder/node_modules/safe-buffer
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/util-deprecate
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/wbuf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/vasync
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/vasync/node_modules/verror
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/vasync/node_modules/extsprintf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/stream-buffers
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tar-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/bl
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/end-of-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/xtend
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/grpc
@mapbox/[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@mapbox/node-pre-gyp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/detect-libc
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/https-proxy-agent
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/agent-base
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/agent-base/node_modules/debug
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/agent-base/node_modules/ms
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/https-proxy-agent/node_modules/debug
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/https-proxy-agent/node_modules/ms
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/make-dir
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/make-dir/node_modules/semver
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/node-fetch
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/whatwg-url
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tr46
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/webidl-conversions
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/nopt
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/abbrev
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/npmlog
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/are-we-there-yet
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/delegates
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/are-we-there-yet/node_modules/readable-stream
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/console-control-strings
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/gauge
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/aproba
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/color-support
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/has-unicode
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/object-assign
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/signal-exit
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/gauge/node_modules/string-width
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/emoji-regex
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/gauge/node_modules/is-fullwidth-code-point
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/gauge/node_modules/strip-ansi
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/gauge/node_modules/ansi-regex
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/wide-align
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/set-blocking
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@mapbox/node-pre-gyp/node_modules/rimraf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@mapbox/node-pre-gyp/node_modules/semver
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@mapbox/node-pre-gyp/node_modules/yallist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tar
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/chownr
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/fs-minipass
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minipass
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minipass/node_modules/yallist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minizlib
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minizlib/node_modules/yallist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tar/node_modules/mkdirp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/tar/node_modules/yallist
@types/[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@types/bytebuffer
@types/[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@types/long
@types/[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/@types/node
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lodash.camelcase
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/lodash.clone
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/dtrace-provider
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/minimist
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/moment
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/safe-json-stringify
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mkdirp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/ncp
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mv
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mv/node_modules/rimraf
[email protected] /workspace/github.com/fabric/fabric-samples/fabcar/node_modules/mv/node_modules/glob

2. All issues resolved

2.1 Run node enrollAdmin.js, node registerUser.js and node query.js smoothly

node enrollAdmin.js
insert image description here

node registerUser.js
insert image description here

node query.js
insert image description here

working process

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node enrollAdmin.js 
 Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully enrolled admin user "admin"
Assigned the admin user to the fabric client ::{
    
    "name":"admin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{
    
    "signingIdentity":"023bc0b2e1e553239d5deab97480b9cbb7f4e50834764121d02ff06202b56e9a","identity":{
    
    "certificate":"-----BEGIN CERTIFICATE-----\nMIICAjCCAaigAwIBAgIUYt/bc4AhzGphn8jazeml2SzOxmAwCgYIKoZIzj0EAwIw\nczELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNh\nbiBGcmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMT\nE2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMjIwNjA0MDE1ODAwWhcNMjMwNjA0MDIw\nMzAwWjAhMQ8wDQYDVQQLEwZjbGllbnQxDjAMBgNVBAMTBWFkbWluMFkwEwYHKoZI\nzj0CAQYIKoZIzj0DAQcDQgAEuDBqSgEivqNG7RgyIgy1TjzDYhl1ooYLWdRiFhXZ\nRT5lelS8Y0tlen6VJ5XbMEPFxGr0PljnOWmd7+8v0mX7kKNsMGowDgYDVR0PAQH/\nBAQDAgeAMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFF5kIsAkDiqPl8u3/olN6/qG\nWjpNMCsGA1UdIwQkMCKAIEI5qg3NdtruuLoM2nAYUdFFBNMarRst3dusalc2Xkl8\nMAoGCCqGSM49BAMCA0gAMEUCIQDzMb998V9ec3TiavS8heunEyI2mkmo1AosTG+9\nKSHy9wIgU+UqXdiQDNm6lCbLhTYZiVrbz4qe6ATJtkVWiVim6YQ=\n-----END CERTIFICATE-----\n"}}}
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node registerUser.js 
 Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded admin from persistence
Successfully registered user1 - secret:SbKwwpmtnGhJ
Successfully enrolled member user "user1" 
User1 was successfully registered and enrolled and is ready to intreact with the fabric network
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node query.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Query has completed, checking results
Response is  [{
    
    "Key":"CAR0", "Record":{
    
    "colour":"blue","make":"Toyota","model":"Prius","owner":"Tomoko"}},{
    
    "Key":"CAR1", "Record":{
    
    "colour":"red","make":"Ford","model":"Mustang","owner":"Brad"}},{
    
    "Key":"CAR2", "Record":{
    
    "colour":"green","make":"Hyundai","model":"Tucson","owner":"Jin Soo"}},{
    
    "Key":"CAR3", "Record":{
    
    "colour":"yellow","make":"Volkswagen","model":"Passat","owner":"Max"}},{
    
    "Key":"CAR4", "Record":{
    
    "colour":"black","make":"Tesla","model":"S","owner":"Adriana"}},{
    
    "Key":"CAR5", "Record":{
    
    "colour":"purple","make":"Peugeot","model":"205","owner":"Michel"}},{
    
    "Key":"CAR6", "Record":{
    
    "colour":"white","make":"Chery","model":"S22L","owner":"Aarav"}},{
    
    "Key":"CAR7", "Record":{
    
    "colour":"violet","make":"Fiat","model":"Punto","owner":"Pari"}},{
    
    "Key":"CAR8", "Record":{
    
    "colour":"indigo","make":"Tata","model":"Nano","owner":"Valeria"}},{
    
    "Key":"CAR9", "Record":{
    
    "colour":"brown","make":"Holden","model":"Barina","owner":"Shotaro"}}]

2.2 Modify the JS script file

2.2.1 query.js modification - only query CAR1

insert image description here
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node query.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Query has completed, checking results
Response is  {
    
    "colour":"red","make":"Ford","model":"Mustang","owner":"Brad"}
2.2.2 invoke.js modification
2.2.2.1 invoke.js modification - add CAR10

insert image description here
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node invoke.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Assigning transaction_id:  63cde15bb0939b8d17ddfa15b7361ca6e938b05e75b9c148581366c967e4a73f
Transaction proposal was good
Successfully sent Proposal and received ProposalResponse: Status - 200, message - "OK"
The transaction has been committed on peer localhost:7053
Send transaction promise and event listener promise have completed
Successfully sent transaction to the orderer.
Successfully committed the change to the ledger by the peer
2.2.2.2 query.js modification - query CAR10

insert image description here
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node query.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Query has completed, checking results
Response is  {
    
    "colour":"Red","make":"Chevy","model":"Volt","owner":"Nick"}
2.2.2.3 invoke.js modification - change owner of CAR10

insert image description here
insert image description here

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node invoke.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Assigning transaction_id:  28594736aedb8f265b34664753d9f3c09feb67ff432de7f42d9b9103fcd00a56
Transaction proposal was good
Successfully sent Proposal and received ProposalResponse: Status - 200, message - "OK"
The transaction has been committed on peer localhost:7053
Send transaction promise and event listener promise have completed
Successfully sent transaction to the orderer.
Successfully committed the change to the ledger by the peer
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# node query.js 
Store path:/workspace/github.com/fabric/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
Query has completed, checking results
Response is  {
    
    "colour":"Red","make":"Chevy","model":"Volt","owner":"Jack"}

3. Turn off the network

rm -rf hfc-key-store/
cd ../basic-network/
./stop.sh 
./teardown.sh 
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

working process

root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# ls
enrollAdmin.js  invoke.js     package.json       query.js         startFabric.sh
hfc-key-store   node_modules  package-lock.json  registerUser.js
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# rm -rf hfc-key-store/
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/fabcar# cd ../basic-network/
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# ls
config         crypto-config       docker-compose.yml  init.sh    start.sh  teardown.sh
configtx.yaml  crypto-config.yaml  generate.sh         README.md  stop.sh
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# ./stop.sh 

# Shut down the Docker containers that might be currently running.
docker-compose -f docker-compose.yml stop
Stopping cli                    ... done
Stopping peer0.org1.example.com ... done
Stopping ca.example.com         ... done
Stopping orderer.example.com    ... done
Stopping couchdb                ... done
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# ./teardown.sh 
Removing cli                    ... done
Removing peer0.org1.example.com ... done
Removing ca.example.com         ... done
Removing orderer.example.com    ... done
Removing couchdb                ... done
Removing network net_basic
Error response from daemon: conflict: unable to delete 14da7b6e51bc (must be forced) - image is being used by stopped container 03c43f10abfd
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
03c43f10abfd
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
03c43f10abfd
root@The-Land-Like-as-A-Picture:/workspace/github.com/fabric/fabric-samples/basic-network# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Guess you like

Origin blog.csdn.net/jack_zj123/article/details/125120849