我正在尝试了解应使用超级账本状态的方式。 我想开发一个简单的区块链网络进行投票。 据我了解,区块链在应用程序中扮演着“数据库”的角色。 我以前的所有经验告诉我,用几个集合(或表)构建数据库:
我在https://hyperledger-fabric.readthedocs.io
看了很多文章
并且它们总是显示出有很多商业文件或汽车可以购买和发行的情况。
我已经看到允许“私有集合”,但是我不需要数据是私有的。
我还看到了一些渠道(但渠道又一次使不同的用户与不同的分类帐进行交互)
示例repo中的代码:
class CommercialPaperContext extends Context {
constructor() {
super();
// All papers are held in a list of papers
this.paperList = new PaperList(this);
}
}
...
class CommercialPaperContract extends Contract {
createContext() {
return new CommercialPaperContext();
}
...
async buy(ctx, issuer, paperNumber, currentOwner, newOwner, price, purchaseDateTime)
请参阅-存在带有buy
参数的issuer
方法,但是没有issuer
集合,也没有owners
集合。应用程序中的任何地方也没有“货币余额”状态。
我想看一下处理不同类型数据(汽车/客户/商店)的应用程序。
答案 0 :(得分:1)
在Hyperledger中,结构数据存储为键值对。
每个交易的键必须是唯一的,并保持该键的状态。 您可以使用丰富的查询从状态中获取数据。
您可以在链码中定义具有其属性(集合)的任何资产(例如汽车,书籍等),并将其也存储(主要以json格式)。 前提是密钥是唯一的。 您可以检查fabcar或marbles02链码是否相同,可以在fabric-samples / chaincode中找到它。 如果我错过了任何内容,请回复评论。