区块链-ArcBlock调研

一、项目概述

1.1、目前的区块链存在的问题

性能问题:目前区块链面临一个最重要的挑战就是性能低下的问题,比特币每秒只能处理7笔交易,而以太坊则稍微多一点,但是如果在网络拥堵的时候就很难看了,比如Status众筹的时候,又或者17年12月初火爆的以太加密猫,都造成了大规模的拥堵并导致交易手续费Gas激增。

对用户不友好:不得不说,对于大多数计算机小白来说,目前区块链的学习门槛还是挺高的,不说在你的计算机装个完整的节点,至少得装一个轻节点吧,就连想吸个猫,都得在Chrome安装个Metamask钱包插件。

成本高:如今的互联网能够普及的一个很大的原因就是免费,不论是对于开发者还是消费者而言。所以区块链技术想要普及,也应当像互联网一样,一个开放的区块链开放平台能吸引更多的开发者加入,并开发应用向用户普及。

平台关联:就拿目前我们主流的移动计算平台iOS和Android来说,开发者想要同时适配的话,工作量无疑是加倍的,选一的话又面临无法抉择;类比区块链也一样,应用的设计与代码被底层平台锁定,想要同时使用A平台的技术和B平台的功能,是无法支持多种不同底层链技术来提供最佳用户体验的。

功能匮乏:人们对区块链的要求越来越高,功能也希望越来越多,但目前大部分的区块链应用都缺乏丰富的功能特色,而且缺乏机制来鼓励社区为平台做出贡献。

1.2、Arcblock架构

ArcBlock是一个“去中心化区块链应用的服务平台”,目的是帮助开发者更容易地开发区块链的应用,而不受限于任何公链去做开发。

ArcBlock做的不是一条全新的公链,而是搭建一个平台,让开发者选择现有的他们认为最为合适的公链去合作。从本质上讲,ArcBlock并不帮助开发者解决他们自身的性能问题。然而ArcBlock却能做到大大地提高用户的综合体验度。这要求一方面需要平台本身的性能足够好,另一方面平台能帮助开发者采用ArcBlock建议的最佳实践和设计模式来把本来并不需要放在链上的逻辑放在链下来实现从而提高整体性能。

在这里插入图片描述
ArcBlock(ABT)是完整区块链服务平台。ArcBlock(ABT)结合了区块链和云计算技术的完整解决方案,并提供了内在激励的功能模块和应用市场,最终形成一个生态体系。其核心部件包括:

  • 开放链访问协议(OCAP)
  • 基石程序(Blocklet)
  • 分布式发布/订阅应用网关
  • 基石程序组件(Blocklet Components)
  • Forge Framework框架

第一个是“开放链访问协议”(Open Chain Access Protocol,OCAP),是实现了用统一的方式访问比特币、以太坊、Hyperledger等多种不同区块链协议的“开放链访问协议”。OCAP和不同区块链底层之间的关系,类似于在数据应用中ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)和不同数据库之间的关系,OCAP能让你的应用可以在不同的区块链上工作。

第二个是“基石程序”(Blocklet),基石程序则是ArcBlock另一项充分利用最新的微服务(microservice)架构和无服务器计算(serverless computing)技术优势的设计,能够充分发挥原生平台特性,提供远远优于虚拟机的性能表现。基石程序不仅可访问区块链,而且能够连接任何数据源,这里也就是我们常常听到的预言机(Oracle),就能完成链上和链下的两种计算。如果我开发出一个应用来,我们不需要花精力去想我究竟该在哪部署,也不用去考虑装几台服务器来部署它。部署和运营可以变的无缝衔接、不需要去担心整个应用运维。开发者则可以更有效率的去开发应用。

