IPFS与HTTP:如何推进互联网再次进化


  • administrators

    0_1547448421359_Filecoin灏忓浘_鐢绘澘 1 鍓湰 20.jpg


    星际文件系统(IPFS)是在分布式网络上运行的协议。IPFS允许以显着改进广泛使用的超文本传输协议(HTTP)的方式,存储和共享文件。

    --

    在本文中,我们将研究使用HTTP链接网站和资源的传统方法,与IPFS提供的方法之间的区别。功能和实用性的好处是巨大的。通过这种比较,我们阐明了通过分散交换(DEX)或非监管钱包,在分布式网络(如比特币)中运行与传统银行系统等集中式系统之间的差异。

    --

    为全球互联网铺平道路的HTTP协议,是由Tim Berners-Leep于1989年至1991年间,在瑞士的欧洲核研究组织(CERN)工作期间开发的。HTTP允许人们使用静态地址访问网站或文件例如:https://mywebsite.com/myfile.pdf , 而不是服务器的IP地址。如果我们将其与现有加密货币进行比较,则类似于使用比特币的别名而不是长64字符钱包地址。见图片以供参考。

    0_1547448473654_6b3b3c60-b26d-4a5e-9a13-9aba255b785a-image.png

    --

    尽管HTTP一直是推动互联网向全球扩展的催化剂,但它确实有其缺点。


    现有网络的问题:集中化

    --
    让我们使用一个常见的场景进行说明,你所在的网站上有PDF文档的链接。大多数情况下,该文件位于单个Web服务器上。当你或任何其他用户单击该链接时,你将被定向到一个文件。

    --

    最终用户不知道文件是否已被篡改或修改。如果文件被移动或删除,该文件也可能无法访问 - 每个人都在某个阶段以“404”错误的形式体验过。此外,主机可以决定关闭服务器或限制其访问。简而言之,你有一个集中的单点故障来源。

    --

    2014年6月,有人发表了一篇论文,给出了不同的观点。该报告“探讨了linkrot在学术和法律引用中的普遍性”,并在此过程中发现:

    • “......哈佛法律评论和其他期刊中超过70%的网址,以及美国最高法院意见中50%的网址,都没有链接到最初引用的信息。”

    --

    虽然此示例与美国有关,但你可以想象在全球范围内可能出现的问题,即更新、修改或删除网站/域名。值得强调的是,华盛顿邮报上的一篇文章称“今天网页的平均寿命为100天”。

    --

    集中式网络或系统 - 如:银行和数据中心 - 必须通过信任、依赖和授权中间人来引入风险。他们容易遭受监视、黑客攻击和监管。这就是为什么像Facebook和谷歌这样能够负担得起的大公司,试图通过在全球建立自己的数据中心,来减轻一些风险。正如TechCrunch在以当前形式讨论互联网时所提到的:

    • “......一个缓慢,昂贵的互联网,掠夺性的最后一英里航空公司(至少在美国)的成本更高......它不仅缓慢而且昂贵,而且不可靠。如果HTTP传输中的一个链接因任何原因而中断,则整个传输中断...“

    IPFS简介:分布式网络如何使互联网再次分散

    0_1547448543014_62a719b8-6f60-4689-b2e9-fbf3bfe79b56-image.png

    --
    IPFS通过消除对数据中心和集中式服务器的需求,改变了我们与网站和在线资源(如文件和媒体)交互的方式。您可以使用其唯一指纹(例如QmdWhyocdN9kNVnH37qjuyLDjBcRX5W45guqsJxDFg6TLv),而不是传统的集中式原始URL格式(mywebsite.com/myfile.pdf)来搜索和访问内容。

    --

    IPFS协议允许你从物理上最接近的节点访问内容。这样做可以节省带宽,提高下载速度,同时消除重复的可能性。这是一个完全分布式的网络,类似于比特币和许多其他分散的加密货币。TechCrunch 评论:

    • “我们使用内容寻址,因此内容可以与原始服务器分离,而是可以永久存储。这意味着内容可以非常靠近用户存储和提供,甚至可能来自同一房间的计算机。内容寻址也允许我们验证数据,因为其他主机可能不受信任。“

    --

    IPFS和HTTP可以直接与法定货币 - 美元、欧元 - 与加密货币(如比特币)之间的差异进行比较。使用比特币,只要你拥有私钥,只要你有互联网连接,就可以从地球上任何地方的、任何非监管钱包中获取你的Token。该网络使用个人私钥授予访问帐户的权限。通过法定货币,依赖银行为您提供访问权限。如果你丢失了银行卡,则必须等待银行通过向你发送另一张银行卡,给你访问权限。此外,银行是集中的,可以通过监管直接入侵或控制。在比特币网络中,你基本上需要关闭互联网以停止网络。

    --

    集中、封闭的系统阻碍了进步和创新。它们可以引入分散的开放系统中不存在的风险。分布式网络 - 例如IPFS和比特币 - 使我们能够在不再需要中介的情况下克服这些风险。接受这种创新是很自然的,因为它符合我们的组织和交换的集体方法。集权化对我们社会造成的破坏 - 我们彼此联系的方式 - 超过了它可能带来的好处。我们为什么要相信一个在我们不再需要时一次又一次失败的系统?当我们可以选择退出时。


    【往期文章】

    IPFS最新动态-24

    为什么数字Token是新互联网的基础?

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


    识别二维码进入IPFS社群

    0_1547448753288_ebce6da4-dee6-4641-9a3d-2568d1ca684a-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.