0

「what-happened-exactly-on-chaincode-deploy-and-invoke-query-in-hyperledger」に関する次の参照投稿が表示されます。

「登録」チェーンコードの場合、チェーンコードの作成者は、他のノードがネットワークでチェーンコードを見つけてソースをローカルにダウンロードし、docker イメージをビルドする前に、チェーンコードを ValidationPeer に登録する必要がありますか? その後、同じチェーンコードが複数回デプロイされた場合、以前の状態は上書きされますか?

参照: Hyperledger のチェーンコード deploy と invoke 、query で正確に何が起こったのですか?

「展開」の間、チェーンコードはトランザクションの形で台帳に送信され、ネットワーク内のすべてのノードに配布されます。各ノードは、このチェーンコードが埋め込まれた新しい Docker コンテナーを作成します。その後、コンテナが起動され、Init メソッドが実行されます。

「クエリ」中 - チェーン コードは現在の状態を読み取り、それをユーザーに送り返します。このトランザクションはブロックチェーンに保存されません。

「呼び出し」中 - チェーンコードはレジャー内の変数の状態を変更できます。各「呼び出し」トランザクションは台帳の「ブロック」に追加されます。

4

2 に答える 2

0

技術的には、REGISTER は Deploy トランザクションの一部です。

チェーンコードは、それと対話するための Deploy、Invoke、Query メソッド/API を提供します。チェーンコードのデプロイについて話すとき、実際にはチェーンコードで Deploy メソッドを呼び出すエンド ユーザー (またはアプリケーション) について話していることになります。

Deploy トランザクションを処理するピアは、Docker コンテナーでチェーンコードを開始しますが、Deploy トランザクションの処理はここで終了しません。チェーンコード コンテナーには、以降ピアと実際に通信する shim レイヤーがあります。シム レイヤーとピア間のこの通信は、ChaincodeMessage によって管理されます。この宣言で定義されているように、さまざまなタイプの ChaincodeMessage(s) があります。

enum Type {
    UNDEFINED = 0;
    REGISTER = 1;
    REGISTERED = 2;
    INIT = 3;
    READY = 4;
    TRANSACTION = 5;
    COMPLETED = 6;
    ERROR = 7;
    GET_STATE = 8;
    PUT_STATE = 9;
    DEL_STATE = 10;
    INVOKE_CHAINCODE = 11;
    INVOKE_QUERY = 12;
    RESPONSE = 13;
    QUERY = 14;
    QUERY_COMPLETED = 15;
    QUERY_ERROR = 16;
    RANGE_QUERY_STATE = 17;
}

ソースhttp://hyperledger-fabric.readthedocs.io/en/latest/protocol-spec/#33-chaincodeから引用します。

Upon deploy (chaincode container is started), the shim layer sends a one
time REGISTER message to the validating peer with the payload containing the 
ChaincodeID. The validating peer responds with REGISTERED or ERROR on 
success or failure respectively. The shim closes the connection and exits if 
it receives an ERROR.   

したがって、あなたは得る

10:08:38.450 [shim] DEBU : Registering.. sending REGISTER
10:08:39.901 [shim] DEBU : []Received message REGISTERED from shim
10:08:39.965 [shim] DEBU : []Handling ChaincodeMessage of type: REGISTERED(state:created)
10:08:40.037 [shim] DEBU : Received REGISTERED, ready for invocations

その後、チェーンコードは実際に Query と Invoke を受け取る準備が整います。

于 2016-10-09T08:06:44.513 に答える