go-filecoin 0.3.2版本更新公告(中英对照)

go-filecoin 0.3.2 is released

Go-filecoin 0.3.2已经发布!

go-filecoin-0.3.2

We’re happy to announce go-filecoin 0.3.2. This release is a big step towards completing the filecoin storage protocol. It includes many changes to the miner actor builtin smart contract that will allow the network to securely account for verifiable storage power once fault handling is in place. Many less visible but high impact code and testing improvements ship with this release. 0.3.2 also includes a big UX improvement with the new and improved go-filecoin deals command for user friendly management of storage deals. Getting paid as a storage miner is now as simple as a single CLI call.

我们很高兴地通知各位,go-filecoin 0.3.2版本已经正式发布。这是完成Filecoin储存协议开发应用的一大步,本次版本更新包括对矿工这一角色内置智能合约的更新,这可以让网络在处理好错误后能更安全地验证网络储存能力。0.3.2版本附带了许多看起来不显眼但实际影响很大的代码,以及相关的测试和改进。本次更新还包括了一项对用户体验很大的改进,也提升了go-filecoin deals 命令对于用户储存交易管理的友好性。作为一个储存矿工获得挖矿奖励将更加简单,就像调用一个CLI一样。

 

Features 重点

🏇 Storage protocol nearing completeness 储存协议即将完工

Our number one goal is a network securely powered by verifiable storage. In order for this to work we need to penalize cheating miners who do not prove their storage on time. This release includes most of the groundwork needed, including fundamental data structures and encoding work for tracking sets of sectors, improved power tracking in the miner actor built-in smart contract, and charging fees for late storage proof (PoSt) submissions. Expect these changes to blossom into the complete fault reporting mechanism in the next release.

我们的首要目标是通过可验证的储存协议来推动网络的安全运行。为了达到这一目的,我们需要惩罚那些没有及时提供其储存证明的作弊矿工。本次更新包含了(储存协议的)大部分基础内容,包括记录(储存)扇区设置的基本数据结构与编码工具,(这将)增进矿工对记录内置智能合约的动力,并对延迟提交储存证明(PoSt)的行为收取费用。在下一个版本中这些变化将有望成为“完整的错误报告机制”(Complete Fault Reporting Mechanism,可参见Girhub上filecoin-project/specs中的Faults.md文件)

👪 Multiple sector sizes 多扇区大小设置

In order for the network to scale gracefully, different miners may choose from a variety of different sector sizes to put data in and prove over: smaller sectors for faster and more nimble storage; larger sectors for slower but efficient storage. This release includes all of the software updates we need to support multiple sector sizes in a single network; however, we plan to properly vet network conditions with much bigger sectors before enabling multiple sectors sizes in the user devnet. Expect 1 GiB sectors on the user devnet in the next release.

为了令网络能温和的拓展,各个矿工可以选择不同大小的扇区来存入数据并生成证明:较小的扇区可以更快,更灵活的储存数据;较大的扇区虽然更慢,但能更高效的储存(数据)。本次更新包含对单一网络进行多个扇区大小设置所必需的内容;然而,我们计划在用户测试网启动多扇区设置前,使用更大的扇区来测试网络相关设置。在下一次更新中,用户测试网将能使用1GiB大小的扇区。

🤝 Deal management and payments 交易管理与支付设置

Both clients and miners can now easily inspect the fine details of all storage deals they have entered into using go-filecoin deals list and go-filecoin deals show. Miners can get paid for honoring a deal by running go-filecoin deals redeem. Additionally this release ships some improvements in payment channel safety for correct arbitration of deal disputes we want down the road.

客户端和矿工可以通过 go-filecoin deals list go-filecoin deals show 指令来检视其输入的所有储存交易之详细信息。矿工能通过运行 go-filecoin deals redeem 来从撮合交易行为中获取报酬。此外,本次更新还改进了支付渠道的安全性,以便对将来(可能出现的)交易纠纷进行仲裁。

 

Performance and Reliability 性能与可靠性升级

🌳 Upgrade in place 相关升级已就位

