私は、同じキー名(保存している人物の名前)を複数回使用し、すべてのエントリを欲しいスマートコントラクトを作成しようとしていましたその名前を照会するときに出力されるキー名。
超人預金者では可能ですか?はいの場合、どのようにクエリ関数を書くでしょうか
同じ結果を得るために別の方法をお勧めしますか?
私はハイパージーガーに慣れておらず、これに類似したチェインコードの例を見ていないと思っています。Hyperledgerで同じキー名で複数のエントリを作成する
答えて
あなたがする必要があるのは、値をJSON形式にエンコードし、指定されたキーに対してマーシャリングして格納することです。たとえば、スライスで構造体を定義し、毎回新しい値でスライスを更新/追加し、配列を作成し、元帳に保存します。
元帳からバイト配列を読み取るたびに、構造体に戻され、必要な情報で更新され、同じキーで元に戻されます。
あなたはChaincodeStubInterface
// Chaincode interface must be implemented by all chaincodes. The fabric runs
// the transactions by calling these functions as specified.
type ChaincodeStubInterface interface {
// Other methods omitted
// GetHistoryForKey returns a history of key values across time.
// For each historic key update, the historic value and associated
// transaction id and timestamp are returned. The timestamp is the
// timestamp provided by the client in the proposal header.
// GetHistoryForKey requires peer configuration
// core.ledger.history.enableHistoryDatabase to be true.
// The query is NOT re-executed during validation phase, phantom reads are
// not detected. That is, other committed transactions may have updated
// the key concurrently, impacting the result set, and this would not be
// detected at validation/commit time. Applications susceptible to this
// should therefore not use GetHistoryForKey as part of transactions that
// update ledger, and should limit use to read-only chaincode operations.
GetHistoryForKey(key string) (HistoryQueryIteratorInterface, error)
}
ありがとう!私はまた、変更された属性の全履歴を私の場合に有用な情報である元帳原因に含めることを望んでいました(たとえば電話番号を取る)。それを実装する方法は? – Snorlaxative
私は私の答えを更新しました、GetHistoryForKey APIを使用することを検討してください。 –
ありがとうございました!それは完全に問題を解決する! – Snorlaxative
- 1. 同じ主キーで複数のDynamoDBエントリを作成するにはどうすればよいですか?
- 2. 同じキーでJsonを作成する
- 3. JComboBox同じエントリ複数回
- 4. 同じキー不変マップエラーの複数のエントリ
- 5. WCF - 同じ名前のリクエストで複数の要素を作成する方法
- 6. Railsで同じモデルの複数のオブジェクトを作成する
- 7. 同じフォームで複数のページを作成するには?
- 8. 複数のaspxファイルで同じメソッドを作成する
- 9. 同時に同じブラウザに複数のログインを作成する
- 10. Hyperledger Fabric V1.0での日付範囲の合成キーの作成
- 11. 同じキーでデタッチしたエントリを添付する
- 12. 複数のビューをSQLで同じバッチで作成
- 13. 同じキーに複数の値をperlハッシュで追加する
- 14. Swift - Firebaseが同じキーで複数の値を加算する
- 15. 複数のコンピュータで同じキーを使用する
- 16. パンダ:同じキーで複数のデータフレームを結合する
- 17. 複数の配列を同じキーで結合する
- 18. Djangoは複数のテーブルで同じクエリを作成します
- 19. 同じユーザー名を使用して複数のアップロードを作成する
- 20. 同じキーでfeildの配列を作成するスパーク
- 21. 同じページに複数のレビュックスフォームを作成して同じボタンで送信
- 22. PHPで同じフォーム名で複数の行を更新する
- 23. PHPで同じユーザ名で複数のログインを制御する
- 24. Hyperledgerの複合キー機能
- 25. 複数のquery.whereEqualToを同じキーで複数回使用する方法
- 26. ラリーでは同じ名前の重複テストケースを作成できます
- 27. SwiftyJSON同じキーの複数のアクセス
- 28. 同じテーブルの複数の外部キー
- 29. 同じ名前の関数のラッパーを作成する
- 30. 同じマスタテーブルに複数のリレーションシップを作成できません
からのいずれかの方法を使用することができます変更の履歴を取得するには(ない場合は)私が考える一つの解決策は、引数として名前に取ると、それにいくつかのサフィックスを添付することですName.mobile_no.xのようにxは数字が追加された名前で表示されなくなるまで、ブロックチェーン内の名前を照会して同様のエントリを持つ最後の数字よりも1だけ多くなります。どんな良いアイデアですか? – Snorlaxative