chaincode是一个程序,它是使用Go语言编写的,最终在Java等其他编程语言中实现了指定的接口。
chaincode运行在一个被背书peer进程独立出来的安全的Docker容器中。
chaincode通过应用程序提交的事务初始化和管理账本状态。
Fabric Chaincode(智能合约)_Sam梧桐的博客-CSDN博客_chaincode
fabric的合约结构非常简单,其中四个最重要的函数是:
- PutState:创建新的资产(asset),或更新已有资产。
- GetState:检索资产。
- GetHistoryForKey:检索更改历史。
- DelState:“删除”资产。
特别解释一下DelState函数。HLF使用一种状态数据库存储键及对应的值。这不同于组成区块链的区块序列方式。可使用DelState函数从状态数据库中删除一个键及其关联的值。但是,该函数并没有更改区块链中的区块。
修改键和值的操作将作为交易记录在区块链,同样的,键和值的删除也会作为交易存储在区块链中。
一个键在被删除后,键的操作历史是可以检索的。HLF提供了GetHistoryForKey()函数检索历史,函数返回值中包括IsDeleted标识,标记一个键值是否已经被删除。一个键可以多次创建、删除然后再创建。所有操作历史都可使用GetHistoryForKey()检索。
2. 获得当前用户GetCreator() ([]byte, error) 这个方法可以获得调用这个ChainCode的客户端的用户的证书,这里虽然返回的是byte数组,但是其实是一个字符串,

本文介绍了Hyperledger Fabric的Chaincode,它是用Go语言编写的程序,用于管理区块链状态。Chaincode在安全的Docker容器中运行,并通过PutState、GetState、GetHistoryForKey和DelState等关键函数进行资产管理和历史记录检索。DelState函数删除键值但不会改变区块链历史,GetHistoryForKey可以检索已删除键的历史。此外,还提到了获取调用Chaincode的用户证书的方法。

4109

被折叠的 条评论
为什么被折叠?



