hyperledger-archives / fabric

THIS IS A READ-ONLY historic repository. Current development is at https://gerrit.hyperledger.org/r/#/admin/projects/fabric . pull requests not accepted
https://gerrit.hyperledger.org/
Apache License 2.0
1.17k stars 1.01k forks source link

security mechanisms, such as unlinkable identities and transaction encryption do not work #547

Closed frankyclu closed 8 years ago

frankyclu commented 8 years ago

reported by Masanobu Takagi (MASANOBU@jp.ibm.com)

elli-androulaki commented 8 years ago

Hi Frank,Masanobu, do you have further information on how to recreate the issue? Thanks. @adecaro has implemented the encryption part.

takagimasanobu commented 8 years ago

[sorry for long response] I tried to do the following instructions with security enabled on a softlayer instance(ubuntu14.04), but the chaincode deploy failed. https://github.com/openblockchain/obc-docs/blob/master/api/SandboxSetup.md

Environment:

Softlayer instance (1core, 4GB memory) OS: Ubuntu14.04 obc-peer: latest commit 290e744ba7f7af0fb4e9a30fde3df6e56e36fc12

Instructions:

  1. Setup environmental variables (on Window1)
    # echo "export GOPATH=/go" >> ~/.bashrc
    # echo "export PATH=\$GOPATH/bin:/usr/local/go/bin:\$PATH" >> ~/.bashrc
    # echo "export GO15VENDOREXPERIMENT=1" >> ~/.bashrc
    # echo "export LD_LIBRARY_PATH=/opt/rocksdb:\$LD_LIBRARY_PATH" >> ~/.bashrc
    # source ~/.bashrc
    
  2. Install golang (on Window1)
    # apt-get update
    # apt-get install -y --no-install-recommends g++ gcc libc6-dev make wget
    # rm -rf /var/lib/apt/lists/*
    # export GOLANG_VERSION=1.5.1
    # wget https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
    # tar -C /usr/local -xzf go$GOLANG_VERSION.linux-amd64.tar.gz
    # rm go$GOLANG_VERSION.linux-amd64.tar.gz
    # mkdir -p "$GOPATH/src" "$GOPATH/bin"
    # chmod -R 777 "$GOPATH"
    
  3. Install rocksdb (on Window1)
    # apt-get update
    # apt-get install -y git libsnappy-dev zlib1g-dev libbz2-dev
    # cd /opt
    # git clone --branch v4.1 --single-branch --depth 1 https://github.com/facebook/rocksdb.git
    # cd rocksdb
    # make shared_lib
    # mkdir -p /var/openchain/db
    
  4. Install obc-peer (on Window1)
    # mkdir -p $GOPATH/src/github.com/openblockchain/
    # cd $GOPATH/src/github.com/openblockchain/
    # git clone https://github.com/openblockchain/obc-peer.git
    # cd obc-peer
    # CGO_CFLAGS="-I/opt/rocksdb/include" CGO_LDFLAGS="-L/opt/rocksdb -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy" go install
    # go build
    
  5. Security setup (on Window1)
    # cd $GOPATH/src/github.com/openblockchain/obc-peer/obc-ca
    # go build -o obcca-server
    # ./obcca-server > /var/log/obcca-server.log 2>&1 &
    
  6. Start validating peer with chaincodedev option (on Window1)
    # cd $GOPATH/src/github.com/openblockchain/obc-peer
    # OPENCHAIN_SECURITY_ENABLED=true OPENCHAIN_SECURITY_PRIVACY=true ./obc-peer peer --peer-chaincodedev
    
  7. Build chaincode_example02 (on Window2)
    # cd $GOPATH/src/github.com/openblockchain/obc-peer/openchain/example/chaincode/chaincode_example02
    # go build
    
  8. Start and register the chaincode with the validating peer (on Window2)
    # OPENCHAIN_CHAINCODE_ID_NAME=mycc OPENCHAIN_PEER_ADDRESS=0.0.0.0:30303 ./chaincode_example02
    2016/01/26 00:29:46 Peer address: 0.0.0.0:30303
    2016/01/26 00:29:46 os.Args returns: [./chaincode_example02]
    2016/01/26 00:29:46 Registering.. sending REGISTER
    2016/01/26 00:29:46 []Received message REGISTERED from shim
    2016/01/26 00:29:46 []Handling ChaincodeMessage of type: REGISTERED(state:created)
    2016/01/26 00:29:46 Received REGISTERED, ready for invocations
    
  9. Login as lukas (on Window3)
    # cd $GOPATH/src/github.com/openblockchain/obc-peer
    # ./obc-peer login lukas (input password on obcca.yaml)
    00:30:43.471 [main] login -> INFO 001 CLI client login...
    00:30:43.471 [main] login -> INFO 002 Local data store for client loginToken: /var/openchain/production/client/
    Enter password for user 'lukas': ************
    00:31:06.135 [main] login -> INFO 003 Logging in user 'lukas' on CLI interface...
    00:31:06.460 [main] login -> INFO 004 Storing login token for user 'lukas'.
    00:31:06.460 [main] login -> INFO 005 Login successful for user 'lukas'.
    
  10. try to deploy chaincode and fails (on Window3)
    # ./obc-peer chaincode deploy -n mycc -c '{"Function":"init", "Args": ["a","100", "b", "200"]}' -u lukas
    2016/01/26 00:33:17 transport: http2Client.notifyError got notified that the client transport was broken read tcp 127.0.0.1:38812->127.0.0.1:30303: read: connection reset by peer.
    2016/01/26 00:33:17 transport: http2Client.notifyError got notified that the client transport was broken read tcp 127.0.0.1:38813->127.0.0.1:30303: read: connection reset by peer.
    2016/01/26 00:33:18 grpc: ClientConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:30303: getsockopt: connection refused"; Reconnecting to "0.0.0.0:30303"
    2016/01/26 00:33:20 grpc: ClientConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:30303: getsockopt: connection refused"; Reconnecting to "0.0.0.0:30303"
    2016/01/26 00:33:20 grpc: ClientConn.transportMonitor exits due to: grpc: timed out trying to connect
    Error building chaincode: rpc error: code = 13 desc = "transport is closing"
    

