8.3 Sawtooth Lake项目

Sawtooth Lake(锯齿湖)是由超级账本联盟成员英特尔(Intel)公司发起的分布式账本平台试验项目,最初发布的时候称为intelledger,在进入超级 账本项目后,更名为“锯齿湖”,该名称来源于美国爱达荷州锯齿山上著名的高山湖。Swatooth Lake是第2个进入超级账本孵化状态的提案。在超级账本中同时孵化功能相近、设计和实现不同的多个项目,目的是促进更深入地探索各类问题需求和各项目的 适配场景。因此,在这些项目的后期,不排除有互相合并或集成的可能。

8.3.1 项目概述

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

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

·代表账本状态的数据模型;

·改变账本状态的交易语言;

·在参与者之间建立交易结果共识的协议。

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

8.3.2 项目架构

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

1.账本层

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

2.日志层

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

image.png

图8-5 锯齿湖项目架构

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

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

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

3.通信层

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

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)的应用。

8.4 本章小结

超级账本是目前最大的区块链开源项目,集结了众多科技和金融界的巨头,目标是建立面向商业应用的分布式账本基础技术。 本章介绍了超级账本项目的产生背景和管理方式,并详细介绍了两个孵化期的项目Fabric和Sawtooth Lake的架构原理。Fabric和Sawtooth Lake都提供了分布式账本的实现,两者都采用了可扩展和可插拔的模块化设计,以适应不同场景的需求。Fabric侧重于权限控制、私密性保护和交易性能 提高,Sawtooth Lake则注重于提供完整的交易家族和节能的共识算法。超级账本成立时间较短,孵化期的项目发展过程中可能会有较大的变化,同时新的提案和项目也会不断增 加。本章主要描述超级账本项目设计的总体原理和技术要点,旨在起到抛砖引玉的作用。

参考资料

[1]超级账本项目:https://www.hyperledger.org/ .

[2]超级账本孵化项目Fabric:https://github.com/hyperledger/fabric .

[3]超级账本孵化项目Sawtooth Lake:https://github.com/hyperledger/sawtooth-core .

[4]PBFT共识算法,Miguel Castro and Barbara Liskov:http://dl.acm.org/citation.cfm?id=296824 .

[5]Ripple共识算法:https://ripple.com/files/ripple_consensus_whitepaper.pdf .


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1007

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值