查看原文
其他

Filecoin主网智能合约初建,从VM到FVM!FVM虚拟机的重大意义;实现以太坊与主网的跨链桥;IPLD的重要性;创建CID

Filecoin主网智能合约初建,从VM到FVM!FVM虚拟机的重大意义;实现以太坊与主网的跨链桥;IPLD的重要性;创建哈希链接(我们将其视为内容ID(CID))所做的所有繁重工作



一、主网智能合约沙盘初建,从VM到FVM!


在10月27日的万向峰会上,胡安的主旨演讲中出现了FVM的身影。

一石激起千层浪,此次曝光让社区内对于FVM的讨论热度达到了顶峰。


VM就是虚拟机,简单来说就是智能合约的执行引擎。

因为在Filecoin这条公链上,所以我们把其称之为FVM。


而早已名声在外的EVM,其则是以太坊虚拟机,可以执行任意算法复杂度的代码。

这种基于堆栈的虚拟机,能够用于执行以太坊智能合约,它的存在也构成了以太坊的运行核心。


在不同的公链中,VM的功能侧重不同。

以太坊主开发,所以它能够最大程度上扩展算法,实现编程语言。



那么FVM将会承担什么样的角色呢?


10月23日,在协议实验室的Blog中,就详细的阐述了未来对于FVM的构想。

FVM的概念首次提出是在FIP0013中。

根据传统虚拟机启发设计FVM,其架构可以在基础层以隔离的方式实现多种运行。

未来在运行模型上,正在进行的复杂计算具有自我修复机制,同时可以保证地址透明以及消息同时运行。



这种基于WASM核心的多核虚拟机也将实现与EVM的兼容性!

实现以太坊与主网的跨链桥,从而使更多有意思的玩儿法和项目争相涌现。

在实现兼容的数据层上,FVM将成为IPLD数据模型的计算工具。

即将推出的IPLD语言会展示参与者接口,在IPFS节点上执行计算,不直接与主网相连。

最后,FVM的目标是使用户在链上部署自己的智能合约,执行链上计算,从而提高layer1的功能性!


可以设想:

未来在FVM下,存储提供者存储数据-用户直接发放激励这个流程是可以直接链上实现的,这对于主网的实际落地应用弥足轻重。

FVM应用还远不止于此,其可以陆续或者一次解锁以下成就:



  • 为通证化的数据经济增加砝码;

  • 链上完成数据复制工作,减少存储提供者与用户间的数据转移成本;

  • 为layer2提供基于共识的协议和设施,实现跨链和端对端的验证与可追溯;

  • 带来更智能的存储和检索市场,并使计算与存储可同时进行。


当然,目前FVM的发展还处于伊始阶段,未来在社区共建下,会逐步延展开更广泛的实用性场景。


重磅里程碑 胡安:Filecoin将发布虚拟机,实现智能合约功能!每秒万亿次交易处理能力,打造全球互联网建设工程!生态应用大爆发

【官方】宣布Filecoin 虚拟机 (FVM);回顾:庆祝主网升空一周年;朝着面向所有人的全球、分散、安全和弹性存储的愿景迈进



早前:

Vitalik:以太坊2.0可以实现每秒10万笔交易

本文链接:https://www.8btc.com/article/6664845


比特币的交易速度约为每秒 7 笔交易




二、什么是IPLD?


大多数人已经知道IPFS是什么以及它在分布式数据存储方面为普通开发人员提供了什么。然而,关于这个革命性的系统,IPFS并不是人们应该了解的唯一东西。在IPFS之下是一个称为IPLD的系统,它负责把数据存储在链上并创建哈希链接(我们将其视为内容ID(CID))所做的所有繁重工作。


但什么是IPLD?为什么它在IPFS宏大的计划中很重要?了解IPLD将使您对IPFS的工作原理以及通过IPFS扩展当前用户可用的数据结构所需的方法有独特的见解。




星际关联数据(IPLD)和IPFS


