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数组,但是其实是一个字符串,

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