This release drives home previous work on repo migrations. The go-filecoin-migrate tool (included in the go-filecoin source repo) is now complete. This release includes a proof of concept migration: upgrading on-disk chain metadata from JSON to the more compact CBOR. Landing this means we are confident that this major technical challenge is behind us, putting us one step closer to a reliable, persistent testnet.

0.3.2版本将推动Repo的迁移工作。 go-filecoin-migrate 工具(包括go-filecoin的repo)目前已开发完成,最新版本也包含了对概念证明(Proof of concept)的迁移:将磁盘上链的元数据从JSON升级到压缩性更好的CBOR。我们相信这代表我们已经克服了一个重大的技术难题。一个更加可靠而健康的测试网离我们更近了。

 

Refactors and Endeavors 重构与进展

📈Major testing improvements 改进主要测试(的内容)

Testing is the silent champion of reliability and development speed. This release includes tons of behind the scenes work improving the quality of existing unit and integration tests as well as adding new tests to existing code. Continued improvements to the FAST framework promise to further accelerate integration testing and devnet deployments.

测试(Testing)是网络可靠性与开发速度的幕后保障。本次更新囊括了大量的幕后工作,这些工作提高了现有单元和集成测试之质量,并对现有的代码添加了新的测试选项。我们也在持续改进FAST框架,以期加速集成测试与开发者网络的正式部署。

💳 Tech debt paydown 技术预期部分完成

This release is not playing around when it comes to paying off technical debt. Fundamental chain refactors include an improved immutable tipset type and tipset cache sharing are at the top of the list. A major refactor of the message handling system into inbox and outbox queues is also a notable improvement. Don’t forget about a consistent internal attoFIL token type, a sleek new miner deal acceptance codepath, sector builder reliability fixes… the list goes on. We are excited to be shipping higher quality software with each release so that we can move faster towards a robust mainnet.

新版本并没有完全完成技术预期。我们优先考虑的是对主链进行重构,主要涉及 改良不可变的tipset类型(improved immutable tipset type) 与 tipset缓存共享(tipset cache sharing) 两大方面。另一个显著的优化是对消息处理系统的发件与收件序列的改进。其他工作包括(设计了)一个内部一致的attoFIL token类型,一个更流畅的新矿工交易接受代码路径,扇区构建的可靠性修复等……我们很高兴能在新版本中提供更高质量的内容,这样我们也离强健的主网更近了一步。

 

Changelog 日志

A full list of all 207 PRs in this release, including many bugfixes not listed here, can be found on Github.

你可以在Github上找到本次更新的207个PR的完整列表,还包括了这里没列出的许多BUG的修复。

 

CLI diff 命令行更新

go-filecoin command change
deals list added 新增
deals redeem added 新增
deals show added 新增
miner pledge removed 移除
mining status added 新增
show block args changed 参数变更

Contributors 贡献者

❤️ Huge thank you to everyone that made this release possible! By alphabetical order, here are all the humans who contributed to this release:

非常感谢大家让0.3.2版本的发布成为可能,以下是本次更新的贡献者名单(按字母顺序排列):

🙌🏽 Want to contribute? 想要贡献点什么?

Would you like to contribute to the Filecoin project and don’t know how? Here are a few places you can get started:

如果您希望为Filecoin项目做出贡献却又不知道如何开始,你可以参考以下内容:

查阅贡献指南Contributing Guidelines

go-filecoinrust-fil-proofs 中查阅 good-first-issue 标签

加入Matrix/Slack社群,在#_fil-lobby 中介绍你自己并让我们知道你想为我们做些什么。

加入用户测试网

 

⁉️ Do you have questions? 有任何疑问?

The best place to ask your questions about go-filecoin, how it works, and what you can do with it is at discuss.filecoin.io. We are also available at the community chat on Matrix/Slack.

对于go-filecoin,以及IPFS如何工作,你可以通过它做什么等问题,在 discuss.filecoin.io 上提问是个不错的方式,你也可以在 Matrix/Slack 上提问题。

 

源网页:http://filecoin.io/blog/go-filecoin-0.3.2-release/

译者:CyanGlacier

日期:2019年7月20日

 

 

