Something wrong on deploy chaincode for hyperledger v1.0

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 17:14:41

问题


I have tried to use docker toolbox to setup Hyperledger V1.0 in my local machines. I according to this document: http://hyperledger-fabric.readthedocs.io/en/latest/asset_setup.html

But when I tried to deploy chaincode.

$node deploy.js

I got an error message:

info: Returning a new winston logger with default configurations
info: [Chain.js]: Constructed Chain instance: name - fabric-client1, securityEnabled: true, TCert download batch size: 10, network mode: true
info: [Peer.js]: Peer.const - url: grpc://localhost:8051 options  grpc.ssl_target_name_override=tlsca, grpc.default_authority=tlsca
info: [Peer.js]: Peer.const - url: grpc://localhost:8055 options  grpc.ssl_target_name_override=tlsca, grpc.default_authority=tlsca
info: [Peer.js]: Peer.const - url: grpc://localhost:8056 options  grpc.ssl_target_name_override=tlsca, grpc.default_authority=tlsca
info: [Client.js]: Failed to load user "admin" from local key value store
info: [FabricCAClientImpl.js]: Successfully constructed Fabric COP service client: endpoint - {"protocol":"http","hostname":"localhost","port":8054}
info: [crypto_ecdsa_aes]: This class requires a KeyValueStore to save keys, no store was passed in, using the default store C:\Users\daniel\.hfc-key-store
[2017-04-15 22:14:29.268] [ERROR] Helper - Error: Calling enrollment endpoint failed with error [Error: connect ECONNREFUSED 127.0.0.1:8054]
    at ClientRequest.<anonymous> (C:\Users\daniel\node_modules\fabric-ca-client\lib\FabricCAClientImpl.js:304:12)
    at emitOne (events.js:96:13)
    at ClientRequest.emit (events.js:188:7)
    at Socket.socketErrorListener (_http_client.js:310:9)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at emitErrorNT (net.js:1278:8)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
[2017-04-15 22:14:29.273] [ERROR] DEPLOY - Error: Failed to obtain an enrolled user
    at ca_client.enroll.then.then.then.catch (C:\Users\daniel\helper.js:59:12)
    at process._tickCallback (internal/process/next_tick.js:103:7)
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: Connect Failed
    at ClientDuplexStream._emitStatusIfDone (C:\Users\daniel\node_modules\grpc\src\node\src\client.js:201:19)
    at ClientDuplexStream._readsDone (C:\Users\daniel\node_modules\grpc\src\node\src\client.js:169:8)
    at readCallback (C:\Users\daniel\node_modules\grpc\src\node\src\client.js:229:12)

Is this an question about unable to connect to ca? Or other causes?

Edit:

Environment:

OS: Windows 10 Professional Edition
Docker Toolbox: 17.04.0-ce
Go: 1.7.5
Node.js: 6.10.0

My steps:

1.Open Docker Quickstart Terminal and key commands.

$curl -L https://raw.githubusercontent.com/hyperledger/fabric/master/examples/sfhackfest/sfhackfest.tar.gz -o sfhackfest.tar.gz 2> /dev/null;  tar -xvf sfhackfest.tar.gz

$docker-compose -f docker-compose-gettingstarted.yml build

$docker-compose -f docker-compose-gettingstarted.yml up -d

$docker ps

It has been confirmed that six containers have been activated

2.Download examples and install modules.

$curl -OOOOOO https://raw.githubusercontent.com/hyperledger/fabric-sdk-node/v1.0-alpha/examples/balance-transfer/{config.json,deploy.js,helper.js,invoke.js,query.js,package.json}
//This link didn't work, so I downloaded the required files from GitHub of fabric-sdk-node

$npm install --global windows-build-tools

$npm install

3.Try to deploy chaincode.

$node deploy.js

回答1:


There were several problems, not the least of which that documentation was outdated and was for a preview release of Hyperledger Fabric. The docs are actually in the process of being removed as we need to update our examples / samples.

You mentioned Docker Toolbox - so are you trying to run all of this on Windows or Mac?

UPDATE:

So one of the issue with Docker Toolbox or Docker for Windows is that you cannot use localhost / 127.0.0.1 as the address when trying to communicate from apps on the host (even in the QuickStart Terminal) to the endpoints of the Docker containers. When the QuickStart Terminal first launches Docker, you'll see that it will output the IP address of the endpoint you should use when communicating with exposed ports.




回答2:


I was having the same issue while following the latest "Writing Your First Application" tutorial (http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html). I had installed all the pre-requisites and the fabric-samples and started the local network.

When I got to the step of enrolling the Admin user, $ node enrollAdmin.js, I was getting the same error message as above, Error: connect ECONNREFUSED, followed by the localhost domain.

As the first answer suggests, the root cause is that I'm running Docker Toolbox. I'm developing on an older Mac, OSX v10.9.5, so I couldn't use Docker for Mac.

To fix the issue, I replaced 'localhost' in the enrollAdmin.js code with the IP from Docker Toolbox.

Here are the steps I took:

  1. Started Docker with Applications > Docker Quickstart Terminal
  2. Copied the IP from this sentence: docker is configured to use the default machine with IP...
  3. Opened the copy of enrollAdmin.js from fabric-samples/fabcar directory
  4. Found this code:

    // be sure to change the http to https when the CA is running TLS enabled
    fabric_ca_client = new Fabric_CA_Client('http://localhost:7054', tlsOptions , 'ca.example.com', crypto_suite); // <-- This is the line to change
    
  5. Replaced 'localhost' with the Docker IP, leaving the port :7054 as is.
  6. Saved
  7. Re-ran the command, $ node enrollAdmin.js

The script connected to the CA and successfully completed the Admin enrollment.

On to the next step!



来源:https://stackoverflow.com/questions/43427448/something-wrong-on-deploy-chaincode-for-hyperledger-v1-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!