智能合约重构社会契约Fabric
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能合约重构社会契约Fabric相关的知识,希望对你有一定的参考价值。
1. Docker
Docker 是一个开源的应用容器引擎, 开发者可以将他们的应用及依赖包打包到一个可移植的镜像中,也可以实现虚拟化。
- 完全使用沙箱机制,相互之间不会有任何接口。
- 在超级账本中,智能合约的代码在使用任意的语言编写之后,将会被编译器打包进Docker镜像中,以容器作为执行环境。
2. 链码
2.1 所有的链码都继承两个接口,Init和Invoke。
Init接口
用于初始化合约,在整个链码的生命周期里该接口仅仅执行一次。
Invoke接口
编写业务逻辑的唯一人↵虽然只有一个入口,但是可以根据参数传递的不同自由区分不同业务逻辑。
2.2合约接口能够获取的数据主要分为三类:
- 输人参数获取
这个直接就是调用时候的输入。 - 与状态数据库和历史数据库交互
在合约层,可以将区块链底层当作一个键值对数据库,合约就是对数据库中值的增删改查。 - 与其他合约的交互
在合约执行的过程中,可以与其他合约交换数据。有了这种形式的数据获取方式,其实就可以将联系不紧密的业务逻辑拆分为多个合约,只有必要的时候跨合约调用。
3.Raft协议
Raft是一个管理复制日志的共识算法。
step1. 客户端向主节点发送请求,主节点收到后将请求追加到日志中,并将该请求发送给所有的跟随节点,跟随节点也会将请求追加到自身的日志中并返回一个确认消息。
step2. 当主节点接收到大部分跟随节点的确认消息,就会将命令日志提交给状态管理机。
step3. 一旦主节点提交了日志,跟随节点也会将日志提交给自身管理的状态机。
step4. 最后主节点向客户端返回响应结果。
Raft并不是拜占庭共识,它仅仅需要容忍2n+1个节点中不超过n个的非拜占庭故障(Fabric的联盟链数字证书等安全机制确保恶意节点的可能性不高)
以上是关于智能合约重构社会契约Fabric的主要内容,如果未能解决你的问题,请参考以下文章