智能合约

2018-07-23  本文已影响0人  e98d76af67a1

智能合约定义

调研区块链智能合约架构关心的问题

  1. 区块链节点分为哪几类?在哪种节点上运行智能合约?
  2. 智能合约的隔离方式是什么?VM、Docker或其他?
  3. 智能合约支持的语言是什么?
  4. 智能合约的安装方式是什么?可执行文件还是源代码?是否入链?
  5. 智能合约何时执行?是否在交易入链前(验证)和入链后(执行)都需要执行?
  6. 智能合约如何与区块链节点交互获取数据、写入数据?

Fabric v1.0

  1. 区块链节点分为以下几类:
  1. 隔离方式:docker
  2. 支持语言:go, nodejs, java...
  3. 安装:各个组织管理员预先安装合约源代码至本组织的 endorser,合约内容不入链,交易使用合约的 hash 保证各 endorser 处合约内容的一致性。
  4. 执行时间:交易验证/背书时执行,入链后直接执行 read/write set,无需再次执行智能合约。
  5. 交互方式:

Fabric v0.6

  1. 节点分类:
  1. 隔离方式: docker
  2. 支持语言: go
  3. 安装:code package 以交易形式入链,所有 VP 节点在交易共识后安装智能合约。
  4. 执行时间:
  1. 交互方式:与 v1.0 一致。

Ethereum

  1. 节点分类:矿工节点、验证节点...矿工节点运行PoW共识并运行所有智能合约。
  2. 隔离方式:EVM,基于堆栈的虚拟机
  3. 支持语言:Solidity...
  4. 安装:编译后的智能合约(字节码)以交易形式入链,to address = null
  5. 执行时间:运行共识算法打包后运行智能合约逐一执行交易
  6. 交互方式:写入 cache -> 写入数据库
  7. 参考

Burrow

“You don’t need money to play, when you have permission to play”

上一篇下一篇

猜你喜欢

热点阅读