125生活网

基于区块链技术的全栈开发平台ArcBlock介绍

冷静的凉面科技

基于区块链技术的全栈开发平台ArcBlock介绍

ArcBlock是谁,他们为什么喜欢BEAM?

ArcBlock [1]的基石肩负着这样的使命:大大简化区块链技术,并快速应用到日常生活中。为此,他们开发了区块链全栈开发平台,为开发者提供了轻松构建、运行和部署去中心化应用(DApps)所需的一切。其平台的核心是BEAM虚拟机。他们全心全意地信任和支持Erlang生态系统,并作为创始发起人加入了Erlang生态系统基金会。在这篇博文中,ArcBlock的R&D副总裁田琛将谈论他们为什么热爱BEAM虚拟机,以及将它作为任何想要开发DApp的人的基石的好处。

梁与区块链简介

Erlang是构建具有高可用性、容错性和可伸缩性的实时系统的最佳编程语言之一。梁是个虚拟机,——对我们来说也是个不知名的英雄。BEAM的优势也适用于运行在虚拟机上的其他语言,包括Elixir。无论人们使用什么高级编程语言,一切都归结到BEAM。这是该技术的重要组成部分,有助于实现所有重要的100%可用性。

今天,BEAM帮助了世界上超过一半的互联网路由器,我们不认为我们能找到比这更强有力的证明。以下是梁的一些优点,这使得它非常适合构建区块链。

网络共识

决定使用BEAM作为构建分布式应用程序的关键组件是很简单的。首先,区块链和分散式应用程序[2]需要在网络中的所有节点上实现一致的状态。我们通过使用状态复制引擎(也称为共识引擎)来实现这一点。共识很重要,因为这种机制确保了向区块链总账添加信息的有效性。为了达成共识,网络上的节点需要对信息达成一致,达成一致后,就可以将数据添加到账本中。有许多引擎可供选择。目前我们平台选择的是Tendermint,支持状态复制引擎。

波束DApps

除了一致性引擎之外,BEAM还是满足分散式应用程序其他几个关键需求的完美解决方案。为了让分散的应用程序在我们的开发框架中工作,我们需要一个嵌入式数据库来存储应用程序状态,还需要一个索引数据库来存储区块链数据。在此过程中,我们还需要区块链节点能够监听网络上的节点,并为下一个数据块“投票”。对于这些要求,系统需要连续的响应和可用性。

现在需要注意的是,除了持续响应,我们还需要考虑CPU任务。特别是当系统遇到CPU密集型任务时,我们的区块链平台和服务不能停止工作。如果系统变得无响应,可能会发生灾难性的错误。

代码热过载

除了BEAM的调度器,我们喜欢的另一个特性是代码热重载。它可以让你在跑步时做几乎任何事情,而不用关闭光束。例如,我们的区块链应用程序平台带有许多不同的智能合约,开发人员可以使用它们来丰富分散应用程序的功能。但是,通过区块链,您拥有一个分布式网络,您需要确保每个节点的行为一致。

在大多数情况下,开发人员必须更新和重启他们的节点以启用最新的软件,这将导致潜在的问题和不必要的停机时间。通过ArcBlock,我们利用BEAM的代码热过载特性在整个网络中动态启用/禁用智能合同。这只能通过发送事务来完成,事务告诉系统应该在特定的时间升级软件。当这种情况发生时,ArcBlock将告诉BEAM安装新代码,然后网络中的每个节点都将拥有最新的功能。

速度是相对的。

BEAM用“演员模型”模拟现实世界,一切都是不可改变的。因此,不需要锁定状态和防止竞争情况。当然,任何事情都是有代价的。BEAM简单美观的不变性可能会导致程序运行得更慢。为了缓解这种潜在的缓慢,ArcBlock使用Rust来帮助CPU完成密集型任务,例如为状态创建Merkle-Patricia树。BEAM再一次证明了它的价值,它提供了一种简单的与外界交流的方式,并使用Rust将性能提高到了另一个水平。

碎片帐集

不要让这个名字欺骗了你。垃圾收集至关重要。Erlang使用动态内存并跟踪垃圾收集。每个进程都有自己的栈和堆,它们分配在同一个内存块中,可以互相增长。当堆栈遇到堆时,垃圾收集器被触发,内存将被回收。

虽然这个解释有点技术性,但是BEAM的垃圾收集过程是在进程级完成的,从而保证不会出现“让世界停下来,让我来清理垃圾”之类的垃圾收集。相反,它确保进程继续运行,没有任何中断。

动态密码

最后但同样重要的是,Erlang提供了一个名为OTP的开发工具包,它允许开发人员使用BEAM领域公认的最佳实践的简单方法。对于任何企业或区块链应用平台来说,都有必要围绕行业标准进行构建。OTP使得利用BEAM中开发人员可用的所有优势来编写代码变得很容易。

容错

我们把这个留到最后是有原因的。这是迄今为止ArcBlock对BEAM最依赖的特性。在区块链领域,这是一项使BEAM优于许多竞争对手的技术。虽然成千上万的交易同时发生;但是系统特定部分的任何错误都不会影响整个节点。错误将自我修复,使节点能够抵御不良行为或特定攻击。对于向用户或支持生产质量的应用程序交付服务的任何人来说,这是一个关键特性。通过引入默认容错,我们可以确保在ArcBlock平台上运行的任何人都保持在线和可用。

我们认为,虽然BEAM是多年前设计的,但其目的是用于区块链。它为开发人员和ArcBlock等区块链平台提供了所有必要的功能,以及运行高并发和容错系统的能力,使开发人员的工作更加轻松。责任编辑;基线

标签:BEAM ArcBlock 平台