首页 > Filecoin > 正文

IPFS进阶 | Filecoin 规范文档(二)

星际视界  2019-09-06  IPFS/Filecoin栏目  


未来将不断更新FILecoin网络协议的详细说明,官方正在编写Fielcoin的规范说明。星际视界将持续翻译整理,并通过连载的方式,提供给中国研究者交流参考。

  Filecoin网络

Filecoin网络使用libp2p构建块、传输和协议以及网络协议中概述的一些其他Filecoin特定协议构建

一、必需的协议

每个完整节点都必须支持以下libp2p协议

1、gossipsub(数据公告

2、比特交换

3、Filecoin特定协议:

Hello Handshake

存储订单

区块同步

二、传输、流和加密

节点之间的连接是端到端加密和认证的,因此每个节点都PeerID与之关联。

Filecoin协议通过单个连接作为多个流运行。任何时候两个节点之间只应存在一个连接,必须使用该连接中的多个流来交换不同的协议。如果配置正确,通常从libp2p堆栈中处理。

我们文档中没有对特定节点提供的传输和多路复用功能做出任何假设,但它必须至少能够通过secio传输通过复杂通道进行响应和通信。

鼓励实施者提供和试验更多的协议和传输,只要仍然满足上述ee2e,认证和多路复用的要求。特别是作者鼓励将TLS1.3和QUIC作为libp2p协议/传输层进行研究。

1、建立联系

当Filecoin节点连接到网络时,它可以一次连接到多个节点。当一个新节点连接时,必须首先HelloMessage通过hello-handshake协议进行访问。只有在发送该消息之后才能打开其他流。如果节点收到HelloMessage带有创世区块的节点,它不支持,则必须立即关闭与该节点的整个连接。

如果节点通过该握手了解更新的块,则应使用该新信息来同步其链。

2、同步

每当节点获知新节点时,BlockHead它应该尝试导入块 - 让它HelloMessage通过块或pubsub协议。为此,它可以通过bitswap获取该块的祖先,直到它完全被捕获为止。在此上下文中导入是指确认块有效的节点,如验证和本地存储中所述。此模式称为“同步”。在“同步”期间,同一节点可能不会挖掘块。

  

三、建立网络

每个节点都应该旨在建立一组与网络的稳定连接,以便及时了解最新的变化和阻止传播 - 也就是同步 - 以及参与网络的过程 - 例如挖矿

为了做到这一点,节点必须在启动时“自举”。最简单的说,引导可以被认为是安全的网络连接。它必须使新节点能够获得大部分网络电源正在挖掘的最新头/链,并且必须是:

强大 - 能够在对抗网络中这样做(只要诚实的节点构成网络的大部分)。

一致 - 能够可靠地获得规范链(即使在我们的初始对等集中存在较差的延迟或状态丢失)。

特定的自举方法和启发式方法 - 或者它们的混合 - 留给了节点实现,但是我们提供了一些关于如何做到这一点以及应该考虑哪些方面的示例思路,例如依赖于新的节点和新连接,以确保节点连接到网络的可靠且有代表性的片段

1、可信的bootnodes

与许多其他网络一样,可信实体 - 例如Filecoin基金会,大型交易所,社区中的优秀参与者等,可能会发布一组可以连接的引导节点以建立网络连接。

请记住,因为这些可能很容易被DoS攻击,

a、大量不同的实体应该预先发货,但一次只能尝试少数。

b、他们可能在建立后很快就放弃连接(并禁止在短时间内对等)以便为更多节点服务。因此,您希望确保发送发现请求以了解有关通过引导节点的更多对等方以使节点连接到该节点。

节点不应该一次尝试连接超过10个引导节点。并且应该尽可能快地使其节点集多样化。

2、先前已知的节点

通常优选的是,实现保持对可靠对等体的永久跟踪并且尝试在重新启动时连接到它们,这可以是先前建立的连接的简单列表或列出的列出的排名声誉列表。

3、发现同等的请求

此时,规范并未决定任何特定的对等体发现机制,而是将其留给实现来决定它们想要提供哪些。然而,期望所有引导节点提供某种形式的对等发现机制并且在连接信息旁边发布该信息。

  

无论是BRAHMS还是通过KADEMLIA-DHT的随机的问题,任何节点自举都应该尝试为对等点发现建立流,并且可能不会因为它们的对等体拒绝给定的协议流而失败。

另一方面,尝试建立不支持的对等发现协议,不得本身导致断开连接,因为可能会尝试多个协议。但是,任何协议只能在同一连接上尝试过一次。

四、保持稳定的网络

网络拓扑的许多方面都假定Filecoin有一定程度的活跃度。因此,为了使其最有效地工作,我们的目标是建立一个整体稳定的网络,这仍然允许新节点加入网络而不会中断。

为了实现这一点,每个节点都应该以“未来的请求有用性”为目标,作为一般规则,如果某个节点违反must规则,任何知道该节点的对等方完全有权在没有进一步警告的情况下删除与该节点的任何连接。

如果它发现它们继续冒犯,它也可能会记录这些违法行为,禁止同伴再次连接。这种禁令可能会以递增的顺序强加于对等IP,IP 端口或最终IP本身。必须记住,IP地址仍然会轮换,因此每个实现必须添加最大超时。

如果禁止它们,同时也可以无限期禁止PeerID。

1、优化同行的实用性

管理健康对等集的更复杂的系统是通过优化该对等体对节点的有用性。在该系统中,节点跟踪所有传入消息及其与其提供给它们的值相关的成本,并将它们记录为任何特定节点提供给它的值 - 称为“信誉”。这些计算还可以考虑通过的时间或者另一个节点是否必须知道特定消息的无用性。在这个系统中发送无用的消息不被理解为严重违规,而是作为不友好的行为并且可以被记录为这样。因此,通过对等集之间的有用性创建排名。

一个例子是,在我们之前将它转发给它们之后,从节点连续接收pubsub消息。这不是一个故障,好像他们不应该这样做,我们不知道这是因为错误的实现还是因为网络延迟排队他们的消息。但是,我们仍然认为这是不友好的,每次这种情况都会从他们的名声中扣除,因为它对我们没用。

  

节点尝试始终保持一定数量的连接(“插槽”)到网络 - 我们建议在现成的系统上使用25-50。每当新节点连接时,它可以检查其先前存储的信誉或分配默认值,如果该信誉高于当前连接的最低节点,则可以替换该连接(从而丢弃最低质量的连接)或以其他方式拒绝接受连接。在此系统中,节点可能也只记录声誉的强烈降低,但即使强烈违规也不会直接断开与对等体的连接,因为节点可能仍然比其他节点更有用。最好是保持连接到糟糕的网络而不是没有网络。但是,这并不能使节点仍然无法遵守规范本身,它不应该转发所述违规行为,否则它的连接可能仍会被删除。

我们还建议定期检查排名并删除并清除最低10%的插槽,为传入连接留出5%开放,并通过连接到可通过对等点发现找到的其他节点填充其他5%。

所有这些都为该节点创建了最有用的网络连接的本地视图。声誉可以永久存储,并在重新启动之间可用,因此也提供了一个整洁的引导启动列表。

《Filecoin规范文档》

IPFS进阶 | Filecoin 规范文档(一)

  

版权信息
作者:青山
来源:星际视界
您可能想了解的区块链知识

关于我们

联系我们

作者进驻

手机版

Copyright © 2013 比特巴 www.btb8.com
始建于2013年,提供比特币 区块链及数字货币新闻、技术教程、测评、项目周报、人物等资讯
本页面提供的是IPFS教程资讯,星际文件系统IPFS(Filecoin)目标是为了补充甚至是取代目前统治互联网的超文本传输协议(HTTP)。