我的理解是chaincodes是智能合约并实现业务逻辑和规则。它还根据业务逻辑创建和操作共享分类账中的实体/资产。但是在结构示例中,像readMarble,getAllMarblesforOwner这样的辅助方法也在chaincode中实现。所以我的问题是,保持chaincodes只实现业务逻辑它有任何其他建议的方式来与共享分类帐和编写帮助器方法进行交互?为chaincode数据编写helper API的建议方法是什么?
1
A
回答
1
Chaincode是一个与它必须实现Chaincode接口台账进行交互的唯一接口:
type mychaincode struct {
}
func (cc *mychaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
panic("not implemented")
}
func (cc *mychaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
panic("not implemented")
}
其中shim.ChaincodeStubInterface
自曝设置的API与台账互动,例如更改状态,读取状态,好多其它的。当然你也可以让事情变得更加清晰和漂亮定义辅助功能:
type mychaincode struct {
}
func (cc *mychaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
panic("not implemented")
}
func (cc *mychaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
function, args := stub.GetFunctionAndParameters()
if args['0'] == "aux" {
// Call aux function
cc.auxFunction(args)
}
}
func (cc *mychaincode) auxFunction(someparameters interface{}) {
// Do some very important logic here
}
0
有关于对访问数据的范围规则:任何一块由chaincode创建的数据(键值对)的可能只是该链代码可访问。所以chaincode决定谁可以读写数据并提供适当的访问控制。
要与分类帐结构进行交互,例如遍历块和事务处理,系统链代码称为qscc(查询系统链代码),该代码提供查询通道,块和事务信息的功能。从信息建模的角度来看,您可以使用多个链接代码,每个链接代码可以负责管理某些部分,有些可以提供聚合。例如,为了模拟汽车引擎(声明:我没有汽车机械背景),您可能需要EngineChaincode,CylinderChaincode,SparkplugChaincode,OilSumpChaincode等。EngineChaincode会调用其他链代码来聚合查询信息。
相关问题
- 1. 在Windows XP上从ruby脚本编写日志的建议方法是什么?
- 2. 为TEqualityComparer.Construct编写散列函数的规范方法是什么?
- 3. 什么是学习如何编写API的好方法?
- 4. 在will_paginate中使用helper方法的更好方法是什么?
- 5. 存储大量内容的建议方法是什么?
- 6. 编写访问数据库的方法的最佳方式是什么?
- 7. 建立自定义nvd3版本的建议方法是什么?
- 8. 什么是为数据框创建模式的有效方法?
- 9. 为常量编写PHPDocs的正确方法是什么?
- 10. 在JavaMoney(JSR 354)中创建ExchangeRateProvider的建议方法是什么?
- 11. 什么是适合这种方法编写JunitTestCases的方法
- 12. 什么是遍历Trie检查拼写建议的好算法?
- 13. 重写_path轨helper方法
- 14. 建立这样的项目的建议方式是什么?
- 15. 对Console.Write加前缀的建议方法是什么?
- 16. 使用古代VCL组件的建议方法是什么?
- 17. 在python中编写syslog函数的正确方法是什么?
- 18. 什么是编写Sass函数的正确方法?
- 19. 为动态大小的ImageButton创建图像的建议方法是什么?
- 20. 编写api需要一些建议
- 21. Hyperledger Fabric中的chaincode容器是什么?
- 22. 从集合中删除项目的建议方法是什么?
- 23. 什么是方法最大线的最新建议?
- 24. 什么是快速/可扩展的方式来编写RESTful API?
- 25. 以怪异的方式编写的方法,我的建议是否正确?
- 26. 在Azure VM中设置Sitecore 8.1的建议方法是什么?
- 27. 安装多个Python解释器的建议方法是什么?
- 28. 什么是循环API的好方法?
- 29. 在HTableDescriptor中更改表名的建议方法是什么?
- 30. 什么是编写数据访问对象(DAO)的最佳方法?