1

誰でもこれで私を助けることができますか?ピア ネットワーク (hyperledger fabric) のログインの何が問題なのかわかりません。

http://hyperledger-fabric.readthedocs.io/en/latest/Setup/Chaincode-setup/のセキュリティ機能に関する注記の手順に従いました 。言われた通りにしてみました。私はvagrant sshを実行し cd $GOPATH/src/github.com/hyperledger/fabric/peer、続いて

peer network login admin 

(membersrvc.yaml のデフォルト ファイル)。

他のユーザー名とパスワードを試してみましたが、エラーが表示されたため、どれも機能しませんでした。私の理解では、エラーが表示された場合、ユーザーとパスワードが正しくないことを意味します。ただし、ユーザーとパスワードをコピーして貼り付けましたが、機能しませんでした。ピア ネットワーク (ハイパーレジャー ファブリック - git bash を使用) にログインするためのユーザーとパスワードの何が問題なのか教えてください。

ユーザーとパスワード (ユーザーとパスワードを示す eca.user) は、次の (membersrvc.yaml) に表示されます。

    eca:


              # This hierarchy is used to create the Pre-key tree, affiliations is the top of this hierarchy, 'banks_and_institutions' is used to create the key associated to auditors of both banks and
                # institu

tions, 'banks' is used to create a key associated to auditors of banks, 'bank_a' is used to create a key associated to auditors of bank_a, etc.
            affiliations:
               banks_and_institutions:
                  banks:
                      - bank_a
                      - bank_b
                      - bank_c
                  institutions:
                      - institution_a
            users:
                    #
                    # The fields of each user are as follows:
                    #    <EnrollmentID>: <system_role (1:client, 2: peer, 4: validator, 8: auditor)> <EnrollmentPWD> <Affiliation> <Affiliation_Role> <JSON_Metadata>
                    #
                    # The optional JSON_Metadata field is of the following format:
                    #   { "registrar": { "roles": <array-of-role-names>, "delegateRoles": <array-of-role-names> } }
                    # The 'registrar' section is used to control access to registration of new users directly via the ECAA.RegisterUser GRPC call.
                    # (See the 'fabric/membersrvc/protos/ca.proto' file for the definition of ECAA.RegisterUser.)
                    # Note that this also controls who can register users via the client SDK.
                    #
                    # Only users with a 'registrar' section may be a registrar to register other users.  In particular,
                    # 1) the "roles" field specifies which member roles may be registered by this user, and
                    # 2) the "delegateRoles" field specifies which member roles may become the "roles" field of registered users.
                    # The valid role names are "client", "peer", "validator", and "auditor".
                    #
                    # Example1:
                    #    The 'admin' user below can register clients, peers, validators, or auditors; furthermore, the 'admin' user can register other
                    #    users who can then register clients only.
                    #
                    # Example2:
                    #    The 'WebAppAdmin' user below can register clients only, but none of the users registered by this user can register other users.
                    #
                    admin: 1 Xurw3yU9zI0l institution_a '{"registrar":{"roles":["client","peer","validator","auditor"],"delegateRoles":["client"]}}'
                    WebAppAdmin: 1 DJY27pEnl16d institution_a '{"registrar":{"roles":["client"]}}'
                    lukas: 1 NPKYL39uKbkj bank_a
                    system_chaincode_invoker: 1 DRJ20pEql15a institution_a
                    diego: 1 DRJ23pEQl16a institution_a
                    jim: 1 6avZQLwcUe9b bank_a
                    binhn: 1 7avZQLwcUe9q institution_a
                    testing: 1 test123 institution_a

                    # Users for asset transfer with roles test located at
                    # sdk/node/test/unit/asset-mgmt-with-roles.js
                    alice: 1 CMS10pEQlB16 bank_a
                    bob: 1 NOE63pEQbL25 bank_a
                    assigner: 1 Tc43PeqBl11 bank_a

                    vp: 4 f3489fy98ghfAD

                    test_vp0: 4 MwYpmSRjupbT
                    test_vp1: 4 5wgHK9qqYaPy
                    test_vp2: 4 vQelbRvja7cJ
                    test_vp3: 4 9LKqKH5peurL
                    test_vp4: 4 Pqh90CEW5juZ
                    test_vp5: 4 FfdvDkAdY81P
                    test_vp6: 4 QiXJgHyV4t7A
                    test_vp7: 4 twoKZouEyLyB
                    test_vp8: 4 BxP7QNh778gI
                    test_vp9: 4 wu3F1EwJWHvQ

    # Uncomment this section to activate devnet setup as specficied in
    # devnet-setup.md
    #
    #               vp0: 4 vp0_secret
    #               vp1: 4 vp1_secret

                    test_user0: 1 MS9qrN8hFjlE bank_a
                    test_user1: 1 jGlNl6ImkuDo institution_a
                    test_user2: 1 zMflqOKezFiA bank_c
                    test_user3: 1 vWdLCE00vJy0 bank_a
                    test_user4: 1 4nXSrfoYGFCP institution_a
                    test_user5: 1 yg5DVhm0er1z bank_b
                    test_user6: 1 b7pmSxzKNFiw bank_a
                    test_user7: 1 YsWZD4qQmYxo institution_a
                    test_user8: 1 W8G0usrU7jRk bank_a
                    test_user9: 1 H80SiB5ODKKQ institution_a

                    test_nvp0: 2 iywrPBDEPl0K bank_a
                    test_nvp1: 2 DcYXuRSocuqd institution_a
                    test_nvp2: 2 flpChShlY7xt bank_c
                    test_nvp3: 2 jeruawMomclo bank_a
                    test_nvp4: 2 RMYVxSZCk370 institution_a
                    test_nvp5: 2 XHYVCIJGZGK7 bank_b
                    test_nvp6: 2 4cIn63j8ahYp bank_a
                    test_nvp7: 2 E7FAJUtWVn2h institution_a
                    test_nvp8: 2 LJu8DkUilBEH bank_a
                    test_nvp9: 2 VlEsBsiyXSjw institution_a

