后·冯诺依曼时代计算机体系结构革新很可能最先由RChain带来
cnboy2008
发表于 2022-11-14 19:59:42
186
0
0
可扩展性难题的根源在哪?/ H7 T# }+ e# ]
尽管编程语言越来越多, 但它们都走进了同一个死胡同 – “λ演算” 。-- 包括C++、C#、Java、Scala、Haskell、Python、Erlang、Golang等等,基本上只要你能叫出名字的编程语言,都源于“λ演算” 。2 h7 g+ ~" O. B0 S5 L
, C( w- ?6 Y6 h: u
λ演算(Lambda-Calculus)可以被视为最基本的编程语言。它最早是由Alonzo Church(图灵的博导)在20世纪30年代引入,之后的Church–Turing thesis证明了λ演算与图灵机是等价的。随后的50年代,以随机存储器为特征、通过纸带输入的冯诺依曼计算机的面世,λ演算有了用武之地。在输入指令的时候,为了避免重复劳动复用某个功能,将这个功能的指令打包成一条纸带。每当需要用到这个功能时就输入这条纸带,这条纸带就可以视为λ演算中的函数(function),它将一组指令打包后允许重复地调用。即使发展到今天,虽没有了纸带,但本质上并没有任何改变 – 基于“λ演算”的语言的特征就是对函数调用的聚集。3 E& _& }5 I/ l$ P
λ演算和冯诺依曼计算机相辅相成,奠定了当今信息时代的辉煌成就。但是单一计算节点总是存在容量瓶颈,为了提高系统的整体容量,必须让多台计算机组成一个整体协同工作。# m2 S% L- F1 i0 h! }$ K6 z5 X
而可扩展性难题的根源就在于目前主流的冯诺依曼体系架构,因为它是不可组合的; 计算机与计算机之间的边界对于λ演算并不是透明的。
即,两台冯诺依曼计算机加在一起还是两台独立的计算机。这种隔阂对于程序来说是不可忽视的,也就导致了前文中提到的难题。9 \# ^. u/ j" I6 T0 E0 T" |( S0 Q
根本性的解决之道8 h; O' ?, v6 u0 H: r
既然根源在于缺乏可组合性(Compositionality),那么根本性的解决之道呼之欲出。; x5 \( a3 X! X
λ演算从上世纪创立后并没有停止发展,在它的基础上逐渐发展出了以Rho演算(Rho-Calculus)和ϕ演算(Phi-Calculus)为代表的高阶演算(Higher Order Calculus)。其中Rho演算最为接近实用,它已经被成功地应用到了微软BizTalk服务中。从Rho演算衍生出的Rholang编程语言以及RhoVM虚拟机已经发布了0.6版本。6 D) B% x# s, b- i# G- E% h' l7 W, }
RhoVM虚拟出基于Rho演算的计算机–RhoMachine,而Rholang就运行在RhoMachine中。RhoVM虽然运行于冯诺依曼计算机之上,却和冯诺依曼计算机有本质的区别–它虚拟出的RhoMachine是可组合的!
3 O- e5 V5 R+ w+ ]5 F2 y; y
多台RhoMachine可以组成一台RhoMachine,这对于Rholang程序来说是完全透明的。从程序的视角来看,只有一台RhoMachine,这台RhoMachine可能由多台RhoMachine组成,但是程序并不关心,这样RhoMachine的总体容量不再受限于单个物理节点,同时程序在设计和运维上也不需要为特定场景针对性地制定方案。- J% D' M, ]& `) V% j
想知道Rho演算为什么具有可组合性?最直观的方式是从Rholang切入理解它的工作方式。《初始Rholang》和《元组空间》这两篇文章从原理上解释了可组合性的缘由。
Rholang设计为一种通用的编程语言,而RChain区块链项目只是它实践的第一个项目–搭建一台可以无限扩展的超级计算机。因此可以说Rho演算的征途是星辰大海,它的愿景是一劳永逸地从根本上解决冯诺依曼体系带来的弊端。
后·冯诺依曼
后·冯诺依曼时代已经悄悄来临,这是一片荒芜之地,也是一片可以大展拳脚的“蓝海”。可扩展性难题只是冯诺依曼计算机被诟病的众多缺点之一。Rho演算带来的不仅仅是可组合性一个特性,它还有其它许多方面的优势。+ {! W' K0 p% x* c5 y
8 ^- c# n9 X+ J8 j: O% M b8 b
RChain通过Rho演算的无限扩展能力解决区块链的瓶颈,通过特有的名字空间技术实现状态分片,集Casper TFG(CBC)共识、形式化验证等诸多亮点,极有可能成为后·冯诺依曼时代的开创者。
成为第一个吐槽的人