当前位置:首页 > 物联网 > 区块链
[导读] 每个区块链在其底层都混合了不同的机制来进行工作。不管使用的是什么机制通常来说都没有对错之分。即使是“分叉”(现有区块链的复本),在开发人员追求处理分布式系统的规模、速度和其他方面的更好方法时,在

每个区块链在其底层都混合了不同的机制来进行工作。不管使用的是什么机制通常来说都没有对错之分。即使是“分叉”(现有区块链的复本),在开发人员追求处理分布式系统的规模、速度和其他方面的更好方法时,在某些方面也会有所不同。

区块链的核心是工程师选择的编程语言。比特币是用c++写的;以太坊是用 Go, C++, 写的,现在是 Rust。要在以太坊上建立智能合约,必须有坚实的基础。大多数人都听说过这些语言;即使是业余爱好者也会在日常阅读中遇到这样或那样的情况。

然而,有一种语言已经进入了人们的视野。Erlang虽然不是一个家喻户晓的名字,但实际上是33年前创建的。事实上,它是我们今天使用的互联网基础设施的一个活跃部分。尽管Erlang不如其他更常见的编程语言流行,但Tobias Lindahl断言Erlang是构建区块链的完美编程语言和学科基础。

Lindahl是利用Erlang的20年老手,拥有工程物理科学硕士学位,他花了几年时间在虚拟机(VM)上进行研究和工作。

从头开始:设计一个更好的区块链

根据Lindahl的说法,Erlang和区块链有如此多的共同点,只有在从头开始重新构思时,才会将其用于核心区块链协议。

Lindahl解释说:“既然区块链如此严重地依赖于通信,那么把它放在Erlang中本来是很自然的事情。”该语言是为在电信中构建分布式系统而构建的。因此,在Erlang中实现节点之间的通信非常容易。”

他补充说,除了为可伸缩的全球节点网络开发,Erlang中程序员思考问题的方式在处理区块链中的问题时给他们带来了显著的优势。

Erlang语言的不变性类似于区块链的不变性。有些东西一旦进入链条,就永远不会改变。这与您考虑Erlang问题的方式非常相似。

为什么Erlang非常适合构建区块链

在竞争激烈的区块链领域,很容易声称一种解决方案比另一种更好,这种说法太常见了。为了支持他的观点,Lindahl解释了为什么他认为Erlang是构建区块链的最佳编程语言。

“有了Erlang,数据就不会变,所以不会有破坏性的更新。它使得对程序进行推理变得更容易,甚至可以证明一些关于程序的东西。它也使测试程序变得更容易。他补充说,Erlang不仅能够快速分发大量的交易数据,还允许多个进程同时运行而不会相互冲突。

“当一个进程处理某些东西时,它不需要担心任何其他进程进入并改变其数据状态。对我来说,这是主要的好处。当然还有并发性这一优势。你可以让数千个进程同时运行,而不会相互影响。”

因此, Lindahl和开发团队æternity能够无缝部署重要功能。升级的第一个协议(硬分叉)证明了Tobias的说法——它是在没有任何问题的情况下执行的。

“我们使用噪声协议在节点之间进行通信。很容易设置到其他节点的独立节点连接,而不会相互干扰。这是erlang的另一个内置特性——无需处理信号量或程序的关键部分,就可以轻松管理单独的连接,”他说。

用Erlang实现类似于噪音的协议要简单得多。处理不同节点之间的连接很容易,因为关注点是分离的。您可以只分配一个Erlang进程来处理一个到另一个节点的连接,这可以一直进行下去。你知道没有其他过程会干扰这个。所以你不用担心其他的连接。”)

他补充说,Erlang支持一个非常有弹性的系统,可以根据需要伸缩。

Lindahl解释说:“如果一个连接死亡,另一个进程会自动接手。”Erlang有很多内置组件专门用于处理错误恢复和容错。因此,很容易运行许多Erlang进程。您可以或多或少地无限伸缩,或者更准确地说,您可以通过Erlang伸缩到您需要的任何位置。并且你不还需要担心规模,这是区块链行业目前面临的最大问题之一。”

