每个区块链在其底层都混合了不同的机制来进行工作。不管使用的是什么机制通常来说都没有对错之分。即使是“分叉”(现有区块链的复本),在开发人员追求处理分布式系统的规模、速度和其他方面的更好方法时,在某些方面也会有所不同。
区块链的核心是工程师选择的编程语言。c++fans.com/tags/比特币/' target='_blank' class='arckwlink_hide'>比特币是用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支持一个非常有d性的系统,可以根据需要伸缩。
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,开发者和企业家可以直接从他们的开发者和创始人那里得到问题的答案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)