区块链之旅以太坊超级账本公链联盟链
Posted 小生凡一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链之旅以太坊超级账本公链联盟链相关的知识,希望对你有一定的参考价值。
以太坊与超级账本
以太坊与超级账本的对比
以太坊 | 超级账本 | |
---|---|---|
设计原理 | 紧耦合 | 松耦合(二次开发) |
执行环境 | EVM | Docker |
平台语言 | Go | Go |
部署难度 | 相对简单 | 相对复杂 |
拓展性 | 差(设计缺陷) | 好 |
数据存储 | 链下完整,链上hash | 链下完整,链上hash |
代币 | 借助币奖励矿工和防止攻击 | 不需要 |
Spv | 支持 | 不需要,需要自行实现,同区块看本身有关 |
企业级应用 | 相对较好 | 不太好 |
出块时间 | 不可控,会越来越长,和区块高度相关 | 通过实践和交易控制 |
分叉 | 硬分叉,需要修复大量bug | 暂无 |
安全漏洞 | Solidity语言设计漏洞DAO | 暂无 |
币机制模型 | 账户模型+分片机制 | 暂无 |
开源协议 | LGPL3.0 | Apache2.0 |
合约调用 | 可以 | 可以 |
合约语言 | Solidity | Go |
合约终止方式 | 计步Gas | 计时Docker环境 |
合约对比
以太坊 | 超级账本 | |
---|---|---|
合约相互调用 | 可以,需要将被调用的源代码置于调用者合约的顶部,编译器会将最后一个合约作为部署者的合约,调用时给出被调用合约的地址。 | 可以,在合约中调用其他合约算作一个交易,最终以调用这合约交易执行状态作为整个执行的状态并将调用者合约的参数记录在链上。 |
库函数 | 少量库函数 | Go语言库 |
合约更新 | 不能更新 | 可更新升级 |
外部系统交互 | EVM无法与外部系统交互 | 可以,但需要保证交互的统一性 |
合约部署 | 当做交易发布(编译成字符串发布,合约大小有限制),需要矿工挖矿才能部署(所有节点) | 直接在所有节点部署 |
合约交易执行 | 所有节点都需要执行验证 | 所有节点都需要执行验证 |
合约复杂度 | 不能复杂,合约编译成字符串发布,需全网同步 | 可更新复杂 |
合约部署过程
以太坊
- 搭建以太坊私链环境,生成私链的创世区块;
- 启动私链,生成一个初始的以太币账户,开始挖矿(挖矿需要一个账户接受以太币)
- 编写智能合约,solidity和mix语言
- 编译智能合约,单个文件的简单合约可以在线编译。多个文件需要借助solc(编译成字符串,全网同步)
- 部署,合约部署当作一笔交易记录再链上,需要支付一定以太币,并且运行需要gas
超级账本
- 搭建hyperledger环境
- 更改配置文件,启动大于四个节点
- 编写合约,编译成二进制文件
- 把二进制文件放在每个节点中
- 在各个节点部署智能合约
- 初始化智能合约
FISCO BCOS
- 搭建fisco bcos环境
- 更改配置文件并启动群组
- 编写智能合约,编译成预编译合约
- 根据合约地址获取到预编译合约的对象后执行预编译合约
- 每个预编译合约对象都会实现call接口,预编译合约的具体逻辑在该接口中实现
- call根据交易的abi编码,获取Function Selector和参数,然后执行对应的逻辑
主流区块链架构对比
特性 | 以太坊 | Hyperledger Fabric | FISCO BCOS |
---|---|---|---|
平台描述 | 通用区块链平台 | 模块化区块链平台 | 安全可控企业级金融联盟链底层平台 |
管理方 | 以太坊开发者 | Linux基金会 | 金链盟开源工作组 |
运行模式 | 无授权,可公开,可私有 | 有授权,私有 | 有授权,私有 |
共识 | POW/POS,账本层面 | 运行多种共识机制,交易层面 | PBFT/Raft,账本层面 |
智能合约 | 只能和与代码即Solidity | 智能合约代码GO/JAVA | 智能合约代码即Solidity |
货币 | 以太币,由智能合约产生代笔 | 没有 | 没有 |
公链与联盟链
公链
定义
-
任何人都可以读取的,任何人都能发送交易且交易能获得有效确认的,任何人都能参与其中共识过程的区块链。
-
通常被认为是”完全去中心化“的,因为没有任何个人或者机构可以控制或篡改其中数据的读写。
-
公链一般会通过代币机制来鼓励参与者竞争记账来确保数据的安全性。比特币、以太坊都是典型的公有链。
特性
发展现状
困境
联盟链
定义
- 有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构机型读写和发送交易,并且共同来记录交易数据。
- 对于共识或验证节点的配置和网络环境有一定的要求
- 各个节点通常由域指对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成力以相关的联盟共同维护区块链的监控运转。
特性
发展现状
应用场景
以上是关于区块链之旅以太坊超级账本公链联盟链的主要内容,如果未能解决你的问题,请参考以下文章