fabric 智能合约 Chaincode

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默行客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值