从最基本的形式来看,IPLD是构建IPFS的数据层。它创建了一系列数据链接,但也允许用户通过可以存储在IPFS上的简单数据结构自己创建这些链接。您可以将IPFS视为IPLD的区块存储——通过IPLD发送到IPFS的数据保存在链上,用户会收到一个CID来访问该数据。


当有人在IPFS上存储文件时,该文件被分成几个块,存储在不同的区块中。为了重建整个文件,图形将每部分内容连接在一起,目录指向单个数据片段,这与 C++等旧编码语言中的指针不同。内容ID是生成的哈希值,允许用户与IPFS交互并恢复他们的数据。IPLD对这些散列进行解码,以便用户可以访问他们的数据。在许多方面,IPLD的功能很像开发人员的老朋友Git,因为它使用一种类似的方法来构建那些被称为Merkle DAG的链接散列。



Git和Merkle DAG


通常,当创建一个散列时,它仅指数据移动的一个方向。例如,人们无法及时找到哈希不存在的地方。Git使用Merkle DAG创建特定时间点的“快照”,允许用户在需要时回滚数据。Merkle DAG是Git的重要组成部分,但它也是像 IPLD这样的链接系统中的宝贵工具。


Git是一个完全独立的系统——其中生成的哈希值只能在其中解码。

IPLD更雄心勃勃,旨在解码它接触到的任何散列。

但是,要使其成为一个可行的系统,必须有一种方法来告诉IPLD如何解释该散列以获取底层数据。这就是多哈希和多编解码器的用武之地。系统找出每个散列的最佳方式是什么?当然,可以让哈希告诉系统它需要什么来解码它。



一个复杂的数据表示系统


大多数开发人员都熟悉简单的数据表示系统,如JSON或CBOR。在这两种情况下,都可以使用这些系统来表示和检索多个数据结构。然而,这些简单的数据表示系统都不支持链接。很明显,IPLD不可能使用这些简单的系统,因为链路是IPLD系统的核心。


那么,IPLD如何处理这种缺乏复杂性的问题呢?用户实际上可以使用这些简单系统的扩展版本来存储数据。JSON-DAG允许存储典型的JSON序列化数据,但也支持可与IPLD一起使用的链接。JSON-CBOR允许更大的灵活性。CBOR 是一种二进制存储系统,使其快速高效。Filecoin在其区块链中使用CBOR-DAG,因为它的效率高而且可以处理比JSON更多的数据类型。



使用IPLD进行编码和解码


将数据存储在链上似乎轻而易举,但系统如何解码它进入组件数据结构的哈希?IPLD使用底层数据模型,其中包含大多数开发人员可以立即识别的形式,例如字符串、布尔值、整数、浮点数等。


IPLD的系统使用两层方法对这些数据结构进行编码。主要的Protobuf格式 (DAG-PB) 是用于呈现命名链接和二进制blob的专用格式。辅助的Protobuf格式(称为UnixFS)派生有关文件的元数据。CID可以包含与不同系统相关的多个散列和多个编解码器。对于IPLD来说,通过这种多任务、多编解码器构建一个多格式系统是必要的。



将技术扩展到新领域


IPLD只是数据结构的最新迭代。数据结构已经存在并且已经使用了很长一段时间。看看Haskell和Scala等系统,它们处理数据结构的方式与IPLD的处理方式相似之处显而易见。IPLD采用了这些系统的开创性技术,并将其转换为分布式格式。


这些隔离系统与IPLD之间的区别在于,IPLD允许分布式存储及其与IPFS的底层链接。这些数据结构管理范式一直存在并演变为可扩展——这是IPLD价值主张的核心特征。


通过IPLD备份IPFS,开发人员可以访问一个强大的分布式数据存储系统,该系统可以处理多种自描述格式。灵活性和可扩展性形成了强大的组合,为开发人员提供了一个工具,他们可以使用该工具来推动楔入式Web3.0 系统的开发。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存