在引擎根据Lindahl的说法,Erlang和区块链有很多共同之处,只有在从头开始重新构想时才能用于核心区块链协议才有意义。

Lindahl解释说:“由于区块链非常依赖于通信,因此首先将它放在Erlang中是很自然的。” “该语言是为在电信中构建分布式系统而构建的。因此,在Erlang中很容易实现节点之间的通信。“

他补充说,除了为可扩展的全局节点网络开发之外,程序员在Erlang中思考问题的方式使他们在解决区块链中的问题时具有显着的优势。

“Erlang语言的不变性类似于区块链的不变性。一旦某些东西进入了链条,它就永远不会改变。这与你对Erlang问题的看法非常相似,“他说。

为什么Erlang是构建区块链的完美选择?

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

“使用Erlang,您拥有数据的不变性,因此您没有破坏性的更新。它可以更容易推理程序,甚至可以证明一些有关它们的事情。它还使测试程序变得更容易,“他说。他补充说,Erlang不仅能够实现交易数据的大规模快速分发,而且还允许多个流程同时运行而不会相互碰撞。

“与Erlang分离关注点非常容易。当一个进程正在处理某些事情时,它不需要担心任何其他进程进入并改变其数据的状态。对我来说,这是主要的好处。你当然有并发性。您可以同时运行数千个进程而不会相互影响 – 除非您明确要求它们进行通信。“

因此,Lindahl和æternity的开发团队能够无缝部署重要功能,并且区块链能够更好地处理数量。æternity协议(硬分叉)的第一个协议升级证明了托比亚斯的说法 – 它没有一个问题被执行。

“我们使用Noise协议进行节点之间的通信。设置与其他节点的单独节点连接很容易,而不会相互干扰。这是Erlang的另一个内置功能 – 它可以轻松管理单独的连接,而无需处理信号量或程序的关键部分,“他说。

“使用Erlang实现类似噪声的协议要简单得多。处理不同节点之间的连接很容易,因为您有这种关注点的分离。您可以只分配一个Erlang进程来处理与另一个节点的一个连接,这可以继续进行。而且你知道没有其他进程会干扰这一点。所以你不必担心其他连接。“

他补充说,Erlang实现了一个非常有弹性的系统,可以根据需要进行扩展。

“如果连接死亡,另一个称为主管的过程将被通知他的连接已经死亡,你可以重新建立,”Lindahl解释道。“Erlang有很多用于处理错误恢复和容错的内置插件。因此,很容易运行许多Erlang进程。你可以或多或少地无限扩展,或者更准确,你可以通过Erlang扩展到你需要的范围。你不需要担心规模,这是当今区块链行业最大的问题之一。“

为什么其他人不使用Erlang进行区块链建设?

Lindahl的观点非常有说服力,这导致了为什么区块链技术从一开始就没有建立在Erlang上的问题,以及为什么许多着名的区块链平台没有在他们自己的解决方案中加入Erlang。“Erlang社区不是那么大。使用Erlang的人并不多。“

“我认为从一开始就没有使用它的根本原因。显然,Erlang并不是最适合一切的。也许是工作证明(PoW)就是问题所在。你不会在Erlang中实现它。那将是完全没用的。与具有适当的C解决方案或类似的解决方案相比,这将是非常缓慢的。“

区块链:高级还是低级?

最终,Lindahl表示,高级和低级编程之间的区别决定了构建区块链的复杂性,后者会影响您在多大程度上扩展平台的可能性。在区块链行业中,这是一个改变游戏规则的因素:它可以拼成平台在全球范围内的成功优于其他网络。

“我认为随着Erlang的高级特性,你对问题的思考方式就是抽象。你抽象了,因为你有高层次的背景,“Lindahl补充道。在低级编程中,程序员为每个动作提供指令。在高级编程中,程序员给出了一个目标 – 机器知道实现该目标所需的所有单独操作。

对于那些有兴趣了解更多信息的人,Lindahl建议您通过æternity的文档中心进行搜索。他们的Github存储库也是一个很好的起点。除此之外,一个名为Dacade的社区支持团队还为æternityDevelopment创建了一个教程(成功的终结者可以获得100美元的AE代币)。对于那些真正想要参与行动的人来说,他们有一个即将召开的会议,即æternityUniverse,开发者和企业家可以直接从æternity的开发者和创始人那里得到问题的答案。下,每个区块链都有不同的机制组合使其工作,这取决于程序员认为是解决问题的正确方法。通常没有正确或错误的解决方案 – 只有更好的解决方案。即使是现有区块链的副本 – 副本 – 在某些方面会有所不同,因为开发人员追求他们认为是处理分布式系统的规模,速度和其他方面的更好方法。

区块链的核心是工程师选择的编程语言。比特币是用C ++编写的; 以太坊是用Go,C ++编写的,现在是Rust。要在以太坊上建立智能合约,那就是Solidity。大多数人都会听说过这些语言; 即使是休闲爱好者也会在日常阅读中遇到过这些问题。

然而,有一种语言已经进入讨论。Erlang虽然不是家喻户晓的名字,但实际上是在33年前制作的。事实上,它是为我们今天使用的互联网提供动力的基础设施的活跃部分。尽管与其他更常见的编程语言不同,Tobias Lindahl 断言,Erlang是构建区块链的完美编程语言和学科基础。

Lindahl是一名20年的Erlang资深人士,拥有工程物理学硕士学位,他花了几年时间从事虚拟机(VM)的研究和工作。他目前是æternity的星光熠熠的开发团队的一员,与其他编程传奇人物一起 – 与Erlang的共同创作者之一Robert Verding在其中。