LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 函数式编程能够支持更高效的区块链基础设施

函数式编程能够支持更高效的区块链基础设施

2020-01-10 头等仓 来源:区块链网络

函数式编程能够支持更高效的区块链基础设施吗? 谁在使用它? 为什么?

说区块链技术吸引人只是一种保守的说法了。随着开发更先进的区块链基础设施和应用程序,区块链技术的未来已经日渐清晰。

在区块链平台开发中使用的一些最著名的编程语言是面向对象的语言。到目前为止,c++、Python和Ruby等语言已经主导了区块链领域。

按照最近的发展来看,函数式编程语言是一股不可忽视的力量。他们提供区块链技术独特的特点,帮助他们展现出重要的比较优势。

那么,目前使用哪些函数式编程语言来开发开放区块链协议呢?这里有几个例子。

函数编程语言

OCaml

OCaml是一种经得起时间考验的函数式编程语言。它有一个静态类型系统,可以帮助删除运行时的错误。与用c#或Java编写的程序相比,用OCaml编写的程序通常启动和运行得更快,并且消耗更少的内存。

除了支持链接到c基元的外部函数接口之外,OCaml的其他功能还包括一流的词法闭包、参数多态性、异常处理、尾部递归和模式匹配。还有自动管理内存内存的垃圾收集器功能。

Haskell

Haskell是一种基于lambda演算的纯函数式编程语言。它具有用户友好的语法,广泛的物理库集合以及用于教育和支持的绝佳资源。这些对于开发人员对其进行原型设计所需的参考材料起着重要作用。

Haskell还拥有一流的工具、声明式和静态,以及强大的打字。在构建高性能应用程序时,这些特性使Haskell成为一个很好的选择。

Erlang

Erlang是一种函数式编程语言,用于构建分布在计算机网络上的强大程序系统。它已经在电信行业中使用了30多年,目前90%的互联网流量都通过Erlang控制的节点。作为一种函数式语言,它更侧重于表达式的评估。表达式使用函数来获取基本值。

Erlang在任何其他编程语言之前就开始支持多线程。它提供垃圾收集,使用虚拟机,并具有模式匹配,允许紧凑和清晰的程序。Erlang为其他编程语言提供了接口,如C,C ++和Rust。

Erlang被认为是一种优秀的语言,特别是在开发需要的后端系统时:

大量的并发活动

实时响应

不间断运行和容错

既然您对函数式编程语言有了些了解,再来看看是什么使它们非常适合区块链。

函数式编程语言的优点

不变性

一般来说,函数式编程语言没有可变变量;一旦你设置了一个值,它就不能被改变。这使得代码行为更容易预测,减少了系统错误数,提高了系统的稳定性。

容错

容错是指即使发生故障,系统仍继续运行。某些函数式编程语言(如Erlang)默认有容错功能。

易于并行化,高度分布式

函数式编程语言使您能够创建高度并行和高度分布式的系统。用于迭代的内置函数,如map和reduce,在区块链开发中非常有用武之地。

虽然有更多的优势,让我们深入研究更有趣的内容。您听说过任何包含函数式编程的区块链吗?

使用区块链编程的区块链协议

Tezos

Tezos是一个区块链项目,旨在提供“世界上第一个‘自我修正’的加密货币”。它是一个自治的、去中心化的区块链平台,使用链上治理来帮助它随着时间的推移升级其协议。在另一种被委托的股权证明(DPoS)方法中达成了共识,这种方法称为液体股息证明(Liquid Proof-of-Stake)。

Tezos是在OCaml中实现的,OCaml是一种提供了速度、明确的语法和语义的函数式编程语言,以及一个使Tezos成为正式验证的良好候选者的生态系统。正式验证是开发人员能够在数学上证明其智能合约代码的准确性的地方。

Cardano

Cardano是一个去中心化的的、基于区块链的开源平台,使用名为Ouroboros的Proof-of-Stake数学计算。Ouroboros可以通过持币人的投票产生共识。

Cardano区块链使用了Haskell语言,并用Plutus(一种纯函数式编程语言,具有强大的静态类型和正式规范)来定义它的智能合约。Plutus的语法类似于haskelland,但与Haskell不同的是,该语言受到被热切评估。

?ternity

?ternity是一个基于区块链的平台,包含智能合约和去中心化的应用程序。Tezos和Cardano一样,?ternity协议是用Erlang编写的,它的智能合约语言 -Sophia - 也是函数式的。

Sophia是ML家族的编程语言的一部分。它没有任意的可变状态,但是对于每个契约实例,状态的形式是有限的。它是一种健壮的语言,可以指定并自动地证明智能合约的属性,使其成为高价值、系统关键型智能合约的理想语言。

除了Erlang,核心协议还纳入了许多其他的技术特性

状态通道——该技术通过将交易和智能合约从较慢的主链(非链)移开来显著提高可伸缩性。除了可伸缩性之外,状态通道的另一个好处是增加了隐私,因为参与通道的各方之间的所有交易或合同都是私有的。此外,由于用户之间的所有交互都是私有的,因此智能合约和交易可以并行执行。

比特币-NG??-为了提高移动式去中心化应用程序的可用性,主链的交易处理速度也需跟着提高。在?ternity,这是通过比特币-NG而实现的,比特币-NG是下一代共识协议,既保持系统去中心化,又实现更高的转账速度。

命名系统——集成命名系统也是?ternity的一部分。任何地址、智能合约或语言机都可以有一个人类可读的名称,而不是一串数字和字母,就像大多数其他区块链平台的情况一样。这提高了用户友好性,并帮助了智能合约开发人员。

集成的预言机——任何AE用户都可以成为或使用带有特殊交易的预言机。预言机报告真实世界的事件,为智能合约提供触发器。这提高了智能合同的效用,并充分发挥了它们的破坏性潜力。

链上治理——?ternity实现了一个另类的股息证明,允许AE代币以任何话题来正式表达自己的意见。任何AE用户都可以通过使用AE余额签署交易来提出问题或回答问题。代表也是可以的。?ternity治理系统类似动态民主的一种,实现区块链。投票结果向开发人员表明了社区对各种主题的看法,包括诸如区块大小、区块奖励或出块时间等基本系统变量。投票结果没有约束力,但具有正式指示性。

工作量证明挖矿——不像许多用权益证明搭建治理机制的新区块链平台,?ternity依赖于工作量证明。

结论

函数式编程语言正在进入区块链领域。它们的特性使它们能够独特地适用于分布式账本协议和智能合约的开发。区块链领域内外,一些技术最先进的项目转向函数式编程,以实现扩展性、稳定性和容错性。着眼于区块链技术的开发人员需要考虑探索函数式编程。它很可能是最实用的智能合同基础平台。

文章来源于 hackernoon,由头等仓(First.VIP)进行编译,转载请保留文末信息!

—-

编译者/作者:头等仓

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...