【翻译】Introduction of IPFS 概述IPFS

什么是IPFS?

欢迎!如果你是第一次听说“IPFS”,那你可来对地方了。这篇文章为你提供快速而又全面的IPFS概述,包括IPFS是什么?它如何工作?以及如何使用它?

IPFS是一个分布式系统,它用于储存和访问各类文件,网站,应用以及数据。

这句话是什么意思?举个栗子,假设你希望查询“土豚”这个动物的相关资料(去查一下就能知道这家伙的有趣之处,它可以在5分钟内挖出1米深的隧道),那么你也许会先访问维基百科上“土豚”词条的页面:

https://en.wikipedia.org/wiki/aardvark

当你在浏览器输入上述URL后,计算机会开始请求“土豚”的百科页面。计算机将访问维基百科用作服务器的电脑,这些电脑可能和你在一个国家内,也有可能在地球的另一边。

如果你通过IPFS来访问“土豚”的百科页面,那么你的计算机将会请求以下页面:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

IPFS系统知道如何通过文件的内容而非“地址”来寻找“土豚”的信息(以下简称“内容寻址”)。在IPFS-ified版本中,“土豚”的百科页面内容将通过URL中间的一串字符串来表现,访问此字符串即可获取相关页面,而不是向维基百科服务器中的部分电脑请求某一页面的内容。通过IPFS,你的计算机可以向全世界的其他计算机发出某一特定内容的“请求”,具有该内容的计算机会向你共享相关内容和页面,即:你可以从任何拥有“土豚”内容的人那里获得信息,而不是只从维基百科获取信息。

除此之外,当你使用IPFS系统时,你不仅仅只从其他人处下载文件,你的计算机在下载文件时也在协助此内容在网络流动。当你同城的朋友或陌生人也需要和你一样的内容时,他们可以通过IPFS系统从你这获取到相关文件。

IPFS不仅使网页的内容寻址成为可能,还能令任何计算机可储存的文件都能通过IPFS进行交换,不论这些文件是文档、电子邮件、MP3还是数据库。

 

所以为啥要这样做?

能够不经某一具体组织的管理,从许多地方下载所需要的文件,具有以下优势:

  • 网站离线带来的危害更少。如果某人攻击了维基百科的服务器,或者他们的工程师不小心犯了错导致服务器起火了,服务器将不得不关机停止访问。如果通过IPFS,你仍然可以从其他地方获维基百科的内容
  • 组织审查内容的难度更高。由于IPFS网络中的文件来自世界各地,所以组织或个体对内容的管制将会很难。2017年土耳其禁止人民访问维基百科,同年西班牙禁止国民访问加泰罗尼亚独立的网站,如果通过IPFS技术,上述封禁行为将有被阻止的可能。
  • 不论你的网络延迟多少都能快速的访问网络。如果你可以从附近的人那里获取文件,而不是从数百里外的服务器获取,那么你获取文件的速度可以显著提升(如果你有足够的资金和技术,CDN——内容分发网络或者多个数据中心也能做到如此效果,但IPFS的宗旨是令每一个人都有实现此效果的能力)。这个特点尤其适用于那些社区内局域网发达而广域网连接贫弱的地方。

上述最后一点也是IPFS命名的由来:星际文件系统(Inter-Planetary File System)!我们正在努力构建一个可以跨越行星(传输内容)的系统,这个目标虽然过于理想,但也让我们持续思考和工作,而且我们在追求上述目标时所创造的东西在邻里之间相当的好用。

 

IPFS上的链接永不改变

之前到“土豚”页面的链接还记得么?他看起来有点不一般:

Ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/aardvark.html

/ipfs之后的一堆字母为“内容标识符”,这也是IPFS能从数个地方获取内容的方法。

传统的URLs(统一资源定位符)和文件路径就像下面这样:

根据文件所在位置来标识文件(位置寻址)——即(定位)文件所在计算机的地址以及所在硬盘的位置。如果单一文件储存在复数个地方,比如储存在城镇中你邻居电脑和你朋友电脑里,位置寻址可能无法正常工作。