第三个是“去中心化订阅网关”(Decentralized Pub/sub gateway),这是一个技术化的部件,主要的想法是发展去中心化的messaging。它可以让各个节点之间、各个应用之间,有一套比较统一的方法来通信。ArcBlock的网关使用了分散的设计和安全的通信渠道,并以通知和订阅的方式通信。 同时应用程序将运行在Web浏览器和移动应用程序中,为用户提供良好的实时体验。 网关默认支持各种网络协议,包括WebSocket,DDP,HTTPS和MQTT,高级的开发人员还可以使用新的网络协议来扩展网关以满足他们的需求。

第四个是关于token经济的,基石程序组件(Blocklet Components),这是一套可继承的token机制。基石组件就是内置的一些服务组件了,比如代币服务、用户身份服务、钱包、消息服务等等,这些都是高度可重用可自定义的。

第五个是Forge Framework框架,其在系统架构位置上和 Cosmos SDK 是一致的,更好的帮助开发者发布根据自己的需求定制的区块链,并与自己的 Dapps 无缝连接:Forge 内核以 RPC(远程过程调用)的方式调用共识引擎、状态引擎和存储引擎,帮助用户定制的区块链实现共识达成、状态同步和分布式存储。 ArcBlock的ABT Chain Node也是基于Forge框架搭建。

1.3、现阶段进度

目前ArcBlock主要的精力花在OCAP上面,花很长的时间把基础协议做出来。同时核心的Forge Framework框架处于开发中,待开源。

二、核心功能解析

2.1、开放链访问协议(OCAP)

开放链访问协议(OCAP)是一种开源协议用以访问下层区块链基础设施的抽象接口层。开放链访问协议(OCAP)可以让应用在不同的链上工作,切换不同区块链、使用多条不同协议,不需要更改其业务代码。目前实现的链由以太坊链和比特币链。
在这里插入图片描述
链适配器

ArcBlock的开放链访问协议使得支持多种不同的区块链协议成为可能。 应用开发者可以从几种不 同的区块链协议,不同的节点类型,不同的部署方式中自由选择最合适的方式。 上述链访问层定 义了统一的API,然而这些API的具体实现来自于链适配器。

2.2、基石程序(Blocklet)

基石程序(Blocklet)是运行各种应用的无服务器计算机架构组件。可以使用基石程序(Blocklet)用以完成智能合约、外部事物触发器、外部资源(如音乐视频等流媒体)。 基石程序说白了提供不同基础服务的业务应用Dapp程序。
在这里插入图片描述

2.3、分布式发布/订阅应用网关

一个分布式的消息系统能够支持订阅/发布的实时消息服务,并能作为一个基石程序的API网关。ArcBlock的应用网关采用去中心化的设计和安全的消息通信频道设计。 应用程序可以在浏览器和移动App内和网关通讯,为最终用户提供实时、响应式用户体验。且网关支持多种协议:Websocket、Https、DDP、MQTT等。

API网关把复杂的系统对外以简单的API接口形式 提供服务,它的根本作用是解耦客户端(在我们的系统中,API的消费客户端指移动应用、Web 应用以及“瘦”区块链节点应用等)和服务端实现之间的关系。在ArcBlock中,所有具体功能都是 Blocklet来提供的,Blocklet并不直接与客户端通讯,而是通过API网关来提供。

acrBlock目前对外提供了不同的SDK,来调用不同的区块链。

javascript-sdk SDK:https://github.com/ArcBlock/ocap-javascript-sdk
java SDK:https://github.com/ArcBlock/arcblock-android-sdk
iios SDK:https://github.com/ArcBlock/arcblock-ios-sdk
以太坊链和比特币链 文档:https://ocap.arcblock.io/doc/bitcoin/ https://ocap.arcblock.io/doc/ethereum/
控制台:https://console.arcblock.io/users/profile

2.4、基石构件(Blocklet Components)

基石构件(Blocklet Components)是一组事先构建好、奠定整个ArcBlock系统基础的部件,此部件将可以用于系统的基础功能部分(如令牌服务、用户认证体系)。并且此部件可重复使用和可定制。也就是说基石构件类似于一些通用化组件。

2.5、Algorand

