快速了解链码是什么?

链码是什么?链码也就是所谓的智能合约。智能合约是由事件驱动的,具有状态的存储和运行在区块链上的程序。它通过预置了一些条件和规则,在一定的事件下触发智能合约的执行。智能合约最终的目标是在区块上生成账本数据,也就是说所有对账本的操作都是由智能合约来完成的。

我们可以认为它是生成交易的唯一来源。我们的账本是由不同的区块组成,而每一个区块又包含了一条到多条的交易。那么就是说通过智能合约来完成每一条交易,最终通过区块链的底层来完成每个账本的落盘。接下来我们来看一下链码的基本概念和交易的基本流程。这里我们列了一些基本的概念,Channel就是通道或者子链。在一个Channel中,可以加入不同组织的不同peer。而同一个peer是可以加入到不同的Channel中,链码的操作是基于Channel执行的,同一个Channel上的peer节点同步执行我们的链码。

在Fabric节点中又分为了Endorser、Orderer和Committer三种类型。Endorser负责分离计算任务,减轻共识节点的负担,从而增加整个系统的吞吐量。Endorser节点被我们称为背书节点。Orderer节点是对我们的链码执行结果进行共识。我们支持solo、kafka、拜占庭等不同的共识策略。Committer节点是最终将链码的执行结果写入账本,并将它同步到所有的peer节点。peer节点的身份是可以同时为Endorser或者是Committer的。下图介绍了一个交易的基本流程,我们的APP集成Fabric SDK通过CA来获取认证证书。

 

当交易发生时,它通过SDK向我们的peer节点提交一个Proposal,也就是交易预案。peer节点进行一些简单的检查,比如说签名以及ACL,最后他模拟执行交易,也就是执行我们的链码,并将结果进行签名,最后将结果返回给SDK。当SDK收集到所有的背书节点的返回值的时候,会把这些读写及打包发给我们的Orderer节点进行排序。Orderer节点收到排序请求后,会对整个交易进行排序,并构造区块,构造好的区块,Orderer加点会下发给我们的Committer节点,Committer节点进行交易结构的完整性验证,签名以及重复性的验证,同时会验证我们的背书策略是否收集到了全部的背书策略以及是否合格,同时会检查交易结果中数据的版本是否与账本中保持一致,最后将合法的交易更新到账本中。

最终的账本数据会通过peer之间的P2P网络进行同步。我们华为云区块链服务提供了可视化的链码查看、安装以及实例化的界面,稍后我们的示例中会进行演示,同时我们也提供了多种的调用模式,我们支持基本的APP封装SDK来调用远端的peer节点上的链码,也支持通过APP直接调用我们Fabric RESTFul API。这样的话用户就不用去集成我们的SDK。最后我们还提供了FabricJDBC,用户可以用非常简单的方式来访问链码,而不用去写非常复杂的接口。

关于链码(智能合约)的介绍就到这里,想要更详细的了解,请访问华为云学院( edu.huaweicloud.com/courses/ ),课程获取密码,搜索:区块链,可以收获更多区块链信息!


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556176/viewspace-2564671/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31556176/viewspace-2564671/

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值