前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >锯齿湖-最具商用价值的开源区块链项目:超级账本(4)

锯齿湖-最具商用价值的开源区块链项目:超级账本(4)

作者头像
Henry Zhang
发布2019-04-12 17:00:48
7510
发布2019-04-12 17:00:48
举报
文章被收录于专栏:亨利笔记亨利笔记

美国爱达荷州锯齿湖 (图片来自The OutBound)

前面几期分别介绍了超级账本项目结构Fabric子项目架构Fabric部署和发布(上述链接均可点击)。本期介绍超级账本另一个子项目Sawtooth Lake(锯齿湖)。更多区块链相关的技术细节,请参考邹均博士等专家和笔者合著的新书《区块链技术指南》。(参见文末) 上期赠书活动由贵州读者"白袍小将"胜出,新书将于近期寄出。

Sawtooth Lake(锯齿湖)是由超级账本联盟成员英特尔(Intel)公司发起的分布式账本平台试验项目,最初发布的时候称为intelledger,在进入超级账本项目后,更名为“锯齿湖”,该名称来源于美国爱达荷州锯齿山上著名的高山湖。

Swatooth Lake是第二个进入超级账本孵化阶段的提案。在超级账本中同时孵化功能相近、设计和实现不同的多个项目,目的是促进更深入地探索各类问题需求和各项目的适配场景。因此,在这些项目的后期,不排除有互相合并或集成的可能。

项目概述

锯齿湖提供了一个构建、部署和运行分布式账本的高度模块化平台,功能上有其独特的地方。譬如,锯齿湖分离了账本和交易,使两者成为松耦合的关系;提出了交易家族的概念,能够扩展到不同的商业领域;适合权限或无权限区块链的可插拔共识算法。

在锯齿湖项目中的分布式账本包括三个组件:

  • 代表账本状态的数据模型;
  • 改变账本状态的交易语言;
  • 在参与者之间建立交易结果共识的协议。

其中,数据模型和交易语言的实现称为“交易家族”(Transaction Family)。尽管用户根据自身账本的需要,可在锯齿湖的基础上开发出定制化的交易家族,锯齿湖项目还是提供了适合构建数字资产市场的三种交易家族,足以用来创建、测试和部署这类市场应用。这三种可直接使用的交易家族分别为:注册账本服务(EndPointRegistry)、测试部署账本(IntegerKey)和数字资产买卖交易系统(MarketPlace)。前两种交易家族内置在锯齿湖的代码内核中,MarketPlace交易家族则是作为应用示例,包含了几乎所有数字资产交易所涉及的元素,如账号、资产、债务、出价等等。用户根据已有的交易家族,能够开发更多的特定领域的交易家族。

项目架构

锯齿湖的设计中包含3个主要的架构层次:账本层、日志层和通信层,如下图所示。

(1)账本层

账本层(Ledgers)从概念上讲是交易类型的数据模型层次。因为其实现是基本通过延展日志层和通信层的功能来完成的。例如系统内置的EndpointRegistry和IntergerKey Registry两个交易家族,以及作为范例的MarketPlace交易家族,都是通过扩展底层功能而来的。

(2)日志层

日志(Journal)层是锯齿湖实现区块链核心功能的层次,实现了共识算法、交易(transaction)、区块(block)、全局存储管理器和数据存储(块存储和键值存储)。其中的区块和交易概念与其他区块链项目比较类似。

交易是指可以更改账本状态的一组操作,操作通常要依照数据模型和表示形式的定义。例如,在IntegerKey 的交易家族中,数据模型是键值对(key/value pair)存储,交易的操作可用设置(set)、增加(inc)和减少(dec)来表达。

区块则是一组交易的集合,是写入账本的单位。在锯齿湖日志的每个区块中,允许有不同类型的交易混合在同一个区块中。

日志层在所有节点之间复制区块数据,采用共识算法确定每个区块的顺序、块内交易顺序以及交易内容。

(3)通信层

通信层主要通过聊天(gossip)协议实现节点之间的通信,主要包括了协议层连接管理和基本的流控制。节点之间的互相发送消息来交换信息,信息通常要封装在不同类型的消息中来传输,如交易消息、交易区块消息、连接消息等。和许多分布式系统一样,在整个架构中,需要在节点之间通过聊天协议发送大量的消息,为此,通信层实现了TokenBucket的机制,以控制数据包的传输速度。

(4)共识算法

锯齿湖项目使用的共识算法有两种:时间消逝证明(Proof of Elapsed Time,PoET)和法定人数投票(Quorum Voting)。

PoET和比特币的工作证明(Proof of Work,PoW)一样都属于彩票算法,即按照一定规则随机地选取出“赢家”节点,由该节点作为区块的主记账者,其他节点则负责验证和确认该节点的结果。

PoET比PoW明显的优势是不需要消耗大量的算力和能耗,但是需要CPU硬件支持SGX (Software Guard Extensions)特性。Intel处理器在Skylake微架构上新增了一组CPU指令集,可以产生一个称为“飞地”(enclave)的代码隔离运行环境,甚至对操作系统内核也可隔离。在这个可信的运行环境中,可以生成公平且可验证的随机等待计时器,在计时器等待结束之后,能够对等待的时间进行签名认证。各个节点间根据退出计时器等待的时间,就可确定那个结点作为主记账人。目前在锯齿湖里面的实现的是飞地模拟环境,并不是一个真正的可信运行环境,因此,暂时不适合在生产环境中使用PoET共识算法。

“法定人数投票算法”是从Ripple和Stellar的共识算法修改而来的,主要用于需要满足交易即刻最终性(finality)的应用。

小结

超级账本是目前最大的区块链开源项目,集结了众多科技和金融界的巨头,目标是建立面向商业应用的分布式账本基础技术。本连载介绍了超级账本项目成立的产生背景和管理方式,并详细介绍了两个孵化期的项目Fabric和Sawtooth Lake的架构原理。Fabric和Sawtooth Lake都提供了分布式账本的实现,两者都采用了可扩展和可插拔的模块化设计,以适应不同场景的需求。Fabric侧重于权限控制、私密性保护和交易性能提高,Sawtooth Lake则注重提供完整的交易家族和节能的共识算法。

由于超级账本成立时间不长,孵化期的项目发展过程中可能会有较大的变化,同时新的提案和项目也会不断增加。因此,本连载主要描述超级账本项目设计的总体原理和技术要点,旨在起到抛砖引玉的作用。(本文节选自《区块链技术指南》)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档