Algorand是MIT机械工程与计算机科学系SilvioMicali教授与合作者于2016年提出的一个区块链协议,主要是为了解决比特币区块链采用的pow共识协议存在的算力浪费,扩展性弱、易分叉、确认时间长等不足。因此SilvioMicali教授在algorand区块链协议中提出了一种新的共识协议。

ArcBlock号称有在节点程序使用该算法,不过ArcBlock描述非常的笼统,也未公布如何实现和改进Algorand算法的细节。

2.6、代币ABT

ArcBlock目前并没有自己的主链,但是有自己的代币ABT。

ABT在社区用户的眼中是仅是一种身份证明,也是作为社区生态建设的一种标识,更多的表现为对于ArcBlock的认可。

三、Forge Framework框架

ArcBlock 提供的开发者发链框架是 Forge Framework框架。其在系统架构位置上和 Cosmos SDK 是一致的,更好的帮助开发者发布根据自己的需求定制的区块链,并与自己的 Dapps 无缝连接:Forge 内核以 RPC(远程过程调用)的方式调用共识引擎、状态引擎和存储引擎,帮助用户定制的区块链实现共识达成(consensus engine)、状态同步(state engine)和分布式存储(storage engine),而这三个引擎均可插拔(比如目前 Forge 共识引擎调用的是 Tendermint,未来可插拔切换为其他共识算法);FABI(Forge Application Blockchain Interface,Forge 应用区块链接口)连接 Forge 内核与更为丰富的应用层:DID API、区块链 API 和 OCAP API 帮助安全连接其他用 Forge 打造的链以及比特币、以太坊等为 OCAP 支持访问的公链。在这之上支撑 Dapps 还有更多开发者可以直接使用的工具:管理控制台、命令行工具、区块浏览器,而不只是框架。
在这里插入图片描述
ArcBlock的 forge框架目前并未开源源码,也未作详细的介绍。但是从官方介绍来说,Forge的架构基本和 Cosmos SDK类似,共识层主要也是基于Tendermint共识。 所以未来待Forge开源后,可用深入研究下。

ArcBlock视频介绍:https://www.youtube.com/watch?v=c0BpHwTUIOs&feature=youtu.be

DID
DID(decentralized identity),去中心化 ID,是一种用户自主身份(Self-Sovereign Identity)的数字 ID 技术,是 W3C 建议的标准。 ArcBlock中的 DID 设计是从底层开始贯彻始终。

Tendermint
Tendermint 是 Tendermint 团队基于POS开发的共识引擎,也是Cosmos的核心技术。Tendermint 系统由两个组件组成:Tendermint Code 和 通用应用接口ABCI。

3.1、对比

目前ArcBlock处于极早期阶段,ArcBlock旨在对用户开发比较友好,不过开发框架 Forge Framework 有待验证。

项目arcblockcomsospocketdot
开发框架Forge FrameworkCosmos SDKSubstrate
跨链协议OCAP(Open Chain Access Protocol)IBC(Inter-Blockchain Communication Protocal)Polkadot
共识机制PosPOS–tendermintPos混合共识
原生通证ABTATOMDOT
发布时间2019年第一季度 已经上线2019年第1季度 已经上线2019年底3季度 预计
开发语言Erlang/ElixirGoRust
SDK支持语言Javascript/Node.js Python, Erlang/Elixir Swift/Object-C/Ios java/AndroidGoRust、Javascript
RPC支持grpc, GraphQLJSON RPCJSON RPC
可支持异构链访问yesyesyes
应用项目项目早期阶段,暂无Binance Chain IRISnet等Chainx 等

四、总结

ArcBlock是一种旨在致力于打造一个高性能、用户友好、成本经济、不被现有特定区块链协议锁定的应用服务平台。

ArcBlock项目方前期在前期宣传造势力度大,有知名机构背书,又有丁磊等大咖站台,使项目热度一度很高。但是后续项目的进展,仍需通过技术实力来验证。

五、附录

项目评级: http://wemedia.ifeng.com/85552268/wemedia.shtml

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值