2017-12-15 6 views
0

これは、機能を実装するのが困難または不可能な場合、システムチェーンコードを使用してこれらの機能を実装することを示しています。システムチェーンコードとユーザーチェーンコード

しかし、ユーザーチェーンコードは、チューリング完全言語である "Go"を使用します。それで、それは私には思えますが、すべてがその上に実装されています(コストが非常に高くないが、これはハイパージーガー文書のどこにも定義されていません)。

質問 1:ユーザーチェーンコードに実装するのは難しいまたは不可能な操作は何ですか?

質問 2:システムチェーンコードはいつ使用しますか?

答えて

1

質問1:ユーザチェーンコードに を実装するのは難しいまたは不可能な操作は何ですか?

等の通信層、そのメンバシップ・サービス・プロバイダ(MSP)サービスのようなネイティブピアサービスへのアクセスを必要とする操作、 しかし、また、1の一方向関数のプリイメージを計算するなどの操作、または操作指定されたコードが特定の入力で停止するかどうかを決定します。

質問2:システムチェーンコードはいつ使用しますか?例2種類で :

  1. あなたのchaincodeがピア内で実行されるようにする、すなわちので、性能の(ユーザーchaincodeがgRPCラウンドトリップの多くを行います)
  2. あなたがあなたのchaincodeをしたいですピアがコードのインポートとコード参照を介してのみ提供できるすべてのタイプのサービスにアクセスできるようにする必要があり、シムAPIは通信レイヤー、MSPレイヤーなどのそれらを提供できません。
+0

ご協力いただきありがとうございます。しかし、それらは少し高いレベルです。特に、いくつかの暗号を実装したいと思っている人のために。 Hyperledger Fabric(自分自身を含む)のプロトコル。したがって、複雑な暗号が与えられています。どのように私はシステムまたはユーザーのチェーンコードで実装する必要があるかどうかを決定することができますか?さらに、ソースを提供して読むことができれば素晴らしいでしょう(私はすでに先週リリースされた最新のFabricドキュメントを読んでいます)。再度、感謝します! –

+0

暗号プロトコルがピアの秘密鍵にアクセスする必要がある場合は、システムチェーンコードでなければなりません。 それ以外の場合は、ユーザーのチェーンコードで行うことができます。 実装したいクレジットについて少し詳しく説明できますか? – yacovm

+0

ご意見ありがとうございます。プロトコルは高いレベルで、計算上非常に安価ではありません。それは、暗号コミットメント、ゼロ知識、およびRSA署名の変形を使用します。セットアップ段階では、2つのクライアント秘密鍵を使用します。また、ノードは、スマートコントラクトで提供されるいくつかのデータを処理し、その作業の正確性を証明したいかもしれません(ノードにはいくつかの秘密があります)。私は、演算の計算可能性と実行可能性の面で、システムチェーンコード上で可能な、またはより効率的なことをどのように判断できるのだろうかと思います。ありがとう! –

関連する問題