On Window1, validating peer was stopped. Log messages are as follows:

01:17:46.149 [main] serve -> DEBU 001 Listen address not specified, using peer endpoint address
01:17:46.151 [eventhub_producer] AddEventType -> DEBU 002 registering block
01:17:46.151 [eventhub_producer] AddEventType -> DEBU 003 registering register
01:17:46.151 [main] serve -> INFO 004 Running in chaincode development mode
01:17:46.152 [main] serve -> INFO 006 Set consensus to NOOPS and user starts chaincode
01:17:46.152 [main] serve -> INFO 007 Disable loading validity system chaincode
01:17:46.152 [main] serve -> INFO 008 Security enabled status: true
01:17:46.152 [main] serve -> INFO 009 Privacy enabled status: true
01:17:46.153 [main] serve -> DEBU 00a Running as validating peer - installing consensus noops
01:17:46.153 [peer] NewPeerWithHandler -> DEBU 00b Registering validator with enroll ID: binhn
01:17:46.153 [CRYPTO] RegisterValidator -> INFO 00c Registering validator [binhn] with name [binhn]...
01:17:46.154 [CRYPTO.validator.binhn] register -> INFO 00d Registering [binhn]...
01:17:46.154 [CRYPTO.validator.binhn] register -> INFO 00e Init keystore...
01:17:46.154 [CRYPTO.validator.binhn] createKeyStoreIfNotExists -> DEBU 00f Keystore path [/var/openchain/production/crypto/validator/binhn/ks] missing [true]: []
01:17:46.154 [CRYPTO.validator.binhn] createKeyStore -> DEBU 010 Creating Keystore at [/var/openchain/production/crypto/validator/binhn/ks]...
01:17:46.154 [CRYPTO.validator.binhn] createKeyStore -> DEBU 011 Open Keystore DB...
01:17:46.155 [CRYPTO.validator.binhn] createKeyStore -> DEBU 012 Ping Keystore DB...
01:17:46.155 [CRYPTO.validator.binhn] createKeyStore -> DEBU 013 Keystore created at [/var/openchain/production/crypto/validator/binhn/ks].
01:17:46.155 [CRYPTO.validator.binhn] openKeyStore -> DEBU 014 Open keystore at [/var/openchain/production/crypto/validator/binhn/ks]...
01:17:46.156 [CRYPTO.validator.binhn] openKeyStore -> DEBU 015 Open keystore at [/var/openchain/production/crypto/validator/binhn/ks]...done
01:17:46.156 [CRYPTO.validator.binhn] register -> INFO 016 Init keystore...done.
01:17:46.151 [eventhub_producer] start -> INFO 005 event processor started
01:17:46.159 [CRYPTO.validator.binhn] retrieveECACertsChain -> DEBU 017 ECA certificate [MIIBwTCCAUegAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwHhcNMTYwMTI2MDcxNzM2WhcNMTYwNDI1MDcxNzM2WjApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARhH4IK2hjbv8cK7Zd0xm+a0kLucr0teBN4sCUmOKmyydxahevkofVj6y1wdphJy7O0tlhxAkdfJdybofj3xMEETpxAi/ywyyYEisW8OUo1uBgWwQIz+v4TvIN0axDSpf2jQzBBMA4GA1UdDwEB/wQEAwIChDAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQwCgYIKoZIzj0EAwMDaAAwZQIwbsr+wwL6OKDpRTaN5WS6/4Qwt1YvgKBAk4vKmWptGQAaiLhr+Mc6j+uJ+miZ/QKTAjEAxnzvfc+7gcysHXpO1IlZ5luqdi3LAzyA7ZxCOrluLMtvsZjzgq5l0jgGgOXcoGHy].
01:17:46.159 [CRYPTO.validator.binhn] retrieveECACertsChain -> DEBU 018 Storing ECA certificate for [binhn]...
01:17:46.162 [CRYPTO.validator.binhn] retrieveTCACertsChain -> DEBU 019 TCA certificate [MIIBwTCCAUegAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwN0Y2EwHhcNMTYwMTI2MDcxNzM2WhcNMTYwNDI1MDcxNzM2WjApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwN0Y2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASExZrhQt70a2iukUv5DyvGzJTqWS92Gn0y5Uijrxlj0jmtOzVcHamx/HdXJEpv8KTwxo0zqRmgyKno2DOzbuhg7C3tetMBHWwDEe44FHGQ2p4ZXLUAUNQSSM1Ib94d7cajQzBBMA4GA1UdDwEB/wQEAwIChDAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQwCgYIKoZIzj0EAwMDaAAwZQIxAPIbzoFdnrUzL8eSxr7cmp/je9fteHdn/0FF5IerQ7x8fzT6Ga5OyyRsYVM7RG8njwIwGS6ROtr6CLYKbQfsoHpMnfJkYZtHFPpL0g8h0hOsCSMPhmT42ZwjaI4TLCwRwtzc]
01:17:46.162 [CRYPTO.validator.binhn] retrieveTCACertsChain -> DEBU 01a Storing TCA certificate for [binhn]...
01:17:46.538 [CRYPTO.validator.binhn] getEnrollmentCertificateFromECA -> DEBU 01b Enrollment certificate for signing [4scAUd/WNDgK3tZNh8D0ST3pXJriJZhxx6lZOaALlI1egO21JD3jr+reg1rIj36b]
01:17:46.538 [CRYPTO.validator.binhn] getEnrollmentCertificateFromECA -> DEBU 01c Enrollment certificate for encrypting [YELHLZDtTq2qJRuohwW2zNaUtWdnYmfSYZ9txIHBJwQXinV1nsHlbwOtE39dPAZc]
01:17:46.538 [CRYPTO.validator.binhn] retrieveEnrollmentData -> DEBU 01d Enrollment certificate [MIIB0DCCAVagAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwHhcNMTYwMTI2MDcxNzQ2WhcNMTYwNDI1MDcxNzQ2WjArMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQ4wDAYDVQQDEwViaW5objB2MBAGByqGSM49AgEGBSuBBAAiA2IABEFSltdQakSCTWBONktJNXG78m+b1cd8Q6j0VECbI1Ak9BurQT4iDHsjV9uaSzWiXJn8+nTrjxyYpgo98AcQr0CTxkT6hiH7hWy4NwbMdcGg0VaEz8ZTFjE8NvIpTtqhcqNQME4wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDAOBgZRAwQFBgcBAf8EATMwCgYIKoZIzj0EAwMDaAAwZQIwbZS61D+zg7HnpSNqL8mvknEBuIvK5NwO+dSYkrebhmjwCY/ShUY3YlJHmkZU1yJmAjEA6htHhYhtE+arijDrqFD5GMd6DooMKRJ+gxJJ19x+Xkse/atFfzcS6qdDkpWsIlFZ].
01:17:46.538 [CRYPTO.validator.binhn] retrieveEnrollmentData -> DEBU 01e Storing enrollment data for user [binhn]...
01:17:46.539 [CRYPTO.validator.binhn] getTLSCertificateFromTLSCA -> INFO 01f getTLSCertificate...
01:17:46.615 [CRYPTO.validator.binhn] getTLSCertificateFromTLSCA -> INFO 020 Verifing tls certificate...
01:17:46.661 [CRYPTO.validator.binhn] getTLSCertificateFromTLSCA -> INFO 021 Verifing tls certificate...done!
01:17:46.662 [CRYPTO.validator.binhn] retrieveTLSCertificate -> DEBU 022 TLS Cert [MIIB6DCCAW2gAwIBAgIBATAKBggqhkjOPQQDAzArMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQ4wDAYDVQQDEwV0bHNjYTAeFw0xNjAxMjYwNzE3NDZaFw0xNjA0MjUwNzE3NDZaMFAxCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xMzAxBgNVBAMTKmJpbmhuLTg3YjUxN2MwLWRhOGQtNDBlYi05ZGI2LTgzM2NjMTA5Y2NlODB2MBAGByqGSM49AgEGBSuBBAAiA2IABBsU1W3hh3UO6NM08O9Cy7DvvF0xMx/kvcS7DtOrz+KQLDKG3ORJCWC6wkoz89HbNVIhokeu4is3k4Oi5JlrMxPP+ICMF/1RC70SUgfaL1QmaBstOt6Me72iL4uk0ZukWaNAMD4wDgYDVR0PAQH/BAQDAgMIMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDAKBggqhkjOPQQDAwNpADBmAjEA3FFnRZcIUrMZYIuOMhtB6TEfhUp1AkujvaXyImBUch0EYh2MPBy4zEtZirZQWr5sAjEA6F1mB/5v7nDbYgZYXAFUXLzvNDZtGeeBNMg9Ki1siHN2ExVZkYFinm1OB7ChA5jU]
01:17:46.662 [CRYPTO.validator.binhn] retrieveTLSCertificate -> INFO 023 Storing TLS key and certificate for user [binhn]...
01:17:46.662 [CRYPTO.validator.binhn] register -> INFO 024 Registering [binhn]...done!
01:17:46.662 [CRYPTO.validator.binhn] close -> INFO 025 Closing keystore...
01:17:46.662 [CRYPTO.validator.binhn] close -> INFO 026 Closing keystore...done!
01:17:46.662 [CRYPTO] RegisterValidator -> INFO 027 Registering validator [binhn] with name [binhn]...done!
01:17:46.663 [peer] NewPeerWithHandler -> DEBU 028 Initializing validator with enroll ID: binhn
01:17:46.663 [CRYPTO] InitValidator -> INFO 029 Initializing validator [binhn]...
01:17:46.663 [CRYPTO.validator.binhn] init -> INFO 02a Init keystore...
01:17:46.664 [CRYPTO.validator.binhn] createKeyStoreIfNotExists -> DEBU 02b Keystore path [/var/openchain/production/crypto/validator/binhn/ks] missing [false]: []
01:17:46.664 [CRYPTO.validator.binhn] createKeyStoreIfNotExists -> DEBU 02c Keystore [/var/openchain/production/crypto/validator/binhn/ks/db] missing [false]:[]
01:17:46.664 [CRYPTO.validator.binhn] openKeyStore -> DEBU 02d Open keystore at [/var/openchain/production/crypto/validator/binhn/ks]...
01:17:46.664 [CRYPTO.validator.binhn] openKeyStore -> DEBU 02e Open keystore at [/var/openchain/production/crypto/validator/binhn/ks]...done
01:17:46.664 [CRYPTO.validator.binhn] init -> INFO 02f Init keystore...done.
01:17:46.664 [CRYPTO.validator.binhn] initCryptoEngine -> INFO 030 Initializing node crypto engine...
01:17:46.664 [CRYPTO.validator.binhn] loadECACertsChain -> DEBU 031 Loading ECA certificates chain...
01:17:46.664 [CRYPTO.validator.binhn] loadCert -> DEBU 032 Loading certificate [eca.cert.chain] at [/var/openchain/production/crypto/validator/binhn/ks/raw/eca.cert.chain]...
01:17:46.664 [CRYPTO.validator.binhn] loadTCACertsChain -> DEBU 033 Loading TCA certificates chain...
01:17:46.665 [CRYPTO.validator.binhn] loadCert -> DEBU 034 Loading certificate [tca.cert.chain] at [/var/openchain/production/crypto/validator/binhn/ks/raw/tca.cert.chain]...
01:17:46.665 [CRYPTO.validator.binhn] loadEnrollmentKey -> DEBU 035 Loading enrollment key...
01:17:46.665 [CRYPTO.validator.binhn] loadPrivateKey -> DEBU 036 Loading private key [enrollment.key] at [/var/openchain/production/crypto/validator/binhn/ks/raw/enrollment.key]...
01:17:46.679 [CRYPTO.validator.binhn] loadEnrollmentCertificate -> DEBU 037 Loading enrollment certificate...
01:17:46.680 [CRYPTO.validator.binhn] loadCertX509AndDer -> DEBU 038 Loading certificate [enrollment.cert] at [/var/openchain/production/crypto/validator/binhn/ks/raw/enrollment.cert]...
01:17:46.729 [CRYPTO.validator.binhn] loadEnrollmentCertificate -> DEBU 039 Setting id to [4scAUd/WNDgK3tZNh8D0ST3pXJriJZhxx6lZOaALlI1egO21JD3jr+reg1rIj36b].
01:17:46.730 [CRYPTO.validator.binhn] loadEnrollmentCertificate -> DEBU 03a Setting enrollCertHash to [4scAUd/WNDgK3tZNh8D0ST3pXJriJZhxx6lZOaALlI1egO21JD3jr+reg1rIj36b].
01:17:46.730 [CRYPTO.validator.binhn] loadEnrollmentID -> DEBU 03b Loading enrollment id at [/var/openchain/production/crypto/validator/binhn/ks/raw/enrollment.id]...
01:17:46.730 [CRYPTO.validator.binhn] loadEnrollmentID -> DEBU 03c Setting enrollment id to [binhn].
01:17:46.730 [CRYPTO.validator.binhn] loadEnrollmentChainKey -> DEBU 03d Loading enrollment chain key...
01:17:46.730 [CRYPTO.validator.binhn] loadKey -> DEBU 03e Loading key [chain.key] at [/var/openchain/production/crypto/validator/binhn/ks/raw/chain.key]...
01:17:46.730 [CRYPTO.validator.binhn] loadTLSCertificate -> DEBU 03f Loading tls certificate...
01:17:46.730 [CRYPTO.validator.binhn] loadCertX509AndDer -> DEBU 040 Loading certificate [tls.cert] at [/var/openchain/production/crypto/validator/binhn/ks/raw/tls.cert]...
01:17:46.731 [CRYPTO.validator.binhn] initCryptoEngine -> INFO 041 Initializing node crypto engine...done!
01:17:46.731 [CRYPTO.validator.binhn] init -> INFO 042 Initialization...done.
01:17:46.731 [CRYPTO.validator.binhn] init -> INFO 043 Initialization...done.
01:17:46.731 [CRYPTO.validator.binhn] init -> INFO 044 Init keystore...
01:17:46.731 [CRYPTO.validator.binhn] initKeyStore -> DEBU 045 Create Table [Certificates] if not exists
01:17:46.734 [CRYPTO.validator.binhn] init -> INFO 046 Init keystore...done.
01:17:46.734 [CRYPTO.validator.binhn] init -> INFO 047 Initialization...done.
01:17:46.734 [CRYPTO] InitValidator -> INFO 048 Initializing validator [binhn]...done!
01:17:46.734 [db] createDBIfDBPathEmpty -> DEBU 049 Is db path [/var/openchain/production/db] empty [true]
01:17:46.734 [db] CreateDB -> DEBU 04a Creating DB at [/var/openchain/production/db]
01:17:46.743 [db] CreateDB -> DEBU 04b DB created at [/var/openchain/production/db]
01:17:46.750 [buckettree] Initialize -> INFO 04c Initializing bucket tree state implemetation with configurations &{maxGroupingAtEachLevel:10 lowestLevel:5 levelToNumBucketsMap:map[4:1001 3:101 2:11 1:2 0:1 5:10009] hashFunc:0xa4eab0}
01:17:46.751 [peer] chatWithPeer -> DEBU 04d Starting up the first peer
01:17:46.751 [chaincode] NewChaincodeSupport -> INFO 04e Chaincode support using peerAddress: 0.0.0.0:30303
01:17:46.752 [rest] StartOpenchainRESTServer -> INFO 04f Initializing the REST service...
01:17:46.752 [main] serve -> INFO 050 Starting peer with id=name:"jdoe" , network id=dev, address=0.0.0.0:30303, discovery.rootnode=, validator=true
01:17:46.752 [genesis] func1 -> INFO 051 Creating genesis block.
01:17:46.753 [genesis] func1 -> INFO 052 No genesis block chaincodes defined.
01:17:46.753 [state] GetHash -> DEBU 053 Enter - GetHash()
01:17:46.753 [buckettree] ComputeCryptoHash -> DEBU 054 Enter - ComputeCryptoHash()
01:17:46.753 [buckettree] ComputeCryptoHash -> DEBU 055 Returing existing crypto-hash as recomputation not required
01:17:46.753 [state] GetHash -> DEBU 056 Exit - GetHash()
01:17:46.753 [indexes] addIndexDataForPersistence -> DEBU 057 Indexing block number [0] by hash = [46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be]
01:17:46.753 [state] AddChangesForPersistence -> DEBU 058 state.addChangesForPersistence()...start
01:17:46.754 [state] AddChangesForPersistence -> DEBU 059 Adding state-delta corresponding to block number[0]
01:17:46.754 [state] AddChangesForPersistence -> DEBU 05a Not deleting previous state-delta. Block number [0] is smaller than historyStateDeltaSize [500]
01:17:46.754 [state] AddChangesForPersistence -> DEBU 05b state.addChangesForPersistence()...finished
01:17:46.754 [ledger] resetForNextTxGroup -> DEBU 05c resetting ledger state for next transaction batch
01:17:46.754 [buckettree] ClearWorkingSet -> DEBU 05d Enter - ClearWorkingSet()
01:17:48.871 [chaincode] HandleChaincodeStream -> DEBU 05e Current context deadline = 0001-01-01 00:00:00 +0000 UTC, ok = false
01:17:48.872 [chaincode] processStream -> DEBU 05f []Received message REGISTER from shim
01:17:48.872 [chaincode] HandleMessage -> DEBU 060 []Handling ChaincodeMessage of type: REGISTER in state created
01:17:48.872 [chaincode] beforeRegisterEvent -> DEBU 061 Received REGISTER in state created
01:17:48.872 [chaincode] registerHandler -> DEBU 062 registered handler complete for chaincode mycc
01:17:48.873 [chaincode] beforeRegisterEvent -> DEBU 063 Got REGISTER for chaincodeID = name:"mycc" , sending back REGISTERED
01:17:48.873 [chaincode] notifyDuringStartup -> DEBU 064 nothing to notify (dev mode ?)
01:17:57.121 [CRYPTO] RegisterClient -> INFO 065 Registering client [lukas] with name [lukas]...
01:17:57.124 [CRYPTO.client.lukas] register -> INFO 066 Registering [lukas]...
01:17:57.126 [CRYPTO.client.lukas] register -> INFO 067 Init keystore...
01:17:57.126 [CRYPTO.client.lukas] createKeyStoreIfNotExists -> DEBU 068 Keystore path [/var/openchain/production/crypto/client/lukas/ks] missing [true]: []
01:17:57.127 [CRYPTO.client.lukas] createKeyStore -> DEBU 069 Creating Keystore at [/var/openchain/production/crypto/client/lukas/ks]...
01:17:57.128 [CRYPTO.client.lukas] createKeyStore -> DEBU 06a Open Keystore DB...
01:17:57.129 [CRYPTO.client.lukas] createKeyStore -> DEBU 06b Ping Keystore DB...
01:17:57.129 [CRYPTO.client.lukas] createKeyStore -> DEBU 06c Keystore created at [/var/openchain/production/crypto/client/lukas/ks].
01:17:57.130 [CRYPTO.client.lukas] openKeyStore -> DEBU 06d Open keystore at [/var/openchain/production/crypto/client/lukas/ks]...
01:17:57.130 [CRYPTO.client.lukas] openKeyStore -> DEBU 06e Open keystore at [/var/openchain/production/crypto/client/lukas/ks]...done
01:17:57.130 [CRYPTO.client.lukas] register -> INFO 06f Init keystore...done.
01:17:57.133 [CRYPTO.client.lukas] retrieveECACertsChain -> DEBU 070 ECA certificate [MIIBwTCCAUegAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwHhcNMTYwMTI2MDcxNzM2WhcNMTYwNDI1MDcxNzM2WjApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARhH4IK2hjbv8cK7Zd0xm+a0kLucr0teBN4sCUmOKmyydxahevkofVj6y1wdphJy7O0tlhxAkdfJdybofj3xMEETpxAi/ywyyYEisW8OUo1uBgWwQIz+v4TvIN0axDSpf2jQzBBMA4GA1UdDwEB/wQEAwIChDAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQwCgYIKoZIzj0EAwMDaAAwZQIwbsr+wwL6OKDpRTaN5WS6/4Qwt1YvgKBAk4vKmWptGQAaiLhr+Mc6j+uJ+miZ/QKTAjEAxnzvfc+7gcysHXpO1IlZ5luqdi3LAzyA7ZxCOrluLMtvsZjzgq5l0jgGgOXcoGHy].
01:17:57.134 [CRYPTO.client.lukas] retrieveECACertsChain -> DEBU 071 Storing ECA certificate for [lukas]...
01:17:57.137 [CRYPTO.client.lukas] retrieveTCACertsChain -> DEBU 072 TCA certificate [MIIBwTCCAUegAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwN0Y2EwHhcNMTYwMTI2MDcxNzM2WhcNMTYwNDI1MDcxNzM2WjApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwN0Y2EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASExZrhQt70a2iukUv5DyvGzJTqWS92Gn0y5Uijrxlj0jmtOzVcHamx/HdXJEpv8KTwxo0zqRmgyKno2DOzbuhg7C3tetMBHWwDEe44FHGQ2p4ZXLUAUNQSSM1Ib94d7cajQzBBMA4GA1UdDwEB/wQEAwIChDAPBgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQwCgYIKoZIzj0EAwMDaAAwZQIxAPIbzoFdnrUzL8eSxr7cmp/je9fteHdn/0FF5IerQ7x8fzT6Ga5OyyRsYVM7RG8njwIwGS6ROtr6CLYKbQfsoHpMnfJkYZtHFPpL0g8h0hOsCSMPhmT42ZwjaI4TLCwRwtzc]
01:17:57.137 [CRYPTO.client.lukas] retrieveTCACertsChain -> DEBU 073 Storing TCA certificate for [lukas]...
01:17:57.869 [CRYPTO.client.lukas] getEnrollmentCertificateFromECA -> DEBU 074 Enrollment certificate for signing [2ZJ8eEx4ZVcttu0TyzpUam/p/TQY+arBzaPbk5KsxjnAB7QsbombXqITDvo/M3Wz]
01:17:57.869 [CRYPTO.client.lukas] getEnrollmentCertificateFromECA -> DEBU 075 Enrollment certificate for encrypting [mZanYssOYvdeap9uogeECUj/gktZ1khrdDYSCDLHg+dFRtYHQLeVMyxcSx0+qx7u]
01:17:57.869 [CRYPTO.client.lukas] retrieveEnrollmentData -> DEBU 076 Enrollment certificate [MIIB0DCCAVagAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNlY2EwHhcNMTYwMTI2MDcxNzU3WhcNMTYwNDI1MDcxNzU3WjArMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQ4wDAYDVQQDEwVsdWthczB2MBAGByqGSM49AgEGBSuBBAAiA2IABEJemXY5G+ea3zv/v1lppsHnZumlw6+z9VxOxqE1Kf09EwXKRUM+z70zQwBrlCTSpfBGnaCC2afSD01gNWmQKj0zkCyMN92nM/GZEU/RZyipOk3TrkMjZJBYSauELH7oGqNQME4wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDAOBgZRAwQFBgcBAf8EATEwCgYIKoZIzj0EAwMDaAAwZQIxAMbPs0B6RcJj17Uu6rvJMEkh7lhLIcaE9Jgwfiw4CVIXAtLZdjIRviFTdiRh2at0ZgIwa9Ul0dziKfcLnIJlZ96HOvRZdtmmGD+p/xzhk5zt5D4zb8r6grN/gdvmVNY18SxR].
01:17:57.870 [CRYPTO.client.lukas] retrieveEnrollmentData -> DEBU 077 Storing enrollment data for user [lukas]...
01:17:57.870 [CRYPTO.client.lukas] getTLSCertificateFromTLSCA -> INFO 078 getTLSCertificate...
01:17:57.942 [CRYPTO.client.lukas] getTLSCertificateFromTLSCA -> INFO 079 Verifing tls certificate...
01:17:57.987 [CRYPTO.client.lukas] getTLSCertificateFromTLSCA -> INFO 07a Verifing tls certificate...done!
01:17:57.988 [CRYPTO.client.lukas] retrieveTLSCertificate -> DEBU 07b TLS Cert [MIIB5zCCAW2gAwIBAgIBATAKBggqhkjOPQQDAzArMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQ4wDAYDVQQDEwV0bHNjYTAeFw0xNjAxMjYwNzE3NTdaFw0xNjA0MjUwNzE3NTdaMFAxCzAJBgNVBAYTAlVTMQwwCgYDVQQKEwNJQk0xMzAxBgNVBAMTKmx1a2FzLWVmNjFhZjI0LWVjZjgtNGI0MC05ZGY5LTk1OTAxYTRhZmMwZjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEFNXKYChsDnr95R4TwdfTJhWKP7jtmmiLwLNimo/cp8vNn/fmyMWfJtPptCt0/rarUKj2a+4GlAYfqxcUEQJ1euKeHyjQy9lrTgtuQdMCDJeuaggMQ/Zx9Na6Xll93OcaNAMD4wDgYDVR0PAQH/BAQDAgMIMAwGA1UdEwEB/wQCMAAwDQYDVR0OBAYEBAECAwQwDwYDVR0jBAgwBoAEAQIDBDAKBggqhkjOPQQDAwNoADBlAjAWX5qDh1QFXFVHYnuOEGCjWwbZG0rNYmDPyBSDD7LqitD0vPmeYQaAxasrHRj3cZ4CMQCqvgKhD/58yqCHMah90MljqLaug8VmCJ+Ya7X/ihGlIzpPr8WEp0HqvtwlTGKUl2U=]
01:17:57.988 [CRYPTO.client.lukas] retrieveTLSCertificate -> INFO 07c Storing TLS key and certificate for user [lukas]...
01:17:57.988 [CRYPTO.client.lukas] register -> INFO 07d Registering [lukas]...done!
01:17:57.988 [CRYPTO.client.lukas] close -> INFO 07e Closing keystore...
01:17:57.989 [CRYPTO.client.lukas] close -> INFO 07f Closing keystore...done!
01:17:57.989 [CRYPTO] RegisterClient -> INFO 080 Registering client [lukas] with name [lukas]...done!
01:18:06.480 [devops] Deploy -> DEBU 081 Initializing secure devops using context 
01:18:06.481 [CRYPTO] InitClient -> INFO 082 Initializing client []...
01:18:06.482 [CRYPTO.client.] init -> ERRO 083 Not registered yet.
01:18:06.482 [CRYPTO] InitClient -> ERRO 084 Failed client initialization []: [Registration to the Membership Service required.].
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x30 pc=0x656185]