IPFS通过一个文件的内容来标识文件,而非基于位置寻址。之前链接的内容标识符是特定地址所有内容的加密哈希。这个哈希来源于唯一的内容,尽管他看起来很短(相对于原始内容——“土豚”的维基百科页面而言,字节数要短的多)。加密哈希还能让你验证所得到的内容是否是你想要的——恶意节点不能提供与哈希相匹配的内容。(如果您不了解“哈希”的概念,可以查阅“哈希概念指南”

        为什么我们要说“内容”而不是“文件”或“网页”?因为一个内容标识符可以指向许多不同类型的数据,例如一个小文件,一个大文件或者元数据(元数据是指“和数据有关的数据”,例如你会在访问特定图片的日期、地址或者文件大小时用到它)。因此,单个IPFS地址能反映元数据、一个文件的分片、一整个文件、目录、网页或者其他的内容。想知道更多有关内容可以访问“IPFS是怎样工作的”相关文档

由于IPFS中的文件地址是由文件内容本身来形成的,因此在IPFS中的“链接“无法被更改,比如:

  • 如果某一网页的文本已被改变,那么该网页的新版本将得到一个全新的不同于之前网页的地址(哈希)
  • 一个地址的内容无法移动到另一个地址。在如今的互联网中,公司可以将他们网页的内容重组并移动到其他页面,如将 http://mycompany.com/what_we_do 移动到 http://mycompany.com/services 。在IPFS中,你所拥有的旧有链接仍可以指向之前的内容。

当然,人们总想更新与改变某些内容,并且不希望每次都要为改变的内容发送新的链接。虽然在IPFS中上述内容可以做到,但解释起来则会跨越本指南所应当涉及的范围,您可以查看 IPNS 和 MFS(Mutable FileSystem可变文件系统)的概念文档,来了解如何在分布式系统中依据内容寻址来改变内容。

需要注意的是,IPFS在上述情况下都是具有可参与性与可协作性的,即如果没有人使用IPFS来令某个地址标识的内容供他人访问,那么也将无人能接收到这个内容。另一方面,只要有人对某个内容感兴趣,并将其分享在IPFS网络上,不论分享者是否是该内容的原作者,分享的内容都无法从IPFS中删除。

 

所有的一切,都是为了使用性(Possession)与参与性

虽然IPFS使用了很多复杂的技术,但其基本理念是“改变人和计算机网络之间的通信方式“。如今的万维网由 访问权 和 所有权 构成,即如果他人授予你访问的权限,你可以从他人处获得文件。IPFS则基于 使用性 和 参与性 ,令大多数用户拥有彼此的文件并参与到文件的分享和储存当中。

这意味着,IPFS的良好运转依赖于人们的积极参与。如果你通过自己的电脑在IPFS中分享文件,然后将自己的电脑关闭,其他用户也将不能从你这获取分享的文件。但如果你或者其他用户可以确保这些文件的副本储存在了多个已启动并运行着IPFS的电脑上,那么这些文件对需要文件的用户而言将更加的“可靠“,这在某种程度上是自动运行的:默认情况下,你的电脑在通过IPFS下载文件后,将会于限定时间内和他人共享你所下载的文件。你也可以通过将文件”固定“(Pinning),来使某个内容能长久的被访问和下载。被”固定“的文件将保存到你的计算机当中,同时也让你能在IPFS网络中对其进行操作(分享或下载等),直到你决定对其”解固(Unpin)“。(在“固定”概念文档中你能了解到更多)

现如今, 如果你想保证能在互联网上长期共享你的文件,你也许会使用Dropbox等付费文件共享服务。一部分用户已经与IPFS上提供类似的服务,名叫 Pinning service。不过由于IPFS已经内置了这类分享功能,你可以选择同你的朋友合作或机构间合作(比如图书馆和博物馆会进行合作)来共享彼此的文件。我们希望IPFS能成为一个底层工具,允许丰富的社区、业务还有合作组织共同组建一个比目前互联网更可靠,更健壮、更公平的分布式网络

下一步:

对IPFS感兴趣吗?你可以了解下“如何使用它”

 

源网页:Introduction of IPFS

翻译者:CyanGlacier