为什么其他人不使用Erlang来构建区块链?

Lindahl的观点非常有说服力,这就引出了一个问题:为什么区块链技术从一开始就不是建立在Erlang之上的,为什么许多著名的区块链平台没有在自己的解决方案中包含Erlang。“Erlang社区没有那么大。使用Erlang的人并不多。”

“我不认为从一开始就没有使用它的根本原因。显然,Erlang并不是最适合所有情况的。也许工作量证明(PoW)才是问题所在。您不会在Erlang中实现它。”

区块链:高级还是低级?

最终,Lindahl说,高级编程和低级编程之间的区别决定了如何构建区块链的复杂性,这将影响到您可以扩展平台可能性的程度。在区块链行业,这是一个游戏规则的改变:它可以意味着一个平台在其他网络上的全球规模的成功。

Lindahl补充说:“我认为,由于Erlang的高级特性,您思考问题的方式是抽象的。你抽象了,是因为你有高层次的背景”。在低级程序设计中,程序员为每个操作提供指令。在高级编程中,程序员给出一个目标,而计算机知道实现该目标所需的所有单独操作。

对于那些有兴趣学习更多的人, Lindahl建议查阅æternity 的Documentation中心。他们的Github存储库也是一个很好的起点。除此之外,一个由社区支持的名为Dacade团队还为æternity的发展创建了一个教程(成功的完成者从中可以获得100美元的AE代币)。对于那些非常想参与其中的人,他们有一个即将召开的会议,ternity Universe,开发者和企业家可以直接从他们的开发者和创始人那里得到问题的答案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

现如今数字经济完全依赖各大平台的服务,交易能否达成与双方信用直接挂钩。平台往往在交易过程中抽取大量服务费用,导致了交易成本的提高。

关键字: 元宇宙 区块链 虚拟活动

与 BigCode 社区共同创建的 StarCoder2 是在 600 多种编程语言上训练而成,它将推进代码生成、透明度、治理和创新

关键字: 生成式 AI 编程语言 大语言模型

随着人工智能(AI)技术的不断发展和创新,其应用领域也在不断拓展。AI正在逐步渗透到各个行业中,为我们的生活和工作带来诸多变革。本文将为您探讨人工智能在各个领域的应用。

关键字: 人工智能 区块链 应用领域

本文中,小编将对区块链技术予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 区块链 Blockchain

Java是一种广泛应用于软件开发的编程语言,它具有跨平台、面向对象和高度可靠性的特点。在嵌入式系统设计中,Java也有着广泛的应用方案。本文将详细介绍Java在嵌入式系统设计中的应用方案,并分析其优势和挑战。

关键字: Java 软件开发 编程语言

嵌入式开发和Java开发是两个不同的领域,它们在目标、应用场景、编程语言和开发环境等方面存在一些区别。下面我将为您简要介绍这两个领域的特点以及如何选择适合您的开发方向。

关键字: 嵌入式开发 Java开发 编程语言

Java语言是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle Corporation)于1995年推出。Java具有跨平台性和可移植性的特点,广泛用于开发各种应用程序,包括嵌入式系统、移动...

关键字: Java 编程语言 互联网

嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在开发嵌入式系统时,除了了解和选择适合的编程语言外,还需要了解如何测量嵌入式产品的应用性能以及...

关键字: 嵌入式 计算机 编程语言

嵌入式系统设计师是一个专业领域,需要深入理解和掌握各种嵌入式技术以及相关编程语言。本文将介绍嵌入式系统设计师考试中的必备知识、笔记和总结,帮助读者在考试中取得好成绩。

关键字: 嵌入式系统 编程语言 C语言基础

上海2023年9月19日 /美通社/ -- 近日,上海浦东新区举行2023年经济突出贡献企业表彰活动,向企业颁出经济特别贡献、科技创新突出贡献、先进制造业突出贡献、民营企业突出贡献等九大奖项。活动上,波士顿科学获得“20...

关键字: 医疗器械 进程 内窥镜 医疗技术
关闭
关闭