你竟是个这样的链!!!Filecoin架构拆解 | 开发者专区系列03

此前,我们连续出来了两篇关于file coin测试网络节点部署的指引:

开发者专区系列01——如何搭建Filecoin测试网挖矿节点

有部分读者反馈,内容太硬,很难入口消化。同时,在于部分开发者同学交流时发现,有些人对file coin项目的整体架构理解不够。

今天就从“外科医生”的角度,给大家简单拆解一下Filecoin项目的整体架构设计,了解一下Filecoin究竟是个什么链。

Filecoin 的架构可以简单拆分成两个模块:一个去中心化存储市场,一个是区块链。

去中心化的存储市场

Filecoin 的 DSN 主要包含 4 个角色:

存储矿工: 类似传统的 http 网站中的服务器,他们存储数据,不过在 Filecoin 中,普通的家用主机也可以用来做存储矿工。

检索矿工: 检索矿工可以获取数据并将其提供给客户端,类似传统的 CDN

存储客户端: 想要存储数据的用户

检索客户端: 想要获取数据的用户

任何节点都可以同时扮演这四个角色,但也可以选择仅扮演其中某一个或者几个角色。

Filecoin 作为区块链

区块链是一个公开的分布式账本,不依赖中央权威机构,而是由成千上万个自由节点组成的网络,每个节点都参与网络并通过特定的共识协议来达成决策。 Filecoin 作为一条公链,它记录整个 DSN 网络中所有的交易订单,复制证明,时空证明等重要的交易凭证,所有这些数据不可篡改,作为用户和矿工维权的证明。

在共识协议上 Filecoin 采用的是 POS(Proof-of-Storage) 共识算法,注意这个并不是以太坊的 POS(Proof of Stake),前者是基于存储证明,后者是基于权益证明。 这也说明作为 Filecoin 矿工,如果你的存储能力越强,你挖到区块的概率就会越高。

值得一提的是,Filecoin 主链的架构跟以太坊设计的很相似,Filecoin 中的 message 大致相当于以太坊交易,而 Filecoin actor 与以太坊智能合约类似。 甚至还引入了以太坊中 Gas 这个概念。

这里可能有同学对 Filecoin 中的 message 和 actor 有点懵逼,这里简单解释一下。其实你可以把 message 理解成一条信息,比如 A 向 B 转一笔账, 然后 Filecoin 就往区块链上记录一条 message, 就像以太坊上发送一笔交易(send a transaction) 一样。

Actor 比较难解释,我们先看 Filecoin 项目中源码是怎么定义 actor 的:

代码注释写的很清楚,它其实就是整个区块链系统中涉及到的实体的一个抽象,学过面向对象编程的同学可以把它理解成一个基类,就像 Java 中的 Object, 它是所有其他实体的父类。这些实体包括 Accounts(账户), Contracts(智能合约)等。

Actor 定义一些基础字段:

Code: 待执行的智能合约代码

Head: 目前本人没有完全明白 Head 的作用,估计是用于通用的内存读写

Nonce: 这个跟以太坊一样,用来对抗重放攻击

Balance: 账户余额

从 Actor 的数据结构我们可以看出,合约账户也是有余额的,也就是说我们也可以往合约中转入 FIL 代币, 这个跟以太坊是一模一样,所以预测 Filecoin 的智能合约功能也是比较强大的,开发者可以基于它开发强大的第三方去中心化存储的 DAPP。

所以,除了挖矿,众多Filecoin项目关注者的注意力其实可以更广一些。未来基于Filecoin这条链,在订单检索、内容分发,内容检索等领域都有开发应用的机会。(似乎发现了一夜暴富……)

如果本文让你对Filecoin项目的理解更深入、更全面,欢迎关注分享。

你可能感兴趣的:(挖矿——开发者)