原创: 殷国超 超侃区块链
前几日跟一炒币朋友闲聊起AE项目是使用Erlang语言开发的,当我发出“爱郎”这个音时,朋友先是一愣然后哈哈大笑起来,说怎么起了这么个山寨老土的名字。
我一时竟无言以对。
于是就有了本篇文章,我决定搜集材料简单介绍一下Erlang语言,介绍一下AE和Erlang语言背后Erlang Solutions之间的联系。
Erlang语言
Erlang语言是一种面向并发的函数式编程语言,问世于1987年,由瑞典电信设备制造商爱立信所辖的CS-Lab开发,创始人为Joe Armstrong,1998年开源版本发布。Joe Armstrong 研发Erlang语言的初衷就是用来更好的满足电信行业大规模实时高并发的需求。Erlang的并发主要依赖于多进程来实现,进程之间用消息来进行交互,不共享任何数据,而且单一进程的故障不会引起系统崩溃,容错性能强。我甚至还买了下面这本书来看,虽然看不大懂。扉页上创始人Joe Armstrong的一段话给人印象很深:
“这个世界是并行的。如果希望将程序的行为设计得与真实世界物体的行为相一致,那么程序就应该有并发结构。使用专门为并发应用设计的语言,开发将变得极为简便。Erlang程序模拟了人类如何思考,如何交互。”
前两章给我印象最深的是变量只能单次赋值,函数式编程语言中,“=”符号不再是一个赋值操作符,而是一个模式匹配的操作符了。
运用Erlang语言开发的应用中,最有名的应该是Facebook旗下的WhatsApp,亿万用户同时在线,很典型的高并发场景。
还有一个旗舰产品,就是爱立信AXD301电信系统,实现了“9个9”的可靠性,“9个9”代表系统能够达到99.9999999%的可靠性,即运行10亿秒(约30年)才会有1秒钟的宕机时间。现在这个系统的设计者Ulf
Wiger也在AE团队中。
2018年,在Erlang生态系统召开的Code BEAM Stockholm 会议上(以前称为 Erlang
用户大会),思科的 Johan Bevemyr 宣布他们每年都会售出 200 万台运行 Erlang 应用程序的设备,这意味着 90% 的互联网流量都是通过
Erlang 控制的路由器和交换机进行的。
国内使用Erlang开发的有阿里云的mysql云平台,以及一些电信、银行、游戏等高并发行业应用。
Erlang从构思阶段,就把并行放在了中心位置,可以说Erlang天生为并发而来。Erlang具备很多适应现代网络服务需求的特性,包括:大规模并发性、分布式、软实时性、热代码升级、可扩展性、健壮性等等,这些特性跟区块链项目去中心化、分布式的特点非常吻合。
可以说AE项目选择用Erlang语言开发是很明智的。
Erlang Solutions公司简介
我一直想找一句话来很好的介绍Erlang Solutions,那就是:Erlang Solutions就是Erlang语言的圣殿。Erlang Solutions对Erlang语言的地位就像Google公司对Go语言一样。
这个圣殿里聚集了Erlang语言最顶级的专家,有Erlang语言的创始人Joe Armstrong、联合创始人Robert Virding、CTO Ulf Wiger等等超过100名,遍布于伦敦、斯德哥尔摩、克拉科夫、布达佩斯、柏林、旧金山、西雅图和布宜诺斯艾利斯等世界各地。
这个圣殿专注于各种产品、现场/远程咨询、开发支持、代码审查和培训等。
这个圣殿服务于从初创企业到财富100强企业,投资组合中有超过300个客户。
这个圣殿与WhatsApp、Bet365和AOL合作,Facebook很牛,也是要跟Erlang Solutions交咨询费的。
这个圣殿跟各传统行业、跟各互联网行业巨头联系紧密,具备庞大的行业资源。
在Erlang语言世界里,Erlang Solutions就是最牛逼的所在。不相信?你自己去官网上看:www.erlang-solutions.com。
AE和Erlang Solutions
2018年1月,AE宣布与Erlang Solutions合作,双方致力于扩展分布式系统和点对点网络,并将区块链技术推广到大众市场。
详见: æternity Partners with Erlang Solutions to Tackle Blockchain Scalability Issues
其实,Erlang Solutions的CTO Ulf Wiger早就在2017年年中开始为AE项目工作了,他就是负责写状态通道代码的那位大牛。 2018年8月,AE团队又官宣了Erlang语言联合初始人、Erlang Solutions高级系统架构师Robert Virding的加盟。Robert Virding加盟后主要负责AE Sophia语言的设计。
状态通道和Sophia语言都是AE项目的支柱,来自Erlang Solutions的两位大牛在AE项目中承担了极为重要的工作。
3月11日,AE团队和Erlang Solutions联合在克拉科夫举办了Erlang开发者见面会,如下图。
会上,COO Emin Mahrt首先介绍了AE区块链项目的基本情况,Nikita介绍了如何用函数式语言进行智能合约的编写,Ulf Wiger详细介绍了AE的状态通道,Thomas介绍了开发和测试的内容。见面会开得很成功,有啤酒喝。
详见:Photos: æternity’s Krakow Dev Meetup
AE团队现在已经囊括了包括Robert Virding, Ulf Wiger, John Hughes, Tobias Lindahl, Luca Favatella, Dimitar Ivanov, Tino Breddin等一众Erlang开发大牛,还有Thomas Arts,Hans Svensson, Ulf Norell,Sascha Hanse等各方面专家,技术团队中PhD(实打实的博士)就有6位。 这些顶级的计算机领域科学家加入AE团队辛辛苦苦码代码不仅仅是为了钱这么简单,他们根本就不缺钱花。如果说他们还有为了一些理念、一些理想加入AE区块链项目,我反正会信的。不要笑,不要拿国内一些骗子的德性来套在这些大牛身上。 说句题外话。AE团队现在开始起草Aeternity宣言,试图传达出项目所驱动的信念和价值观。写宣言的区块链项目在AE之前没遇上一个,发出的讨论视频中有成员多次发出“Change the World”声音,这是一种担当。前段时间有老师讲过理解的六个层次,最高一层就是“系统”,要把自身放在一个大系统中考虑做事情给周围这个世界带来什么意义。
AE这个项目,立意高远。 回到正题。AE和Erlang Solutions双方合作的深度和广度在区块链行业实属少见,对AE来说有了坚强的智力支撑和发展保障,对Erlang Solutions来说,AE项目成功是对Erlang语言的一种极好推介,一件双赢的好事。 我在GitHub上关注了Aeternity项目,项目方的每一次提交GitHub都会给我发邮件,虽然看不懂只能看字面意思。这帮Dev异常严谨,经常为了程序注释中的一个小小标点符号,都要来确认修正。 我不只一次的设想这样一个场景,好多大胡子、甚至白发苍苍的Erlang语言大牛坐在电脑前辛勤的为我敲着代码。真的是为我在敲代码,有些感动的。 选择Erlang语言是AE团队的明智之举,而和Erlang Solutions合作则是AE项目能够存活并不断发展的保证。我个人理解,对于AE这个项目来说,可能将来Erlang Solutions会比AE团队做出的贡献更大,这也是我敢于长期持仓AE的重要原因之一。