Filecoin 的节点

Filecoin节点的概念。尽管在Filecoin的Lotus实现中不同的节点类型没有在其他区块链网络中严格定义,但是不同类型的节点应实现不同的属性和功能。简而言之,基于节点提供的服务集对其进行定义。

在本节中,我们还将讨论与在Filecoin节点中存储系统文件有关的问题。请注意,在本节中,通过存储,我们不是指节点为在网络中进行挖掘而提交的存储,而是指它需要可用于密钥和IPLD数据的本地存储库。

在本节中,我们还将讨论网络接口以及节点之间如何查找和连接,如何使用libp2p交互和传播消息以及如何设置节点的时钟。

节点类型

Filecoin网络中的​​节点主要根据其提供的服务进行标识。因此,节点的类型取决于节点提供的服务。Filecoin网络中的​​一组基本服务包括:

  • 链验证
  • 仓储市场客户
  • 存储市场提供商
  • 检索市场客户
  • 检索市场提供者
  • 仓储采矿

参与Filecoin网络的任何节点都应至少提供链验证服务。根据节点在链验证之上提供的额外服务,它会获得相应的功能和节点类型“标签”。

可以使用主机中的存储库(目录)以一对一关系实现节点-即,一个存储库属于单个节点。也就是说,一台主机可以通过具有相应的存储库来实现多个Filecoin节点。

Filecoin实现可以支持以下子系统或节点类型:

  • 链验证器节点:这是节点加入Filecoin网络所需的最低功能。除非实现以下所述的客户端节点功能,否则这种类型的节点无法在网络中发挥积极作用。链验证器节点首次加入网络时必须同步链(ChainSync),以达成当前共识。从那时起,该节点必须不断获取链中的任何附加内容(即,接收最新的块)并验证它们是否达到共识状态。
  • 客户端节点:这种类型的节点建立在Chain Verifier节点之上,并且必须由Filecoin网络上构建的任何应用程序来实现。可以将其视为基于Filecoin的应用程序(例如交易所或分散存储应用程序)的主要基础结构节点(至少就与区块链的交互而言)。该节点应实现存储市场和检索市场客户服务。客户端节点应与存储和检索市场进行交互,并能够通过数据传输模块进行数据传输。
  • Retrieval Miner Node(检索矿工节点):此节点类型扩展了Chain Verifier节点以添加检索矿工功能,即参与了检索市场。这样,此节点类型需要实现检索市场提供者服务,并能够通过数据传输模块进行数据传输。
  • Storage Miner Node:这种类型的节点必须实现验证,创建和添加块以扩展区块链所需的所有必需功能。它应实施链验证,存储挖掘和存储市场提供商服务,并能够通过数据传输模块进行数据传输。

节点接口

可以在此处找到Node接口的Lotus实现 。

链验证器节点

type ChainVerifierNode interface {
  FilecoinNode

  systems.Blockchain
}

可以在此处找到Chain Verifier Node的Lotus实现 。

客户端节点

type ClientNode struct {
  FilecoinNode

  systems.Blockchain
  markets.StorageMarketClient
  markets.RetrievalMarketClient
  markets.DataTransfers
}

客户端节点的Lotus实现可以在这里找到 。

存储矿工节点

type StorageMinerNode interface {
  FilecoinNode

  systems.Blockchain
  systems.Mining
  markets.StorageMarketProvider
  markets.DataTransfers
}

可以在此处找到Storage Miner Node的Lotus实现 。

检索矿工节点

type RetrievalMinerNode interface {
  FilecoinNode

  blockchain.Blockchain
  markets.RetrievalMarketProvider
  markets.DataTransfers
}

中继节点

type RelayerNode interface {
  FilecoinNode

  blockchain.MessagePool
}

节点配置

可以在此处找到Filecoin Node配置值的Lotus实现 。

节点存储库

Filecoin节点存储库只是系统和链数据的本地存储。它是任何功能性Filecoin节点需要在本地存储以便正确运行的数据的抽象。

该存储库可供节点的系统和子系统访问,并且可以从节点的存储区分开FileStore

该存储库存储节点的密钥,有状态对象的IPLD数据结构以及节点配置设置。

FileStore存储库的Lotus实现可以在这里找到 。

密钥库

Key Store是任何完整Filecoin节点中的基本抽象,用于存储与给定矿工的地址(请参阅下面的实际定义)和不同的工作程序(矿工应该选择运行多个工作程序)关联的密钥对。

节点安全性在很大程度上取决于保持这些密钥的安全性。为此,我们强烈建议:1)将密钥与所有子系统分开,2)根据其他子系统的要求使用单独的密钥存储来签署请求,以及3)保留未用作冷库中挖掘的那些密钥。

Filecoin存储矿工依赖三个主要组成部分:

  • 在调用registerMiner()Storage Power Consensus子系统后,将存储矿工参与者地址唯一地分配给给定的存储矿工参与者地址。实际上,存储矿工本身没有地址,而是由与其绑定的参与者的地址来标识的。这是给定存储矿工的唯一标识符,其电源和其他密钥将与之关联。该actor value指定一个已经创建的矿工演员的地址。
  • 所有者密钥对由矿工在注册之前提供,并且其公钥与矿工地址相关。所有者密钥对可用于管理矿工和提取资金。
  • 工人密钥对是与存储矿工参与者地址关联的公共密钥。可由矿工选择和更改。辅助密钥对用于签名块,也可以用于签名其他消息。鉴于它是可验证随机函数的一部分,它必须是BLS密钥对 。

多个存储矿工参与者可以共享一个所有者公共密钥,也可以共享一个工人公共密钥。

Storage Miner Actor中指定了更改链上工作程序密钥对(即与存储矿工actor关联的工作人员Key)的过程 。请注意,这是一个两步过程。首先,矿工通过向链发送消息来进行更改。然后,矿工在随机回溯时间之后确认密钥更改。最后,在额外的随机回溯时间之后,矿工将开始使用新密钥对块进行签名。存在此延迟是为了防止自适应密钥选择攻击。

密钥安全在Filecoin中至关重要,每个区块链中的密钥也是如此。无法安全地存储和使用密钥或将私钥暴露给对手可能会导致对手有权使用矿工的资金。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值