Sawtooth Lake学习笔记(一)
一、关于分布式账本
分布式账本是区块链的另一种术语。它把交易的数据库(账本)分布存放在所有的网络参与者(也成为成员或节点)。在该体系里没有中心监管者也没有中心化的数据存储。实质上,它是
分布式的:区块链数据库在各个潜在的未信任的参与者之间共享。并且在网络的所有节点上是可论证的一致。所有参与者拥有同样的信息。
不可篡改的:区块链数据库是一个无法修改的所有交易的历史记录。它应用块哈希值,使得对历史记录修改的尝试易于被发现和避免。
安全的:所有被交易执行的变动都经过已知身份签名。
以上这些特性合在一起,连同协商一致的共识机制,为区块链网络中的所有参与者提供了对抗信任。
二、锯齿湖的特点
(一)应用层和核心系统的分离
锯齿湖通过提供清晰的应用层和核心系统层分离使得易于开发和部署应用变得。锯齿湖提供抽象智能合约使得应用开发人员可以选择自己的语言来编写合约逻辑。
一个应用可以是一个原生的业务逻辑或者智能合约虚拟机。实际上,以上两种类型的应用可以在同一个区块链中并存。锯齿湖允许在交易执行层采用以上并存设计,它还支持多种类型的应用存在于同一个区块链的实例网络中。
每一个应用依据独有的需求定义客户的交易流程。锯齿湖提供多个交易家族示例来作为初级功能(比如维护链的设置、存储链上许可)和特定应用(如性能分析和存储区块信息)的模型。
交易处理SDK适应多种语言(如Python, JavaScript, Go, C++, Java, and Rust)而不是再创造一门新的合约语言。REST API通过采用标准化的HTTP/JSON验证通讯来简化客户端开发。
(二)基于锯齿湖许可特色的私有链
锯齿湖旨在解决许可链(私有链)的挑战。 一群锯齿湖的节点可以方便地基于独立的许可来部署。而且也没有中心化的服务存在泄露交易模式或机密信息的可能。区块链存储了具体说明许可的设置(信息),包括角色和身份,所有网络上的参与者都可以获取到这个信息。
(三)并行执行交易
大多数区块链要求连续执行交易,以此来保证在网络上的每个节点的顺序都连贯一致。锯齿湖包括了一个先进的并行计划表,它将交易分割成并行线程。基于交易获取到的状态位置,锯齿湖可以将单个交易执行从其他执行中隔离出来,同时保持前后的变化。
当可行时,交易被并行执行,即使在对同一个状态进行多重修改时,也能防止“双花”。相对于连续执行,并行计划表有实质性提升效能的潜力。
(四)事件系统
分布账本的锯齿湖支持创造和广播事件。它允许应用做以下事情:
1、订阅和区块链有关的事件,比如确认一个新的区块或者切换到一个新分叉。
2、订阅被交易家族定义的特定应用事件。
3、在状态里不存储数据的情况下,转发关于交易执行的信息给客户。
通过ZMQ Socket来提交订阅和接收服务。