goroutine 71 [running]:
github.com/openblockchain/obc-peer/openchain/crypto.closeClientInternal(0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/openchain/crypto/client.go:127 +0x45
github.com/openblockchain/obc-peer/openchain/crypto.CloseClient(0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/openchain/crypto/client.go:102 +0x74
github.com/openblockchain/obc-peer/openchain.(_Devops).Deploy(0xc82015e210, 0x7fc977169958, 0xc82016a780, 0xc82034dbd0, 0x0, 0x7fc97799a028, 0xc8201375e0)
    /go/src/github.com/openblockchain/obc-peer/openchain/devops.go:141 +0x4d8
github.com/openblockchain/obc-peer/protos._Devops_Deploy_Handler(0xcc5180, 0xc82015e210, 0x7fc977169958, 0xc82016a780, 0xc82016a8d0, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/protos/devops.pb.go:198 +0x132
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).processUnaryRPC(0xc8201a1140, 0x7fc977169908, 0xc8202d8090, 0xc8205d09c0, 0xc82044cb00, 0x133e270, 0xc82016a750, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:350 +0x866
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).handleStream(0xc8201a1140, 0x7fc977169908, 0xc8202d8090, 0xc8205d09c0, 0xc82016a750)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:467 +0x743
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve.func2.1.1(0xc8201a1140, 0x7fc977169908, 0xc8202d8090, 0xc8205d09c0, 0xc82016a750, 0xc8201da050)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:278 +0x49
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(*Server).Serve.func2.1
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:280 +0x5ac

goroutine 1 [chan receive]:
main.serve(0xc82015f080, 0x0, 0x1, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/main.go:415 +0x1703
main.glob.func1(0x133f500, 0xc82015f080, 0x0, 0x1)
    /go/src/github.com/openblockchain/obc-peer/main.go:75 +0x35
github.com/openblockchain/obc-peer/vendor/github.com/spf13/cobra.(_Command).execute(0x133f500, 0xc82015f030, 0x1, 0x1, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/github.com/spf13/cobra/command.go:501 +0x869
github.com/openblockchain/obc-peer/vendor/github.com/spf13/cobra.(_Command).Execute(0x133f340, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/github.com/spf13/cobra/command.go:584 +0x46a
main.main()
    /go/src/github.com/openblockchain/obc-peer/main.go:250 +0x14bc

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1696 +0x1

goroutine 31 [IO wait]:
net.runtime_pollWait(0x7fc9779a05b0, 0x72, 0xc8200101b0)
    /usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820294140, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820294140, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc8202940e0, 0x0, 0x7fc9779a9fa0, 0xc8202c6220)
    /usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc82002e478, 0xc8200a1d18, 0x0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net/http.tcpKeepAliveListener.Accept(0xc82002e478, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:2135 +0x41
net/http.(_Server).Serve(0xc8202cc0c0, 0x7fc9779a9f68, 0xc82002e478, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:1887 +0xb3
net/http.(_Server).ListenAndServe(0xc8202cc0c0, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:1877 +0x136
net/http.ListenAndServe(0xc820152150, 0xc, 0x7fc9779a9f40, 0xc8201c80d0, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:1967 +0x8f
github.com/openblockchain/obc-peer/openchain/rest.StartOpenchainRESTServer(0xc8201ea0f0, 0xc82015e210)
    /go/src/github.com/openblockchain/obc-peer/openchain/rest/rest_api.go:926 +0x4b1
created by main.serve
    /go/src/github.com/openblockchain/obc-peer/main.go:377 +0x11ef

goroutine 8 [chan receive]:
github.com/openblockchain/obc-peer/events/producer.(*eventProcessor).start(0xc82018bb60)
    /go/src/github.com/openblockchain/obc-peer/events/producer/events.go:72 +0xbe
created by github.com/openblockchain/obc-peer/events/producer.initializeEvents
    /go/src/github.com/openblockchain/obc-peer/events/producer/events.go:120 +0x178

goroutine 39 [chan receive]:
database/sql.(*DB).connectionOpener(0xc8201ba6e0)
    /usr/local/go/src/database/sql/sql.go:634 +0x45
created by database/sql.Open
    /usr/local/go/src/database/sql/sql.go:481 +0x336

goroutine 33 [IO wait]:
net.runtime_pollWait(0x7fc9779a0670, 0x72, 0xc8200101b0)
    /usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820141020, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820141020, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc820140fc0, 0x0, 0x7fc9779a9fa0, 0xc82044d340)
    /usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc82002e4b8, 0x528260, 0x0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net.(_TCPListener).Accept(0xc82002e4b8, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:264 +0x3d
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve(0xc82017f800, 0x7fc97799f7b0, 0xc82002e4b8, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:224 +0x1c1
created by main.serve
    /go/src/github.com/openblockchain/obc-peer/main.go:411 +0x16e0

goroutine 32 [IO wait]:
net.runtime_pollWait(0x7fc9779a0730, 0x72, 0xc8200101b0)
    /usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820140fb0, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820140fb0, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc820140f50, 0x0, 0x7fc9779a9fa0, 0xc82050c040)
    /usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc82002e4b0, 0xc82003ddc0, 0x0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
net.(_TCPListener).Accept(0xc82002e4b0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:264 +0x3d
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve(0xc8201a1140, 0x7fc97799f7b0, 0xc82002e4b0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:224 +0x1c1
main.serve.func1(0xc8201a1140, 0x7fc97799f7b0, 0xc82002e4b0, 0xc820281ec0)
    /go/src/github.com/openblockchain/obc-peer/main.go:393 +0x56
created by main.serve
    /go/src/github.com/openblockchain/obc-peer/main.go:399 +0x1627

goroutine 50 [select]:
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(*http2Server).controller(0xc8202d9200)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:611 +0x629
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:133 +0x852

goroutine 51 [IO wait]:
net.runtime_pollWait(0x7fc9779a04f0, 0x72, 0xc8200101b0)
    /usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820141c60, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820141c60, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).Read(0xc820141c00, 0xc8202d9194, 0x9, 0x9, 0x0, 0x7fc97799a050, 0xc8200101b0)
    /usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(_conn).Read(0xc8201ea120, 0xc8202d9194, 0x9, 0x9, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:172 +0xe4
io.ReadAtLeast(0x7fc97715d0b0, 0xc8201ea120, 0xc8202d9194, 0x9, 0x9, 0x9, 0x0, 0x0, 0x0)
    /usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7fc97715d0b0, 0xc8201ea120, 0xc8202d9194, 0x9, 0x9, 0x8435f00c02b3fb01, 0x0, 0x0)
    /usr/local/go/src/io/io.go:316 +0x62
github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2.readFrameHeader(0xc8202d9194, 0x9, 0x9, 0x7fc97715d0b0, 0xc8201ea120, 0x77000000, 0xc800000000, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2/frame.go:227 +0xa5
github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2.(_Framer).ReadFrame(0xc8202d9170, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2/frame.go:372 +0xe6
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_framer).readFrame(0xc82045fb60, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http_util.go:450 +0x3d
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_http2Server).HandleStreams(0xc8202d9200, 0xc82045fbf0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:242 +0x663
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve.func2(0x7fc977169908, 0xc8202d9200, 0xc8201a1140)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:281 +0xcd
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(*Server).Serve
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:286 +0xc78

goroutine 47 [select]:
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(*http2Server).controller(0xc8202d8090)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:611 +0x629
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.newHTTP2Server
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:133 +0x852

goroutine 53 [select]:
github.com/openblockchain/obc-peer/openchain/chaincode.(_Handler).processStream(0xc820270800, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/openchain/chaincode/handler.go:231 +0x178e
github.com/openblockchain/obc-peer/openchain/chaincode.HandleChaincodeStream(0xc82027b860, 0x7fc9771699e0, 0xc820153e40, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/openchain/chaincode/handler.go:281 +0x22c
github.com/openblockchain/obc-peer/openchain/chaincode.(_ChaincodeSupport).Register(0xc82027b860, 0x7fc9771699e0, 0xc820153e40, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/openchain/chaincode/chaincode_support.go:496 +0x41
github.com/openblockchain/obc-peer/protos._ChaincodeSupport_Register_Handler(0xce66a0, 0xc82027b860, 0x7fc977169998, 0xc8202d64e0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/protos/chaincode.pb.go:441 +0xd8
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).processStreamingRPC(0xc8201a1140, 0x7fc977169908, 0xc8202d9200, 0xc82025f740, 0xc82044caa0, 0x1339380, 0xc82045fda0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:421 +0x2e4
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).handleStream(0xc8201a1140, 0x7fc977169908, 0xc8202d9200, 0xc82025f740, 0xc82045fda0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:471 +0x7f4
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve.func2.1.1(0xc8201a1140, 0x7fc977169908, 0xc8202d9200, 0xc82025f740, 0xc82045fda0, 0xc820153c90)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:278 +0x49
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve.func2.1
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:280 +0x5ac

goroutine 55 [select]:
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_recvBufferReader).Read(0xc82045fd40, 0xc8201371b0, 0x5, 0x5, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/transport.go:141 +0x7e5
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_Stream).Read(0xc82025f740, 0xc8201371b0, 0x5, 0x5, 0x7fc9771699e0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/transport.go:281 +0x6d
io.ReadAtLeast(0x7fc97715d410, 0xc82025f740, 0xc8201371b0, 0x5, 0x5, 0x5, 0x0, 0x0, 0x0)
    /usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7fc97715d410, 0xc82025f740, 0xc8201371b0, 0x5, 0x5, 0xc820027fa8, 0x0, 0x0)
    /usr/local/go/src/io/io.go:316 +0x62
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_parser).recvMsg(0xc820153e30, 0xc81ffe92e5, 0x0, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/rpc_util.go:139 +0xc5
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.recv(0xc820153e30, 0x7fc9779a07f0, 0x13830d8, 0xc80ae0, 0xc8202da340, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/rpc_util.go:195 +0x42
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_serverStream).RecvMsg(0xc8202d64e0, 0xc80ae0, 0xc8202da340, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/stream.go:367 +0xb1
github.com/openblockchain/obc-peer/protos.(_chaincodeSupportRegisterServer).Recv(0xc820153e40, 0x624139, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/protos/chaincode.pb.go:460 +0x7e
github.com/openblockchain/obc-peer/openchain/chaincode.(_Handler).processStream.func1(0xc8201367a0, 0xc820270800, 0xc8202d65a0)
    /go/src/github.com/openblockchain/obc-peer/openchain/chaincode/handler.go:227 +0x42
created by github.com/openblockchain/obc-peer/openchain/chaincode.(*Handler).processStream
    /go/src/github.com/openblockchain/obc-peer/openchain/chaincode/handler.go:229 +0xf6

goroutine 48 [IO wait]:
net.runtime_pollWait(0x7fc9779a0430, 0x72, 0xc8200101b0)
    /usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8201aa060, 0x72, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8201aa060, 0x0, 0x0)
    /usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).Read(0xc8201aa000, 0xc8202d8024, 0x9, 0x9, 0x0, 0x7fc97799a050, 0xc8200101b0)
    /usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(_conn).Read(0xc82002e028, 0xc8202d8024, 0x9, 0x9, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:172 +0xe4
io.ReadAtLeast(0x7fc97715d0b0, 0xc82002e028, 0xc8202d8024, 0x9, 0x9, 0x9, 0x0, 0x0, 0x0)
    /usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7fc97715d0b0, 0xc82002e028, 0xc8202d8024, 0x9, 0x9, 0x0, 0x0, 0x0)
    /usr/local/go/src/io/io.go:316 +0x62
github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2.readFrameHeader(0xc8202d8024, 0x9, 0x9, 0x7fc97715d0b0, 0xc82002e028, 0x77000000, 0xc800000000, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2/frame.go:227 +0xa5
github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2.(_Framer).ReadFrame(0xc8202d8000, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/golang.org/x/net/http2/frame.go:372 +0xe6
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_framer).readFrame(0xc8202ee150, 0x0, 0x0, 0x0, 0x0)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http_util.go:450 +0x3d
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport.(_http2Server).HandleStreams(0xc8202d8090, 0xc8202ee330)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/transport/http2_server.go:242 +0x663
github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(_Server).Serve.func2(0x7fc977169908, 0xc8202d8090, 0xc8201a1140)
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:281 +0xcd
created by github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc.(*Server).Serve
    /go/src/github.com/openblockchain/obc-peer/vendor/google.golang.org/grpc/server.go:286 +0xc78
adecaro commented 8 years ago

Hi all,

I did some investigation and reproduced the issue. I have used the latest version of the master that includes PR #560.

Here are the results:

  1. The peer doesn't crash anymore thanks to PR #560. It just reports that the registration failed.
  2. Then, question is: why does the registration fail? That's because when the CLI is used to issue commands, the prefix

OPENCHAIN_SECURITY_ENABLED=true OPENCHAIN_SECURITY_PRIVACY=true

has to be always used if openchain.yaml hasn't been modified to enable security and privacy.

I have checked the SandboxSetup document at

https://github.com/openblockchain/obc-docs/blob/master/api/SandboxSetup.md

and it doesn't report this. @angrbrd, may you confirm this?

Thus, either one uses always the prefix or modify openchain.yaml directly.

@takagimasanobu, may you confirm by rerunning the test case with the modification I suggested? Thanks :)

angrbrd commented 8 years ago

@adecaro , these instructions are documented in the section describing how to start up the validating peer. These instructions have been in place for quite some time. Let me know if this is not clear.

https://github.com/openblockchain/obc-docs/blob/master/api/SandboxSetup.md#window-1-validating-peer

takagimasanobu commented 8 years ago

Hi All

I reran the test case again with the new instructions that @angrbrd wrote above, and I successfully finished my test. I found that I have to build the obc-peer with security: enabled=true on openchain.yaml file when I want to execute the obc-peer with security on as the above document mentions. I successfully finished my test with privacy is on. So please close this issue. Thanks!!