专题 ▏亦来云
为了让大家更全面地了解亦来云的架构及理念,我们开设了新的专题,该专题旨为大家介绍亦来云生态系统的不同组成部分及它们所扮演的角色与重要性,本专题的第一部分从Trinity开始。
在说到构成Elastos的技术框架和服务组件时,我们经常很容易忽略这个项目的规模以及它应该如何定义。Elastos首先是DApp基础架构,其次是区块链技术,第三是去中心生态系统。并且有许多服务组件包括Token侧链、ETH(Ethereum)与NEO兼容侧链、标准侧链模版、DPoS共识、Elastos Carrier以及Hive存储服务等,其中最重要的可能是Elastos Runtime,也被称为亦来云浏览器(内部称为Trinity浏览器)。至今为止,很少有文章专门来讲述Elastos Runtime及其在亦来云技术框架中承担的角色, 本文将描述它的应用程序,突出它与已经使用的预先建立的浏览器的区别,并仔细解释它是如何将所有Elastos 基础架构服务包含在一个框架中,以使开发人员可以使用它在Elastos上无缝地构建应用程序。
Elastos提供了许多服务,用户可以在Android或iOS应用程序中分别使用各自的API单独进行交互。Trinity是一个真正独特的项目,因为它是活跃用户每天都会直接与之交互的浏览器。尽管拥有完整DApp生命周期管理功能的Trinity浏览器计划在今年年底发布,但用户将能够在它最终完成之前访问并使用它。毕竟,这就是敏捷项目的力量。用户已经可以使用该浏览器,并访问它的一些核心功能,尽管它目前还不是很完善。这也就意味着整个2019年,Trinity将经历各种变化并增加许多新功能,所以最终产品可能完全不像早期的Trinity浏览器。目前,它已经进入公开测试阶段,社区成员可以开始使用浏览器并向开发人员报告Bug。然后,开发人员在整个测试过程中扮演两个主要角色:为报告的错误提供修复,并在构建测试版时继续创建新功能。虽然Elastos浏览器还没有为大规模生产做好准备,但它仍然处于一个有意义的开发阶段,测试和试运行已经开始。
为了解释Elastos Runtime的本质,我们必须首先理解其角色的重要性。虽然DApps可以直接独立与Elastos Carrier、Hive、DID 侧链的API进行交互,但Runtime有很多独特的特性和功能是Elastos基础设施的其他组件所不支持的:
1.通过API实现简单性:Runtime集成了Elastos提供的所有服务,并将它们组合成一个供DApp开发人员使用的单一框架。因此,DApp开发人员只需要使用ionic javascript框架编写他们的应用程序,并且只需要管理一组RuntimeAPI。API可用于与主链、DID侧链、Token侧链、ETH侧链、NEO侧链、Elastos Carrier、Elastos Hive或Elastos生态系统的任何其他组件进行交互。
2.通过多平台支持实现通用性:由于Android和iOS都支持Elastos浏览器,因此DApp开发人员只需使用一组代码开发应用程序,就可以在两个平台上运行。将来,如果Windows、Mac和Linux都支持Elastos浏览器,那么它将为DApp开发人员提供巨大的通用性。换句话说,开发人员可以轻松在Elastos浏览器上使用相同的API开发他们的DApp,并且他们的DApp将运行在Elastos浏览器支持的所有平台上。
3. 通过沙箱机制实现安全性:Runtime提供了一个沙箱机制,所有DApps都在其中运行。最重要的是,它提供沙箱隔离、网络隔离和数字权限管理,这样DApp开发人员就不必每天处理繁琐的问题。从这里开始,Elastos DApps通过Elastos Carrier与外界进行交互,Elastos Carrier本身就是一个端到端加密的对等网络,没有中央服务器,因此创建了一个完全安全的生态系统的DApp运行时环境。
4. 通过去中心DApp分销渠道实现DApp安全性和数据完整性:与Android或iOS非常相似,Trinity将管理自己的DApp分发渠道。目前,开发者向Android和iOS应用商店提交申请,要求将他们的应用部署到各自的平台上。这个过程使应用程序受制于应用程序商店的判断,并通过将应用程序数据存储在集中的服务器上而损害了应用程序数据的完整性。Elastos协议是不同的,有专门的DApp侧链,记录每个DApp的元数据以及开发人员的DID和签名,而实际的DApp存储在一个去中心存储系统中。只有通过DApp侧链注册的DApp才能安装在Elastos浏览器上。在将其DApp安装到Elastos浏览器之前,Runtime会验证DApp及其开发人员的完整性和签名,从而创建一个去中心的DApp分发流程。
5. 通过工具链方便注册:作为DApp管理生命周期的一部分,将向开发人员提供工具链,以帮助他们使用DID包装Trinity DApp,并在DApp侧链上注册。简化DApp的开发、发布、注册过程。
6. 用户DID的安全性和数据完整性:Elastos浏览器上的所有用户数据和应用程序数据将绑定到用户的DID上,数据本身将存储在去中心存储系统上,或者存储在用户的Dropbox或个人云驱动器上。因此,当用户在不同的设备上安装Trinity时,他们使用DID登录,所有数据自动填充。这一过程与苹果使用icloud驱动器将应用程序设置和数据以集中格式恢复到新手机相似。对于Trinity 浏览器,当用户在不同设备之间切换时,DID被用来保存用户的数据,而不会因为去中心的数据存储而损害数据的完整性。
虽然使用Trinity浏览器有很多优势,当然也存在可以不需要用户使用它仍然可以与各种Elastos服务交互的其他原生Android,iOS或Windows应用程序,用户也可以选择直接使用这些服务。但是,这些类型的应用程序不使用Elastos Runtime,因此大多数DApp生命周期管理和安全措施需要由各个开发人员和团队维护。对于某些GPU密集型应用程序(如游戏)来说,情况就是如此,因为使用ionic框架为设备构建大型游戏非常复杂。在这种情况下,开发人员的唯一选择是直接与Elastos核心服务API进行交互,而无需使用Trinity浏览器。
你可以把Elastos区块链想象成一个运行代码和存储数据的安全通道,使用联合挖矿来利用比特币的巨大哈希能力并保护其网络。从这个意义上说,任何直接在区块链上运行的代码都是超级安全的——无论是用于发送ELA还是在相应的Elastos侧链上运行以太坊智能合约或NEO智能合约。
Trinity提供的功能比基于区块链的信任高一级,因为它与上述所有服务交互,同时阻止应用程序访问运行时不支持的任何API或插件。通过这种方式,用户可以使用区块链,也可以通过用户日常在设备上使用的DApps运行智能合约,而无需一开始就与区块链进行交互。Trinity隐藏了基础架构层,并为DApp开发人员提供了一组API。反过来用户可以使用区块链的信任和安全性访问DApps,而无需直接处理它。Trinity将链上和链外的可伸缩性解决方案结合在一个平台上,以一种开发人员无需学习任何新知识就可以在其平台上开发DApps的方式来打包数据。它是广大Elastos生态系统的门户,用户每天都会使用到它。
当开发完成时——2019年第四季度——这就是Elastos浏览器的样子:
Elastos浏览器中的DApp生命周期:
1. 使用Ionic javascript框架,利用浏览器支持的各种插件构建应用程序,如ElastosCarrier插件、Camera插件等。
2. 使用作为框架一部分提供的工具链脚本将您的Ionic应用程序转换为可以在Elastos浏览器中运行的Elastos应用程序。此应用程序将使用开发人员自己的DID进行签名。
3. 一旦使用工具链脚本创建了.epk(elastos包)文件,就可以部署它了。下一步是使用提供的工具在DApp侧链上注册这个.epk文件(Trinity应用程序)。应用程序包本身可以存储在一个分散的存储上,比如Elastos Hive。
4. 一旦Elastos应用程序在DApp侧链上注册,Trinity 浏览器内的DApp 中心将自动显示已注册的应用程序,显示该应用程序的所有细节,包括开发应用程序的开发人员的DID
5. 用户可以免费下载这个应用程序,并将其安装在Trinity浏览器中,之后便可以运行该应用程序
以下是Trinity项目的粗略时间表。 这不是一个固定的路线图,事情可能会在未来发生变化,但这是Trinity现在所处的位置以及2020年的发展方向。
看看下面的演示视频,详细解释了什么是Trinity项目,存储库在哪里,如何构建一个Trinity浏览器并在android和ios设备上运行:
https://v.qq.com/x/page/q0840hzi6mt.html