私はHyperledger Fabricのアーキテクチャを研究しています。私は、支持している同業者がトランザクションの起点をローカルでどのように検証できるのかが不思議です。ローカルにピアを承認する際のトランザクションの起点を確認する方法は?
文書によると、提出するクライアントがエンドースしているピアにトランザクションを送信すると、各支持するピアがクライアントの署名を検証します。私が知る限り、署名はクライアントの秘密鍵で暗号化されたメッセージです。署名を検証するために、支持するピアはクライアントの公開鍵を必要とします。
私の質問は、そこからエンドポイントのピアがクライアントの公開鍵を取得する場所ですか?私は公開鍵はconfigtxgen
ツールによって生成されたチャンネルの起源ブロックの内側にあると思います。なぜなら、同じチャンネルのすべてのピアがこの起源ブロックを持っているからです。それが正しいか?または、トランザクションにhttps接続のようなクライアントの公開鍵(クライアントの証明書)が含まれていますか? (ただし、ドキュメントによれば、メッセージフォーマットにはクライアントの公開鍵の余地はありません)。
ありがとうございます。
ありがとうございました。あなたの答えは私にとって論理的だと感じています。 docによると、 'PROPOSE'メッセージフォーマットは'であり、 'tx'フォーマットはです。私の知る限り、署名はクライアントの秘密鍵で暗号化された他のフィールド(clientID、...など)です。ですから、 'clientSig'には暗号化された他のフィールドに加えてクライアントの証明書も含まれていますか?あるいは、証明書がトランザクションに含まれていますが、ドキュメントは 'PROPOSE'メッセージフォーマットの一部としてそれを言及していませんか? –
byron1st
なぜ署名が暗号化されるのですか?目的はすべての所有者の証拠を提供することです、従ってそれは暗号化されませんが誰でも(それはトランザクションを持っています、したがってアイデンティティを持っています、したがって公開鍵を持っています) 私は答えを更新しました – yacovm