我需要在 super 账本中实现复合密钥,这样我才能根据放入账本中的属性获得唯一的密钥。函数CreateCompositeKey(objectType string, attributes []string)(string,error)接受objectType和attribute字符串。我在网上找不到任何示例,如何将要传递给组合键的相关属性以及以哪种方式给出输出?
因此,应该使用复合密钥的方式是先创建密钥,然后使用PutState(key string, value []byte) error将其推送到区块链,其中PutState中的嘿是CreateCompositeKey的输出?如果不是,那么如何使用复合键?
同样在

GetStateByPartialCompositeKey(objectType string, keys []string) (StateQueryIteratorInterface, error)

我们要如何通过传递给函数进行查询的键?输出数据类型为“StateQueryIteratorInterface”和“HistoryQueryIteratorInterface”是什么?
我对编程非常陌生,并且没有数据库的先验知识,因此对真正的基础知识感到困惑。我真的很感谢您的帮助!

最佳答案

在Hyperledger Fabric中,有两个示例链码显示了如何使用复合键:

  • Marbles
  • Map

  • 基本上就像您说的那样:
    key, err := stub.CreateCompositeKey(index, []string{key1, key2, key3})
    
    // Skiped
    
    stub.PutState(key, value)
    

    关于composite-primary-key - Hyperledger中的复合键功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44918611/

    10-12 23:43