快速了解链码是什么?

举报
Mancccy 发表于 2019/01/24 15:31:06 2019/01/24
【摘要】 链码是什么?链码也就是所谓的智能合约。智能合约是由事件驱动的,具有状态的存储和运行在区块链上的程序。它通过预置了一些条件和规则,在一定的事件下触发智能合约的执行。智能合约最终的目标是在区块上生成账本数据,也就是说所有对账本的操作都是由智能合约来完成的。 我们可以认为它是生成交易的唯一来源。我们的账本是由不同的区块组成,而每一个区块又包含了一条到多条的交易。那么就是说通过智能合约来完成每一条交...

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

1.png

我们可以认为它是生成交易的唯一来源。我们的账本是由不同的区块组成,而每一个区块又包含了一条到多条的交易。那么就是说通过智能合约来完成每一条交易,最终通过区块链的底层来完成每个账本的落盘。接下来我们来看一下链码的基本概念和交易的基本流程。这里我们列了一些基本的概念,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来获取认证证书。

2.png

当交易发生时,它通过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/ ),课程获取密码,搜索:区块链,可以收获更多区块链信息!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。