查看原文
其他

Filecoin网络v1.16.0升级说明

Filecoin Network Filecoin Network 2022-08-30


这是Lotus 的一个强制升级发布版本,它引入了Filecoin network v16(https://github.com/filecoin-project/community/discussions/74?sort=new#discussioncomment-2392151),代号是Skyr升级。Filecoin网络安排在epoch 1960320(时间是 2022-07-06T14:00:00Z)升级到v16版本。所有的节点运作者(包括存储提供者)必须在这个时间点前,升级到这个发布版本(或更新的版本)存储提供者必须升级他们的daemons、 miners 、market 和workers等组件。

 

在进行升级后,你的lotus节点将会以原子性的方式,从传统的虚拟机(依赖于go的spec-actor 合约)切换到Filecoin虚拟机FVM (使用基于Rust的内建actors合约)。

Skyr升级引入了如下的FIP改进提议、升级和漏洞修复,这些都在built-actors v8(https://github.com/filecoin-project/builtin-actors/releases/tag/v8.0.0)和ref-fvm v1.0.0(https://github.com/filecoin-project/ref-fvm/releases/tag/fvm%40v1.0.0)里实现了:


  • FIP-0030 引入FVM (https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0030.md)

  • FIP-0031 原子性地切换到不可编程的FVM虚拟机(https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md)

  • FIP-0032 针对不可编程的FVM的Gas Fee模型调整 (https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0032.md)

  • FIP-0027 Gas模型匹配不可编程的FVM虚拟机 (https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0027.md)

  • ProveReplicaUpdates方法漏洞修复 (https://github.com/filecoin-project/builtin-actors/pull/138)

  • SnarkPack新的证明版本(https://github.com/filecoin-project/builtin-actors/pull/474/commits/3027c365f516e1cba6f156d4fb9dbd8c893d5b62)


须知


Actor Code CIDs

就如FIP-0031structure of the code cid(https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0031.md#structure-of-code-cids)所述,系统actors的code CIDs将会是真的内容寻址方式。


对lotus用户来说,我们的改变对你的影响已经降到最低了。这意味着当你运行 lotus state get-actor 时,相应的CODE输出会是能代表该actor合约可执行代码的实际CID,跟随着会有以前出现过的那种合成ID,如fil/8/system。


这还意味着在将来,当actor合约代码改变时,相应的CID会随之改变,这时候就需要进行网络升级,让网络的参与者就系统actors该使用什么可执行代码的问题上,达成相应的共识。


Built-in actor bundles

随着网络引入FVM,它也从以GoLang 编写的spec-actor 切换到built-in actor(https://github.com/filecoin-project/builtin-actors),在这过程中后者会有一些可导入的bundles(importable bundles)(https://github.com/filecoin-project/builtin-actors#importable-bundle)。这意味着,如同filecoin proof参数一样,节点运作者需要根据网络版本,来获取相应的actor bundles,从而让节点保持运行。

 

为所有网络(mainnet, calibnet等)设置的bundles,已被包含到 lotus源代码树(build/actors/)里,并在构建时已经嵌入。根据你将要构建的网络版本,Lotus会在构建&升级的时候,对比build/builtin_actors_gen.go里的值,来验证bundle CIDs的正确性。你也可以运行lotus state actor-cids --network-version 16,来使用检查bundle manifest CID是否与bundle gen-ed值匹配。

 

使用v8.0.0 bundle的nv16网络版本,其 manifest CID 及 actor code CIDs的完整列表应为如下:

所有的bundles都可在 https://github.com/filecoin-project/builtin-actors/releases找到,因此你也可以手动下载这些bundles并放置到正确的路径里。

注意:使用定制的bundle会有与网络不同步的风险!


如下方式可获取Code CIDs:

  • api:StateActorCodeCIDs

  • cli: lotus state actor-cids

  • cli: lotus-shed cid inspect-bundle


执行追踪

对依赖于我们的lotus 执行追踪(execution trace )的开发者而言,你将需要使能 LOTUS_VM_ENABLE_TRACING 环境变量,来获取与之前完全一样的执行追踪信息。否则,Subcall 细节和DurationandGasCharges` 栏目将不会出现在新的 FVM trace追踪信息里。


Deal Proposal迁移

所有在元数据存储里使用非utf8字符串作为标签的deal proposals,将执行一个轻量迁移到新的格式,就如v1.1.1(https://github.com/filecoin-project/go-fil-markets/pull/721)所定义的。


其他

  • 在完整的daemon 节点上,资源管理器现在默认开启了。在其他节点上,也可以通过手动设置环境变量var LOTUS_RCMGR至1的方式手动开启。

  • Fix: drand: Filecoin epochs 轮次计算Filecoin epochs (filecoin-project/lotus#8606)


依赖升级

  • chore: deps: 升级到go-libp2p v0.19.4 (filecoin-project/lotus#8801)

  • github.com/filecoin-project/go-fil-markets (v1.20.1 -> v1.20.1-v16-2):

  • github.com/filecoin-project/go-legs (v0.3.7 -> v0.3.10):

  • github.com/filecoin-project/go-state-types (v0.1.8 -> v0.1.10):

  • github.com/filecoin-project/specs-storage (v0.2.4 -> v0.4.1):


注:Filecoin v16 Skyr升级会往主网上引入基于 WASM的 Filecoin虚拟机(FVM),它暂时是不可编程的。主网将会原子性地从当前的内置虚拟机切换到基于WASM的FVM参考架构。此外,会有一个新的gas模型被激活,能够配对实际的WASM执行开销。这次,暂时只有内置的actors会被支持。这个升级将标志着FVM虚拟机开发里程碑M1的完成。


点击“阅读原文”了解更多!

查看本期Filecoin Network公众号另外一篇文章了解近期有关Filecoin v16 Skyr升级的社区AMA问答内容!


如果您也对Filecoin感兴趣,欢迎了解更多内容:


  • 网站:https://filecoin.io

  • 中文社区论坛:

    https://github.com/filecoin-project/community-china/discussions

  • Slack频道:filecoin.io/slack/

  • Twitter: @Filecoin

  • 博客:https://filecoin.io/zh-cn/blog/

  • GitHub: https://github.com/filecoin-project

  • Filecoin技术文档:https://docs.filecoin.io/build/

  • Filecoin规范:

    https://spec.filecoin.io/ 

  • Filecoin区块浏览器:

    https://filscan.io/#/home

  • 关注Filecoin技术进展:https://github.com/filecoin-project

  • 加入Filecoin社区论坛:https://github.com/filecoin-project/community/discussions

  • 在主网上进行存储:

    https://docs.filecoin.io/

扫码关注我们

微信号|Filecoin-Official



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存