Hyperledger Transact 介绍

2019-09-10 19:44 栏目:经验之谈 来源: 查看()
我们很高兴地宣布一个新项目,Hyperledger Transact。 Transact代表了超级书籍向组件化的不断发展,以便快速和负责任地采用新的区块链技术。 Transact提供了一个独立于平台的库,用于通过智能合约执行事务。它使我们能够更快地集成各种智能合约技术,例如跨超极本项目与WebAssembly执行智能合约。 Transact来自Superbook中多个项目的经验,专为多项目而设计,包括Hyperledger Sawtooth和Hyperledger Fabric。

Hyperledger Transact 介绍

智能合约是分布式账本的基本构建模块。在分布式分类帐框架中,事务表示提交事务的用户的有意更改。该事务由智能合约解释,结果是系统当前状态的更新。 现有的智能合约执行解决方案通常与特定的分布式总账实施捆绑在一起,这限制了代码的可重用性。通过为与分布式总账执行分开的智能合约提供标准接口,Hyperledger Transact将减少分布式账本解决方案的开发。 什么是Hyperledger Transact? Hyperledger Transact通过提供共享软件库来处理智能合约的执行(包括调度,事务分配和状态管理),使编写分布式分类帐软件变得更加容易。 Hyperledger框架级项目和自定义分布式分类帐可以使用Transact的高级事务执行和状态管理来简化项目中的事务执行代码,并利用其他Transact功能。 更具体地说,Transact提供了一种可扩展的方法来实现一种称为“智能合约引擎”的新智能合约语言。每个智能合约引擎都实现一个处理智能合约的虚拟机或解释器。示例包括处理以太坊虚拟机(EVM)智能合约的Seth和处理WebAssembly智能合约的Saber。 Transact还为智能合约和智能合约引擎提供SDK,使用各种编程语言编写智能合约业务逻辑变得容易。 Hyperledger Transact受Hyperledger Sawtooth的启发,使用了Sawtooth当前交易执行平台的架构元素,包括调度,事务隔离和状态管理方法。 Transact进一步了解Hyperledger Fabric需要支持Sawtooth和Fabric之间的不同数据库后端和联合体验,以便为执行适配器提供灵活的模型(例如,从集成Hyperledger Burrow中学到的经验教训)。 深入分析 Transact基本上是一个状态转换事务处理系统。状态数据通常存储在Merkle-Radix树,键值数据库或SQL数据库中。给定初始状态和事务,Transact将执行事务以生成新状态。这些状态转换被认为是“纯粹的”,因为只输入了初始状态和事务(相反,其他系统,如以太坊组合状态和块信息以产生新状态)。结果是Transact独立于框架功能,除了事务执行和状态。太棒了吗? 故意省略其他功能,如共识,块,链接和同行。这些功能由Hyperledger框架(如Sawtooth和Fabric)和其他分布式分类帐实现处理。关注智能合约执行意味着Transact可用于智能合约执行,而不会与其他平台级架构设计元素冲突。 在更高级别,Transact架构如下: ·Transact处理包括以下部分: 状态。 Transact状态实现在数据库上提供get,set和delete操作。对于Merkle-Radix树状态实现,树结构在LMDB或内存数据库之上实现。 ·上下文管理器。在Transact中,状态读取和写入的范围是包含状态ID(例如Merkel-Leadix状态根哈希)和一个或多个对先前上下文的A引用的特定“上下文”(沙箱)。上下文管理器实现上下文生命周期,并为从状态读取,写入和删除数据的调用提供服务。 ·调度程序。该组件控制要执行的事务的顺序。具体实现包括串行调度程序和并行调度程序。并行事务执行是提高网络吞吐量的重要创新。 ·执行器。 Transact执行程序从调度程序获取事务并在特定上下文中执行它们。通过将事务发送到特定的执行适配器(例如ZMQ或静态进程中适配器)来处理执行,该适配器又将事务发送到特定的智能合约。 ·智能合约引擎。这些组件提供运行智能合约的虚拟机实现和解释器。引擎的示例包括WebAssembly,以太坊虚拟机,锯齿事务处理器和结构链代码。 交易特征 Hyperledger Transact包含以下将可用的功能(不是完整列表): ·允许不同执行机制的事务执行适配器。例如,Transact最初提供了一个支持进程内和外部事务执行的适配器。进程内适配器允许您创建可以执行特定类型事务的单个(自定义)进程。允许外部适配器在单独的进程中执行。 ·串行和并行事务调度为灵活性和性能提供了选项。串行调度按顺序一次执行一个事务。并行调度在同一时间(可能是无序的)执行多个事务,具有特定的约束,以确保生成的状态与串行调度中可能发生的顺序执行相匹配。并行调度提供了巨大的性能优势。 ·不可插入状态后端,最初支持lmdb的merkel reddix树实现和内存中的merkel reddix树(主要用于测试)。今后还将支持keyvalue数据库和sql数据库。 ·交易凭证,包含交易执行中状态变化的结果和其他信息。 ·可由智能合约生成的事件。这些事件被捕获并存储在事务凭据中。 SDK为以下语言:生锈、Python、JavaScript、GO、Java(包括Android)、SWIFT(IOS)、C++和…NET。 ·支持多种智能合约,包括sabre(web组装智能合约)和se(evm智能合约)。 谁参加了这个项目? Hyperledger Transact的最初代码是由Bitwise IO和Cargill开发的,这在很大程度上得益于英特尔之前对Hyperledger Sawtooth的贡献。设计讨论与Fabric,Borrow,和Indy的维护者经过进一步设计讨论后完善了提案。Transact旨在鼓励项目之间的接口对齐。Bitwise IO、Cargill、IBM和Intel目前都参与了Transact项目。 Hyperledger Sawtooth、Hyperledger Fabric和Hyperledger Grid的维护者已表示有兴趣在其项目中使用Hyperledger Transact。我们认为,这仅仅是开始。由于使用Transact标准接口执行智能合约的优势,我们预计随着项目的成熟,采用的人会越来越多。
微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发