基于IPFS的分布式搜索引擎模式


  • administrators

    0_1545987736592_fb443d03-7607-484d-969b-4d11b018d2fb-image.png


    虽然有关搜索的中立性还有待探讨,但很明显,Google的中心化搜索引擎市场份额占比已超过90%,季度收益超过300亿美元,这远非理想。垄断不仅使得在经济上效率低效,而且还增加了审查和搜索出现偏差的可能。

    --

    如果要在分布式网络上查找信息,中心化的搜索引擎似乎有悖直觉,因为它违背了分布式网络的基本原则。这就是为什么我们要努力为Dweb.page项目,创建第一个功能齐全、完全分布式的搜索引擎的原因。

    0_1545987803382_d8629e07-4922-4d96-8f39-e9d98dbbcaf2-image.png
    ( Dweb.page的搜索引擎的初稿 )


    问题

    --
    尽管前面提到了当前搜索引擎的缺点,但我们认为由许多原因造成了改变现有模式的困难。因此,公开的分布式Dweb搜索引擎将面临一系列挑战:

    • 速度:分布式搜索引擎的速度,至少需要与当前的解决方案保持一样。另外基于分布式账本的的交易时间,同样存在很多问题。

    • 设备独立性:今天使用手机的人越来越多,分布式搜索引擎需要在没有任何中心化的后端PC和手机上运行。

    • 索引:如何收集、解析和存储数据,可以通过分布式方式快速准确地检索信息,同时确保人们不会创建虚假的搜索条目?

    • 实用性:如何确保分布式数据在被请求时仍然可用?特别是托管在本地的数据,只有在某些时间段中才可以实用。

    • 货币化的激励:如何为持续开发的存储工具提供资金?如果没有Token激励部分,那么在人才或合作/集成等方面,分布式解决方案很难与现有的中心化解决方案竞争。


    潜在的解决方案

    --
    为了确保交易的高速流畅,从一开始就很清楚,受两个性能问题之一限制的,分布式账本技术不是一种选择。因此,我们选择了IPFS和IOTA的组合。IPFS在文件共享和托管方面,能够实现快速分布式的明显作用;而IOTA则提供必要的分布式数据库层。这里需要注意的是,数据库仅使用IOTA技术的一部分,该技术独立于未来的研究工作,目前已经能够完全正常运行。

    --

    这种结合使我们能够提供适用于各种设备的工作体验。我们甚至在Internet Explorer中运行了一个原型。其独特之处在于:“我们可以提供完全分布式的体验,而无需额外安装任何软件;因为所有代码都在基于IPFS的一个简单、完全开源的网页中运行”。这也意味着最终的发行版,每个用户都将运行自己的搜索引擎。

    --

    受此分布式界面的启发,我们正在研究以下分布式搜索引擎的概念:

    0_1545987975903_cbbd6288-592e-44f5-956e-aa856706eca0-image.png
    (分布式和个性化的搜索引擎)

    --

    我们假设有两种类型的用户,我们称之为创作者和使用者(不过一个人可以同时扮演这两种角色)。

    --

    创作者通过Dweb.page在分布式网络上上传内容。如果希望其他人公开发现他们的内容,则由创作者签名的元数据将上传到IOTA上。通过这种方式,任何人都可以创建自己的元数据,而不是中心化的索引系统。最重要的是,这个签名系统不会出现,当下新闻报道中或在银行网站上伪造身份的可能。

    --

    当使用者第一次打开Dweb.page时,将开始在后台加载最新的元数据。基于该元数据,在本地运行的搜索引擎向用户呈现,初始且完全透明的搜索结果。用户的首次搜索将用于参考,自动订阅可能感兴趣的创作者,并以这种方式加载其他元数据。这可以被看作一个元数据的社交网络,其中使用者“跟随”创作者。该方法的优点:一方面,用户不必加载整个网络中的完整元数据;另一方面,用户可以轻松的阻止恶意元数据的提供者(例如:错误标记的内容)。此外,如果没有这种订阅者/限制模型,人们可能会向搜索引擎发送垃圾邮件。

    --

    另外,每个使用Dweb.page搜索引擎的人,都会生成有关内容的可用性的信息。这意味着,如果有人试图在分布式网络上下载某些不再可用的内容,这些信息将会传递给其他用户。如果有多个创作者告诉你文件不再可用,将会自动从搜索结果中删除该文件。如果只有一个创作者告诉你这个问题,那么该文件仍然会列在搜索结果中,以便你选择检查,前提是创作者不试图通过谎报其可用性来阻止您访问某些内容。

    --

    对于每个分布式项目来说,最后一个关键、具有挑战性、且经常被忽视的部分是:如何通过对分布式网络的存储提供者和开发人员,进行Token化激励。在没有任何中心化的分布式开源解决方案中,是存在规避任何激励模式的可能性的,这就是为什么许多分布式项目最终都有一个中心层。此外,基于捐赠的系统似乎不适用于订阅或基于长期的商业模式。这就是为什么我们正在考虑创建一个模式,使所有参与者受益,同时保持完全透明。

    下图说明了这种潜在解决方案的工作原理:

    0_1545988112772_423c70dc-856c-4b97-8d64-c5e29c3e9dd9-image.png
    (分布式搜索引擎的商业模式)

    --

    搜索市场非常适合广告投放,因为即使不放弃任何隐私,也可以根据搜索条件显示广告。然后可以拆分广告收入:一方面用于向创作者提供一定数量的免费存储;另一方面,支持开发人员进一步改进该工具。如果你想到谷歌免费为为每个人提供15 GB的云存储,每季度仍然能够赚取数十亿美元。你就会认为,上述模式可能会为创作者提供完全免费的网络!此外,需要特别说明的是,很大一部分用户并不反对广告本身,而是反对滥用他们的个人数据,关于这一问题,基于这种模式是不可能存在的。

    --

    当然,这个模式需要公开的在分布式账本上创建。如果是这种情况,所有参与者之间的正常契约可能在一开始就足够了,因为你可以非常容易的起诉恶意方(例如:如果资金被滥用而不是投入基础设施)。同时,该契约还应该包含从一开始就基于,投票系统随时间变化的选项。否则,这样的模式将无法适应未来的发展。例如:存储价格可能变得非常便宜,以至于将钱用于其他更有意义的目的。这和系统的其他方面,例如:所提供的存储或广告的质量,可能难以集成到智能合约中。然而,在后续的阶段,这种设置应该被完全自动化的智能契约所取代。

    --

    本文呈现了我们目前研究观点,但它并不是一个完整的产品。我们相信,只有从一开始公开透明,接受所有人的反馈和贡献,才能实现这一愿景。


    【往期文章】

    --

    本文由David Hawig发表于国外博客,经由Filecoin中国社区翻译整理。


    识别二维码进入IPFS社群

    0_1545988400931_41fe51c5-0ca0-4e38-9151-6beaa7e1a12b-image.png


