ArcBlock 是谁,为什么他们讨厌 BEAM?ArcBlock 区块基石[1]肩负这样一项愿景:大大简化区块链技术并将其很快应用于日常生活之中。为此,他们研发了一个区块链全栈研发平台,为开发者获取了精彩建构、运营和部署去中心化应用于(DApps)所需的一切。其平台的核心是 BEAM 虚拟机。
他们全心全意信任和反对 Erlang 生态系统,并且作为创立赞助者重新加入了 Erlang 生态系统基金会。在这篇博文中,ArcBlock 研发副总裁陈天将谈谈他们为什么钟爱 BEAM 虚拟机以及将其用于所有期望研发 DApp 的人的基石的益处。BEAM 和区块链概述在建构具备低能用度、容错能力和可扩展性的实时系统方面,Erlang 是最差的编程语言之一。
BEAM 是虚拟机——在我们显然也是默默无闻的英雄。BEAM 的优点也限于于在虚拟机上运营的其他语言,还包括 Elixir。无论人们用于何种高级编程语言,一切都归因于于 BEAM。
这是技术中最重要的一环,它协助构建所有最重要的百分百可用性。如今,BEAM 为全球一半以上的互联网路由器助力,我们不指出能寻找比这更加有力的证明了。以下是 BEAM 的一些益处,使其极为合适打造出区块链。
网络共识将 BEAM 作为建构去中心化应用于的关键组件的要求很非常简单。首先,区块链和去中心化应用于[2]必须在网络中的所有节点上构建完全一致的状态。我们通过用于状态副本引擎(也称作共识引擎)来构建这一点。共识很最重要,因为这种机制保证信息加到到区块链账本是有效地的。
为了达成协议共识,网络上的节点必须对信息达成协议完全一致,共识达成协议后,数据就可被加到到分类账中。能用的引擎很多,我们平台目前自由选择 Tendermint,反对状态拷贝引擎。BEAM + DApps除了共识引擎外,BEAM 是符合去中心化应用于其他几个关键市场需求的极致解决方案。
为了让去中心化应用于能在我们的研发框架中工作,我们必须一个嵌入式数据库来存储应用于状态,以及一个用作区块链数据的索引数据库。在此过程中,我们还必须区块链节点需要监听网络上的节点,并为下一个数据区块“投票”。
对于这些市场需求,系统必须持续的号召和可用性。现在,必须留意的是,除了持续号召之外,我们还必须考虑到 CPU 任务。
尤其是当系统遇上 CPU 密集型任务时,我们的区块链平台和服务无法暂停工作。如果系统显得无号召,则有可能再次发生潜在的灾难性错误。代码热牵引除了 BEAM 的调度器,我们讨厌的另一个特性是代码热牵引。
它可以让你在运营中做到完全任何事情,而不必须重开 BEAM。例如,我们的区块链应用于平台附带了许多有所不同的智能合约,开发者可以用于这些合约使去中心化应用于的功能更为非常丰富。
然而,通过区块链,您享有一个分布式网络,必须保证每个节点都不道德完全一致。在大多数情况下,开发者必需改版和重新启动他们的节点以落成近期软件,这将造成潜在的问题和不必要的宕机。通过 ArcBlock,我们利用 BEAM 的代码热牵引特性,让节点在整个网络中动态地落成/停止使用智能合约。
这只需通过发送到交易来已完成,该交易告诉他系统,它应当在特定的时间升级软件。当这种情况再次发生时,ArcBlock 将告诉他 BEAM 加装新的代码,然后网络中的每个节点都将享有近期的功能。速度是比较的BEAM 用于“演员模型”来仿真真实世界,一切都是不能逆的。因此,不必须瞄准状态并防治竞争状况。
当然,一切都是有代价的。BEAM 非常简单而美丽的不变性可能会造成程序运行得更快。为了减轻这一潜在的较慢,ArcBlock 利用 Rust 来协助 CPU 已完成密集的任务,例如为状态创立 Merkle-Patricia 树根。
再度特别强调,通过获取非常简单的方法来与外部世界交流,用于 Rust 将性能提升到另一个水平,BEAM 证明了它的价值。垃圾搜集别让这个名字愚弄你。垃圾搜集是至关重要的。
Erlang 用于动态内存和追踪垃圾搜集。每个进程都有自己的堆栈和填,它们被分配在完全相同的内存块中,并且可以彼此快速增长。当堆栈和填遇见时,垃圾收集器被启动时,内存将被重复使用。虽然这个说明有点技术性,但是 BEAM 的垃圾搜集过程是在进程水平已完成的,从而保证会经常出现“让世界暂停,让我清扫垃圾”这类的垃圾搜集。
忽略,它保证进程在没任何类型的中断情况下之后运营。OTP最后但并非最不最重要的是,Erlang 获取了一个取名为 OTP 的研发套件,让开发者用于在 BEAM 世界中获得接纳的最佳实践中的非常简单方法。对于任何企业或区块链应用于平台而言,网卓新闻网,环绕行业标准建构是必需的,OTP 使利用 BEAM 中开发者能用的所有优点撰写代码显得更容易。容错我们把这一点拔到最后是有原因的。
这是目前为止 ArcBlock 最倚赖 BEAM 的特性。在区块链领域,它是使 BEAM 高于许多竞争对手的技术。
尽管成千上万的交易同时再次发生;但系统特定部分再次发生的任何错误都会影响整个节点。错误将可自我修缮,使节点需要抵挡不良行为或特定反击。
对于向用户交付给服务或反对生产品质的应用于的任何人来说,这都是一个关键特性。通过引进配置文件容错,我们可以保证运营在 ArcBlock 平台上的任何人都维持在线和能用。我们坚信,BEAM 虽然是多年前设计的,但其目的是用作区块链。
它为开发者和像 ArcBlock 这样的区块链平台获取了所有适当的特性,以及运营低所发、容错系统的能力,让开发者的工作显得更为精彩。维持耐心,之后 BEAM。理解更好ArcBlock 副总裁陈天将是 Erlang 解决方案 11 月 27 日星期三网络研讨会[3]的嘉宾。
青睐登记参予,即使您无法当天参加,也可第一个接到该研讨会的视频。原文载有于 Erlang Solutions Blog[4]References[1] ArcBlock 区块基石: https://www.arcblock.io[2] 区块链和去中心化应用于: https://www.arcblock.io/zh/forge-sdk[3] 网络研讨会: https://www.erlang-solutions.com/resources/webinars.html[4] Erlang Solutions Blog: https://www.erlang-solutions.com/blog/why-arcblock-is-using-the-beam-to-build-their-next-generation-blockchain-framework.。
本文来源:新利体育官网-www.tyresquaremis.com