次のコードは、ピア ネットワーク (hyperledger fabric) にログインするために git bash に入力するものです。

vagrant@hyperledger-devenv:v0.0.11-c6e56d6:/opt/gopath/src/github.com/hyperledger/fabric/peer$ peer network login admin

Enter password for user 'admin': Xurw3yU9zI0l

パスワードを入力した後のエラーは次のとおりです。

2016/09/14 07:05:33 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:7051: getsockopt: connection refused"; Reconnecting to {"0.0.0.0:7051" <nil>}
2016/09/14 07:05:35 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:7051: getsockopt: connection refused"; Reconnecting to {"0.0.0.0:7051" <nil>}
2016/09/14 07:05:35 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:7051: getsockopt: connection refused"; Reconnecting to {"0.0.0.0:7051" <nil>}
Error: Error trying to connect to local peer: grpc: timed out when dialing
Usage:
  peer network login <username> [flags]

Flags:
  -p, --password string   The password for user. You will be requested to enter the password if this flag is not specified.

Global Flags:
      --logging-level string       Default logging level and overrides, see core.yaml for full syntax
      --test.coverprofile string   Done (default "coverage.cov")
  -v, --version                    Display current version of fabric peer server

vagrant@hyperledger-devenv:v0.0.11-c6e56d6:/opt/gopath/src/github.com/hyperledger/fabric/peer$

更新:はい、私はこのようなものを達成することができます

06:04:34.617 [crypto] RegisterClient -> INFO 017 Registering client [admin] with                               name [admin]...
06:04:34.737 [crypto] Info -> INFO 018 [client.admin]  Register crypto engine...
06:04:34.738 [crypto] Info -> INFO 019 [client.admin]  Register crypto engine...                              done.
06:04:34.739 [crypto] RegisterClient -> INFO 01a Registering client [admin] with                               name [admin]...done!

しかし、なぜ一度だけしかログインできないのかわかりますか? たとえば、管理者に再度ログインしたい場合、パスワードの入力を求めるプロンプトは表示されず、次のようなメッセージが表示されます

vagrant@hyperledger-devenv:v0.0.11-087d2ea:/opt/gopath/src/github.com/hyperledger/fabric/peer$ peer network login admin
vagrant@hyperledger-devenv:v0.0.11-087d2ea:/opt/gopath/src/github.com/hyperledger/fabric/peer$
4

2 に答える 2

2

質問の後半部分「なぜ 1 回だけしかログインできないのですか?」に対する回答です。次のとおりです。

ユーザーは登録証明書を 1 つだけ持つことができます。メンバーシップ サービスは、ネットワークへの最初のユーザー ログイン時に一意の登録証明書を生成します。登録証明書が発行されるとすぐに、メンバーシップ サービスは登録パスワードを上書きしてユーザーのアカウントを「無効」にします。

あなたの例では、「ログイン」コマンドを同じピアに送信すると、このピアはユーザーが登録されていることを確認し、メンバーシップ サービスに要求を送信しません。

複数のピアを持つ構成では、ユーザーはそのうちの 1 つにのみログインできます。別のピア経由で 2 回目のログインを試みると、次のようになります。

Error: Error on client login: roc error: code = 2 desc = Identity or token does not match.
于 2016-09-22T23:28:55.283 に答える
2

あなたのエラーの理由、

2016/09/14 07:05:33 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 0.0.0.0:7051: getsockopt: connection refused"; Reconnecting to {"0.0.0.0:7051" <nil>}

peerで実行されていないということです0.0.0.0:7051

ここであなたがすべきことは、

ファブリック ディレクトリからmembersrvc最初に実行し ( CA のセットアップ方法についてはこちらを参照)、別のターミナルで次のコマンドを実行してpeerプロセスを開始します。

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer node start --peer-chaincodedev

devモードで実行していることに注意してください。

別のターミナルを開き、次を実行します。

peer network login lukas

プロンプトが表示されたら、パスワードを入力 (または貼り付け) します。

2 番目のウィンドウ (ピアを開始した場所) に、次の出力が表示されます。

08:48:18.978 [crypto] RegisterClient -> INFO 01b Registering client [lukas] with name [lukas]...
08:48:19.179 [crypto] Info -> INFO 01c [client.lukas]  Register crypto engine...
08:48:19.181 [crypto] Info -> INFO 01d [client.lukas]  Register crypto engine...done.
08:48:19.183 [crypto] RegisterClient -> INFO 01e Registering client [lukas] with name [lukas]...done!

それが役立つかどうか教えてください。

于 2016-09-14T08:54:04.003 に答える