Log in to reply
 

转让域名

This domain for sale!

Email:filapp@protonmail.com

Twitter:

https://twitter.com/RalapXStartUp

Telegram:

https://t.me/bigdog403
  • X

    当前版本
    开发网 go--filecoin--0.5.7(alphanet)

    开发网运行状况
    0.5 版本的 user-devnet 自上线以来跌宕起伏,十分“精彩”

    0.5.6版本上线以来,连续遭受与重量计算方式有关的攻击多达10余次,采用的重量攻击方式主要有两种:

    #3502: long-range fork attack - 长程分叉攻击:此攻击手法利用0.5.6及以前版本中重量计算方式的缺陷,通过分叉增加个人分叉链的重量进行攻击,此攻击手法在重量算法改进后将不再有效;

    #3523: 同一高度重复出块攻击:此攻击手法利用共识惩罚机制的不完善进行攻击。在惩罚机制中,如果一个矿工在同一高度出多余一个区块,将被判处死刑,即没收全部抵押,取消算力,终止此矿工的永久挖矿资格。在0.5的当前版本中,此惩罚机制还未实现;

    #3502的攻击具有重量上限:总重量不能突破高度的 110 倍,但利用 #3523 的缺陷进行攻击完全没有上限,几乎可以无限增加重量;

    在0.5.6版本运行不正常的情况,Filecoin团队推出0.5.7版本,但仅仅改变了重量算法(针对#3502),未对#3523采取任何应对措施

    0.5.7版本于10月10日正式推出,版本推出的主要目的是(1)修复#3502,(2)测试升级

    0.5.7版本推出之后,攻击再现,目前网络基本上停滞,主要原因是因为长程攻击和多区块攻击出击,导致整个网络需要大量的时间进行同步,而且采用多区块攻击者区块高度远低于长程攻击攻击者。

    网络目前显示最高区块高度为 43260;

    但,最重区块高度为 23276(同一高度重复出块多达500个);

    尽管如此,从43000以上高度的区块来看,新的重量算法已经生效;并且,升级也取得成功。同时可以肯定的是,网络停滞与新代码没有关系。

    当前需要解决的主要问题:

    对#3523的攻击进行惩罚,代码要尽快出台;

    必须要有手段抑制长程攻击(新的重量算法下也许不再需要,但是0.5.7的版本中包含新老算法);

    ProvingPeriod 更新的问题;

    Filecoin开发日志
    网络升级以及alphanet 权重函数 (#3536)

    (本周重点Issue)过去一周,多个矿工利用 issue#3523 和issue#3502 对网络进行长程攻击。
    所谓长程攻击,就是采用私自挖矿的方式,在私有网络内把网络的高度回退到较早的一个高度,重新挖矿。与此同时,在每一个高度利用前述漏洞增加网络的重量,当私网内网络的重量超越主网后,将私网中节点加入主网,从而用私网的链数据替换主网的链数据,实现长程攻击。这种攻击方式在比特币的PoW时代已经存在,只是比特币采用最长链规则,而filecoin采用最重链规则。

    为了应对这种攻击,官方迅速更新网络计算重量的算法。由于当前网络实现了升级功能,官方希望通过升级来实施权重函数的替换,因此这个issue不仅实现了新的权重函数(重构权重函数从根状态中读取数据,升级父块的权重校验方法),还包含了对网络升级的支持。另外,这个issue还引入了alphanet中临时的仲裁高度43000,并由 IsHeavier 函数来判断升级前后的处理。

    由于 issue#3523 尚未修复,攻击者很容易对网络实施长程攻击。尽管当前的开发网络包含了这个更新,但在网络升级的过程中,又遭到了一次更严重的攻击。所以,目前网络处于崩溃状态:部分节点处于升级后的43000+高度,部分节点处于升级前的23000+的高度。

    微信进群

    http://www.feirke.com/blog/65affd61671

    阅读更多
  • X

    本期周报我们一起回顾IPFS在2019年迄今为止所取得的成就。
    从重新组合我们的工作组和发布新版本这样的里程碑,到加入我们的许多了不起的(和新的)贡献者,以及今年剩余时间将会发生的事情,我们希望您能喜欢这个季度回顾。

    感谢成为我们社区一员的每一个伙伴,没有您,我们无法实现IPFS。

    正 文

    里程碑

    已上“星际飞船”的IPFS项目Q3优先级和工作组
    在7月份,我们重新组合了项目工作组,包括Team Bifrost、包管理器等等!

    大量的项目发布

    js-ipfs 0.37.0和0.38.0发布
    0.37.0版本提供了一个新的构造函数、更好的DNSLink支持和委托路由,0.38.0版本增加了对垃圾收集、Gossipsub和IPNS对“ipfs解析”的支持!

    js-libp2p 0.26.0发布
    8月初,js-libp2p也得到了Gossipsub的支持,并有望实现libp2p API。

    go-ipfs 0.4.22发布
    go-ipfs版本0.4.19、0.4.20和go-ipfs 0.4.21发布了非常多的关键回归,这些回归都是在这个最新的补丁版本中修复的。

    go-ipfs改进了IPFS的发布过程

    前面提到的回归需要对发布过程采用一种新的方法,在今年8月已经详细说明了这一点。新方法对5个阶段的流程增加了三个具体的更改。

    现在可以在浏览器中发布JS IPFS HTTP API客户端

    由于技术原因,浏览器中的HTTP API上的pubsub不受支持。但是一旦fetch API支持取消,支持js-ipfs的pubsub就到来了。

    IPFS桌面0.9发布

    9月初,IPFS桌面的最新版本0.9.2发布了,您现在可以浏览、在IPFS上使用npm、在系统中添加IPFS命令行工具等等。

    IPFS浏览器更新

    我们的目标是让多个浏览器实现完全的本地(和互操作)IPFS的支持。
    作为这一进展的一部分,我们已经与Firefox、Brave、Opera和其他浏览器进行了持续的合作。

    IPFS + ENS无处不在:引入EthDNS
    (技术实现上在Q4,但我们不得不分享)

    本月早些时候,EthDNS宣布,将传统的网络世界与新宇宙ENS-named连接起来,支持IPFS-backed分散的站点和dapp,通过古老但不可或缺的域名系统。

    IPFS Camp

    IPFS营是在第二季度举行的,但是很多令人惊奇的内容直到第三季度才开始出现。

    闪电会谈和Poster项目

    2019年IPFS Camp深潜会议的故事,是由一位DWeb历史研究员在遥远的未来所讲述的

    IPFS Camp核心课程视频

    IPFS Camp Sci-Fi Fair视频

    这些IPFS教程,看过吗

    管IPFS上的Slate文档, Temporal

    如何开始使用IPFS和Node,BetterProgramming

    使用IPFS分散化我们的网站,Henrique Dias

    在IPFS上构建一个零依赖的Notes应用程序,SimpleID

    以太坊网格中的IPFS入门,Ethereum Grid

    使用IPFS和Blockstack构建版本控制系统,Hackernoon

    使用IPFS、IPNS和DNSLink托管一个网站,SimpleAsWater

    阅读更多
  • X

    今天
    我们很高兴地宣布我们的第一个备用 Filecoin 实现
    lotus ( https://github.com/filecoin-project/lotus)

    几个月以来,我们一直在努力构建最初的实现—go-filecoin,同时还与其他团队合作构建 Filecoin 协议规范的其他多个实现。

    这项构建不会改变我们的测试网和主网的时间线,但是会使 Filecoin 主网更加安全和灵活。

    Lotus 是即将推出的众多实现中的第一个。具体来说,今天我们宣布:

    Lotus 代码库的开放

    Lotus 开发网的发布

    为什么要有多个实现?
    正如我们在其他地方提到的,构建一个区块链就像构建一个‘软件火箭’。我们正努力确保我们的协议和软件实施的安全性 -- 我们拥有内部的协议安全团队,并且正在执行内部实现的安全审核和外部安全审核等等。

    但是,无论我们为保护系统和各个节点付出多大的努力,始终都有可能某个实现的错误会出现并给网络带来非常不利的后果。

    拥有可在同一网络上交互操作的多个软件实现,可以大大降低这种风险。尽管每个实现都有自己的一些漏洞,但是所有实现都不太可能具有完全相同的安全问题 - 尤其是在这些实现不共享对于安全性至关重要的软件组件的情况下。

    因此,启动具有多种实现方式的加密货币网络可降低发生灾难性漏洞的可能性,这些漏洞可能会对整个 Filecoin 网络产生不利影响,甚至使整个Filecoin网络陷入瘫痪。

    多种实现方式还具有其他好处,例如可以增强与不同的开发者社区互动的能力以及探索不同实现架构的机会(这可能会提供不同的性能和其他优化)。

    自从以太坊推出了 Geth 和 Parity 以来,我们已经看到越来越多的加密网络采用多种软件实现来启动。由于多种实现对于网络安全性,弹性和社区参与非常重要,因此我们已定下目标:

    要在2020年3月Filecoin 主网上线时推出具有2种以上可交互操作的协议的实现。

    截止到今天,我们正在开发一系列 Filecoin 的实现 - go-filecoin、lotus 和其他即将正式推出的实现。我们正在寻找更多有才华的团队来构建 Filecoin 实现。

    更多Lotus信息

    Lotus是 Filecoin 协议规范的最简且具有实验性的实现,用 Go 语言编写。该代码库尚未完成功能,但是已经实现了几个核心 Filecoin 协议功能,包括:

    挖矿:矿工现在可以在 Lotus 开发网上开始挖矿并开始获得存储能力。Lotus 还实现了多种扇区大小,因此具有许多不同存储配置的矿工可以在网络上进行挖矿。Lotus 集成了 rust-fil-proofs,因此矿工可以按时提交时空证明,以免遭到削减。而且,存储挖矿功能是作为一个单独的模块实现的,因此高级矿工可以根据自己的特定硬件配置优化其挖矿过程。

    存储:存储客户可以与矿工建立交易,为矿工建立支付渠道,传输数据进行存储以及为正确存储其数据的矿工付费。

    检索:检索客户可以付费从存储矿工那里检索他们的数据(即检索v0)。

    还有更多功能,查看GitHub代码库(https://github.com/filecoin-project/lotus)。

    除了开放 lotus 代码库外,今天我们还宣布启动第一个公开 lotus 开发网络。

    设置 lotus 节点后,您可以连接到开发网并与其他节点一起开始存储数据或开始挖矿。更多详细信息,请阅读lotus入门:
    ( https://github.com/filecoin-project/website/blob/lotus-announcement/content-i18n/zh-cn/blog/announcing-lotus.md#lotus-入门 )

    一些非常重要的注意事项

    lotus 代码库仍然是 Filecoin 协议的最简且实验性的实现,从现在到我们计划在2019年12月11日发布的测试网之间它将快速发展。

    从现在到测试网启动,lotus 开发网将被多次重置。在2019年12月11日启动测试网之前不要期望网络稳定。

    我们计划在2020年3月启动具有 go-filecoin,lotus和至少一个其他实现的 Filecoin 主网络。

    lotus 开发网和 go-filecoin alphanet 当前不是同一网络。在 go-filecoin 和 lotus 节点可以交互操作之前,它们将继续是不同的网络。此次交互操作将在我们于2020年3月主网启动之前进行,但确切日期仍待定。

    Lotus 入门

    鼓励矿工、客户和开发者从今天开始尝试 lotus。我们希望您的参与将有助于我们在2019年12月11日启动测试网之前增强 lotus 代码库和网络的安全性。

    对于矿工和用户来说,现在主要有 4 种方法可以参与 lotus:

    在本地下载,安装和运行 lotus

    此处说明( https://github.com/filecoin-project/lotus#building )
    连接到 Lotus 开发网

    此处说明( https://github.com/filecoin-project/lotus#devnet )
    为 lotus 代码库做出贡献

    此处 ( https://github.com/filecoin-project/lotus/issues )有未解决的问题 (open issues)
    通过 lotus 开发网检测板 ( https://lotus-metrics.kittyhawk.wtf/ )探索网络活动

    具有探索精神的开发者可以开始探索 lotus RPC API,以开始在 lotus 开发网(最终是 testnet)上构建应用程序。请注意,在测试网之前,lotus 将持续发展变化,因此请做好应对变化的准备。

    在尝试所有这些步骤过程中,我们希望您能报告遇到的问题来帮助我们。发现问题有助于我们更快地实现安全目标,因此我们非常喜欢漏洞报告。您可以发布问题或浏览其他人在以下主题发布的内容:

    Lotus 帮助讨论论坛

    https://discuss.filecoin.io/c/lotus-help

    社区

    https://github.com/filecoin-project/community#chat 中的#fil-lotus 频道

    社区

    https://github.com/filecoin-project/community#chat 中的#fil-help 频道

    阅读更多
  • X

    It has come to my attention that storage clients wish to obtain the CommD and CommR associated with the sector into which the piece referenced in their storage deal has been sealed. The client can already use the query-deal command to obtain the CID of the commitSector message corresponding to that sector - but message wait doesn't show individual commitSector arguments - it just shows some string encoding of the concatenated arguments' bytes.
    I propose to augment the ProofInfo struct with CommR and CommD such that the storage client can query for their deal and, when available, see the replica and data commitments in the query-storage-deal command. Alternatively, the query-storage-deal code could get deal state from the miner and use the CommitmentMessage CID to look up CommR and CommD (on chain) - but this seems like more work than is really necessary.

    阅读更多

Looks like your connection to Filecoin.cn中国爱好者社区 was lost, please wait while we try to reconnect.