rust语言与Filecoin有何关系

星际导航
最近币圈聊天三句话里必离不开Filecoin ,虽然其主网还未上线,但是已经被多方人士称它是区块链3.0大时代的见证,可见Filecoin估值之高。

Filecoin 作为一个去中心化的存储网络,能将海量用户的闲散存储资源充分利用起来,从而构建一套超低成本的可靠存储系统。而Filecoin出现以前,在IPFS上存储数据是没有任何激励的,可以说Filecoin成为币圈最受追捧的新事物是大势所趋。

01 四个客户端亮相江湖

在今年3月份时,Filecoin官方发布了很重要的信息:

Filecoin协议又有了另外两个客户端实现:由ChainSafe团队用Rust开发的Forest和由Soramitsu团队用C++开发的Fuhon。至此Filecoin一共有了四个客户端:

1. 用Go语言开发的Go-filecoin;

2. 用Go语言开发的Lotus;

3. 用Rust语言开发的Forest;

4. 用C++语言开发的Fuhon。

四个客户端意味着有四条不同的路径都可以用来运行Filecoin系统,这也体现了Filecoin系统的去中心化理念。

四条路径使用不同语言,方法论各异,难度自然也不尽相同。

而根据区块链开发者Radoslaw Fabisiak 所言,区块链编程语言的难度排名如下:Solidity < Python < Javascript < Java / C# < C++ < Go < Rust。

官方给出了四条路径,四条赛道上各厂商如何利用好各自工具实现开挂,是一个投入产出比问题。四条路径中,如果使用Rust语言作为工具去优化官方代码,它的优化效率会让人拍手称奇,但很明显攻克它也非一日之功。

rust语言与Filecoin有何关系

02 Rust为什么难?难在哪里?

Rust语言其语法类似于C++语言,它的优势在于它是一种强类型语言(适用于大规模系统开发),并且是具有安全导向的,此外其效率与C++一样快。但是其存在的缺点便是:(1)非常难学,(2)处于发展初期,因此比较小众,所以相对其他语言而言相关完成的库也较少,因此开发者可能不得不从头写很多问题。

知乎上有一则帖子是“入门 Rust 时,大家对这个编程语言的感受是什么?”,下面留言的人基本都是在编程领域有一定工作经验的,但是即便有丰富编程背景的工程师们回复的帖子里几乎都清一色抱怨Rust难。

rust语言与Filecoin有何关系 rust语言与Filecoin有何关系 rust语言与Filecoin有何关系

加密矩阵认为传统有GC的编程语言,使用者不需太多考虑内存安全问题;无GC的c++则需要开发者自行维护内存,编译器不参与,但易引发内存安全问题。

而Rust难是因为变量有了生命周期、所有权概念,例如一些i32,i64,u32等这些类型名字,这些名字和普通的语言格格不入,从而在编译阶段保证了内存安全,这就要求开发者有更高的心智模型。

这就意味着Rust的学习成本十分高,知乎上有句话总结得很到位:“一个十几年的C++程序员入门学习Rust的时间成本不少于2个月”

目前人才市场上会rust语言的程序员相对较少,因此用人成本也比较高。这也就可以解释为什么目前在Filecoin领域选择Rust语言开发的团队较少。

而时间成本和人力成本如何布局,究其深层次是由企业价值观决定的,换句话说也是企业实力的一部分。

03 如果掌握Rust语言会占据先机吗?

目前区块链项目大多有Go和Rust两种语言开发,而Rust与Go两种语言比例大约在1:20。

如果项目方,为了安全考虑,那么会偏向于选择Rust语言,但这也意味着开发经费会加速燃烧。而使用Go语言开发,相对成本低,但随着项目的迭代,软件性能可能成为瓶颈。

Parity Technologies(Parity是一个以太坊节点客户端,该客户端用Rust语言编写,Parity Technologies 是他们公司的名称)的Dmitriy Kashitsyn对Rust语言这样表示:

使用Rust,是因为它让我们可以毫无畏惧地编写复杂的、性能卓越的软件,我们可以自由地试验。

Rust确保我们的程序没有未定义的行为、数据争用或任何内存安全问题。更不用说,Rust速度极快,写起来很有趣,易于阅读,基本上运行时间为零。

Parity的成功让我们有理由相信Rust本身的语言特性(安全、高性能、并发编程)与区块链的特性(分布式、加密、安全敏感)天生有相当大的重合性。

对于Filecoin项目来说,把与性能直接相关的证明部分由Rust实现,这样在保证性能的同时还能确保安全性。

下面是Linux内核(Linux是一种开源电脑操作系统内核,由C语言写成)在2018年一月到四月期间发现的bug:

rust语言与Filecoin有何关系

而对于Rust而言,上图右侧占比 51% 的部分,从语言层面就可以避免。

换句话说,如果用Rust语言开发,根本不存在上图右边这些问题。Rust中内嵌了形式化证明理论,不过仅限于对内存安全和并发。

Rust语言在内部用逻辑证明了目前的程序是正确的,相当于程序员的每一次编译,都有一组数学理论在为他提供证明服务。

所以如果掌握了Rust语言,每一步的编译都相当于踩在大地上——它会让你感到这一切是实在的,而这种踏实感会给开发者带来信心,从而更好推动项目前进。

可以说一个掌握Rust语言开发的团队确实会在一定程度上掌握着主动权。

对于目前最为火爆的Filecoin项目而言,以Rust作为底层语言的厂商团队不多。根据“二八定律”,如果选择好的优化工具在技术实力上占上风,比如Rust,是很有可能在时机到来时成为“二八定律”里的20%。

结 语

Filecoin挖矿还没有开始,一切都是未知数。

而对于Filecoin矿工来说,挖矿最重要的是看矿机厂商在技术上的实力,而这实力分为硬件实力和软件优化能力。

一个团队愿不愿意在底层技术上花时间和精力,愿不愿意从起步时就用业界最高标准作为搭建高楼的地基,这其实是企业最应该考核的地方。

加密矩阵恰好是一家兼具硬件实力和软件优化能力的团队。

Feilcoin主网上线在即,加密矩阵愿意成为矿工们最坚定的后备力量,一起实现双赢,以Rust这项稀缺技术助力助力各位矿工们成为“二八定律”里的20%。

版权声明:星际导航 发表于 2020-08-13 6:21:49。
转载请注明:rust语言与Filecoin有何关系 | IPFS导航 | IPFShub
广告也精彩

暂无评论

暂无评论...