我们为什么在aeternity中使用Erlang/OTP


ae1.png

Aeternity技术系列文章中的第一篇。作者是Michal Zajda 。

我很高兴开始写aeternity区块链实现的技术和工程相关的系列文章。

我们的技术栈是相当统一的,它主要使用Erlang /OTP 语言实现。本文要说的就是这种语言。

Erlang/OTP

根据我在Erlang和区块链项目中的经验,可以说Erlang项目的演变和区块链的演变是相符的,这是一个从个人桌面电脑到全球规模扩张的旅程。

Erlang/OTP在起初我们用脚本进行操作的时候是非常卓越的。它让我们可以利用多核心CPU的优势,提供了简单工具让我们可以创建分布式系统。

下一步要做的是标准化,在发布过程中实现可移植性和可靠性,Erlang/ OTP 有一个主要的工具可对实现这个目标有帮助,它就是Rebar v3,这是一个由社区和OTP(可视为Erlang的标准库)开发的工具集。

优势

那么我们从中能获得哪些优势?

1.    能够以清晰、健壮的方式组织代码、代码库和依赖关系。它的代码的开发和独立于依赖性的,而且它优化的一切以快速创建汇编。
2.    它是一个部署代码的好方式。OTP发布版创造了一个自包含工具。它包含了Erlang虚拟机运行环境、代码、依赖性和配置。这距离在任何系统中一键部署区块链节点仅一步之遥。我们在专门的机器上只需编译一次虚拟机,就可以签署并发布它。
3.    Erlang虚拟机和一个操作系统交互的最佳方式。这个发布版(以OTP方式实现后)有一套脚本来启动、停止、粘合等。这个系统以进程的方式运行,通常以专用OS 用户来运行。它没有附着于任何bash控制台,我们不需要一个屏幕。使用一个简单的附加脚本就能让我们和Erlang虚拟机直接交互,我们可以运行、检查、诊断这个运行着的系统。
4.    标准布局可以让测试框架、调试、状态代码分析更简单。
5.    这是管理配置的简单且健壮的方式:针对产品、测试、开发等。

在我们的案例中,我们使用了3个节点来进行测试。

Rebar之前:我们把这个项目拷贝到三个不同位置,并确保它是最新编译的,且重置过,没有区块和数据文件。这是个bug较多的过程。

最后我们使用又一个bash 脚本定义的专用配置来展开部署。

Rebar 之后:我们调用“make dev-release”,这在独立的构建文件夹中创建了三个发布版,而且他们都是新的。

然后我们调用“make dev-release-start”。三个节点使用在配置文件夹的子目录中的专用配置启动,它们很方便作为ansible 或 puppet来使用。

6.    最后,当所有东西都符合最新的Rebar时,我们就成为Erlang生态的一部分,它很容易包含依赖性项目或被包含进新事物中。

以上所列出的几方面展示了我们的目标和我们项目要完成的事情。

不要犹豫深入研究并贡献代码。

关于作者

Michal Zajda是一个有实际经验的工程师,在最近几年的最热门项目中有经验。他一直为拥有亿万用户的RTB市场、移动聊天应用和物联网系统负责。他将为aeternity与Erlang技术的合并提供支持,以完成最新现金的区块链。

原文:
https://blog.aeternity.com/why ... 2b614

2 个评论

看好AE
看好AE,我在wellet.aeternity.com里面贡献1.922个以太坊,获得1441.58541675个AE,怎么提币?

要回复文章请先登录注册