diff --git a/404.html b/404.html index dc3c68ac6..aeec85bcb 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ gtag('config', 'G-SMSDTMGLTV'); - + -

404

There's nothing here.
+ - + diff --git a/_Footer.html b/_Footer.html index 7d51b4983..9d09ec7d5 100644 --- a/_Footer.html +++ b/_Footer.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

See something missing? Have tips to share? File an issue (opens new window), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)

- + diff --git a/about/index.html b/about/index.html index 27db9b34b..be808e637 100644 --- a/about/index.html +++ b/about/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# Mission, Vision, Value

# Contacts

# Resources

- + diff --git a/assets/js/12.8a98dc5d.js b/assets/js/12.675130ad.js similarity index 99% rename from assets/js/12.8a98dc5d.js rename to assets/js/12.675130ad.js index 3d3f85c1a..61a31904b 100644 --- a/assets/js/12.8a98dc5d.js +++ b/assets/js/12.675130ad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{328:function(e,s,n){e.exports=n.p+"assets/img/venus-gateway-system-design.993fdfcd.png"},428:function(e,s,n){"use strict";n.r(s);var t=n(17),o=Object(t.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"前言"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#前言"}},[e._v("#")]),e._v(" 前言")]),e._v(" "),t("p",[e._v("在同一条区块链上需要具有多个互操作的软件实现,每个实现都有自己的安全问题集,但是所有实现不尽相同,因此,启动具有多种实现方式的加密货币网络可降低发生灾难性错误的可能性,Venus 正是 Filecoin 的实现之一。")]),e._v(" "),t("p",[e._v("Venus 代指 Filecoin 的通用实现之一,venus 则代指 Venus 的组件之一。Venus 致力于帮助中小存储提供者能够更加简单的加入到 Filecoin 生态网络建设中。")]),e._v(" "),t("p",[e._v("目前 Venus 通过 venus、damocles、sophon-miner、venus-wallet、sophon-messager、sophon-auth、sophon-gateway 组件,已经实现了 Filecoin 分布式矿池的支持,未来,Venus 将持续完善自身,并共同推进开源的 Filecoin 开发与生态的发展。")]),e._v(" "),t("h2",{attrs:{id:"为什么我们要这样做"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么我们要这样做"}},[e._v("#")]),e._v(" 为什么我们要这样做")]),e._v(" "),t("p",[e._v("2020 年 6 月,Protocol Lab 发起了关于由社区后续维护 go-filecoin 的 RFP,IPFSForce 随后申请并获得了维护权。10 月,go-filecoin 更名为 Venus,我们继续推进对 Venus 项目的维护工作。")]),e._v(" "),t("p",[e._v("在重新保持维护之前,Venus 是一个严重缺乏维护的项目。协议和组件上,vm/mpool/chain/rpc 虽然都有了,但是全都存在不同程度的问题,我们用了三个多月的时间,逐渐修复很多协议层、代码层,、性能的问题,使得 Venus 完成了与 Lotus 的互操作,让使用 Venus 的节点可以正常的在网络上运行。后续我们又逐渐的让 Venus 支持了 Calibration、2k 网络。")]),e._v(" "),t("p",[e._v("完成以上工作后,我们着手于 Venus 的开发方向。")]),e._v(" "),t("p",[e._v("我们的设计是让 Venus 向矿池的发展角度去支持,最初的设计是从“如何扩展单一存储提供者”思考,这个方向存在理论上的可行性,但是最大的问题在于 Filecoin 独特的证明机制。因为 Filecoin 网络的存储提供者必须周期性的提交‘时空证明’,而为了生成证明,存储提供者必须读取一整个 partition 的数据,如果 sector 极其分散的分布到不同的地方,通过公网读取,则不是一个可执行的方案。")]),e._v(" "),t("p",[e._v("后来我们通过数次的设计与修改,最终产生了现在的方案,就是分布式矿池。分布式矿池并非体现在单一存储提供者,而是将分布式的概念体现在多存储提供者的管理,这更像一个存储提供者联合体。")]),e._v(" "),t("p",[e._v("Venus 分布式矿池在外部的体现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池;在出块的角度上,因为 Filecoin 按算力比例来计算出块机率,所以分散的计算和整体的计算的最终结果应该是相同:"),t("em",[t("strong",[e._v("n1/p+ n2/p+n3/p......= (n1+n2+n3+.....)/p")])]),e._v(",这在算法的基础上提供了理论基础。")]),e._v(" "),t("p",[e._v("在真实数据存储检索上,存储提供者可以通过 venus 统一入口接入网络或者自主接入。设计中,venus 会在获得存储提供者允许的条件下,按照数据的访问需求来选择合适的节点存储数据,使得数据更贴近真实的使用场景。")]),e._v(" "),t("ol",[t("li",[t("em",[t("strong",[e._v("数据存储")])]),e._v(":支持组件共享,存储会逐渐迁移到 MySQL,通过一些高可用的方案保证 Venus 的元数据安全。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("共享组件")])]),e._v(":支持高可用,保证服务的质量,减少存储提供者的时间成本与维护成本,这使得存储提供者能够更容易加入到矿池生态中。现在的挖矿活动专业性很强,而实现 Filecoin 利用闲散存储资源的梦想则不可避免需要降低参与门槛,才能吸引更多的参与者进来。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("聚集出块权")])]),e._v(":存储提供者能够将资源整合在一起,互相帮助打包消息,这样可以避免小存储提供者的消息无人打包的困境。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升 Filecoin 网络的吞吐量")])]),e._v(":如果同一高度存在多个区块,venus-miner 能够保证每个区块中的消息都是不同的,而如果各自出块,消息则很可能大量重复。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升消息的稳定性")])]),e._v(":挖矿活动中的消息可以和节点分开,由 venus-messager 来管理,venus-messager 会跟踪链的最新状态来设置一个相对合理的预估的 gas 参数,同时也支持用户自己设置一个消息参数。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升数据访问速度")])]),e._v(":目前的 Filecoin 网络更多的还是存储,但是作为一个存储服务,最终需要对外输出检索服务才能实现根本价值。如果有足够多的存储提供者使用 Venus,那么 Venus 在真实数据的处理上就有更多的可能,比如数据的分布,Venus 可以将数据分布到距离客户最近的一些存储提供者节点,这样可以提高客户的访问速度;比如一些公有数据可以把这些数据尽可能的分散到更多的节点上,保障在任意位置的访问都有效,这可以大大提升 IPFS 网络的效能,进一步实现 IPFS Web3.0 的梦想。")])]),e._v(" "),t("h2",{attrs:{id:"venus-如何工作"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus-如何工作"}},[e._v("#")]),e._v(" venus 如何工作")]),e._v(" "),t("p",[e._v("Venus 是 Filecoin 的通用实现之一,致力于分布式的集群架构及更简洁的职责划分。")]),e._v(" "),t("p",[e._v("Venus 分布式存储池在外部的呈现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池。")]),e._v(" "),t("h3",{attrs:{id:"venus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/filecoin-project/venus",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus"),t("OutboundLink")],1),e._v(" 类似 lotus-daemon,用于实现全节点。venus 接入 Filecoin 区块链网络,为 Venus 提供数据支持。可以把 venus 当作普通节点来使用,它具有区块链节点必备的所有功能,如 chain、mpool、wallet。venus 的接口和 lotus 基本兼容(如果存在不兼容的接口,欢迎发布 Issue),你可以在 venus 上创建私钥、查询资产、转账等等。在典型部署环境里,venus 仅仅提供基础链上数据查询服务,本身不保存私钥。slashfilter 所需要的区块数据,存储到数据库里,节点本身是无状态的,这样通过 nginx 反向代理后就可以实现 venus 节点的高可用。")]),e._v(" "),t("p",[e._v("venus 节点自身有一些区别与 lotus 的地方:")]),e._v(" "),t("ol",[t("li",[e._v("创建区块的接口中支持了外部签名(后续会向 Lotus 提 PR)")]),e._v(" "),t("li",[e._v("消息选择的接口支持同时选择多个批次的消息,用于多存储提供者出块时选择消息。")]),e._v(" "),t("li",[e._v("支持 sophon-auth 的的中心访问授权")])]),e._v(" "),t("p",[e._v("因此如果对 Venus/Lotus 混合部署感兴趣,需要使用我们维护的 "),t("a",{attrs:{href:"https://github.com/ipfs-force-community/lotus/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("lotus 兼容 venus 的项目"),t("OutboundLink")],1),e._v(",可自行 pick 代码编译。")]),e._v(" "),t("h3",{attrs:{id:"sophon-auth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[e._v("#")]),e._v(" sophon-auth")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-auth",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-auth"),t("OutboundLink")],1),e._v(" (原 venus-auth) 是用于授权的组件,在典型的部署环境下 sophon-auth 用于给 venus、sophon-miner、sophon-messager 提供授权服务,每个本地的节点访问共享组件都要经过授权,后续会在这个基础上进行功能扩充,做一些安全方面的控制,比如访问限流、黑名单。")]),e._v(" "),t("h3",{attrs:{id:"sophon-miner"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[e._v("#")]),e._v(" sophon-miner")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-miner",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-miner"),t("OutboundLink")],1),e._v(" (原 venus-miner) 的作用是聚集出块权,可以为接入链服务的多个集群执行出块逻辑。sophon-miner 有以下特点:")]),e._v(" "),t("ol",[t("li",[e._v("分离数据:由于生成区块的过程需要访问数据,并且存储提供者的 sealer 可能是异构的,但目前多数存储提供者会使用自己定制的代码,那么要实现联合挖矿就存在如何访问到这些数据的问题。通过隔断 sophon-miner 对存储组织方式的依赖,通过让证明在存储提供者侧完成,无论存储提供者的 sealer 如何组织存储,只要实现了"),t("strong",[e._v("ComputeProof")]),e._v("接口,sophon-miner 就可以通过这个接口来生成证明。")]),e._v(" "),t("li",[e._v("分离私钥:计算随机数及签名区块的过程中,所有涉及到私钥的操作都通过远程钱包的方式来访问,这样既无泄漏集群私钥,又能保证出块逻辑正常运行。")]),e._v(" "),t("li",[e._v("提高网络 TPS:当 sophon-miner 负责的存储提供者在一个周期获得多个(>1)出块权,sophon-miner 会尽量从消息池中选择不同的消息进行打包,这样一定程度上可以提升消息上链的速度,同时使该出块可能获得更多的小费奖励(Premium)。")]),e._v(" "),t("li",[e._v("收益稳定性:多存储提供者联合挖矿配套奖励池分配系统可以让小存储提供者每天都能获得区块奖励,也可以减少某些存储提供者偶发性出块错误造成的损失。")])]),e._v(" "),t("h3",{attrs:{id:"sophon-messager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[e._v("#")]),e._v(" sophon-messager")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-messager",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-messager"),t("OutboundLink")],1),e._v(" (原 venus-messager) 组件的目标是更好的帮助消息上链,并能够灵活的控制消息上链的时机,减少 gas 消耗,流量控制等。其中包括远程钱包管理、地址管理、消息管理。")]),e._v(" "),t("ol",[t("li",[e._v("地址管理:主要是管理 nonce 值,保证 nonce 值能够按照正确的顺序分配。")]),e._v(" "),t("li",[e._v("消息管理:消息管理分成三个部分,分别是“消息接收和保存”、“消息选择及推送”“消息上链状态的追踪”。")]),e._v(" "),t("li",[e._v("GasFee 管理:可以按地址分别设置 gasLimit 的系数和 maxFee。")])]),e._v(" "),t("p",[e._v("从功能性上来说:")]),e._v(" "),t("ol",[t("li",[e._v("远程钱包支持:一个 sophon-messager 支持多个钱包,分别管理自己的 message。")]),e._v(" "),t("li",[e._v("支持 sqlite 本地存储和 mysql 远程存储:存储更加安全稳定。")]),e._v(" "),t("li",[e._v("动态填充:根据 gas 和 push 策略,在链上发送消息时,需要填写 gas 相关参数和 nonce,以确保 gas 估算和其他设置有效。")]),e._v(" "),t("li",[e._v("维护消息状态:包括消息是否被链接和替换,保存执行结果。")]),e._v(" "),t("li",[e._v("多点消息传递(通过 Mpool API 推送到多个节点):确保消息在网络上传播。")]),e._v(" "),t("li",[e._v("灵活配置:包括 gas 估算、消息推送策略等。")])]),e._v(" "),t("h3",{attrs:{id:"venus-wallet"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/filecoin-project/venus-wallet",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus-wallet"),t("OutboundLink")],1),e._v(" 是一个远程钱包,协议上能够同时支持 lotus 和 venus。在典型的部署环境中,这个组件由存储提供者部署在本地,并通过一定的策略配置保证资产的安全。venus-wallet 有以下功能特点:")]),e._v(" "),t("ol",[t("li",[e._v("私钥管理模块:目前支持非对称算法 BLS 和 SECP 的私钥管理,能够生成随机私钥,并运用 aes128 对私钥进行对称加密存储,同时支持私钥对数据进行签名。")]),e._v(" "),t("li",[e._v("签名验证:每种签名类型都有对应验证策略,保证了签名方不能在签名类型上欺骗钱包。")]),e._v(" "),t("li",[e._v("签名策略模块:针对 Filecoin 的 Lotus 及 Venus 实现,对存在的数 10 种数据结构以及 message 数据结构中的 60 余种签名类型进行统一管理,按需配置各种组合方式绑定私钥签名规则,而后可以将数种不同的私钥签名规则组成一个整体,授权于外部组件使用。")])]),e._v(" "),t("h3",{attrs:{id:"droplet"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" droplet")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/droplet",target:"_blank",rel:"noopener noreferrer"}},[e._v("droplet"),t("OutboundLink")],1),e._v(" (原 venus-market) 是 Venus 系统中的市场组件。其愿景是打造 Filecoin 网络中分布式的存储和检索市场。目前已经实现了兼容 Lotus 协议的订单存储和检索,逐渐向着 droplet 服务多个集群的接单,对外提供统一的检索服务方向发展。可参见"),t("a",{attrs:{href:"https://github.com/filecoin-project/venus/blob/master/documentation/en/venus-market-design-roadmap.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("droplet 设计与路线图"),t("OutboundLink")],1)]),e._v(" "),t("h3",{attrs:{id:"sophon-gateway"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[e._v("#")]),e._v(" sophon-gateway")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-gateway",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-gateway"),t("OutboundLink")],1),e._v(" (原 venus-gateway) 是独立组件与链服务层的桥梁,用于简化部署并降低存储提供者访问的复杂性、增加存储提供者访问的安全性。独立组件启动时将其服务接口注册到 sophon-gateway,链服务组件需要时通过 sophon-gateway 请求对应集群的服务接口。")]),e._v(" "),t("ul",[t("li",[e._v("存储提供者不需要外部 IP 和曝露钱包服务;")]),e._v(" "),t("li",[e._v("存储池配置 SSL 证书后,集群与存储池的连接是安全的;")]),e._v(" "),t("li",[e._v("存储提供者可以简单地将多个客户端(钱包/证明)注册到存储池以获得高可用性。")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(328),alt:"sophon-gateway"}})]),e._v(" "),t("h3",{attrs:{id:"damocles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" damocles")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/damocles",target:"_blank",rel:"noopener noreferrer"}},[e._v("damocles"),t("OutboundLink")],1),e._v(" (原 venus-cluster) 是 Venus 推出的新版本扇区封装、算力维持组件,相对于原本的 venus-sealer,在任务调度、最大化系统资源方面有一定优势,其面向的用户受众也将有所不同。")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{328:function(e,s,n){e.exports=n.p+"assets/img/venus-gateway-system-design.993fdfcd.png"},427:function(e,s,n){"use strict";n.r(s);var t=n(17),o=Object(t.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"前言"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#前言"}},[e._v("#")]),e._v(" 前言")]),e._v(" "),t("p",[e._v("在同一条区块链上需要具有多个互操作的软件实现,每个实现都有自己的安全问题集,但是所有实现不尽相同,因此,启动具有多种实现方式的加密货币网络可降低发生灾难性错误的可能性,Venus 正是 Filecoin 的实现之一。")]),e._v(" "),t("p",[e._v("Venus 代指 Filecoin 的通用实现之一,venus 则代指 Venus 的组件之一。Venus 致力于帮助中小存储提供者能够更加简单的加入到 Filecoin 生态网络建设中。")]),e._v(" "),t("p",[e._v("目前 Venus 通过 venus、damocles、sophon-miner、venus-wallet、sophon-messager、sophon-auth、sophon-gateway 组件,已经实现了 Filecoin 分布式矿池的支持,未来,Venus 将持续完善自身,并共同推进开源的 Filecoin 开发与生态的发展。")]),e._v(" "),t("h2",{attrs:{id:"为什么我们要这样做"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么我们要这样做"}},[e._v("#")]),e._v(" 为什么我们要这样做")]),e._v(" "),t("p",[e._v("2020 年 6 月,Protocol Lab 发起了关于由社区后续维护 go-filecoin 的 RFP,IPFSForce 随后申请并获得了维护权。10 月,go-filecoin 更名为 Venus,我们继续推进对 Venus 项目的维护工作。")]),e._v(" "),t("p",[e._v("在重新保持维护之前,Venus 是一个严重缺乏维护的项目。协议和组件上,vm/mpool/chain/rpc 虽然都有了,但是全都存在不同程度的问题,我们用了三个多月的时间,逐渐修复很多协议层、代码层,、性能的问题,使得 Venus 完成了与 Lotus 的互操作,让使用 Venus 的节点可以正常的在网络上运行。后续我们又逐渐的让 Venus 支持了 Calibration、2k 网络。")]),e._v(" "),t("p",[e._v("完成以上工作后,我们着手于 Venus 的开发方向。")]),e._v(" "),t("p",[e._v("我们的设计是让 Venus 向矿池的发展角度去支持,最初的设计是从“如何扩展单一存储提供者”思考,这个方向存在理论上的可行性,但是最大的问题在于 Filecoin 独特的证明机制。因为 Filecoin 网络的存储提供者必须周期性的提交‘时空证明’,而为了生成证明,存储提供者必须读取一整个 partition 的数据,如果 sector 极其分散的分布到不同的地方,通过公网读取,则不是一个可执行的方案。")]),e._v(" "),t("p",[e._v("后来我们通过数次的设计与修改,最终产生了现在的方案,就是分布式矿池。分布式矿池并非体现在单一存储提供者,而是将分布式的概念体现在多存储提供者的管理,这更像一个存储提供者联合体。")]),e._v(" "),t("p",[e._v("Venus 分布式矿池在外部的体现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池;在出块的角度上,因为 Filecoin 按算力比例来计算出块机率,所以分散的计算和整体的计算的最终结果应该是相同:"),t("em",[t("strong",[e._v("n1/p+ n2/p+n3/p......= (n1+n2+n3+.....)/p")])]),e._v(",这在算法的基础上提供了理论基础。")]),e._v(" "),t("p",[e._v("在真实数据存储检索上,存储提供者可以通过 venus 统一入口接入网络或者自主接入。设计中,venus 会在获得存储提供者允许的条件下,按照数据的访问需求来选择合适的节点存储数据,使得数据更贴近真实的使用场景。")]),e._v(" "),t("ol",[t("li",[t("em",[t("strong",[e._v("数据存储")])]),e._v(":支持组件共享,存储会逐渐迁移到 MySQL,通过一些高可用的方案保证 Venus 的元数据安全。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("共享组件")])]),e._v(":支持高可用,保证服务的质量,减少存储提供者的时间成本与维护成本,这使得存储提供者能够更容易加入到矿池生态中。现在的挖矿活动专业性很强,而实现 Filecoin 利用闲散存储资源的梦想则不可避免需要降低参与门槛,才能吸引更多的参与者进来。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("聚集出块权")])]),e._v(":存储提供者能够将资源整合在一起,互相帮助打包消息,这样可以避免小存储提供者的消息无人打包的困境。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升 Filecoin 网络的吞吐量")])]),e._v(":如果同一高度存在多个区块,venus-miner 能够保证每个区块中的消息都是不同的,而如果各自出块,消息则很可能大量重复。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升消息的稳定性")])]),e._v(":挖矿活动中的消息可以和节点分开,由 venus-messager 来管理,venus-messager 会跟踪链的最新状态来设置一个相对合理的预估的 gas 参数,同时也支持用户自己设置一个消息参数。")]),e._v(" "),t("li",[t("em",[t("strong",[e._v("提升数据访问速度")])]),e._v(":目前的 Filecoin 网络更多的还是存储,但是作为一个存储服务,最终需要对外输出检索服务才能实现根本价值。如果有足够多的存储提供者使用 Venus,那么 Venus 在真实数据的处理上就有更多的可能,比如数据的分布,Venus 可以将数据分布到距离客户最近的一些存储提供者节点,这样可以提高客户的访问速度;比如一些公有数据可以把这些数据尽可能的分散到更多的节点上,保障在任意位置的访问都有效,这可以大大提升 IPFS 网络的效能,进一步实现 IPFS Web3.0 的梦想。")])]),e._v(" "),t("h2",{attrs:{id:"venus-如何工作"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus-如何工作"}},[e._v("#")]),e._v(" venus 如何工作")]),e._v(" "),t("p",[e._v("Venus 是 Filecoin 的通用实现之一,致力于分布式的集群架构及更简洁的职责划分。")]),e._v(" "),t("p",[e._v("Venus 分布式存储池在外部的呈现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池。")]),e._v(" "),t("h3",{attrs:{id:"venus"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/filecoin-project/venus",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus"),t("OutboundLink")],1),e._v(" 类似 lotus-daemon,用于实现全节点。venus 接入 Filecoin 区块链网络,为 Venus 提供数据支持。可以把 venus 当作普通节点来使用,它具有区块链节点必备的所有功能,如 chain、mpool、wallet。venus 的接口和 lotus 基本兼容(如果存在不兼容的接口,欢迎发布 Issue),你可以在 venus 上创建私钥、查询资产、转账等等。在典型部署环境里,venus 仅仅提供基础链上数据查询服务,本身不保存私钥。slashfilter 所需要的区块数据,存储到数据库里,节点本身是无状态的,这样通过 nginx 反向代理后就可以实现 venus 节点的高可用。")]),e._v(" "),t("p",[e._v("venus 节点自身有一些区别与 lotus 的地方:")]),e._v(" "),t("ol",[t("li",[e._v("创建区块的接口中支持了外部签名(后续会向 Lotus 提 PR)")]),e._v(" "),t("li",[e._v("消息选择的接口支持同时选择多个批次的消息,用于多存储提供者出块时选择消息。")]),e._v(" "),t("li",[e._v("支持 sophon-auth 的的中心访问授权")])]),e._v(" "),t("p",[e._v("因此如果对 Venus/Lotus 混合部署感兴趣,需要使用我们维护的 "),t("a",{attrs:{href:"https://github.com/ipfs-force-community/lotus/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("lotus 兼容 venus 的项目"),t("OutboundLink")],1),e._v(",可自行 pick 代码编译。")]),e._v(" "),t("h3",{attrs:{id:"sophon-auth"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[e._v("#")]),e._v(" sophon-auth")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-auth",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-auth"),t("OutboundLink")],1),e._v(" (原 venus-auth) 是用于授权的组件,在典型的部署环境下 sophon-auth 用于给 venus、sophon-miner、sophon-messager 提供授权服务,每个本地的节点访问共享组件都要经过授权,后续会在这个基础上进行功能扩充,做一些安全方面的控制,比如访问限流、黑名单。")]),e._v(" "),t("h3",{attrs:{id:"sophon-miner"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[e._v("#")]),e._v(" sophon-miner")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-miner",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-miner"),t("OutboundLink")],1),e._v(" (原 venus-miner) 的作用是聚集出块权,可以为接入链服务的多个集群执行出块逻辑。sophon-miner 有以下特点:")]),e._v(" "),t("ol",[t("li",[e._v("分离数据:由于生成区块的过程需要访问数据,并且存储提供者的 sealer 可能是异构的,但目前多数存储提供者会使用自己定制的代码,那么要实现联合挖矿就存在如何访问到这些数据的问题。通过隔断 sophon-miner 对存储组织方式的依赖,通过让证明在存储提供者侧完成,无论存储提供者的 sealer 如何组织存储,只要实现了"),t("strong",[e._v("ComputeProof")]),e._v("接口,sophon-miner 就可以通过这个接口来生成证明。")]),e._v(" "),t("li",[e._v("分离私钥:计算随机数及签名区块的过程中,所有涉及到私钥的操作都通过远程钱包的方式来访问,这样既无泄漏集群私钥,又能保证出块逻辑正常运行。")]),e._v(" "),t("li",[e._v("提高网络 TPS:当 sophon-miner 负责的存储提供者在一个周期获得多个(>1)出块权,sophon-miner 会尽量从消息池中选择不同的消息进行打包,这样一定程度上可以提升消息上链的速度,同时使该出块可能获得更多的小费奖励(Premium)。")]),e._v(" "),t("li",[e._v("收益稳定性:多存储提供者联合挖矿配套奖励池分配系统可以让小存储提供者每天都能获得区块奖励,也可以减少某些存储提供者偶发性出块错误造成的损失。")])]),e._v(" "),t("h3",{attrs:{id:"sophon-messager"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[e._v("#")]),e._v(" sophon-messager")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-messager",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-messager"),t("OutboundLink")],1),e._v(" (原 venus-messager) 组件的目标是更好的帮助消息上链,并能够灵活的控制消息上链的时机,减少 gas 消耗,流量控制等。其中包括远程钱包管理、地址管理、消息管理。")]),e._v(" "),t("ol",[t("li",[e._v("地址管理:主要是管理 nonce 值,保证 nonce 值能够按照正确的顺序分配。")]),e._v(" "),t("li",[e._v("消息管理:消息管理分成三个部分,分别是“消息接收和保存”、“消息选择及推送”“消息上链状态的追踪”。")]),e._v(" "),t("li",[e._v("GasFee 管理:可以按地址分别设置 gasLimit 的系数和 maxFee。")])]),e._v(" "),t("p",[e._v("从功能性上来说:")]),e._v(" "),t("ol",[t("li",[e._v("远程钱包支持:一个 sophon-messager 支持多个钱包,分别管理自己的 message。")]),e._v(" "),t("li",[e._v("支持 sqlite 本地存储和 mysql 远程存储:存储更加安全稳定。")]),e._v(" "),t("li",[e._v("动态填充:根据 gas 和 push 策略,在链上发送消息时,需要填写 gas 相关参数和 nonce,以确保 gas 估算和其他设置有效。")]),e._v(" "),t("li",[e._v("维护消息状态:包括消息是否被链接和替换,保存执行结果。")]),e._v(" "),t("li",[e._v("多点消息传递(通过 Mpool API 推送到多个节点):确保消息在网络上传播。")]),e._v(" "),t("li",[e._v("灵活配置:包括 gas 估算、消息推送策略等。")])]),e._v(" "),t("h3",{attrs:{id:"venus-wallet"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/filecoin-project/venus-wallet",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus-wallet"),t("OutboundLink")],1),e._v(" 是一个远程钱包,协议上能够同时支持 lotus 和 venus。在典型的部署环境中,这个组件由存储提供者部署在本地,并通过一定的策略配置保证资产的安全。venus-wallet 有以下功能特点:")]),e._v(" "),t("ol",[t("li",[e._v("私钥管理模块:目前支持非对称算法 BLS 和 SECP 的私钥管理,能够生成随机私钥,并运用 aes128 对私钥进行对称加密存储,同时支持私钥对数据进行签名。")]),e._v(" "),t("li",[e._v("签名验证:每种签名类型都有对应验证策略,保证了签名方不能在签名类型上欺骗钱包。")]),e._v(" "),t("li",[e._v("签名策略模块:针对 Filecoin 的 Lotus 及 Venus 实现,对存在的数 10 种数据结构以及 message 数据结构中的 60 余种签名类型进行统一管理,按需配置各种组合方式绑定私钥签名规则,而后可以将数种不同的私钥签名规则组成一个整体,授权于外部组件使用。")])]),e._v(" "),t("h3",{attrs:{id:"droplet"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" droplet")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/droplet",target:"_blank",rel:"noopener noreferrer"}},[e._v("droplet"),t("OutboundLink")],1),e._v(" (原 venus-market) 是 Venus 系统中的市场组件。其愿景是打造 Filecoin 网络中分布式的存储和检索市场。目前已经实现了兼容 Lotus 协议的订单存储和检索,逐渐向着 droplet 服务多个集群的接单,对外提供统一的检索服务方向发展。可参见"),t("a",{attrs:{href:"https://github.com/filecoin-project/venus/blob/master/documentation/en/venus-market-design-roadmap.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("droplet 设计与路线图"),t("OutboundLink")],1)]),e._v(" "),t("h3",{attrs:{id:"sophon-gateway"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[e._v("#")]),e._v(" sophon-gateway")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-gateway",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-gateway"),t("OutboundLink")],1),e._v(" (原 venus-gateway) 是独立组件与链服务层的桥梁,用于简化部署并降低存储提供者访问的复杂性、增加存储提供者访问的安全性。独立组件启动时将其服务接口注册到 sophon-gateway,链服务组件需要时通过 sophon-gateway 请求对应集群的服务接口。")]),e._v(" "),t("ul",[t("li",[e._v("存储提供者不需要外部 IP 和曝露钱包服务;")]),e._v(" "),t("li",[e._v("存储池配置 SSL 证书后,集群与存储池的连接是安全的;")]),e._v(" "),t("li",[e._v("存储提供者可以简单地将多个客户端(钱包/证明)注册到存储池以获得高可用性。")])]),e._v(" "),t("p",[t("img",{attrs:{src:n(328),alt:"sophon-gateway"}})]),e._v(" "),t("h3",{attrs:{id:"damocles"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" damocles")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/ipfs-force-community/damocles",target:"_blank",rel:"noopener noreferrer"}},[e._v("damocles"),t("OutboundLink")],1),e._v(" (原 venus-cluster) 是 Venus 推出的新版本扇区封装、算力维持组件,相对于原本的 venus-sealer,在任务调度、最大化系统资源方面有一定优势,其面向的用户受众也将有所不同。")])])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/13.a0226e76.js b/assets/js/13.7a1a809b.js similarity index 92% rename from assets/js/13.a0226e76.js rename to assets/js/13.7a1a809b.js index 547d7a22c..70a73ca8e 100644 --- a/assets/js/13.a0226e76.js +++ b/assets/js/13.7a1a809b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{329:function(t,e,s){t.exports=s.p+"assets/img/damocles-banner.cdc65a5a.jpg"},429:function(t,e,s){"use strict";s.r(e);var n=s(17),r=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("p",[n("img",{attrs:{src:s(329),alt:"damocles"}})]),t._v(" "),n("h3",{attrs:{id:"执剑人"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#执剑人"}},[t._v("#")]),t._v(" 执剑人")]),t._v(" "),n("p",[t._v("执剑人,原 Venus 算力服务,是一个"),n("code",[t._v("Filecoin")]),t._v("存储算力解决方案。请在"),n("a",{attrs:{href:"https://damocles.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),n("OutboundLink")],1),t._v("了解更多关于执剑人的信息。")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{329:function(t,e,s){t.exports=s.p+"assets/img/damocles-banner.cdc65a5a.jpg"},430:function(t,e,s){"use strict";s.r(e);var n=s(17),r=Object(n.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("p",[n("img",{attrs:{src:s(329),alt:"damocles"}})]),t._v(" "),n("h3",{attrs:{id:"执剑人"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#执剑人"}},[t._v("#")]),t._v(" 执剑人")]),t._v(" "),n("p",[t._v("执剑人,原 Venus 算力服务,是一个"),n("code",[t._v("Filecoin")]),t._v("存储算力解决方案。请在"),n("a",{attrs:{href:"https://damocles.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),n("OutboundLink")],1),t._v("了解更多关于执剑人的信息。")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/23.d61f9472.js b/assets/js/23.09d8a9a8.js similarity index 98% rename from assets/js/23.d61f9472.js rename to assets/js/23.09d8a9a8.js index e69e29c94..c4de76f31 100644 --- a/assets/js/23.d61f9472.js +++ b/assets/js/23.09d8a9a8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{404:function(t,s,n){"use strict";n.r(s);var a=n(17),e=Object(a.a)({},(function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h2",{attrs:{id:"contributing"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[t._v("#")]),t._v(" Contributing")]),t._v(" "),n("p",[t._v("PRs, bug reports, and issue suggestions are welcome! For major changes, please propose in an issue first so benefits and impacts can be discussed.")]),t._v(" "),n("p",[t._v("👉 You can also click on click on "),n("code",[t._v("Edit this page")]),t._v(" links at the bottom of each page to jump directly to Edit mode.")]),t._v(" "),n("h2",{attrs:{id:"deployment"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deployment"}},[t._v("#")]),t._v(" Deployment")]),t._v(" "),n("h3",{attrs:{id:"running-locally"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#running-locally"}},[t._v("#")]),t._v(" Running locally")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v(" $ yarn install\n $ yarn docs:dev \n")])])]),n("h3",{attrs:{id:"building"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#building"}},[t._v("#")]),t._v(" Building")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v(" $ yarn docs:links # verify all links are well-formed\n $ yarn docs:build\n")])])]),n("p",[t._v("Then deploy the "),n("code",[t._v("docs/.vuepress/dist")]),t._v(" directory to the "),n("code",[t._v("gh-pages")]),t._v(" branch of this repo.")]),t._v(" "),n("h3",{attrs:{id:"deploy-script"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deploy-script"}},[t._v("#")]),t._v(" Deploy script")]),t._v(" "),n("p",[t._v("You can also run the following script to combine building and deployment together. Make sure everything is running okay locally.")]),t._v(" "),n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[n("span",{pre:!0,attrs:{class:"token shebang important"}},[t._v("#!/usr/bin/env sh")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# abort on errors")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("set")]),t._v(" -e\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# build")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run docs:build\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# navigate into the build output directory")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" docs/.vuepress/dist\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to a custom domain")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("echo")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'venus.filecoin.io'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" CNAME\n\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" init\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" -A\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" commit -m "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'deploy'")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to https://.github.io")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# git push -f git@github.com:/.github.io.git master")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to https://.github.io/")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" push -f git@github.com:filecoin-project/venus-docs.git master:gh-pages\n\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" -\n")])])]),n("h3",{attrs:{id:"notes"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),n("ul",[n("li",[t._v("When new documentation pages are added "),n("code",[t._v("./docs/config.js")]),t._v(" will need to be "),n("strong",[t._v("manually updated")]),t._v(" in this repo")])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{405:function(t,s,n){"use strict";n.r(s);var a=n(17),e=Object(a.a)({},(function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h2",{attrs:{id:"contributing"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#contributing"}},[t._v("#")]),t._v(" Contributing")]),t._v(" "),n("p",[t._v("PRs, bug reports, and issue suggestions are welcome! For major changes, please propose in an issue first so benefits and impacts can be discussed.")]),t._v(" "),n("p",[t._v("👉 You can also click on click on "),n("code",[t._v("Edit this page")]),t._v(" links at the bottom of each page to jump directly to Edit mode.")]),t._v(" "),n("h2",{attrs:{id:"deployment"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deployment"}},[t._v("#")]),t._v(" Deployment")]),t._v(" "),n("h3",{attrs:{id:"running-locally"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#running-locally"}},[t._v("#")]),t._v(" Running locally")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v(" $ yarn install\n $ yarn docs:dev \n")])])]),n("h3",{attrs:{id:"building"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#building"}},[t._v("#")]),t._v(" Building")]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v(" $ yarn docs:links # verify all links are well-formed\n $ yarn docs:build\n")])])]),n("p",[t._v("Then deploy the "),n("code",[t._v("docs/.vuepress/dist")]),t._v(" directory to the "),n("code",[t._v("gh-pages")]),t._v(" branch of this repo.")]),t._v(" "),n("h3",{attrs:{id:"deploy-script"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deploy-script"}},[t._v("#")]),t._v(" Deploy script")]),t._v(" "),n("p",[t._v("You can also run the following script to combine building and deployment together. Make sure everything is running okay locally.")]),t._v(" "),n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[n("span",{pre:!0,attrs:{class:"token shebang important"}},[t._v("#!/usr/bin/env sh")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# abort on errors")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("set")]),t._v(" -e\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# build")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run docs:build\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# navigate into the build output directory")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" docs/.vuepress/dist\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to a custom domain")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("echo")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'venus.filecoin.io'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" CNAME\n\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" init\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" -A\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" commit -m "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'deploy'")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to https://.github.io")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# git push -f git@github.com:/.github.io.git master")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# if you are deploying to https://.github.io/")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" push -f git@github.com:filecoin-project/venus-docs.git master:gh-pages\n\n"),n("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" -\n")])])]),n("h3",{attrs:{id:"notes"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#notes"}},[t._v("#")]),t._v(" Notes:")]),t._v(" "),n("ul",[n("li",[t._v("When new documentation pages are added "),n("code",[t._v("./docs/config.js")]),t._v(" will need to be "),n("strong",[t._v("manually updated")]),t._v(" in this repo")])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/34.242c4fd9.js b/assets/js/34.6e235e33.js similarity index 99% rename from assets/js/34.242c4fd9.js rename to assets/js/34.6e235e33.js index 04bfd97e3..249302bde 100644 --- a/assets/js/34.242c4fd9.js +++ b/assets/js/34.6e235e33.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{420:function(e,t,a){"use strict";a.r(t);var n=a(17),v=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"venus-nv19-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-nv19-upgrade-guide"}},[e._v("#")]),e._v(" Venus nv19 Upgrade Guide")]),e._v(" "),a("h2",{attrs:{id:"precautions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#precautions"}},[e._v("#")]),e._v(" Precautions")]),e._v(" "),a("ol",[a("li",[e._v("Upgrade all Venus products")]),e._v(" "),a("li",[e._v("After upgrading, use the "),a("code",[e._v("curl")]),e._v(" command to call "),a("code",[e._v("version")]),e._v(" interface to check the version number; Interfaces of each Venus component can be referred "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5132",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Check Pre/Pro messages on-chain status")]),e._v(" "),a("li",[e._v("Check wdPost message on-chain status")]),e._v(" "),a("li",[e._v("Check whether the block production is normal")]),e._v(" "),a("li",[e._v("Check whether the gas fee related settings are in effect in accordance to configuration")])]),e._v(" "),a("h2",{attrs:{id:"components-that-need-to-be-upgraded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#components-that-need-to-be-upgraded"}},[e._v("#")]),e._v(" Components that Need to be Upgraded")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("component name")]),e._v(" "),a("th",[e._v("tag")]),e._v(" "),a("th",[e._v("commit")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("venus-auth")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("0c30588")])]),e._v(" "),a("tr",[a("td",[e._v("venus")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("afd3d47")])]),e._v(" "),a("tr",[a("td",[e._v("venus-messager")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("e4c4ab4")])]),e._v(" "),a("tr",[a("td",[e._v("venus-gateway")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("877a851")])]),e._v(" "),a("tr",[a("td",[e._v("venus-wallet")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("7afa1eb")])]),e._v(" "),a("tr",[a("td",[e._v("venus-miner")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("a30f342")])]),e._v(" "),a("tr",[a("td",[e._v("venus-market")]),e._v(" "),a("td",[e._v("v2.7.0")]),e._v(" "),a("td",[e._v("61f2cb5")])]),e._v(" "),a("tr",[a("td",[e._v("venus-sector-manager")]),e._v(" "),a("td",[e._v("v0.6.0-rc3")]),e._v(" "),a("td",[e._v("134b502")])]),e._v(" "),a("tr",[a("td",[e._v("venus-worker")]),e._v(" "),a("td",[e._v("no upgrade required")]),e._v(" "),a("td",[e._v("-")])])])]),e._v(" "),a("h3",{attrs:{id:"upgrade-order"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-order"}},[e._v("#")]),e._v(" Upgrade order")]),e._v(" "),a("ol",[a("li",[e._v("venus-auth")]),e._v(" "),a("li",[e._v("Venus")]),e._v(" "),a("li",[e._v("venus-gateway")]),e._v(" "),a("li",[e._v("venus-messager")]),e._v(" "),a("li",[e._v("venus-miner")]),e._v(" "),a("li",[e._v("venus-market")]),e._v(" "),a("li",[e._v("venus-wallet-pro")]),e._v(" "),a("li",[e._v("venus-sector-manager")])]),e._v(" "),a("h3",{attrs:{id:"venus-auth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-auth"}},[e._v("#")]),e._v(" venus-auth")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("updated way for other components to obtain auth services")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: None")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v('Use "--disable-perm-check" at startup to temporarily disable the feature of auth interface protection')]),e._v(" "),a("li",[e._v("Before creating a token, you need to create the corresponding user")])]),e._v(" "),a("p",[e._v("Note:")]),e._v(" "),a("ul",[a("li",[e._v('The new version of auth will automatically generate a token named "defaultLocalToken" when it starts, which is used for authentication when auth-cli executes commands')])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: venus-auth")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("p",[e._v("Compilation: first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")]),e._v(", this can prevent problems caused by failing to upgrade "),a("code",[e._v("filecoin-ffi")]),e._v(" normally")]),e._v(" "),a("p",[a("strong",[e._v("Should use "),a("code",[e._v("--auth-token")]),e._v(" flag when starting, or modify configuration file "),a("code",[e._v("api.venusAuthToken")]),e._v(" configuration item")])]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after upgrading")])]),e._v(" "),a("li",[a("p",[e._v("Check the configuration file after the upgrade; check whether "),a("code",[e._v("UpgradeLightningHeight")]),e._v(" and "),a("code",[e._v("UpgradeThunderHeight")]),e._v(" are normal through the log:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("#cali\nUpgradeLightningHeight: 489094\nUpgradeThunderHeight:489094+3120\n#mainnet\nUpgradeLightningHeight: 2809800\nUpgradeThunderHeight: 2809800 + 2880*21 = 2870280\n")])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, check whether the chain is synchronized normally")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet v11 actors code to make sure it is the same as the output below")])])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("./venus state actor-cids --network-version 19\n\n# order may vary\nNetwork Version: 19\nActor Version: 11\nActor CIDs\nreward bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo\nsystem bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm\neam bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2\ncron bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o\ndatacap bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq\nethaccount bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k\nevm bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe\ninit bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg\nmultisig bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk\npaymentchannel bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo\naccount bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so\nstorageminer bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us\nstoragepower bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4\nplaceholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\nverified registry bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a\nstoragemarket bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[a("p",[e._v("If not troubleshooting, the rust log level "),a("strong",[e._v("not recommended")]),e._v(" is set to "),a("code",[e._v("trace")]),e._v(", because more logs will be printed")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you can use the command "),a("code",[e._v("./venus state get-actor t01000")]),e._v(" to confirm whether the upgrade is successful")])]),e._v(" "),a("li",[a("p",[e._v("Actor Migration")])])]),e._v(" "),a("p",[a("strong",[e._v("Through testing, the pre-migration time is about 80 seconds, and the mainnet migration time should be about 60 seconds")])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[e._v(" ```\n # The pre-migration height is 120 heights before the upgrade height: 2809800 - 120 = 2809680\n Pre-migration start: STARTING pre-migration end: COMPLETED pre-migration\n migration start: STARTING migration end: COMPLETED migration\n ```\n")])])]),a("h3",{attrs:{id:"venus-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-gateway"}},[e._v("#")]),e._v(" venus-gateway")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: venus-auth")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to "),a("code",[e._v("make dist-clean")]),e._v(" first and then "),a("code",[e._v("make")])]),e._v(" "),a("li",[e._v("When starting, you should use the "),a("code",[e._v("--auth-token")]),e._v(" flag, or set the configuration item directly in the configuration: "),a("code",[e._v("AuthConfig.Token")])]),e._v(" "),a("li",[e._v("Remove flag: "),a("code",[e._v("--disable-address-verify")]),e._v(", "),a("strong",[e._v("Check if the startup command is still using this flag when upgrading")])])]),e._v(" "),a("h3",{attrs:{id:"venus-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-messager"}},[e._v("#")]),e._v(" venus-messager")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("message replace")]),e._v(" "),a("li",[e._v("list --block command")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: venus, venus-auth, venus-gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When starts for the first time during the upgrade, use the "),a("code",[e._v("auth-token")]),e._v(" falg, or modify the configuration file "),a("code",[e._v("JWTConfig.Token")]),e._v(" configuration item first")]),e._v(" "),a("li",[e._v("After the upgrade, it is necessary to observe whether the message can be received normally and whether the message can be sent to the chain normally")])]),e._v(" "),a("p",[e._v("Note:")]),e._v(" "),a("ul",[a("li",[e._v("The minimum value of the replace fee coefficient has been reduced from 1.25 to 1.11")]),e._v(" "),a("li",[e._v("When listing blocked messages, "),a("code",[e._v("unfill")]),e._v(" status messages will now also be listed as blocked messages")])]),e._v(" "),a("h3",{attrs:{id:"venus-miner"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-miner"}},[e._v("#")]),e._v(" venus-miner")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("Added timeout mechanism for selecting message")])]),e._v(" "),a("p",[e._v("Dependency upgrade component: auth, venus, gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("[Auth].[Token]")]),e._v(" must be configured in the configuration file, and has "),a("code",[e._v("admin")]),e._v(" permission in venus-auth, do not use the token from "),a("code",[e._v("defaultLocalToken")]),e._v(", you need to manually create one.")])]),e._v(" "),a("h3",{attrs:{id:"venus-market"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-market"}},[e._v("#")]),e._v(" venus-market")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("Added and adjusted some commands")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: auth, venus, gateway, messager")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("You must use "),a("code",[e._v("cs-token")]),e._v(" when starting, or modify the configuration item "),a("code",[e._v("AuthNode.Token")])])]),e._v(" "),a("h3",{attrs:{id:"venus-wallet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, observe whether the signature is normal and whether the message can be sent to the chain normally")]),e._v(" "),a("li",[a("code",[e._v("wallet new")]),e._v(", "),a("code",[e._v("import")]),e._v(", and "),a("code",[e._v("export")]),e._v(" commands have been removed. The purpose of deletion is to avoid misuse.")])]),e._v(" "),a("h3",{attrs:{id:"venus-sector-manger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-sector-manger"}},[e._v("#")]),e._v(" venus-sector-manger")]),e._v(" "),a("p",[e._v("Affected features: fip-0061 wdpost algorithm changes")]),e._v(" "),a("p",[e._v("Dependency upgrade component: Chain Service component")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to "),a("code",[e._v("make dist-clean")]),e._v(" first and then "),a("code",[e._v("make")])])]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Upgrade verification:")]),e._v(" "),a("ol",[a("li",[e._v("The program starts normally")]),e._v(" "),a("li",[e._v("Pre/Pro messages are on-chained normally")]),e._v(" "),a("li",[e._v("Block generation is normal")]),e._v(" "),a("li",[e._v("WdPost on-chain is normal")]),e._v(" "),a("li",[e._v("Storage power is increasing normally")]),e._v(" "),a("li",[e._v("Verified deal retrieval is normal")]),e._v(" "),a("li",[e._v("Various gas, life cycle, database and aggregation settings are normal")])]),e._v(" "),a("h3",{attrs:{id:"notes-on-database-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-database-changes"}},[e._v("#")]),e._v(" Notes on Database Changes")]),e._v(" "),a("ol",[a("li",[a("p",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5558",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus-messager added actor configuration and related commands, and adds "),a("code",[e._v("actor_cfg")]),e._v(" table"),a("OutboundLink")],1)])]),e._v(" "),a("li",[a("p",[e._v("Added index to venus-market "),a("code",[e._v("storage_deals")]),e._v(" table: "),a("code",[e._v("CREATE INDEX idx_cdpprovider_state ON storage_deals(cdp_provider,state)")])])])])])}),[],!1,null,null,null);t.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{419:function(e,t,a){"use strict";a.r(t);var n=a(17),v=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"venus-nv19-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-nv19-upgrade-guide"}},[e._v("#")]),e._v(" Venus nv19 Upgrade Guide")]),e._v(" "),a("h2",{attrs:{id:"precautions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#precautions"}},[e._v("#")]),e._v(" Precautions")]),e._v(" "),a("ol",[a("li",[e._v("Upgrade all Venus products")]),e._v(" "),a("li",[e._v("After upgrading, use the "),a("code",[e._v("curl")]),e._v(" command to call "),a("code",[e._v("version")]),e._v(" interface to check the version number; Interfaces of each Venus component can be referred "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5132",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1)]),e._v(" "),a("li",[e._v("Check Pre/Pro messages on-chain status")]),e._v(" "),a("li",[e._v("Check wdPost message on-chain status")]),e._v(" "),a("li",[e._v("Check whether the block production is normal")]),e._v(" "),a("li",[e._v("Check whether the gas fee related settings are in effect in accordance to configuration")])]),e._v(" "),a("h2",{attrs:{id:"components-that-need-to-be-upgraded"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#components-that-need-to-be-upgraded"}},[e._v("#")]),e._v(" Components that Need to be Upgraded")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("component name")]),e._v(" "),a("th",[e._v("tag")]),e._v(" "),a("th",[e._v("commit")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("venus-auth")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("0c30588")])]),e._v(" "),a("tr",[a("td",[e._v("venus")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("afd3d47")])]),e._v(" "),a("tr",[a("td",[e._v("venus-messager")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("e4c4ab4")])]),e._v(" "),a("tr",[a("td",[e._v("venus-gateway")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("877a851")])]),e._v(" "),a("tr",[a("td",[e._v("venus-wallet")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("7afa1eb")])]),e._v(" "),a("tr",[a("td",[e._v("venus-miner")]),e._v(" "),a("td",[e._v("v1.11.0")]),e._v(" "),a("td",[e._v("a30f342")])]),e._v(" "),a("tr",[a("td",[e._v("venus-market")]),e._v(" "),a("td",[e._v("v2.7.0")]),e._v(" "),a("td",[e._v("61f2cb5")])]),e._v(" "),a("tr",[a("td",[e._v("venus-sector-manager")]),e._v(" "),a("td",[e._v("v0.6.0-rc3")]),e._v(" "),a("td",[e._v("134b502")])]),e._v(" "),a("tr",[a("td",[e._v("venus-worker")]),e._v(" "),a("td",[e._v("no upgrade required")]),e._v(" "),a("td",[e._v("-")])])])]),e._v(" "),a("h3",{attrs:{id:"upgrade-order"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#upgrade-order"}},[e._v("#")]),e._v(" Upgrade order")]),e._v(" "),a("ol",[a("li",[e._v("venus-auth")]),e._v(" "),a("li",[e._v("Venus")]),e._v(" "),a("li",[e._v("venus-gateway")]),e._v(" "),a("li",[e._v("venus-messager")]),e._v(" "),a("li",[e._v("venus-miner")]),e._v(" "),a("li",[e._v("venus-market")]),e._v(" "),a("li",[e._v("venus-wallet-pro")]),e._v(" "),a("li",[e._v("venus-sector-manager")])]),e._v(" "),a("h3",{attrs:{id:"venus-auth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-auth"}},[e._v("#")]),e._v(" venus-auth")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("updated way for other components to obtain auth services")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: None")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v('Use "--disable-perm-check" at startup to temporarily disable the feature of auth interface protection')]),e._v(" "),a("li",[e._v("Before creating a token, you need to create the corresponding user")])]),e._v(" "),a("p",[e._v("Note:")]),e._v(" "),a("ul",[a("li",[e._v('The new version of auth will automatically generate a token named "defaultLocalToken" when it starts, which is used for authentication when auth-cli executes commands')])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: venus-auth")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("p",[e._v("Compilation: first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")]),e._v(", this can prevent problems caused by failing to upgrade "),a("code",[e._v("filecoin-ffi")]),e._v(" normally")]),e._v(" "),a("p",[a("strong",[e._v("Should use "),a("code",[e._v("--auth-token")]),e._v(" flag when starting, or modify configuration file "),a("code",[e._v("api.venusAuthToken")]),e._v(" configuration item")])]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after upgrading")])]),e._v(" "),a("li",[a("p",[e._v("Check the configuration file after the upgrade; check whether "),a("code",[e._v("UpgradeLightningHeight")]),e._v(" and "),a("code",[e._v("UpgradeThunderHeight")]),e._v(" are normal through the log:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("#cali\nUpgradeLightningHeight: 489094\nUpgradeThunderHeight:489094+3120\n#mainnet\nUpgradeLightningHeight: 2809800\nUpgradeThunderHeight: 2809800 + 2880*21 = 2870280\n")])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, check whether the chain is synchronized normally")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet v11 actors code to make sure it is the same as the output below")])])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("./venus state actor-cids --network-version 19\n\n# order may vary\nNetwork Version: 19\nActor Version: 11\nActor CIDs\nreward bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo\nsystem bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm\neam bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2\ncron bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o\ndatacap bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq\nethaccount bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k\nevm bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe\ninit bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg\nmultisig bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk\npaymentchannel bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo\naccount bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so\nstorageminer bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us\nstoragepower bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4\nplaceholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\nverified registry bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a\nstoragemarket bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m\n")])])]),a("ol",{attrs:{start:"5"}},[a("li",[a("p",[e._v("If not troubleshooting, the rust log level "),a("strong",[e._v("not recommended")]),e._v(" is set to "),a("code",[e._v("trace")]),e._v(", because more logs will be printed")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you can use the command "),a("code",[e._v("./venus state get-actor t01000")]),e._v(" to confirm whether the upgrade is successful")])]),e._v(" "),a("li",[a("p",[e._v("Actor Migration")])])]),e._v(" "),a("p",[a("strong",[e._v("Through testing, the pre-migration time is about 80 seconds, and the mainnet migration time should be about 60 seconds")])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[e._v(" ```\n # The pre-migration height is 120 heights before the upgrade height: 2809800 - 120 = 2809680\n Pre-migration start: STARTING pre-migration end: COMPLETED pre-migration\n migration start: STARTING migration end: COMPLETED migration\n ```\n")])])]),a("h3",{attrs:{id:"venus-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-gateway"}},[e._v("#")]),e._v(" venus-gateway")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: venus-auth")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to "),a("code",[e._v("make dist-clean")]),e._v(" first and then "),a("code",[e._v("make")])]),e._v(" "),a("li",[e._v("When starting, you should use the "),a("code",[e._v("--auth-token")]),e._v(" flag, or set the configuration item directly in the configuration: "),a("code",[e._v("AuthConfig.Token")])]),e._v(" "),a("li",[e._v("Remove flag: "),a("code",[e._v("--disable-address-verify")]),e._v(", "),a("strong",[e._v("Check if the startup command is still using this flag when upgrading")])])]),e._v(" "),a("h3",{attrs:{id:"venus-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-messager"}},[e._v("#")]),e._v(" venus-messager")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("message replace")]),e._v(" "),a("li",[e._v("list --block command")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: venus, venus-auth, venus-gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When starts for the first time during the upgrade, use the "),a("code",[e._v("auth-token")]),e._v(" falg, or modify the configuration file "),a("code",[e._v("JWTConfig.Token")]),e._v(" configuration item first")]),e._v(" "),a("li",[e._v("After the upgrade, it is necessary to observe whether the message can be received normally and whether the message can be sent to the chain normally")])]),e._v(" "),a("p",[e._v("Note:")]),e._v(" "),a("ul",[a("li",[e._v("The minimum value of the replace fee coefficient has been reduced from 1.25 to 1.11")]),e._v(" "),a("li",[e._v("When listing blocked messages, "),a("code",[e._v("unfill")]),e._v(" status messages will now also be listed as blocked messages")])]),e._v(" "),a("h3",{attrs:{id:"venus-miner"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-miner"}},[e._v("#")]),e._v(" venus-miner")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("Added timeout mechanism for selecting message")])]),e._v(" "),a("p",[e._v("Dependency upgrade component: auth, venus, gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("[Auth].[Token]")]),e._v(" must be configured in the configuration file, and has "),a("code",[e._v("admin")]),e._v(" permission in venus-auth, do not use the token from "),a("code",[e._v("defaultLocalToken")]),e._v(", you need to manually create one.")])]),e._v(" "),a("h3",{attrs:{id:"venus-market"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-market"}},[e._v("#")]),e._v(" venus-market")]),e._v(" "),a("p",[e._v("Affected function:")]),e._v(" "),a("ul",[a("li",[e._v("Added and adjusted some commands")])]),e._v(" "),a("p",[e._v("Dependency upgrade components: auth, venus, gateway, messager")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("You must use "),a("code",[e._v("cs-token")]),e._v(" when starting, or modify the configuration item "),a("code",[e._v("AuthNode.Token")])])]),e._v(" "),a("h3",{attrs:{id:"venus-wallet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),a("p",[e._v("Affected function: none")]),e._v(" "),a("p",[e._v("Dependency upgrade component: gateway")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, observe whether the signature is normal and whether the message can be sent to the chain normally")]),e._v(" "),a("li",[a("code",[e._v("wallet new")]),e._v(", "),a("code",[e._v("import")]),e._v(", and "),a("code",[e._v("export")]),e._v(" commands have been removed. The purpose of deletion is to avoid misuse.")])]),e._v(" "),a("h3",{attrs:{id:"venus-sector-manger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-sector-manger"}},[e._v("#")]),e._v(" venus-sector-manger")]),e._v(" "),a("p",[e._v("Affected features: fip-0061 wdpost algorithm changes")]),e._v(" "),a("p",[e._v("Dependency upgrade component: Chain Service component")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to "),a("code",[e._v("make dist-clean")]),e._v(" first and then "),a("code",[e._v("make")])])]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Upgrade verification:")]),e._v(" "),a("ol",[a("li",[e._v("The program starts normally")]),e._v(" "),a("li",[e._v("Pre/Pro messages are on-chained normally")]),e._v(" "),a("li",[e._v("Block generation is normal")]),e._v(" "),a("li",[e._v("WdPost on-chain is normal")]),e._v(" "),a("li",[e._v("Storage power is increasing normally")]),e._v(" "),a("li",[e._v("Verified deal retrieval is normal")]),e._v(" "),a("li",[e._v("Various gas, life cycle, database and aggregation settings are normal")])]),e._v(" "),a("h3",{attrs:{id:"notes-on-database-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#notes-on-database-changes"}},[e._v("#")]),e._v(" Notes on Database Changes")]),e._v(" "),a("ol",[a("li",[a("p",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5558",target:"_blank",rel:"noopener noreferrer"}},[e._v("venus-messager added actor configuration and related commands, and adds "),a("code",[e._v("actor_cfg")]),e._v(" table"),a("OutboundLink")],1)])]),e._v(" "),a("li",[a("p",[e._v("Added index to venus-market "),a("code",[e._v("storage_deals")]),e._v(" table: "),a("code",[e._v("CREATE INDEX idx_cdpprovider_state ON storage_deals(cdp_provider,state)")])])])])])}),[],!1,null,null,null);t.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/35.75c7ebd3.js b/assets/js/35.d6ee49fe.js similarity index 99% rename from assets/js/35.75c7ebd3.js rename to assets/js/35.d6ee49fe.js index f49788ad5..9f8bf755b 100644 --- a/assets/js/35.75c7ebd3.js +++ b/assets/js/35.d6ee49fe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{419:function(e,t,a){"use strict";a.r(t);var o=a(17),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"venus-nv21-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-nv21-upgrade-guide"}},[e._v("#")]),e._v(" Venus nv21 Upgrade Guide")]),e._v(" "),a("h2",{attrs:{id:"precautions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#precautions"}},[e._v("#")]),e._v(" Precautions")]),e._v(" "),a("ol",[a("li",[e._v("Be sure to upgrade all Venus products")]),e._v(" "),a("li",[e._v("After upgrading, please use the "),a("code",[e._v("curl")]),e._v(" command to call the "),a("code",[e._v("Version")]),e._v(" API to check the version number. Details of each Venus products' version interface can be found "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5132",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[e._v("Monitor proper on-chain of pre and prove messages")]),e._v(" "),a("li",[e._v("Monitor proper on-chain of window post messages")]),e._v(" "),a("li",[e._v("Monitor block producing")]),e._v(" "),a("li",[e._v("Check whether the gas fee related settings are in effect")])]),e._v(" "),a("h2",{attrs:{id:"products-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#products-upgrade-guide"}},[e._v("#")]),e._v(" Products Upgrade Guide")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("Product")]),e._v(" "),a("th",[e._v("tag")]),e._v(" "),a("th",[e._v("commit")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("sophon-auth")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("7caadbc")])]),e._v(" "),a("tr",[a("td",[e._v("venus")]),e._v(" "),a("td",[e._v("v1.14.2")]),e._v(" "),a("td",[e._v("9204048")])]),e._v(" "),a("tr",[a("td",[e._v("sophon-messager")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("e5f8371")])]),e._v(" "),a("tr",[a("td",[e._v("soohon-gateway")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("1adf038")])]),e._v(" "),a("tr",[a("td",[e._v("venus-wallet")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("b478cd0")])]),e._v(" "),a("tr",[a("td",[e._v("sophon-miner")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("9ca976c")])]),e._v(" "),a("tr",[a("td",[e._v("droplet")]),e._v(" "),a("td",[e._v("v2.10.0")]),e._v(" "),a("td",[e._v("6daf168")])]),e._v(" "),a("tr",[a("td",[e._v("damocles-manager")]),e._v(" "),a("td",[e._v("v0.9.2")]),e._v(" "),a("td",[e._v("f3c5400")])]),e._v(" "),a("tr",[a("td",[e._v("damocles-worker")]),e._v(" "),a("td",[e._v("v0.9.2")]),e._v(" "),a("td",[e._v("f3c5400")])])])]),e._v(" "),a("h3",{attrs:{id:"recommended-upgrade-sequence"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#recommended-upgrade-sequence"}},[e._v("#")]),e._v(" Recommended Upgrade Sequence")]),e._v(" "),a("ol",[a("li",[e._v("sophon-auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("soohon-gateway")]),e._v(" "),a("li",[e._v("sophon-messager")]),e._v(" "),a("li",[e._v("sophon-miner")]),e._v(" "),a("li",[e._v("droplet")]),e._v(" "),a("li",[e._v("venus-wallet")]),e._v(" "),a("li",[e._v("damocles-manager\n9.damocles-worker")])]),e._v(" "),a("h3",{attrs:{id:"sophon-auth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[e._v("#")]),e._v(" sophon-auth")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("Affecting how other Venus products are authorized to use the sophon service")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("Check if authentication is normal after startup")])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Compile: First "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")]),e._v(", this can prevent problems caused by failure to upgrade "),a("code",[e._v("filecoin-ffi")]),e._v(" properly")]),e._v(" "),a("p",[a("strong",[e._v("If "),a("code",[e._v("~/.venus")]),e._v(" exists and you need to import a snapshot, you need to delete the "),a("code",[e._v("~/.venus/version")]),e._v(" file first before importing the snapshot")])])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("The memory consumption of migration depends on the CPUs used. You can set the limit of CPU by environment variable (`VENUS_MIGRATION_MAX_WORKER_COUNT=n`), to avoid use out of memory.\nRecommended value of `VENUS_MIGRATION_MAX_WORKER_COUNT`:\n\n48G VENUS_MIGRATION_MAX_WORKER_COUNT=13\n64G VENUS_MIGRATION_MAX_WORKER_COUNT=18\n96G VENUS_MIGRATION_MAX_WORKER_COUNT=24\n\nThe migration of update \n")])])]),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after upgrading")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, execute the command "),a("code",[e._v("./venus state network-info")]),e._v(", and then check whether the "),a("code",[e._v("UpgradeWatermelonHeight")]),e._v(" is normal through the log:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("#cali\nUpgradeWatermelonHeight: 1013134\n#mainnet\nUpgradeWatermelonHeight: 3469380\n")])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you need to check whether the block height is synchronized normally.")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet "),a("code",[e._v("v12 actors")]),e._v(" code and make sure it is the same as the output below")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("./venus state actor-cids --network-version 21\n\n# Ordering may be different\nNetwork Version: 21\nActor Version: 12\nActor CID\ndatacap bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq\nethaccount bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq\nreward bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u\nverifiedregistry bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q\neam bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe\nmultisig bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42\nstoragemarket bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4\nsystem bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu\naccount bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa\ncron bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls\nplaceholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\nstoragepower bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6\nevm bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi\ninit bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms\npaymentchannel bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4\nstorageminer bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6\n")])])])]),e._v(" "),a("li",[a("p",[e._v("If there is no problem troubleshoot, it is not recommended to set the rust log level to "),a("code",[e._v("trace")]),e._v(" because more logs will be printed.")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you can use the command "),a("code",[e._v("./venus state get-actor t01000")]),e._v(" to confirm whether the upgrade is successful.")])]),e._v(" "),a("li",[a("p",[e._v("actor migration")])])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[a("strong",[e._v("After testing, the pre-migration time is about 20 to 30 minutes, and the actual migration time is about 70 seconds")])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[e._v(" ```\n The pre-migration height is the 120 heights before the upgrade height:\n pre-migration start: STARTING pre-migration end: COMPLETED pre-migration\n migration starts: STARTING migration ends: COMPLETED migration\n ```\n")])])])]),e._v(" "),a("h3",{attrs:{id:"sophon-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[e._v("#")]),e._v(" sophon-gateway")]),e._v(" "),a("p",[e._v("Functions affected:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")])])]),e._v(" "),a("h3",{attrs:{id:"sophon-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[e._v("#")]),e._v(" sophon-messager")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("sophon-auth")]),e._v(" "),a("li",[e._v("sophon-gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, monitor whether the messages can be received normally and whether the messages can be on-chained normally.")])]),e._v(" "),a("h3",{attrs:{id:"sophon-miner"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[e._v("#")]),e._v(" sophon-miner")]),e._v(" "),a("p",[e._v("Affect functions:")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("[Auth].[Token]")]),e._v(" in the configuration file must be configured, and the token must be created with admin permission from sophon-auth. It is recommended that one does not use the token from "),a("code",[e._v("defaultLocalToken")]),e._v(", one should create one manually.")])]),e._v(" "),a("h3",{attrs:{id:"droplet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" Droplet")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("Support v2 version of storage deal protocol")]),e._v(" "),a("li",[e._v("Support offline computation of commP")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("gateway")]),e._v(" "),a("li",[e._v("messager")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("Monitor deals and retrievals")])]),e._v(" "),a("h3",{attrs:{id:"venus-wallet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, monitor whether the signature is normal and whether the message can be on-chained normally.")])]),e._v(" "),a("h3",{attrs:{id:"damocles-manager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles-manager"}},[e._v("#")]),e._v(" damocles-manager")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("Sophon service")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")])])]),e._v(" "),a("h3",{attrs:{id:"damocles-worker"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles-worker"}},[e._v("#")]),e._v(" damocles-worker")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("damocles-manager")])]),e._v(" "),a("p",[e._v("Precautions:\nTranslation:")]),e._v(" "),a("ul",[a("li",[e._v("It is recommended to perform program updates after all tasks have been done and there are no ongoing tasks. If an update is required during the task on going, the sealing thread may get stuck in the 'SyntheticPoRepNeeded' state. In such cases, resetting the task status to 'PCSubmitted' can resolve the issue. You can use the following command: "),a("code",[e._v("damocles-manager util worker resume PCSubmitted")]),e._v(".")]),e._v(" "),a("li",[e._v("The new proof type "),a("code",[e._v("SyntheticPoRep")]),e._v(" uses a new proof parameter file. If "),a("code",[e._v("SyntheticPoRep")]),e._v(" is enabled, it is best to prepare new proof parameters in advance. "),a("strong",[e._v("Failing to do so may cause SyntheticPoRep deadlock")]),e._v(".")])]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Upgrade result verification steps:")]),e._v(" "),a("ol",[a("li",[e._v("Check if program starts normally")]),e._v(" "),a("li",[e._v("Check if Pre & prove messages are on-chained normally")]),e._v(" "),a("li",[e._v("Check if block producing is normal")]),e._v(" "),a("li",[e._v("Check if window post is normal")]),e._v(" "),a("li",[e._v("Check if storage power grows normally")]),e._v(" "),a("li",[e._v("Check if storage deal retrieval is normal")]),e._v(" "),a("li",[e._v("Check if various gas, life cycle, and aggregation settings of the database are normal.")])]),e._v(" "),a("h3",{attrs:{id:"database-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#database-changes"}},[e._v("#")]),e._v(" Database changes")]),e._v(" "),a("ol",[a("li",[e._v("Add "),a("code",[e._v("id")]),e._v(" field to droplet "),a("code",[e._v("storage_deals")]),e._v(" table ==> "),a("code",[e._v("ALTER TABLE storage_deals ADD id varchar(128)")])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{420:function(e,t,a){"use strict";a.r(t);var o=a(17),s=Object(o.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"venus-nv21-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-nv21-upgrade-guide"}},[e._v("#")]),e._v(" Venus nv21 Upgrade Guide")]),e._v(" "),a("h2",{attrs:{id:"precautions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#precautions"}},[e._v("#")]),e._v(" Precautions")]),e._v(" "),a("ol",[a("li",[e._v("Be sure to upgrade all Venus products")]),e._v(" "),a("li",[e._v("After upgrading, please use the "),a("code",[e._v("curl")]),e._v(" command to call the "),a("code",[e._v("Version")]),e._v(" API to check the version number. Details of each Venus products' version interface can be found "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/5132",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(".")]),e._v(" "),a("li",[e._v("Monitor proper on-chain of pre and prove messages")]),e._v(" "),a("li",[e._v("Monitor proper on-chain of window post messages")]),e._v(" "),a("li",[e._v("Monitor block producing")]),e._v(" "),a("li",[e._v("Check whether the gas fee related settings are in effect")])]),e._v(" "),a("h2",{attrs:{id:"products-upgrade-guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#products-upgrade-guide"}},[e._v("#")]),e._v(" Products Upgrade Guide")]),e._v(" "),a("table",[a("thead",[a("tr",[a("th",[e._v("Product")]),e._v(" "),a("th",[e._v("tag")]),e._v(" "),a("th",[e._v("commit")])])]),e._v(" "),a("tbody",[a("tr",[a("td",[e._v("sophon-auth")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("7caadbc")])]),e._v(" "),a("tr",[a("td",[e._v("venus")]),e._v(" "),a("td",[e._v("v1.14.2")]),e._v(" "),a("td",[e._v("9204048")])]),e._v(" "),a("tr",[a("td",[e._v("sophon-messager")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("e5f8371")])]),e._v(" "),a("tr",[a("td",[e._v("soohon-gateway")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("1adf038")])]),e._v(" "),a("tr",[a("td",[e._v("venus-wallet")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("b478cd0")])]),e._v(" "),a("tr",[a("td",[e._v("sophon-miner")]),e._v(" "),a("td",[e._v("v1.14.0")]),e._v(" "),a("td",[e._v("9ca976c")])]),e._v(" "),a("tr",[a("td",[e._v("droplet")]),e._v(" "),a("td",[e._v("v2.10.0")]),e._v(" "),a("td",[e._v("6daf168")])]),e._v(" "),a("tr",[a("td",[e._v("damocles-manager")]),e._v(" "),a("td",[e._v("v0.9.2")]),e._v(" "),a("td",[e._v("f3c5400")])]),e._v(" "),a("tr",[a("td",[e._v("damocles-worker")]),e._v(" "),a("td",[e._v("v0.9.2")]),e._v(" "),a("td",[e._v("f3c5400")])])])]),e._v(" "),a("h3",{attrs:{id:"recommended-upgrade-sequence"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#recommended-upgrade-sequence"}},[e._v("#")]),e._v(" Recommended Upgrade Sequence")]),e._v(" "),a("ol",[a("li",[e._v("sophon-auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("soohon-gateway")]),e._v(" "),a("li",[e._v("sophon-messager")]),e._v(" "),a("li",[e._v("sophon-miner")]),e._v(" "),a("li",[e._v("droplet")]),e._v(" "),a("li",[e._v("venus-wallet")]),e._v(" "),a("li",[e._v("damocles-manager\n9.damocles-worker")])]),e._v(" "),a("h3",{attrs:{id:"sophon-auth"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[e._v("#")]),e._v(" sophon-auth")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("Affecting how other Venus products are authorized to use the sophon service")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("Check if authentication is normal after startup")])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Compile: First "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")]),e._v(", this can prevent problems caused by failure to upgrade "),a("code",[e._v("filecoin-ffi")]),e._v(" properly")]),e._v(" "),a("p",[a("strong",[e._v("If "),a("code",[e._v("~/.venus")]),e._v(" exists and you need to import a snapshot, you need to delete the "),a("code",[e._v("~/.venus/version")]),e._v(" file first before importing the snapshot")])])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("The memory consumption of migration depends on the CPUs used. You can set the limit of CPU by environment variable (`VENUS_MIGRATION_MAX_WORKER_COUNT=n`), to avoid use out of memory.\nRecommended value of `VENUS_MIGRATION_MAX_WORKER_COUNT`:\n\n48G VENUS_MIGRATION_MAX_WORKER_COUNT=13\n64G VENUS_MIGRATION_MAX_WORKER_COUNT=18\n96G VENUS_MIGRATION_MAX_WORKER_COUNT=24\n\nThe migration of update \n")])])]),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after upgrading")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, execute the command "),a("code",[e._v("./venus state network-info")]),e._v(", and then check whether the "),a("code",[e._v("UpgradeWatermelonHeight")]),e._v(" is normal through the log:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("#cali\nUpgradeWatermelonHeight: 1013134\n#mainnet\nUpgradeWatermelonHeight: 3469380\n")])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you need to check whether the block height is synchronized normally.")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet "),a("code",[e._v("v12 actors")]),e._v(" code and make sure it is the same as the output below")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v("./venus state actor-cids --network-version 21\n\n# Ordering may be different\nNetwork Version: 21\nActor Version: 12\nActor CID\ndatacap bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq\nethaccount bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq\nreward bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u\nverifiedregistry bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q\neam bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe\nmultisig bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42\nstoragemarket bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4\nsystem bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu\naccount bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa\ncron bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls\nplaceholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\nstoragepower bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6\nevm bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi\ninit bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms\npaymentchannel bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4\nstorageminer bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6\n")])])])]),e._v(" "),a("li",[a("p",[e._v("If there is no problem troubleshoot, it is not recommended to set the rust log level to "),a("code",[e._v("trace")]),e._v(" because more logs will be printed.")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you can use the command "),a("code",[e._v("./venus state get-actor t01000")]),e._v(" to confirm whether the upgrade is successful.")])]),e._v(" "),a("li",[a("p",[e._v("actor migration")])])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[a("strong",[e._v("After testing, the pre-migration time is about 20 to 30 minutes, and the actual migration time is about 70 seconds")])]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",[a("code",[e._v(" ```\n The pre-migration height is the 120 heights before the upgrade height:\n pre-migration start: STARTING pre-migration end: COMPLETED pre-migration\n migration starts: STARTING migration ends: COMPLETED migration\n ```\n")])])])]),e._v(" "),a("h3",{attrs:{id:"sophon-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[e._v("#")]),e._v(" sophon-gateway")]),e._v(" "),a("p",[e._v("Functions affected:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")])])]),e._v(" "),a("h3",{attrs:{id:"sophon-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[e._v("#")]),e._v(" sophon-messager")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("sophon-auth")]),e._v(" "),a("li",[e._v("sophon-gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, monitor whether the messages can be received normally and whether the messages can be on-chained normally.")])]),e._v(" "),a("h3",{attrs:{id:"sophon-miner"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[e._v("#")]),e._v(" sophon-miner")]),e._v(" "),a("p",[e._v("Affect functions:")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[a("code",[e._v("[Auth].[Token]")]),e._v(" in the configuration file must be configured, and the token must be created with admin permission from sophon-auth. It is recommended that one does not use the token from "),a("code",[e._v("defaultLocalToken")]),e._v(", one should create one manually.")])]),e._v(" "),a("h3",{attrs:{id:"droplet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" Droplet")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("Support v2 version of storage deal protocol")]),e._v(" "),a("li",[e._v("Support offline computation of commP")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("auth")]),e._v(" "),a("li",[e._v("venus")]),e._v(" "),a("li",[e._v("gateway")]),e._v(" "),a("li",[e._v("messager")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("Monitor deals and retrievals")])]),e._v(" "),a("h3",{attrs:{id:"venus-wallet"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[e._v("#")]),e._v(" venus-wallet")]),e._v(" "),a("p",[e._v("Affected functions:")]),e._v(" "),a("ul",[a("li",[e._v("None")])]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("gateway")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("After the upgrade, monitor whether the signature is normal and whether the message can be on-chained normally.")])]),e._v(" "),a("h3",{attrs:{id:"damocles-manager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles-manager"}},[e._v("#")]),e._v(" damocles-manager")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("Sophon service")])]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ul",[a("li",[e._v("When compiling, you need to first "),a("code",[e._v("make dist-clean")]),e._v(" and then "),a("code",[e._v("make")])])]),e._v(" "),a("h3",{attrs:{id:"damocles-worker"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles-worker"}},[e._v("#")]),e._v(" damocles-worker")]),e._v(" "),a("p",[e._v("Dependency:")]),e._v(" "),a("ul",[a("li",[e._v("damocles-manager")])]),e._v(" "),a("p",[e._v("Precautions:\nTranslation:")]),e._v(" "),a("ul",[a("li",[e._v("It is recommended to perform program updates after all tasks have been done and there are no ongoing tasks. If an update is required during the task on going, the sealing thread may get stuck in the 'SyntheticPoRepNeeded' state. In such cases, resetting the task status to 'PCSubmitted' can resolve the issue. You can use the following command: "),a("code",[e._v("damocles-manager util worker resume PCSubmitted")]),e._v(".")]),e._v(" "),a("li",[e._v("The new proof type "),a("code",[e._v("SyntheticPoRep")]),e._v(" uses a new proof parameter file. If "),a("code",[e._v("SyntheticPoRep")]),e._v(" is enabled, it is best to prepare new proof parameters in advance. "),a("strong",[e._v("Failing to do so may cause SyntheticPoRep deadlock")]),e._v(".")])]),e._v(" "),a("hr"),e._v(" "),a("p",[e._v("Upgrade result verification steps:")]),e._v(" "),a("ol",[a("li",[e._v("Check if program starts normally")]),e._v(" "),a("li",[e._v("Check if Pre & prove messages are on-chained normally")]),e._v(" "),a("li",[e._v("Check if block producing is normal")]),e._v(" "),a("li",[e._v("Check if window post is normal")]),e._v(" "),a("li",[e._v("Check if storage power grows normally")]),e._v(" "),a("li",[e._v("Check if storage deal retrieval is normal")]),e._v(" "),a("li",[e._v("Check if various gas, life cycle, and aggregation settings of the database are normal.")])]),e._v(" "),a("h3",{attrs:{id:"database-changes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#database-changes"}},[e._v("#")]),e._v(" Database changes")]),e._v(" "),a("ol",[a("li",[e._v("Add "),a("code",[e._v("id")]),e._v(" field to droplet "),a("code",[e._v("storage_deals")]),e._v(" table ==> "),a("code",[e._v("ALTER TABLE storage_deals ADD id varchar(128)")])])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/42.b68049e1.js b/assets/js/42.2c7e7d11.js similarity index 90% rename from assets/js/42.b68049e1.js rename to assets/js/42.2c7e7d11.js index a291ea843..9bb490116 100644 --- a/assets/js/42.b68049e1.js +++ b/assets/js/42.2c7e7d11.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{427:function(e,t,s){"use strict";s.r(t);var i=s(17),n=Object(i.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[t("em",[this._v("See something missing? Have tips to share? "),t("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/new",target:"_blank",rel:"noopener noreferrer"}},[this._v("File an issue"),t("OutboundLink")],1),this._v(", and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{428:function(e,t,s){"use strict";s.r(t);var i=s(17),n=Object(i.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("p",[t("em",[this._v("See something missing? Have tips to share? "),t("a",{attrs:{href:"https://github.com/filecoin-project/venus/issues/new",target:"_blank",rel:"noopener noreferrer"}},[this._v("File an issue"),t("OutboundLink")],1),this._v(", and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/43.607d598f.js b/assets/js/43.5b6ab3ab.js similarity index 97% rename from assets/js/43.607d598f.js rename to assets/js/43.5b6ab3ab.js index a61e6b581..966f4dd0b 100644 --- a/assets/js/43.607d598f.js +++ b/assets/js/43.5b6ab3ab.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{430:function(s,t,a){"use strict";a.r(t);var e=a(17),n=Object(e.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"如何运行文档项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#如何运行文档项目"}},[s._v("#")]),s._v(" 如何运行文档项目")]),s._v(" "),a("h2",{attrs:{id:"依赖"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#依赖"}},[s._v("#")]),s._v(" 依赖")]),s._v(" "),a("p",[s._v("运行 docs 项目需要安装 "),a("em",[a("strong",[s._v("node")])]),s._v(" 和 "),a("em",[a("strong",[s._v("yarn")])])]),s._v(" "),a("h2",{attrs:{id:"拉取项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#拉取项目"}},[s._v("#")]),s._v(" 拉取项目")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("git")]),s._v(" clone git@github.com:filecoin-project/venus-docs.git\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" venus-docs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#安装依赖")]),s._v("\n")])])]),a("h2",{attrs:{id:"本地运行"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#本地运行"}},[s._v("#")]),s._v(" 本地运行")]),s._v(" "),a("p",[s._v("运行命令:")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:dev \n")])])]),a("p",[s._v("英文文档直接在 master 下更改,中文在 zh 文件夹下面更改,请确保文件夹结构完全相同。在文档上做的修改能够实时的反映在网站上,不需要重新运行命令。\n增加文档需要修改 "),a("em",[a("strong",[s._v("./docs/.vuepress/config.js")])]),s._v(" 文件,并在 sidebar 下的 children 增加一行新的记录。")]),s._v(" "),a("h2",{attrs:{id:"编译与部署"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编译与部署"}},[s._v("#")]),s._v(" 编译与部署")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:links "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# verify all links are well-formed")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:build "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# generate html pages")]),s._v("\n")])])]),a("p",[s._v("build 完成后结果输入到 "),a("em",[a("strong",[s._v("./docs/.vuepress/dist")])]),s._v(" 目录里面,将本目录覆盖 "),a("em",[a("strong",[s._v("gh-page")])]),s._v(" 分支即可部署项目文档。")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{429:function(s,t,a){"use strict";a.r(t);var e=a(17),n=Object(e.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"如何运行文档项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#如何运行文档项目"}},[s._v("#")]),s._v(" 如何运行文档项目")]),s._v(" "),a("h2",{attrs:{id:"依赖"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#依赖"}},[s._v("#")]),s._v(" 依赖")]),s._v(" "),a("p",[s._v("运行 docs 项目需要安装 "),a("em",[a("strong",[s._v("node")])]),s._v(" 和 "),a("em",[a("strong",[s._v("yarn")])])]),s._v(" "),a("h2",{attrs:{id:"拉取项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#拉取项目"}},[s._v("#")]),s._v(" 拉取项目")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("git")]),s._v(" clone git@github.com:filecoin-project/venus-docs.git\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" venus-docs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#安装依赖")]),s._v("\n")])])]),a("h2",{attrs:{id:"本地运行"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#本地运行"}},[s._v("#")]),s._v(" 本地运行")]),s._v(" "),a("p",[s._v("运行命令:")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:dev \n")])])]),a("p",[s._v("英文文档直接在 master 下更改,中文在 zh 文件夹下面更改,请确保文件夹结构完全相同。在文档上做的修改能够实时的反映在网站上,不需要重新运行命令。\n增加文档需要修改 "),a("em",[a("strong",[s._v("./docs/.vuepress/config.js")])]),s._v(" 文件,并在 sidebar 下的 children 增加一行新的记录。")]),s._v(" "),a("h2",{attrs:{id:"编译与部署"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编译与部署"}},[s._v("#")]),s._v(" 编译与部署")]),s._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:links "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# verify all links are well-formed")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" docs:build "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# generate html pages")]),s._v("\n")])])]),a("p",[s._v("build 完成后结果输入到 "),a("em",[a("strong",[s._v("./docs/.vuepress/dist")])]),s._v(" 目录里面,将本目录覆盖 "),a("em",[a("strong",[s._v("gh-page")])]),s._v(" 分支即可部署项目文档。")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/45.cff082c6.js b/assets/js/45.00e32977.js similarity index 97% rename from assets/js/45.cff082c6.js rename to assets/js/45.00e32977.js index 86f3bfd44..74a82e10a 100644 --- a/assets/js/45.cff082c6.js +++ b/assets/js/45.00e32977.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{435:function(e,t,r){"use strict";r.r(t);var n=r(17),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"部署venus解决方案"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#部署venus解决方案"}},[e._v("#")]),e._v(" 部署"),r("code",[e._v("Venus")]),e._v("解决方案")]),e._v(" "),r("p",[r("code",[e._v("Venus")]),e._v("泛指一系列与"),r("code",[e._v("filecoin")]),e._v("协议稳定/高效互动的软件产品。"),r("code",[e._v("Venus")]),e._v("的,目标群体大致分为"),r("code",[e._v("4")]),e._v("类。"),r("code",[e._v("SP")]),e._v("存储提供者,"),r("code",[e._v("SC")]),e._v("存储客户,生态合作伙伴,以及去中心化应用"),r("code",[e._v("Dapp")]),e._v("。"),r("code",[e._v("Venus")]),e._v("解决方案当前被广泛应用于"),r("code",[e._v("SP")]),e._v("和"),r("code",[e._v("SC")]),e._v("的场景中。")]),e._v(" "),r("h3",{attrs:{id:"部署"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#部署"}},[e._v("#")]),e._v(" 部署")]),e._v(" "),r("p",[e._v("经过"),r("code",[e._v("Venus")]),e._v("在 2022 年底的"),r("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5420",target:"_blank",rel:"noopener noreferrer"}},[e._v("品牌重塑"),r("OutboundLink")],1),e._v("之后,"),r("code",[e._v("Venus")]),e._v("拆分出 3 个产品,分别是"),r("a",{attrs:{href:"https://sophon.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("智子"),r("OutboundLink")],1),e._v(","),r("a",{attrs:{href:"https://damocles.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("执剑人"),r("OutboundLink")],1),e._v("以及"),r("a",{attrs:{href:"https://droplet.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("水滴"),r("OutboundLink")],1),e._v("。关于各产品的具体部署流程,请参见各产品的文档。")]),e._v(" "),r("h3",{attrs:{id:"架构"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#架构"}},[e._v("#")]),e._v(" 架构")]),e._v(" "),r("img",{attrs:{src:"https://user-images.githubusercontent.com/1591330/227900001-a572c81d-607c-48ed-832e-54298ce87259.png",width:"800"}})])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{436:function(e,t,r){"use strict";r.r(t);var n=r(17),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h2",{attrs:{id:"部署venus解决方案"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#部署venus解决方案"}},[e._v("#")]),e._v(" 部署"),r("code",[e._v("Venus")]),e._v("解决方案")]),e._v(" "),r("p",[r("code",[e._v("Venus")]),e._v("泛指一系列与"),r("code",[e._v("filecoin")]),e._v("协议稳定/高效互动的软件产品。"),r("code",[e._v("Venus")]),e._v("的,目标群体大致分为"),r("code",[e._v("4")]),e._v("类。"),r("code",[e._v("SP")]),e._v("存储提供者,"),r("code",[e._v("SC")]),e._v("存储客户,生态合作伙伴,以及去中心化应用"),r("code",[e._v("Dapp")]),e._v("。"),r("code",[e._v("Venus")]),e._v("解决方案当前被广泛应用于"),r("code",[e._v("SP")]),e._v("和"),r("code",[e._v("SC")]),e._v("的场景中。")]),e._v(" "),r("h3",{attrs:{id:"部署"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#部署"}},[e._v("#")]),e._v(" 部署")]),e._v(" "),r("p",[e._v("经过"),r("code",[e._v("Venus")]),e._v("在 2022 年底的"),r("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5420",target:"_blank",rel:"noopener noreferrer"}},[e._v("品牌重塑"),r("OutboundLink")],1),e._v("之后,"),r("code",[e._v("Venus")]),e._v("拆分出 3 个产品,分别是"),r("a",{attrs:{href:"https://sophon.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("智子"),r("OutboundLink")],1),e._v(","),r("a",{attrs:{href:"https://damocles.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("执剑人"),r("OutboundLink")],1),e._v("以及"),r("a",{attrs:{href:"https://droplet.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[e._v("水滴"),r("OutboundLink")],1),e._v("。关于各产品的具体部署流程,请参见各产品的文档。")]),e._v(" "),r("h3",{attrs:{id:"架构"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#架构"}},[e._v("#")]),e._v(" 架构")]),e._v(" "),r("img",{attrs:{src:"https://user-images.githubusercontent.com/1591330/227900001-a572c81d-607c-48ed-832e-54298ce87259.png",width:"800"}})])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/46.6b31baf0.js b/assets/js/46.3f7f7c20.js similarity index 99% rename from assets/js/46.6b31baf0.js rename to assets/js/46.3f7f7c20.js index a3302e3c2..7468462ac 100644 --- a/assets/js/46.6b31baf0.js +++ b/assets/js/46.3f7f7c20.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{436:function(s,a,t){"use strict";t.r(a);var e=t(17),r=Object(e.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"算力增加与维持部署参考方案-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#算力增加与维持部署参考方案-1"}},[s._v("#")]),s._v(" 算力增加与维持部署参考方案 1")]),s._v(" "),t("h2",{attrs:{id:"集群规模"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#集群规模"}},[s._v("#")]),s._v(" 集群规模:")]),s._v(" "),t("ul",[t("li",[s._v("机器:两台")]),s._v(" "),t("li",[s._v("配置:128 核,1T 内存,双 3060Ti(GPU)")])]),s._v(" "),t("h2",{attrs:{id:"方案"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#方案"}},[s._v("#")]),s._v(" 方案")]),s._v(" "),t("ul",[t("li",[t("p",[s._v("建议每台机器各去掉一块 GPU,因为目前程序只能访问一块 GPU;")])]),s._v(" "),t("li",[t("p",[s._v("安装 zabbix 监控")])]),s._v(" "),t("li",[t("p",[s._v("因为单个机器上运行不同的任务,需要给每个 worker 限核,需关闭超线程以确保限核的精准")]),s._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 绝大多数的主板都可以设置关闭超线程,但需要重新启动。我们通过一种方式关闭一半 CPU 的映射关系来做到相同的效果,这种方式不需要重启,但是每次重启都会失效。")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#!/bin/bash")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token for-or-select variable"}},[s._v("cpunum")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[t("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$(")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" /sys/devices/system/cpu/cpu*/topology/thread_siblings_list "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cut")]),s._v(" -s -d, -f2- "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tr")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("','")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'"),t("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[s._v("\\n")]),s._v("'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sort")]),s._v(" -un"),t("span",{pre:!0,attrs:{class:"token variable"}},[s._v(")")])]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("do")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" /sys/devices/system/cpu/cpu"),t("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$cpunum")]),s._v("/online\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("done")]),s._v("\n")])])])]),s._v(" "),t("li",[t("p",[s._v("部署方案:")])])]),s._v(" "),t("ul",[t("li",[s._v("A 机器:venus-sealer 只做 wdpost 和 winningpost 的计算;跑一个 venus-worker 只做 AP,P1,P2(用 cpu 做);")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[s._v("./venus-sealer --network"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("mainnet init --actor"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("MINER_ID"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --node-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS/tcp/3453 --messager-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS_MESSAGER"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("/tcp/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("PORT_OF_VENUS_MESSAGER"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --gateway-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS_GATEWAY"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("/tcp/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("PORT_OF_VENUS_GATEWAY"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --auth-token "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("AUTH_TOKEN_FOR_ACCOUNT_NAME"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --no-local-storage\n \n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 修改配置文件只允许sealer做wdpost")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Storage"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ParallelFetchLimit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("\n AllowAddPiece "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowPreCommit1 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowPreCommit2 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowCommit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowUnseal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n \n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动venus-sealer")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("nohup")]),s._v(" ./venus-sealer run "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" sealer.log "),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("2")]),s._v(">")]),t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("&1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# FIL_PROOFS_MAXIMIZE_CACHING=1 表示做P1的时候把部分临时文件缓存到内存")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置store目录,因为sealer我们不做任务,故只需设置store目录")]),s._v("\n ./venus-sealer storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_PATH_OF_YOUR_PERMANENT_STORAGE"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动一个worker,只做AP,P1,P2,unseal(不允许用GPU)")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_MAXIMIZE_CACHING")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --commit"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage \n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker的seal路径")]),s._v("\n./venus-worker storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("venus-sealer 不做任务,故只需指定 store 目录,不需要 seal 目录。")])]),s._v(" "),t("blockquote",[t("p",[s._v("这里 worker 为什么只用 cpu 而不用 GPU 做呢?因为 wdpost 需要 gpu 做,并且是具有时效性的任务,如果 worker 竞争 gpu,wdpost 没法及时完成,存在惩罚算力的隐患。")])]),s._v(" "),t("blockquote",[t("p",[s._v("venus-sealer 默认只监听 127.0.0.1,要想别的机器连接 sealer 需要修改配置文件:")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("API"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ListenAddress "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"/ip4/0.0.0.0/tcp/2345/http"')]),s._v("\n RemoteListenAddress "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"内网ip:2345"')]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("设置 p2,C2,wdPost 等消息的 from,即发送消息消耗 fil 的 address")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Addresses"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n PreCommitControl "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# P2")]),s._v("\n CommitControl "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# C2")]),s._v("\n DisableOwnerFallback "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 禁用owner发消息")]),s._v("\n DisableWorkerFallback "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("设置 sealer 可接受任务类型")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Storage"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ParallelFetchLimit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("\n AllowAddPiece "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowPreCommit1 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowPreCommit2 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowCommit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowUnseal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n")])])]),t("ul",[t("li",[s._v("B 机器:启动两个 worker,一个做 P2,一个做 Commit。p2 阶段使用 CPU,commit 阶段使用 GPU 运行。\n"),t("ul",[t("li",[s._v("限核:这台机器我们运行 2 个 worker 为了避免一个 worker 占满 cpu 资源,故需要对每个 worker 进程进行限核。这里我们将 75% 的核数分配给 worker01,将 25% 的核数分配给 worker02.参考文档:https://venus.filecoin.io/zh/operation/Efficiency_of_sealing.html")])])])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# worker01")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_MAXIMIZE_CACHING")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --unseal"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --addpiece"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --commit"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage\n \n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker01的seal路径")]),s._v("\n./venus-worker storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# worker02")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("VENUS_WORKER_PATH")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("worker_path"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --precommit1"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --precommit2"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --addpiece"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --unseal"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker02的seal路径与worker01相同,这样做的好处是不需要文件的拷贝。")]),s._v("\n./venus-worker storage attach --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("TRUST_PARAMS=1 环境变量可以跳过校验证明参数文件,如果你确定参数文件都在且是正确的可以用此环境变量用加快 venus-sealer 或 venus-worker 的启动的速度;")])]),s._v(" "),t("blockquote",[t("p",[s._v("seal 要求较高的磁盘吞吐量,建议 ssd 盘。")])]),s._v(" "),t("ul",[t("li",[t("p",[s._v("磁盘空间及并发数计算:")]),s._v(" "),t("ul",[t("li",[t("p",[s._v("32G 内存消耗:56G cache + 64G * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("32G 磁盘消耗:520G 左右 * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("64G 内存消耗:112G cache + 128G")])]),s._v(" "),t("li",[t("p",[s._v("64G 磁盘消耗:1T 左右 * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("故这两台机器 1t 的内存大约能做 64G sector 的数量为:")])])])])]),s._v(" "),t("p",[s._v("   (1024G-112G)/128G=7.125,保险起见我们可以先并发 6 个观察一段时间资源使用率。")]),s._v(" "),t("p",[s._v("   确定了并发密封扇区个数后,就可以确定 seal 需要的磁盘空间= 6*1t=6t.")]),s._v(" "),t("blockquote",[t("p",[s._v("做策略的思路:先考虑内存,确定并发数,在补充其他资源,如临时磁盘空间,至于 cpu,如果不足,可以限额,这样做的好处是系统可以持续运行,而不被 oom。")])]),s._v(" "),t("blockquote",[t("p",[s._v("可以利用 gpu 加速的任务时 P2,C2 和 windowPoSt,分配 gpu 的顺序是:wdPoSt>C2>P2")])]),s._v(" "),t("ul",[t("li",[s._v("并发数控制\n   ./venus-sealer sectors pledge 发送一个密封任务,通常写一个定时脚本或系统事务,每隔一段时间发送一个 sector 任务;配置文件 MaxSealingSectors 控制同时进行的 sector 上限数。")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{437:function(s,a,t){"use strict";t.r(a);var e=t(17),r=Object(e.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"算力增加与维持部署参考方案-1"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#算力增加与维持部署参考方案-1"}},[s._v("#")]),s._v(" 算力增加与维持部署参考方案 1")]),s._v(" "),t("h2",{attrs:{id:"集群规模"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#集群规模"}},[s._v("#")]),s._v(" 集群规模:")]),s._v(" "),t("ul",[t("li",[s._v("机器:两台")]),s._v(" "),t("li",[s._v("配置:128 核,1T 内存,双 3060Ti(GPU)")])]),s._v(" "),t("h2",{attrs:{id:"方案"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#方案"}},[s._v("#")]),s._v(" 方案")]),s._v(" "),t("ul",[t("li",[t("p",[s._v("建议每台机器各去掉一块 GPU,因为目前程序只能访问一块 GPU;")])]),s._v(" "),t("li",[t("p",[s._v("安装 zabbix 监控")])]),s._v(" "),t("li",[t("p",[s._v("因为单个机器上运行不同的任务,需要给每个 worker 限核,需关闭超线程以确保限核的精准")]),s._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 绝大多数的主板都可以设置关闭超线程,但需要重新启动。我们通过一种方式关闭一半 CPU 的映射关系来做到相同的效果,这种方式不需要重启,但是每次重启都会失效。")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#!/bin/bash")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("for")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token for-or-select variable"}},[s._v("cpunum")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("in")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[t("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$(")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" /sys/devices/system/cpu/cpu*/topology/thread_siblings_list "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cut")]),s._v(" -s -d, -f2- "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tr")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("','")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'"),t("span",{pre:!0,attrs:{class:"token entity",title:"\\n"}},[s._v("\\n")]),s._v("'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sort")]),s._v(" -un"),t("span",{pre:!0,attrs:{class:"token variable"}},[s._v(")")])]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("do")]),s._v("\n "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" /sys/devices/system/cpu/cpu"),t("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$cpunum")]),s._v("/online\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("done")]),s._v("\n")])])])]),s._v(" "),t("li",[t("p",[s._v("部署方案:")])])]),s._v(" "),t("ul",[t("li",[s._v("A 机器:venus-sealer 只做 wdpost 和 winningpost 的计算;跑一个 venus-worker 只做 AP,P1,P2(用 cpu 做);")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[s._v("./venus-sealer --network"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("mainnet init --actor"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("MINER_ID"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --node-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS/tcp/3453 --messager-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS_MESSAGER"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("/tcp/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("PORT_OF_VENUS_MESSAGER"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --gateway-url"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("IP_ADDRESS_OF_VENUS_GATEWAY"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("/tcp/"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("PORT_OF_VENUS_GATEWAY"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --auth-token "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("AUTH_TOKEN_FOR_ACCOUNT_NAME"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --no-local-storage\n \n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 修改配置文件只允许sealer做wdpost")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Storage"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ParallelFetchLimit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("\n AllowAddPiece "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowPreCommit1 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowPreCommit2 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowCommit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n AllowUnseal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n \n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动venus-sealer")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("nohup")]),s._v(" ./venus-sealer run "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" sealer.log "),t("span",{pre:!0,attrs:{class:"token operator"}},[t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("2")]),s._v(">")]),t("span",{pre:!0,attrs:{class:"token file-descriptor important"}},[s._v("&1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# FIL_PROOFS_MAXIMIZE_CACHING=1 表示做P1的时候把部分临时文件缓存到内存")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置store目录,因为sealer我们不做任务,故只需设置store目录")]),s._v("\n ./venus-sealer storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_PATH_OF_YOUR_PERMANENT_STORAGE"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动一个worker,只做AP,P1,P2,unseal(不允许用GPU)")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_MAXIMIZE_CACHING")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --commit"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage \n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker的seal路径")]),s._v("\n./venus-worker storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("venus-sealer 不做任务,故只需指定 store 目录,不需要 seal 目录。")])]),s._v(" "),t("blockquote",[t("p",[s._v("这里 worker 为什么只用 cpu 而不用 GPU 做呢?因为 wdpost 需要 gpu 做,并且是具有时效性的任务,如果 worker 竞争 gpu,wdpost 没法及时完成,存在惩罚算力的隐患。")])]),s._v(" "),t("blockquote",[t("p",[s._v("venus-sealer 默认只监听 127.0.0.1,要想别的机器连接 sealer 需要修改配置文件:")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("API"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ListenAddress "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"/ip4/0.0.0.0/tcp/2345/http"')]),s._v("\n RemoteListenAddress "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"内网ip:2345"')]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("设置 p2,C2,wdPost 等消息的 from,即发送消息消耗 fil 的 address")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Addresses"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n PreCommitControl "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# P2")]),s._v("\n CommitControl "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# C2")]),s._v("\n DisableOwnerFallback "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 禁用owner发消息")]),s._v("\n DisableWorkerFallback "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("false")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("设置 sealer 可接受任务类型")])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("Storage"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n ParallelFetchLimit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("10")]),s._v("\n AllowAddPiece "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowPreCommit1 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowPreCommit2 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowCommit "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n AllowUnseal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v("\n")])])]),t("ul",[t("li",[s._v("B 机器:启动两个 worker,一个做 P2,一个做 Commit。p2 阶段使用 CPU,commit 阶段使用 GPU 运行。\n"),t("ul",[t("li",[s._v("限核:这台机器我们运行 2 个 worker 为了避免一个 worker 占满 cpu 资源,故需要对每个 worker 进程进行限核。这里我们将 75% 的核数分配给 worker01,将 25% 的核数分配给 worker02.参考文档:https://venus.filecoin.io/zh/operation/Efficiency_of_sealing.html")])])])]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# worker01")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_USE_MULTICORE_SDR")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("FIL_PROOFS_MAXIMIZE_CACHING")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --unseal"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --addpiece"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --commit"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage\n \n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker01的seal路径")]),s._v("\n./venus-worker storage attach --init --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# worker02")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("VENUS_WORKER_PATH")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("worker_path"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("BELLMAN_CPU_UTILIZATION")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.2")]),s._v(" ./venus-worker run --miner-addr"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/ip4/127.0.0.1/tcp/2345 --miner-token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("sealer token"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" --precommit1"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --precommit2"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --addpiece"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --unseal"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("false --no-local-storage\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 指定worker02的seal路径与worker01相同,这样做的好处是不需要文件的拷贝。")]),s._v("\n./venus-worker storage attach --seal "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<")]),s._v("ABSOLUTE_LOCAL_PATH"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v("\n")])])]),t("blockquote",[t("p",[s._v("TRUST_PARAMS=1 环境变量可以跳过校验证明参数文件,如果你确定参数文件都在且是正确的可以用此环境变量用加快 venus-sealer 或 venus-worker 的启动的速度;")])]),s._v(" "),t("blockquote",[t("p",[s._v("seal 要求较高的磁盘吞吐量,建议 ssd 盘。")])]),s._v(" "),t("ul",[t("li",[t("p",[s._v("磁盘空间及并发数计算:")]),s._v(" "),t("ul",[t("li",[t("p",[s._v("32G 内存消耗:56G cache + 64G * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("32G 磁盘消耗:520G 左右 * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("64G 内存消耗:112G cache + 128G")])]),s._v(" "),t("li",[t("p",[s._v("64G 磁盘消耗:1T 左右 * 运行数量")])]),s._v(" "),t("li",[t("p",[s._v("故这两台机器 1t 的内存大约能做 64G sector 的数量为:")])])])])]),s._v(" "),t("p",[s._v("   (1024G-112G)/128G=7.125,保险起见我们可以先并发 6 个观察一段时间资源使用率。")]),s._v(" "),t("p",[s._v("   确定了并发密封扇区个数后,就可以确定 seal 需要的磁盘空间= 6*1t=6t.")]),s._v(" "),t("blockquote",[t("p",[s._v("做策略的思路:先考虑内存,确定并发数,在补充其他资源,如临时磁盘空间,至于 cpu,如果不足,可以限额,这样做的好处是系统可以持续运行,而不被 oom。")])]),s._v(" "),t("blockquote",[t("p",[s._v("可以利用 gpu 加速的任务时 P2,C2 和 windowPoSt,分配 gpu 的顺序是:wdPoSt>C2>P2")])]),s._v(" "),t("ul",[t("li",[s._v("并发数控制\n   ./venus-sealer sectors pledge 发送一个密封任务,通常写一个定时脚本或系统事务,每隔一段时间发送一个 sector 任务;配置文件 MaxSealingSectors 控制同时进行的 sector 上限数。")])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/60.eae11152.js b/assets/js/60.70bb0d4d.js similarity index 99% rename from assets/js/60.eae11152.js rename to assets/js/60.70bb0d4d.js index db9a2f7dc..499007e13 100644 --- a/assets/js/60.eae11152.js +++ b/assets/js/60.70bb0d4d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{453:function(v,a,e){"use strict";e.r(a);var t=e(17),_=Object(t.a)({},(function(){var v=this,a=v.$createElement,e=v._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[e("h1",{attrs:{id:"venus-各组件升级文档-持续更新中"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-各组件升级文档-持续更新中"}},[v._v("#")]),v._v(" Venus 各组件升级文档 (持续更新中)")]),v._v(" "),e("h2",{attrs:{id:"注意事项"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#注意事项"}},[v._v("#")]),v._v(" 注意事项")]),v._v(" "),e("ol",[e("li",[v._v("所有组件全部更换")]),v._v(" "),e("li",[v._v("更新完通过 curl 命令调用 "),e("code",[v._v("Version")]),v._v(" 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132")]),v._v(" "),e("li",[v._v("pre/pro消息上链的情况")]),v._v(" "),e("li",[v._v("WD消息上链的情况")]),v._v(" "),e("li",[v._v("出块情况是否正常")]),v._v(" "),e("li",[v._v("gas fee 相关设置是否生效")])]),v._v(" "),e("h4",{attrs:{id:"建议升级之前不要做算力-如果升级前-p2-消息上链但-c2-消息没上链-升级后-c2-消息上链会报错"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#建议升级之前不要做算力-如果升级前-p2-消息上链但-c2-消息没上链-升级后-c2-消息上链会报错"}},[v._v("#")]),v._v(" 建议升级之前不要做算力,如果升级前 p2 消息上链但 c2 消息没上链,升级后 c2 消息上链会报错")]),v._v(" "),e("h2",{attrs:{id:"需要升级的组件"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#需要升级的组件"}},[v._v("#")]),v._v(" 需要升级的组件")]),v._v(" "),e("table",[e("thead",[e("tr",[e("th",[v._v("组件名")]),v._v(" "),e("th",[v._v("tag")]),v._v(" "),e("th",[v._v("commit")])])]),v._v(" "),e("tbody",[e("tr",[e("td",[v._v("sophon-auth")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("e2340d5")])]),v._v(" "),e("tr",[e("td",[v._v("venus")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("3fdb199")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-co")]),v._v(" "),e("td",[v._v("v0.9.0")]),v._v(" "),e("td",[v._v("0f344ed")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-messager")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("f695806")])]),v._v(" "),e("tr",[e("td",[v._v("soohon-gateway")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("2d32b8e")])]),v._v(" "),e("tr",[e("td",[v._v("venus-wallet")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("48b1e02")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-miner")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("500c186")])]),v._v(" "),e("tr",[e("td",[v._v("droplet")]),v._v(" "),e("td",[v._v("v2.12.0")]),v._v(" "),e("td",[v._v("deec963")])]),v._v(" "),e("tr",[e("td",[v._v("damocles-manager")]),v._v(" "),e("td",[v._v("v0.11.0")]),v._v(" "),e("td",[v._v("7d06bd4")])]),v._v(" "),e("tr",[e("td",[v._v("damocles-worker")]),v._v(" "),e("td",[v._v("v0.11.0")]),v._v(" "),e("td",[v._v("7d06bd4")])])])]),v._v(" "),e("h3",{attrs:{id:"升级顺序"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#升级顺序"}},[v._v("#")]),v._v(" 升级顺序")]),v._v(" "),e("ol",[e("li",[v._v("sophon-auth")]),v._v(" "),e("li",[v._v("venus")]),v._v(" "),e("li",[v._v("soohon-co")]),v._v(" "),e("li",[v._v("soohon-gateway")]),v._v(" "),e("li",[v._v("sophon-messager")]),v._v(" "),e("li",[v._v("sophon-miner")]),v._v(" "),e("li",[v._v("droplet")]),v._v(" "),e("li",[v._v("venus-wallet")]),v._v(" "),e("li",[v._v("damocles-manager")]),v._v(" "),e("li",[v._v("damocles-worker")])]),v._v(" "),e("h3",{attrs:{id:"sophon-auth"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[v._v("#")]),v._v(" sophon-auth")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("ul",[e("li",[v._v("其他组件对获取 auth 的服务")])]),v._v(" "),e("p",[v._v("依赖升级组件: 无")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("启动后能否正常鉴权")])]),v._v(" "),e("h3",{attrs:{id:"venus"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[v._v("#")]),v._v(" venus")]),v._v(" "),e("p",[v._v("影响功能:无")]),v._v(" "),e("p",[v._v("依赖升级组件: sophon-auth")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("p",[v._v("编译:先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")]),v._v(",这样可以防止未能正常升级 "),e("code",[v._v("filecoin-ffi")]),v._v(" 而带来的问题")]),v._v(" "),e("ol",[e("li",[e("p",[v._v("升级后检查vk文件是否完整")])]),v._v(" "),e("li",[e("p",[v._v("升级后执行命令 "),e("code",[v._v("./venus state network-info")]),v._v(",然后检查通过日志检查 UpgradeWaffleHeight 是否正常:")]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v("# cali\nUpgradeWaffleHeight: 1779094\n# mainnet\nUpgradeWaffleHeight: 4154640\n")])])])]),v._v(" "),e("li",[e("p",[v._v("升级后需检查是否正常同步区块")])]),v._v(" "),e("li",[e("p",[v._v("检查主网 v14 actors code,确保与下面输出一样")]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v(" ./venus state actor-cids --network-version 23\n\n # 顺序可能会不一样\n Network Version: 23\n Actor Version: 14\n Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba\n Actor CID\n account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy\n cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc\n datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg\n eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju\n ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko\n evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw\n init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6\n multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc\n paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne\n placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\n reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc\n storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg\n storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc\n storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42\n system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs\n verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4\n")])])])]),v._v(" "),e("li",[e("p",[v._v("若不排查问题,rust日志级别"),e("strong",[v._v("不建议")]),v._v("设置为 "),e("code",[v._v("trace")]),v._v(",因为会打印较多日志")])]),v._v(" "),e("li",[e("p",[v._v("升级后可以通过命令来 "),e("code",[v._v("./venus state get-actor t01000")]),v._v(" 来确认是否升级成功")])]),v._v(" "),e("li",[e("p",[v._v("actor 迁移")]),v._v(" "),e("p",[e("strong",[v._v("经测试本次预迁移时间在1分钟左右,正式迁移时间在50秒左右")])]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v("预迁移高度是升级高度前 120 个高度:\npre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration\nmigration 开始:STARTING migration 结束:COMPLETED migration\n")])])])]),v._v(" "),e("li",[e("p",[v._v("如果 "),e("code",[v._v("~/.venus")]),v._v(" 存在且需要导入快照,需要先删除 "),e("code",[v._v("~/.venus/version")]),v._v(" 文件再导入快照")]),v._v(" "),e("ul",[e("li",[v._v("主网: "),e("code",[v._v("./venus daemon --import-snapshot snapshot.car")])]),v._v(" "),e("li",[v._v("calibnet: "),e("code",[v._v("./venus daemon --import-snapshot snapshot.car --network calibrationnet")])])])])]),v._v(" "),e("h3",{attrs:{id:"sophon-gateway"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[v._v("#")]),v._v(" sophon-gateway")]),v._v(" "),e("p",[v._v("影响功能:无")]),v._v(" "),e("p",[v._v("依赖升级组件: sophon-auth")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("编译时,需要先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")])])]),v._v(" "),e("h3",{attrs:{id:"sophon-messager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[v._v("#")]),v._v(" sophon-messager")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("p",[v._v("依赖升级组件: venus, sophon-auth, soohon-gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级之后需要观察能否正常接收消息, 消息能否正常上链")])]),v._v(" "),e("h3",{attrs:{id:"sophon-miner"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[v._v("#")]),v._v(" sophon-miner")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("p",[v._v("依赖升级组件:auth, venus, gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("h3",{attrs:{id:"droplet"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[v._v("#")]),v._v(" droplet")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("ul",[e("li",[v._v("无")])]),v._v(" "),e("p",[v._v("依赖升级组件: auth, venus, gateway, messager")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级后能否正常发单和检索")])]),v._v(" "),e("h3",{attrs:{id:"venus-wallet"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[v._v("#")]),v._v(" venus-wallet")]),v._v(" "),e("p",[v._v("影响功能: 无")]),v._v(" "),e("p",[v._v("依赖升级组件: gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级后观察是否正常签名,消息能否正常上链")])]),v._v(" "),e("h3",{attrs:{id:"damocles-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#damocles-manager"}},[v._v("#")]),v._v(" damocles-manager")]),v._v(" "),e("p",[v._v("依赖升级组件: 链服务组件")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("编译时,需要先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")])])]),v._v(" "),e("h3",{attrs:{id:"damocles-worker"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#damocles-worker"}},[v._v("#")]),v._v(" damocles-worker")]),v._v(" "),e("p",[v._v("依赖升级组件: damocles-manager")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("hr"),v._v(" "),e("p",[v._v("更新结果验证步骤:")]),v._v(" "),e("ol",[e("li",[v._v("程序启动正常")]),v._v(" "),e("li",[v._v("pre/pro消息正常上链")]),v._v(" "),e("li",[v._v("出块正常")]),v._v(" "),e("li",[v._v("WD上链正常")]),v._v(" "),e("li",[v._v("算力增长正常")]),v._v(" "),e("li",[v._v("真实订单检索正常")]),v._v(" "),e("li",[v._v("数据库各种gas,生命周期,聚合设置正常")])]),v._v(" "),e("h3",{attrs:{id:"数据库变更"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#数据库变更"}},[v._v("#")]),v._v(" 数据库变更")]),v._v(" "),e("p",[v._v("无")])])}),[],!1,null,null,null);a.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{451:function(v,a,e){"use strict";e.r(a);var t=e(17),_=Object(t.a)({},(function(){var v=this,a=v.$createElement,e=v._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[e("h1",{attrs:{id:"venus-各组件升级文档-持续更新中"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-各组件升级文档-持续更新中"}},[v._v("#")]),v._v(" Venus 各组件升级文档 (持续更新中)")]),v._v(" "),e("h2",{attrs:{id:"注意事项"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#注意事项"}},[v._v("#")]),v._v(" 注意事项")]),v._v(" "),e("ol",[e("li",[v._v("所有组件全部更换")]),v._v(" "),e("li",[v._v("更新完通过 curl 命令调用 "),e("code",[v._v("Version")]),v._v(" 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132")]),v._v(" "),e("li",[v._v("pre/pro消息上链的情况")]),v._v(" "),e("li",[v._v("WD消息上链的情况")]),v._v(" "),e("li",[v._v("出块情况是否正常")]),v._v(" "),e("li",[v._v("gas fee 相关设置是否生效")])]),v._v(" "),e("h4",{attrs:{id:"建议升级之前不要做算力-如果升级前-p2-消息上链但-c2-消息没上链-升级后-c2-消息上链会报错"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#建议升级之前不要做算力-如果升级前-p2-消息上链但-c2-消息没上链-升级后-c2-消息上链会报错"}},[v._v("#")]),v._v(" 建议升级之前不要做算力,如果升级前 p2 消息上链但 c2 消息没上链,升级后 c2 消息上链会报错")]),v._v(" "),e("h2",{attrs:{id:"需要升级的组件"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#需要升级的组件"}},[v._v("#")]),v._v(" 需要升级的组件")]),v._v(" "),e("table",[e("thead",[e("tr",[e("th",[v._v("组件名")]),v._v(" "),e("th",[v._v("tag")]),v._v(" "),e("th",[v._v("commit")])])]),v._v(" "),e("tbody",[e("tr",[e("td",[v._v("sophon-auth")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("e2340d5")])]),v._v(" "),e("tr",[e("td",[v._v("venus")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("3fdb199")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-co")]),v._v(" "),e("td",[v._v("v0.9.0")]),v._v(" "),e("td",[v._v("0f344ed")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-messager")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("f695806")])]),v._v(" "),e("tr",[e("td",[v._v("soohon-gateway")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("2d32b8e")])]),v._v(" "),e("tr",[e("td",[v._v("venus-wallet")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("48b1e02")])]),v._v(" "),e("tr",[e("td",[v._v("sophon-miner")]),v._v(" "),e("td",[v._v("v1.16.0")]),v._v(" "),e("td",[v._v("500c186")])]),v._v(" "),e("tr",[e("td",[v._v("droplet")]),v._v(" "),e("td",[v._v("v2.12.0")]),v._v(" "),e("td",[v._v("deec963")])]),v._v(" "),e("tr",[e("td",[v._v("damocles-manager")]),v._v(" "),e("td",[v._v("v0.11.0")]),v._v(" "),e("td",[v._v("7d06bd4")])]),v._v(" "),e("tr",[e("td",[v._v("damocles-worker")]),v._v(" "),e("td",[v._v("v0.11.0")]),v._v(" "),e("td",[v._v("7d06bd4")])])])]),v._v(" "),e("h3",{attrs:{id:"升级顺序"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#升级顺序"}},[v._v("#")]),v._v(" 升级顺序")]),v._v(" "),e("ol",[e("li",[v._v("sophon-auth")]),v._v(" "),e("li",[v._v("venus")]),v._v(" "),e("li",[v._v("soohon-co")]),v._v(" "),e("li",[v._v("soohon-gateway")]),v._v(" "),e("li",[v._v("sophon-messager")]),v._v(" "),e("li",[v._v("sophon-miner")]),v._v(" "),e("li",[v._v("droplet")]),v._v(" "),e("li",[v._v("venus-wallet")]),v._v(" "),e("li",[v._v("damocles-manager")]),v._v(" "),e("li",[v._v("damocles-worker")])]),v._v(" "),e("h3",{attrs:{id:"sophon-auth"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-auth"}},[v._v("#")]),v._v(" sophon-auth")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("ul",[e("li",[v._v("其他组件对获取 auth 的服务")])]),v._v(" "),e("p",[v._v("依赖升级组件: 无")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("启动后能否正常鉴权")])]),v._v(" "),e("h3",{attrs:{id:"venus"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[v._v("#")]),v._v(" venus")]),v._v(" "),e("p",[v._v("影响功能:无")]),v._v(" "),e("p",[v._v("依赖升级组件: sophon-auth")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("p",[v._v("编译:先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")]),v._v(",这样可以防止未能正常升级 "),e("code",[v._v("filecoin-ffi")]),v._v(" 而带来的问题")]),v._v(" "),e("ol",[e("li",[e("p",[v._v("升级后检查vk文件是否完整")])]),v._v(" "),e("li",[e("p",[v._v("升级后执行命令 "),e("code",[v._v("./venus state network-info")]),v._v(",然后检查通过日志检查 UpgradeWaffleHeight 是否正常:")]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v("# cali\nUpgradeWaffleHeight: 1779094\n# mainnet\nUpgradeWaffleHeight: 4154640\n")])])])]),v._v(" "),e("li",[e("p",[v._v("升级后需检查是否正常同步区块")])]),v._v(" "),e("li",[e("p",[v._v("检查主网 v14 actors code,确保与下面输出一样")]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v(" ./venus state actor-cids --network-version 23\n\n # 顺序可能会不一样\n Network Version: 23\n Actor Version: 14\n Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba\n Actor CID\n account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy\n cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc\n datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg\n eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju\n ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko\n evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw\n init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6\n multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc\n paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne\n placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro\n reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc\n storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg\n storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc\n storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42\n system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs\n verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4\n")])])])]),v._v(" "),e("li",[e("p",[v._v("若不排查问题,rust日志级别"),e("strong",[v._v("不建议")]),v._v("设置为 "),e("code",[v._v("trace")]),v._v(",因为会打印较多日志")])]),v._v(" "),e("li",[e("p",[v._v("升级后可以通过命令来 "),e("code",[v._v("./venus state get-actor t01000")]),v._v(" 来确认是否升级成功")])]),v._v(" "),e("li",[e("p",[v._v("actor 迁移")]),v._v(" "),e("p",[e("strong",[v._v("经测试本次预迁移时间在1分钟左右,正式迁移时间在50秒左右")])]),v._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[v._v("预迁移高度是升级高度前 120 个高度:\npre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration\nmigration 开始:STARTING migration 结束:COMPLETED migration\n")])])])]),v._v(" "),e("li",[e("p",[v._v("如果 "),e("code",[v._v("~/.venus")]),v._v(" 存在且需要导入快照,需要先删除 "),e("code",[v._v("~/.venus/version")]),v._v(" 文件再导入快照")]),v._v(" "),e("ul",[e("li",[v._v("主网: "),e("code",[v._v("./venus daemon --import-snapshot snapshot.car")])]),v._v(" "),e("li",[v._v("calibnet: "),e("code",[v._v("./venus daemon --import-snapshot snapshot.car --network calibrationnet")])])])])]),v._v(" "),e("h3",{attrs:{id:"sophon-gateway"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-gateway"}},[v._v("#")]),v._v(" sophon-gateway")]),v._v(" "),e("p",[v._v("影响功能:无")]),v._v(" "),e("p",[v._v("依赖升级组件: sophon-auth")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("编译时,需要先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")])])]),v._v(" "),e("h3",{attrs:{id:"sophon-messager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messager"}},[v._v("#")]),v._v(" sophon-messager")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("p",[v._v("依赖升级组件: venus, sophon-auth, soohon-gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级之后需要观察能否正常接收消息, 消息能否正常上链")])]),v._v(" "),e("h3",{attrs:{id:"sophon-miner"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sophon-miner"}},[v._v("#")]),v._v(" sophon-miner")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("p",[v._v("依赖升级组件:auth, venus, gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("h3",{attrs:{id:"droplet"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[v._v("#")]),v._v(" droplet")]),v._v(" "),e("p",[v._v("影响功能:")]),v._v(" "),e("ul",[e("li",[v._v("无")])]),v._v(" "),e("p",[v._v("依赖升级组件: auth, venus, gateway, messager")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级后能否正常发单和检索")])]),v._v(" "),e("h3",{attrs:{id:"venus-wallet"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet"}},[v._v("#")]),v._v(" venus-wallet")]),v._v(" "),e("p",[v._v("影响功能: 无")]),v._v(" "),e("p",[v._v("依赖升级组件: gateway")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("升级后观察是否正常签名,消息能否正常上链")])]),v._v(" "),e("h3",{attrs:{id:"damocles-manager"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#damocles-manager"}},[v._v("#")]),v._v(" damocles-manager")]),v._v(" "),e("p",[v._v("依赖升级组件: 链服务组件")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("ul",[e("li",[v._v("编译时,需要先 "),e("code",[v._v("make dist-clean")]),v._v(" 再 "),e("code",[v._v("make")])])]),v._v(" "),e("h3",{attrs:{id:"damocles-worker"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#damocles-worker"}},[v._v("#")]),v._v(" damocles-worker")]),v._v(" "),e("p",[v._v("依赖升级组件: damocles-manager")]),v._v(" "),e("p",[v._v("注意事项:")]),v._v(" "),e("hr"),v._v(" "),e("p",[v._v("更新结果验证步骤:")]),v._v(" "),e("ol",[e("li",[v._v("程序启动正常")]),v._v(" "),e("li",[v._v("pre/pro消息正常上链")]),v._v(" "),e("li",[v._v("出块正常")]),v._v(" "),e("li",[v._v("WD上链正常")]),v._v(" "),e("li",[v._v("算力增长正常")]),v._v(" "),e("li",[v._v("真实订单检索正常")]),v._v(" "),e("li",[v._v("数据库各种gas,生命周期,聚合设置正常")])]),v._v(" "),e("h3",{attrs:{id:"数据库变更"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#数据库变更"}},[v._v("#")]),v._v(" 数据库变更")]),v._v(" "),e("p",[v._v("无")])])}),[],!1,null,null,null);a.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/61.0a1724c0.js b/assets/js/61.77e92af3.js similarity index 99% rename from assets/js/61.0a1724c0.js rename to assets/js/61.77e92af3.js index 9c020657f..2b106d4c5 100644 --- a/assets/js/61.0a1724c0.js +++ b/assets/js/61.77e92af3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{451:function(t,s,a){"use strict";a.r(s);var n=a(17),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"prometheus-使用说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prometheus-使用说明"}},[t._v("#")]),t._v(" prometheus 使用说明")]),t._v(" "),a("p",[t._v("本文主要介绍 "),a("code",[t._v("prometheus")]),t._v(" 的基本部署,及用其监控 "),a("code",[t._v("venus")]),t._v(" 系统指标的基本方案。")]),t._v(" "),a("h2",{attrs:{id:"配置解析"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置解析"}},[t._v("#")]),t._v(" 配置解析")]),t._v(" "),a("p",[t._v("默认的配置文件为 "),a("code",[t._v("prometheus.yml")])]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# my global config")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("global")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 15s "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set the scrape interval to every 15 seconds. Default is every 1 minute.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("evaluation_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 15s "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Evaluate rules every 15 seconds. The default is every 1 minute.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scrape_timeout is set to the global default (10s).")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Alertmanager configuration")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("alerting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("alertmanagers")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# - alertmanager:9093")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("rule_files")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# - "first_rules.yml"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# - "second_rules.yml"')]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# A scrape configuration containing exactly one endpoint to scrape:")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here it's Prometheus itself.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# The job name is added as a label `job=` to any timeseries scraped from this config.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"prometheus"')]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# metrics_path defaults to '/metrics'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scheme defaults to 'http'.")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:9090"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 配置采集点,一个 job 可对应一个或多个采集点")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"venus"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("metrics_path")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/metrics"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scheme")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:4567"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:5678"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("h3",{attrs:{id:"服务发现"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#服务发现"}},[t._v("#")]),t._v(" 服务发现")]),t._v(" "),a("p",[t._v("可以通过额外的文件来配置采集点,支持热加载,相当于基于文件的服务发现。")]),t._v(" "),a("p",[a("code",[t._v("prometheus.yml")])]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# The job name is added as a label `job=` to any timeseries scraped from this config.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"prometheus"')]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# metrics_path defaults to '/metrics'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scheme defaults to 'http'.")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:9090"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 热加载")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"venus"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("file_sd_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("files")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./venus.yml"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 多久重新加载")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refresh_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 10m\n")])])]),a("p",[a("code",[t._v("venus")]),t._v(" 每个实现指标监控的服务可以认为是单独的采集点。下面配置采集 "),a("code",[t._v("venus-miner")]),t._v(" 和 "),a("code",[t._v("venus-messager")]),t._v(" 的监控指标。文件名为 "),a("code",[t._v("venus.yml")]),t._v("。")]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 该文件中的每一个 targets 都是一个采集点")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# venus-miner 指标监控服务地址")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("__metrics_path__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/debug/metrics"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("instance")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"miner"')]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# venus-messager 指标监控服务地址")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("__metrics_path__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/debug/metrics"')]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("instance")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"messager"')]),t._v("\n")])])]),a("h2",{attrs:{id:"启动"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#启动"}},[t._v("#")]),t._v(" 启动")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("$ ./prometheus --config.file"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("prometheus.yml\n")])])]),a("p",[t._v("使用"),a("code",[t._v("http://localhost:9090/targets")]),t._v(", 可查询组件的指标。")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{452:function(t,s,a){"use strict";a.r(s);var n=a(17),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"prometheus-使用说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#prometheus-使用说明"}},[t._v("#")]),t._v(" prometheus 使用说明")]),t._v(" "),a("p",[t._v("本文主要介绍 "),a("code",[t._v("prometheus")]),t._v(" 的基本部署,及用其监控 "),a("code",[t._v("venus")]),t._v(" 系统指标的基本方案。")]),t._v(" "),a("h2",{attrs:{id:"配置解析"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置解析"}},[t._v("#")]),t._v(" 配置解析")]),t._v(" "),a("p",[t._v("默认的配置文件为 "),a("code",[t._v("prometheus.yml")])]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# my global config")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("global")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 15s "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set the scrape interval to every 15 seconds. Default is every 1 minute.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("evaluation_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 15s "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Evaluate rules every 15 seconds. The default is every 1 minute.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scrape_timeout is set to the global default (10s).")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Alertmanager configuration")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("alerting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("alertmanagers")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# - alertmanager:9093")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("rule_files")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# - "first_rules.yml"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v('# - "second_rules.yml"')]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# A scrape configuration containing exactly one endpoint to scrape:")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Here it's Prometheus itself.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# The job name is added as a label `job=` to any timeseries scraped from this config.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"prometheus"')]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# metrics_path defaults to '/metrics'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scheme defaults to 'http'.")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:9090"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 配置采集点,一个 job 可对应一个或多个采集点")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"venus"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("metrics_path")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/metrics"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scheme")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:4567"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:5678"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),a("h3",{attrs:{id:"服务发现"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#服务发现"}},[t._v("#")]),t._v(" 服务发现")]),t._v(" "),a("p",[t._v("可以通过额外的文件来配置采集点,支持热加载,相当于基于文件的服务发现。")]),t._v(" "),a("p",[a("code",[t._v("prometheus.yml")])]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("scrape_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# The job name is added as a label `job=` to any timeseries scraped from this config.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"prometheus"')]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# metrics_path defaults to '/metrics'")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# scheme defaults to 'http'.")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("static_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"localhost:9090"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 热加载")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("job_name")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"venus"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("file_sd_configs")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("files")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./venus.yml"')]),t._v("\n \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 多久重新加载")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("refresh_interval")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" 10m\n")])])]),a("p",[a("code",[t._v("venus")]),t._v(" 每个实现指标监控的服务可以认为是单独的采集点。下面配置采集 "),a("code",[t._v("venus-miner")]),t._v(" 和 "),a("code",[t._v("venus-messager")]),t._v(" 的监控指标。文件名为 "),a("code",[t._v("venus.yml")]),t._v("。")]),t._v(" "),a("div",{staticClass:"language-yaml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-yaml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# 该文件中的每一个 targets 都是一个采集点")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# venus-miner 指标监控服务地址")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("__metrics_path__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/debug/metrics"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("instance")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"miner"')]),t._v("\n \n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("targets")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# venus-messager 指标监控服务地址")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('":"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("labels")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("__metrics_path__")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/debug/metrics"')]),t._v(" \n "),a("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("instance")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"messager"')]),t._v("\n")])])]),a("h2",{attrs:{id:"启动"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#启动"}},[t._v("#")]),t._v(" 启动")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("$ ./prometheus --config.file"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("prometheus.yml\n")])])]),a("p",[t._v("使用"),a("code",[t._v("http://localhost:9090/targets")]),t._v(", 可查询组件的指标。")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/62.e9f50de1.js b/assets/js/62.ec46d831.js similarity index 99% rename from assets/js/62.e9f50de1.js rename to assets/js/62.ec46d831.js index b1ff9fe96..4f5b7a78f 100644 --- a/assets/js/62.e9f50de1.js +++ b/assets/js/62.ec46d831.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{452:function(t,s,a){"use strict";a.r(s);var n=a(17),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h2",{attrs:{id:"venus-tipset-execution-trace-比较工具使用说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-tipset-execution-trace-比较工具使用说明"}},[t._v("#")]),t._v(" Venus Tipset Execution trace 比较工具使用说明")]),t._v(" "),a("p",[t._v("execution-trace 比较工具是用于当 venus 链同步发生共识错误导致同步异常时,\n用于快速定位不一致的消息及其执行细节,帮助精准定位问题。")]),t._v(" "),a("h3",{attrs:{id:"原理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#原理"}},[t._v("#")]),t._v(" 原理")]),t._v(" "),a("p",[t._v("此工具通过 API 接口在 lotus 和 venus 上执行整个 tipset 中的消息,并获取所有的 execution-trace 进行比较,\n通常共识错误发生时,execution-traced 的细节也是不一致的。")]),t._v(" "),a("h3",{attrs:{id:"操作步骤"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#操作步骤"}},[t._v("#")]),t._v(" 操作步骤:")]),t._v(" "),a("h4",{attrs:{id:"编译-lotus-并启动"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编译-lotus-并启动"}},[t._v("#")]),t._v(" 编译 lotus,并启动")]),t._v(" "),a("p",[t._v("在原力区维护的 lotus, v1.12.0/incubation 分支上,支持了相关接口,\n编译时添加"),a("code",[t._v("ENABLE_GAS_TARCE=1")])]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/ipfs-force-community/lotus.git \n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" checkout -b v1.12.0/incubation oriign/v1.12.0/incubation\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("make")]),t._v(" lotus "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("ENABLE_GAS_TRACE")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n")])])]),a("h4",{attrs:{id:"获取-execution-trace-分析工具"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取-execution-trace-分析工具"}},[t._v("#")]),t._v(" 获取 execution-trace 分析工具")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/zl03jsj/filecoin-head-comparer.git\n")])])]),a("h4",{attrs:{id:"配置-execution-trace-分析工具"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置-execution-trace-分析工具"}},[t._v("#")]),t._v(" 配置 execution-trace 分析工具")]),t._v(" "),a("p",[t._v("在项目的跟目录下打开配置文件"),a("code",[t._v("./cfg_exec_trace.json")]),t._v("\n编辑配置 venus 和 lotus 的节点信息:")]),t._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lotus"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://192.168.200.21:1234/rpc/v0"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"venus"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://192.168.1.125:3453/rpc/v0"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJyZWFkIiwid3JpdGUiLCJzaWduIiwiYWRtaW4iXX0.oLkKAMWEiUA6oK-stwd3Spiwrx9TlGOuVFgrgn7JPwU"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h4",{attrs:{id:"启动-execution-trace-工具开始问题检测"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#启动-execution-trace-工具开始问题检测"}},[t._v("#")]),t._v(" 启动 execution-trace 工具开始问题检测")]),t._v(" "),a("p",[t._v("由于共识问题,导致链同步时问题时,通过日志,很容易就可以定位有问题的 tipset epoch,\n在根目录执行命令,在参数中指定高度,就可以对指定的 tipset 进行分析比较了。")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[t._v("python3 ./exec_trace_cmp.py "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),t._v("\nvenus url:http://192.168.1.125:3453/rpc/v0\nlotus url:http://192.168.200.21:1234/rpc/v0\n\n Venus and lotus got the same state root"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" after apply tipset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n start compile tipset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" traces\n venus total message count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contain implicit"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("481")]),t._v("\n lotus total message count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contain implicit"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("481")]),t._v("\n \nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebo67zpnnaqb4jzz3peflh6mu3hczu7isd4yxkymvlao5li6lrqwi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaijdjyg263zawvczt3alkciu2ptrzv3pftu434gvxjujqmam2nxe execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceavrkj7coojud5amhn2ukrhrkntaxk6r7esnilldbjocia7ut7jzw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacedus5agquqptf3o3yy3cylg7j2jb2sil24clvtyff4vcoedzxdaha execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceaadqo5lv75q7qvsbgx3prm5oh7nqfz6volerwleyt65jizhcyxqa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebkdqv25av4bjabifpe2vye74j73ou62le3hztyx33pxy254cul5u execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebrmjo2ahojpjj5rvdd6fxqvtgntoovvb722o25dmwmlub4u6icdw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebzez4rvo4yteqjtsdmwmaqpz7vadepdoikbaqcvnzqnhkuhkzt5y execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceapwk7p5c7gy35buhy6mqs42rv36kxvczca3siwl6h2evufsld5b6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceahpmfeq46nagmbzpvjnabrsem2zjrvcy77cxldaf43aniclduqik execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecdl2zt4bd4nwhxnehlqejtlikvqwztnk3leil54dsmnx6koz42zu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec7uk7o6rbnxdwyluvlm3fsposlvangkqdaj5fargbwlbwws4ezuo execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceakhot2tzgn4zt3nr6aokq2brcity2eh2d67gc2iqrpswlgch5ng6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea3n7ku4epbmqq2ecebmgifpb26etb2hrww4ryqmhiumzwpsvf7es execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecc5zqh2fm55hno66f56pqji5245huk45xqpxzt7b5hz63o7nh622"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceb223qjyqk53zic5th7npzik3redyvy723egt47dsgwlshmaksqr6 execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedoohork3gnnzfvv5kme3gqfxrygw4otcwh5lklfbdz3mxy2evinq"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea6ks7weiqy65m6m426dvihljvapmbts6cdlu6ytirrpveupvoj2y execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecivu4pfhvvdiwfk23ntidy2aein2y646uzrt4hotve46mejtgjsa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaqjbks2bjmdal6tu7yoxrecygrcn2s2pmwxwkukzj23p5lsjms2s execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecn6mfxfspglrrwu26uvj3fcirbz2femaeyv7f63vh7ochrwt76ay"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec5rnu4a6xunucqpvks5eujn5t3cywpqwieoirex25mgycucbesky execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebvxwcnorwmplriluvus6jjvqvfcknkn44lzf37ptbe5oeiwpt3vu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaobqsuortebd4nujtqinnwnc7dgs44majmnnkdtt4dqow3wyxah2 execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacear7yqpsjwvz5cofocunlyesh3q43ppvqgcs5pcnbsjmxqd4gbmtm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacecxjuehhuu2hadecr4avab4qwyy5nenyilbftuuppdoxmohj7emjs execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedqliipes5nh74aeyy3wbn4md6t33kkgqx7m2ukke7qvajp2lrbkw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceb37mvzapylc67d3vtz5fcbusziz2bofdicwny6zehonlkd3zwhus execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceas2brzrd3qhto26hfdi7diouff3yzemsvje5yyv66st3vgqzbjcg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec27fdotcosdnj423naofdqczrykexqblhvu3iey4eptaublp4aeq execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebuyl637qzpqzw46jossgq4tef6j7bh62ec237mghrx4yj4ltu6h6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec3hijr5nvasludlrpa37muy4o64326tofzii7hop4zxynao3oquc execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceagr3ucrm3exnpnm62sq6qrpnyjb74u257by2i52axnqjtvsy5t5m"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacecbhtzedpwlpdr7imuv7j47rsbj3vsilibcp5j6ocrtqr4qiekp7s execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedqpta5vr5ha4wvezsenbu7qczhctnwndu2yiclgp52ienbk6oljk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacedblssnkunnlr2zl3rji5457mlgtc2oxunc6q37swqygtopu47eck execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceduw75wrsj6fdokywn4mm72hzvsfk74i2bu7zjmvmvntmupztsa62"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceapkogzfoym2n4q6mwnjfvkiqp2ff5ueampjxa2o3htjy2sknq4hm execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacea4eoihdgbaui4rchhz66pk5ybeeyyv63qtnb3zbednp5p6m7prtq"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebqhutaiusljv4cgwh235cyvd3mrwbruypz7utk7tmwjf5esxekjq execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceatyz5v6cxbnb7lw4zrw574aogec4aaeaxy2rwzs3fvr2qnvvoc6g"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceczfrg57g4fhmxugaf53s3h7a3hgqyziv5h6ztq7jdsinuaickr6c execution-traces: ok\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\n")])])]),a("p",[t._v("当执行一致时,会看到下面的输出。")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Venus and lotus got the same state root(bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs) after apply tipset(1288233)\n")])])]),a("p",[t._v("当执行不一致是,会看到如下的输出")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("\nidx:477, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceclyunwu6ig3pvwurm34vxengjc33igcax3rxmmazo4ypevkcc4xg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebmfzfvdp7x6fg7yk7i7p7gbvu56afosgbxyju6236b4ytpllv2tg execution-traces: ok\nidx:478, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceaftdrisbrnb2yppgx37dahsp4ko23l47wsfg7g6gczx6czmtdvoa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaj3jyduelozrbaggwu2v5mokmbds67ouh5s6gdajneqrp6pdbxem execution-traces: ok\n-"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" this is a "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cron")]),t._v(" message: "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("-\nimplicit message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("f00 -"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" f03, method "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", nonce:1288233"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nidx:479, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacedqbx4tfp7qwpe7oylrwueiye4ipfx6ii7f2p4r5w55thwayci44q'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea2o5ylrpovsg6f3bvufgolcd6z46kxgfohzp3c27gendhpirug5i execution-traces: ok\n-"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" this is a "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cron")]),t._v(" message: "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("-\n\n message trace"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("283")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" not equals:\n message details "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" cid:"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(", from:f00, to:f03, nonce:1288233\n-----"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" lotus_trace:---------------\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"OnMethodInvocation"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"loc"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/vm.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("333")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*VM).send.func3"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/vm.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("354")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*VM).send"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("445")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).internalSend"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("402")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).Send"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("450")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.processBatchProofVerifies"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("222")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.OnEpochTickEnd"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/usr/lib/go/src/reflect/value.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("543")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reflect.Value.call"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/usr/lib/go/src/reflect/value.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("339")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reflect.Value.Call"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/invoker.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("247")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*ActorRegistry).transform.func2.1"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("171")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).shimCall"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vtg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vcg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vsg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tt"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2830")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ex"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i"')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n-----"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" venus_trace:---------------\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"OnVerifySeal"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"loc"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/home/zl/venus-src/pkg/vm/vmcontext/syscalls.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("106")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/venus/pkg/vm/vmcontext.syscalls.BatchVerifySeals.func1"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/src/runtime/asm_amd64.s"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1371")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"runtime.goexit"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vtg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vcg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vsg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tt"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nimplicit message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("f00 -"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" f03, method "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", nonce:1288233"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nidx:480, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs execution-traces: failed\n")])])]),a("p",[t._v("程序会打印出不同的 execution-trace 的消息,以及不匹配的调用堆栈,可以方便快速定位问题。")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{453:function(t,s,a){"use strict";a.r(s);var n=a(17),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h2",{attrs:{id:"venus-tipset-execution-trace-比较工具使用说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-tipset-execution-trace-比较工具使用说明"}},[t._v("#")]),t._v(" Venus Tipset Execution trace 比较工具使用说明")]),t._v(" "),a("p",[t._v("execution-trace 比较工具是用于当 venus 链同步发生共识错误导致同步异常时,\n用于快速定位不一致的消息及其执行细节,帮助精准定位问题。")]),t._v(" "),a("h3",{attrs:{id:"原理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#原理"}},[t._v("#")]),t._v(" 原理")]),t._v(" "),a("p",[t._v("此工具通过 API 接口在 lotus 和 venus 上执行整个 tipset 中的消息,并获取所有的 execution-trace 进行比较,\n通常共识错误发生时,execution-traced 的细节也是不一致的。")]),t._v(" "),a("h3",{attrs:{id:"操作步骤"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#操作步骤"}},[t._v("#")]),t._v(" 操作步骤:")]),t._v(" "),a("h4",{attrs:{id:"编译-lotus-并启动"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#编译-lotus-并启动"}},[t._v("#")]),t._v(" 编译 lotus,并启动")]),t._v(" "),a("p",[t._v("在原力区维护的 lotus, v1.12.0/incubation 分支上,支持了相关接口,\n编译时添加"),a("code",[t._v("ENABLE_GAS_TARCE=1")])]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/ipfs-force-community/lotus.git \n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" checkout -b v1.12.0/incubation oriign/v1.12.0/incubation\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("make")]),t._v(" lotus "),a("span",{pre:!0,attrs:{class:"token assign-left variable"}},[t._v("ENABLE_GAS_TRACE")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n")])])]),a("h4",{attrs:{id:"获取-execution-trace-分析工具"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取-execution-trace-分析工具"}},[t._v("#")]),t._v(" 获取 execution-trace 分析工具")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/zl03jsj/filecoin-head-comparer.git\n")])])]),a("h4",{attrs:{id:"配置-execution-trace-分析工具"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#配置-execution-trace-分析工具"}},[t._v("#")]),t._v(" 配置 execution-trace 分析工具")]),t._v(" "),a("p",[t._v("在项目的跟目录下打开配置文件"),a("code",[t._v("./cfg_exec_trace.json")]),t._v("\n编辑配置 venus 和 lotus 的节点信息:")]),t._v(" "),a("div",{staticClass:"language-json extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lotus"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://192.168.200.21:1234/rpc/v0"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"venus"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"url"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://192.168.1.125:3453/rpc/v0"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJyZWFkIiwid3JpdGUiLCJzaWduIiwiYWRtaW4iXX0.oLkKAMWEiUA6oK-stwd3Spiwrx9TlGOuVFgrgn7JPwU"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h4",{attrs:{id:"启动-execution-trace-工具开始问题检测"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#启动-execution-trace-工具开始问题检测"}},[t._v("#")]),t._v(" 启动 execution-trace 工具开始问题检测")]),t._v(" "),a("p",[t._v("由于共识问题,导致链同步时问题时,通过日志,很容易就可以定位有问题的 tipset epoch,\n在根目录执行命令,在参数中指定高度,就可以对指定的 tipset 进行分析比较了。")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[t._v("python3 ./exec_trace_cmp.py "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),t._v("\nvenus url:http://192.168.1.125:3453/rpc/v0\nlotus url:http://192.168.200.21:1234/rpc/v0\n\n Venus and lotus got the same state root"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" after apply tipset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n start compile tipset"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1288233")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" traces\n venus total message count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contain implicit"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("481")]),t._v("\n lotus total message count"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("contain implicit"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("481")]),t._v("\n \nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebo67zpnnaqb4jzz3peflh6mu3hczu7isd4yxkymvlao5li6lrqwi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaijdjyg263zawvczt3alkciu2ptrzv3pftu434gvxjujqmam2nxe execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceavrkj7coojud5amhn2ukrhrkntaxk6r7esnilldbjocia7ut7jzw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacedus5agquqptf3o3yy3cylg7j2jb2sil24clvtyff4vcoedzxdaha execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceaadqo5lv75q7qvsbgx3prm5oh7nqfz6volerwleyt65jizhcyxqa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebkdqv25av4bjabifpe2vye74j73ou62le3hztyx33pxy254cul5u execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebrmjo2ahojpjj5rvdd6fxqvtgntoovvb722o25dmwmlub4u6icdw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebzez4rvo4yteqjtsdmwmaqpz7vadepdoikbaqcvnzqnhkuhkzt5y execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceapwk7p5c7gy35buhy6mqs42rv36kxvczca3siwl6h2evufsld5b6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceahpmfeq46nagmbzpvjnabrsem2zjrvcy77cxldaf43aniclduqik execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecdl2zt4bd4nwhxnehlqejtlikvqwztnk3leil54dsmnx6koz42zu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec7uk7o6rbnxdwyluvlm3fsposlvangkqdaj5fargbwlbwws4ezuo execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceakhot2tzgn4zt3nr6aokq2brcity2eh2d67gc2iqrpswlgch5ng6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea3n7ku4epbmqq2ecebmgifpb26etb2hrww4ryqmhiumzwpsvf7es execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecc5zqh2fm55hno66f56pqji5245huk45xqpxzt7b5hz63o7nh622"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceb223qjyqk53zic5th7npzik3redyvy723egt47dsgwlshmaksqr6 execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedoohork3gnnzfvv5kme3gqfxrygw4otcwh5lklfbdz3mxy2evinq"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea6ks7weiqy65m6m426dvihljvapmbts6cdlu6ytirrpveupvoj2y execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("9")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecivu4pfhvvdiwfk23ntidy2aein2y646uzrt4hotve46mejtgjsa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaqjbks2bjmdal6tu7yoxrecygrcn2s2pmwxwkukzj23p5lsjms2s execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacecn6mfxfspglrrwu26uvj3fcirbz2femaeyv7f63vh7ochrwt76ay"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec5rnu4a6xunucqpvks5eujn5t3cywpqwieoirex25mgycucbesky execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("11")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebvxwcnorwmplriluvus6jjvqvfcknkn44lzf37ptbe5oeiwpt3vu"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaobqsuortebd4nujtqinnwnc7dgs44majmnnkdtt4dqow3wyxah2 execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("12")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacear7yqpsjwvz5cofocunlyesh3q43ppvqgcs5pcnbsjmxqd4gbmtm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacecxjuehhuu2hadecr4avab4qwyy5nenyilbftuuppdoxmohj7emjs execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("13")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedqliipes5nh74aeyy3wbn4md6t33kkgqx7m2ukke7qvajp2lrbkw"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceb37mvzapylc67d3vtz5fcbusziz2bofdicwny6zehonlkd3zwhus execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceas2brzrd3qhto26hfdi7diouff3yzemsvje5yyv66st3vgqzbjcg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec27fdotcosdnj423naofdqczrykexqblhvu3iey4eptaublp4aeq execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("15")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacebuyl637qzpqzw46jossgq4tef6j7bh62ec237mghrx4yj4ltu6h6"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacec3hijr5nvasludlrpa37muy4o64326tofzii7hop4zxynao3oquc execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("16")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceagr3ucrm3exnpnm62sq6qrpnyjb74u257by2i52axnqjtvsy5t5m"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacecbhtzedpwlpdr7imuv7j47rsbj3vsilibcp5j6ocrtqr4qiekp7s execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("17")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacedqpta5vr5ha4wvezsenbu7qczhctnwndu2yiclgp52ienbk6oljk"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacedblssnkunnlr2zl3rji5457mlgtc2oxunc6q37swqygtopu47eck execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("18")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceduw75wrsj6fdokywn4mm72hzvsfk74i2bu7zjmvmvntmupztsa62"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceapkogzfoym2n4q6mwnjfvkiqp2ff5ueampjxa2o3htjy2sknq4hm execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("19")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzacea4eoihdgbaui4rchhz66pk5ybeeyyv63qtnb3zbednp5p6m7prtq"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebqhutaiusljv4cgwh235cyvd3mrwbruypz7utk7tmwjf5esxekjq execution-traces: ok\nidx: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),t._v(", Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceatyz5v6cxbnb7lw4zrw574aogec4aaeaxy2rwzs3fvr2qnvvoc6g"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceczfrg57g4fhmxugaf53s3h7a3hgqyziv5h6ztq7jdsinuaickr6c execution-traces: ok\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v(".\n")])])]),a("p",[t._v("当执行一致时,会看到下面的输出。")]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("Venus and lotus got the same state root(bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs) after apply tipset(1288233)\n")])])]),a("p",[t._v("当执行不一致是,会看到如下的输出")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("..")]),t._v("\nidx:477, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceclyunwu6ig3pvwurm34vxengjc33igcax3rxmmazo4ypevkcc4xg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebmfzfvdp7x6fg7yk7i7p7gbvu56afosgbxyju6236b4ytpllv2tg execution-traces: ok\nidx:478, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("bafy2bzaceaftdrisbrnb2yppgx37dahsp4ko23l47wsfg7g6gczx6czmtdvoa"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzaceaj3jyduelozrbaggwu2v5mokmbds67ouh5s6gdajneqrp6pdbxem execution-traces: ok\n-"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" this is a "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cron")]),t._v(" message: "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("-\nimplicit message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("f00 -"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" f03, method "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", nonce:1288233"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nidx:479, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacedqbx4tfp7qwpe7oylrwueiye4ipfx6ii7f2p4r5w55thwayci44q'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacea2o5ylrpovsg6f3bvufgolcd6z46kxgfohzp3c27gendhpirug5i execution-traces: ok\n-"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" this is a "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("cron")]),t._v(" message: "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("-\n\n message trace"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("283")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" not equals:\n message details "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" cid:"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(", from:f00, to:f03, nonce:1288233\n-----"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" lotus_trace:---------------\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"OnMethodInvocation"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"loc"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/vm.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("333")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*VM).send.func3"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/vm.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("354")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*VM).send"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("445")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).internalSend"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("402")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).Send"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("450")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.processBatchProofVerifies"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("222")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.OnEpochTickEnd"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/usr/lib/go/src/reflect/value.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("543")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reflect.Value.call"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/usr/lib/go/src/reflect/value.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("339")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reflect.Value.Call"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/invoker.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("247")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*ActorRegistry).transform.func2.1"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/theduan/lotus-src/chain/vm/runtime.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("171")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/lotus/chain/vm.(*Runtime).shimCall"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vtg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vcg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("23856")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vsg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tt"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2830")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ex"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"i"')]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" \n-----"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" venus_trace:---------------\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Name"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"OnVerifySeal"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"loc"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/home/zl/venus-src/pkg/vm/vmcontext/syscalls.go"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("106")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"github.com/filecoin-project/venus/pkg/vm/vmcontext.syscalls.BatchVerifySeals.func1"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"File"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/root/go/src/runtime/asm_amd64.s"')]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Line"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1371")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Function"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"runtime.goexit"')]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"cg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vtg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vcg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2000")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vsg"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(",\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tt"')]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\nimplicit message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("f00 -"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" f03, method "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(", nonce:1288233"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nidx:480, Compare msg"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'/'")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" stateAfterApply: bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs execution-traces: failed\n")])])]),a("p",[t._v("程序会打印出不同的 execution-trace 的消息,以及不匹配的调用堆栈,可以方便快速定位问题。")])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/7.b5a3b10d.js b/assets/js/7.14526030.js similarity index 99% rename from assets/js/7.b5a3b10d.js rename to assets/js/7.14526030.js index f92c26747..1f22100db 100644 --- a/assets/js/7.b5a3b10d.js +++ b/assets/js/7.14526030.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{389:function(a,s,t){a.exports=t.p+"assets/img/error-message.e1f0dcdf.png"},390:function(a,s,t){a.exports=t.p+"assets/img/venus-sealer-start.12bc4f8d.jpg"},437:function(a,s,t){"use strict";t.r(s);var e=t(17),n=Object(e.a)({},(function(){var a=this,s=a.$createElement,e=a._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h3",{attrs:{id:"venus-wallet-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet-健康状态检查"}},[a._v("#")]),a._v(" venus-wallet 健康状态检查:")]),a._v(" "),e("h4",{attrs:{id:"_1、启动"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_1、启动"}},[a._v("#")]),a._v(" 1、启动")]),a._v(" "),e("p",[a._v("可以看到 venus-wallet 连接到的 gateway 节点地址信息和 venus-gateway 建立连接的会话 ID 信息")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("wallet_event/listenevent.go:173\trestarting listenWalletRequestOnce\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\nwallet_event/listenevent.go:200\tconnect to server 9ad36ec8-4a47-4f84-b618-e89cf03f6f38\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),a._v("\n")])])]),e("p",[a._v("但如果有类似如下的报错信息,则为异常启动:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v(" ERROR wallet_event wallet_event/listenevent.go:236 WalletSign error password not "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\n")])])]),e("p",[a._v("从日志报 venus-wallet 的密码没有设置,需要执行**./venus-wallet setpwd**来配置 wallet 的密码。")]),a._v(" "),e("h4",{attrs:{id:"_2、锁定钱包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_2、锁定钱包"}},[a._v("#")]),a._v(" 2、锁定钱包")]),a._v(" "),e("p",[a._v("如下执行以下命令,则可以上锁钱包,"),e("strong",[a._v("建议不要尝试")]),a._v(":")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("./venus-wallet lock\nPassword:******\nwallet lock successfully\n")])])]),e("p",[a._v("此时,在日志中会有一条如下信息:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("WARN rpc go-jsonrpc@v1.1ec/handler.go:279 error "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("in")]),a._v(" RPC call to "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v("'Filecoin.Unlock'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" wallet already unlocked\n")])])]),e("p",[a._v("现在 venus-wallet 已经上锁了,这个会影响 venus-sealer 发送到 venus-message 的消息不会被签名,如下图:")]),a._v(" "),e("p",[e("img",{attrs:{src:t(389),alt:"error-message"}})]),a._v(" "),e("p",[a._v("可以执行如下命令,解锁 venus-wallet,可以对 venus-sealer 发出来的消息进行签名后,由 venus 节点向链上发送")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("./venus-wallet unlock\nPassword:******\nwallet unlock successfully\n")])])]),e("h3",{attrs:{id:"venus-sealer-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-sealer-健康状态检查"}},[a._v("#")]),a._v(" Venus-sealer 健康状态检查:")]),a._v(" "),e("p",[a._v("主要可以从输出的日志中看到版本信息、节点同步状态、加载证明参数文件、本地存储 id 和 venus-sealer 连接到 venus-gateway 节点的会话建立等信息;")]),a._v(" "),e("p",[e("img",{attrs:{src:t(390),alt:""}})]),a._v(" "),e("h3",{attrs:{id:"venus-worker-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-worker-健康状态检查"}},[a._v("#")]),a._v(" venus-worker 健康状态检查:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v(" INFO main venus-worker/main.go:158 Starting venus worker\n INFO main venus-worker/main.go:188 config: "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("~/.venusworker/config.toml ~/.venusworker "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("/ip4/10.108.2.42/tcp/6666 eyJhbGciOiJIUzaW4iXX0.4ZDslo6-8kD74"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("sqlite "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" 0s"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("worker.db"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\n INFO main venus-worker/main.go:255 Remote version "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("1.0")]),a._v(".2+api1.2.0\n WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION\n WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION\n INFO paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:207 parameter and key-fetching complete\n INFO main venus-worker/main.go:306 Acceptable task types: "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("seal/v0/fetch seal/v0/commit/1 seal/v0/finalize seal/v0/commit/2"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\n INFO main venus-worker/main.go:356 Opening "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("local")]),a._v(" storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" connecting to master\n INFO main venus-worker/main.go:408 Setting up control endpoint at "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("10.121")]),a._v(".2.214:5555\n INFO main venus-worker/main.go:507 Making sure no "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("local")]),a._v(" tasks are running\n INFO main venus-worker/main.go:530 Worker registered successfully, waiting "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" tasks\n")])])]),e("p",[a._v("可以从 venus-worker 日志中,看到 venus-worker 启动后加载的配置文件目录,监控的端口号;以及在启动之后注册到 venus-sealer 上,等待获取任务。")]),a._v(" "),e("p",[a._v("如下输出以下信息,则说明 venus-worker 已经获得了新的任务:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("INFO filcrypto::proofs::api "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" seal_commit_phase2: start\nINFO filecoin_proofs::api::seal "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" seal_commit_phase2:start: SectorId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("1000054")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\nINFO filecoin_proofs::caches "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" trying parameters memory cache for: STACKED"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("34359738368")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\nINFO filecoin_proofs::caches "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" no params "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("in")]),a._v(" memory cache "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" STACKED"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("34359738368")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\nINFO storage_proofs_core::parameter_cache "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" parameter "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" identifier "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" cache: layered_drgporep::PublicParams"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v(" graph: stacked_graph::StackedGraph"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("expansion_degree: "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("8")]),a._v(" base_graph\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{389:function(a,s,t){a.exports=t.p+"assets/img/error-message.e1f0dcdf.png"},390:function(a,s,t){a.exports=t.p+"assets/img/venus-sealer-start.12bc4f8d.jpg"},435:function(a,s,t){"use strict";t.r(s);var e=t(17),n=Object(e.a)({},(function(){var a=this,s=a.$createElement,e=a._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h3",{attrs:{id:"venus-wallet-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-wallet-健康状态检查"}},[a._v("#")]),a._v(" venus-wallet 健康状态检查:")]),a._v(" "),e("h4",{attrs:{id:"_1、启动"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_1、启动"}},[a._v("#")]),a._v(" 1、启动")]),a._v(" "),e("p",[a._v("可以看到 venus-wallet 连接到的 gateway 节点地址信息和 venus-gateway 建立连接的会话 ID 信息")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("wallet_event/listenevent.go:173\trestarting listenWalletRequestOnce\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\nwallet_event/listenevent.go:200\tconnect to server 9ad36ec8-4a47-4f84-b618-e89cf03f6f38\t"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),a._v("\n")])])]),e("p",[a._v("但如果有类似如下的报错信息,则为异常启动:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v(" ERROR wallet_event wallet_event/listenevent.go:236 WalletSign error password not "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"api hub"')]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/dns/gateway.filincubator.com/tcp/83/wss"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\n")])])]),e("p",[a._v("从日志报 venus-wallet 的密码没有设置,需要执行**./venus-wallet setpwd**来配置 wallet 的密码。")]),a._v(" "),e("h4",{attrs:{id:"_2、锁定钱包"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#_2、锁定钱包"}},[a._v("#")]),a._v(" 2、锁定钱包")]),a._v(" "),e("p",[a._v("如下执行以下命令,则可以上锁钱包,"),e("strong",[a._v("建议不要尝试")]),a._v(":")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("./venus-wallet lock\nPassword:******\nwallet lock successfully\n")])])]),e("p",[a._v("此时,在日志中会有一条如下信息:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("WARN rpc go-jsonrpc@v1.1ec/handler.go:279 error "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("in")]),a._v(" RPC call to "),e("span",{pre:!0,attrs:{class:"token string"}},[a._v("'Filecoin.Unlock'")]),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),a._v(" wallet already unlocked\n")])])]),e("p",[a._v("现在 venus-wallet 已经上锁了,这个会影响 venus-sealer 发送到 venus-message 的消息不会被签名,如下图:")]),a._v(" "),e("p",[e("img",{attrs:{src:t(389),alt:"error-message"}})]),a._v(" "),e("p",[a._v("可以执行如下命令,解锁 venus-wallet,可以对 venus-sealer 发出来的消息进行签名后,由 venus 节点向链上发送")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("./venus-wallet unlock\nPassword:******\nwallet unlock successfully\n")])])]),e("h3",{attrs:{id:"venus-sealer-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-sealer-健康状态检查"}},[a._v("#")]),a._v(" Venus-sealer 健康状态检查:")]),a._v(" "),e("p",[a._v("主要可以从输出的日志中看到版本信息、节点同步状态、加载证明参数文件、本地存储 id 和 venus-sealer 连接到 venus-gateway 节点的会话建立等信息;")]),a._v(" "),e("p",[e("img",{attrs:{src:t(390),alt:""}})]),a._v(" "),e("h3",{attrs:{id:"venus-worker-健康状态检查"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#venus-worker-健康状态检查"}},[a._v("#")]),a._v(" venus-worker 健康状态检查:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v(" INFO main venus-worker/main.go:158 Starting venus worker\n INFO main venus-worker/main.go:188 config: "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("~/.venusworker/config.toml ~/.venusworker "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("/ip4/10.108.2.42/tcp/6666 eyJhbGciOiJIUzaW4iXX0.4ZDslo6-8kD74"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("sqlite "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" 0s"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("worker.db"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v("\n INFO main venus-worker/main.go:255 Remote version "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("1.0")]),a._v(".2+api1.2.0\n WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION\n WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION\n INFO paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:207 parameter and key-fetching complete\n INFO main venus-worker/main.go:306 Acceptable task types: "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("seal/v0/fetch seal/v0/commit/1 seal/v0/finalize seal/v0/commit/2"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\n INFO main venus-worker/main.go:356 Opening "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("local")]),a._v(" storage"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" connecting to master\n INFO main venus-worker/main.go:408 Setting up control endpoint at "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("10.121")]),a._v(".2.214:5555\n INFO main venus-worker/main.go:507 Making sure no "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("local")]),a._v(" tasks are running\n INFO main venus-worker/main.go:530 Worker registered successfully, waiting "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" tasks\n")])])]),e("p",[a._v("可以从 venus-worker 日志中,看到 venus-worker 启动后加载的配置文件目录,监控的端口号;以及在启动之后注册到 venus-sealer 上,等待获取任务。")]),a._v(" "),e("p",[a._v("如下输出以下信息,则说明 venus-worker 已经获得了新的任务:")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[a._v("INFO filcrypto::proofs::api "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" seal_commit_phase2: start\nINFO filecoin_proofs::api::seal "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" seal_commit_phase2:start: SectorId"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("1000054")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\nINFO filecoin_proofs::caches "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" trying parameters memory cache for: STACKED"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("34359738368")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\nINFO filecoin_proofs::caches "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" no params "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("in")]),a._v(" memory cache "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" STACKED"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("34359738368")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\nINFO storage_proofs_core::parameter_cache "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" parameter "),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" identifier "),e("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" cache: layered_drgporep::PublicParams"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v(" graph: stacked_graph::StackedGraph"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("expansion_degree: "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("8")]),a._v(" base_graph\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/8.5880ef83.js b/assets/js/8.0f750869.js similarity index 92% rename from assets/js/8.5880ef83.js rename to assets/js/8.0f750869.js index 74916d0f2..2c59fde29 100644 --- a/assets/js/8.5880ef83.js +++ b/assets/js/8.0f750869.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{329:function(e,t,s){e.exports=s.p+"assets/img/damocles-banner.cdc65a5a.jpg"},405:function(e,t,s){"use strict";s.r(t);var r=s(17),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[r("img",{attrs:{src:s(329),alt:"damocles"}})]),e._v(" "),r("h3",{attrs:{id:"damocles"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" Damocles")]),e._v(" "),r("p",[e._v("Damocles, formerly known as Venus Power Service, is THE Filecoin storage power solution. Learn more about Damocles "),r("a",{attrs:{href:"https://damocles.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{329:function(e,t,s){e.exports=s.p+"assets/img/damocles-banner.cdc65a5a.jpg"},404:function(e,t,s){"use strict";s.r(t);var r=s(17),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[r("img",{attrs:{src:s(329),alt:"damocles"}})]),e._v(" "),r("h3",{attrs:{id:"damocles"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" Damocles")]),e._v(" "),r("p",[e._v("Damocles, formerly known as Venus Power Service, is THE Filecoin storage power solution. Learn more about Damocles "),r("a",{attrs:{href:"https://damocles.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),r("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/app.d532cd36.js b/assets/js/app.f37b77a3.js similarity index 82% rename from assets/js/app.d532cd36.js rename to assets/js/app.f37b77a3.js index ccb52edfc..78f123cd0 100644 --- a/assets/js/app.d532cd36.js +++ b/assets/js/app.f37b77a3.js @@ -1,8 +1,8 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function n(n){for(var r,i,s=n[0],c=n[1],l=n[2],p=0,d=[];p0?o(r(e),9007199254740991):0}},function(e,n){var t=Array.isArray;e.exports=t},function(e,n,t){var r=t(152),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},function(e,n,t){"use strict";function r(e,n,t,r,o,a,i,s){var c,l="function"==typeof e?e.options:e;if(n&&(l.render=n,l.staticRenderFns=t,l._compiled=!0),r&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),i?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=c):o&&(c=s?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(e,n){return c.call(n),u(e,n)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,c):[c]}return{exports:e,options:l}}t.d(n,"a",(function(){return r}))},function(e,n,t){var r=t(5),o=t(1),a=t(7),i=Object.defineProperty,s={},c=function(e){throw e};e.exports=function(e,n){if(a(s,e))return s[e];n||(n={});var t=[][e],l=!!a(n,"ACCESSORS")&&n.ACCESSORS,u=a(n,0)?n[0]:c,p=a(n,1)?n[1]:void 0;return s[e]=!!t&&!o((function(){if(l&&!r)return!0;var e={length:-1};l?i(e,1,{enumerable:!0,get:c}):e[1]=1,t.call(e,u,p)}))}},function(e,n,t){var r=t(126),o=t(2),a=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,n){return arguments.length<2?a(r[e])||a(o[e]):r[e]&&r[e][n]||o[e]&&o[e][n]}},function(e,n,t){var r=t(5),o=t(84),a=t(35),i=t(11),s=t(39),c=t(7),l=t(121),u=Object.getOwnPropertyDescriptor;n.f=r?u:function(e,n){if(e=i(e),n=s(n,!0),l)try{return u(e,n)}catch(e){}if(c(e,n))return a(!o.f.call(e,n),e[n])}},function(e,n){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,n,t){"use strict";var r=t(0),o=t(32).filter,a=t(59),i=t(18),s=a("filter"),c=i("filter");r({target:"Array",proto:!0,forced:!s||!c},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,n){e.exports=!1},function(e,n){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,n){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,n,t){var r=t(235),o=t(238);e.exports=function(e,n){var t=o(e,n);return r(t)?t:void 0}},function(e,n,t){"use strict";var r=t(114).charAt,o=t(31),a=t(127),i=o.set,s=o.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,n=s(this),t=n.string,o=n.index;return o>=t.length?{value:void 0,done:!0}:(e=r(t,o),n.index+=e.length,{value:e,done:!1})}))},function(e,n,t){var r,o=t(6),a=t(110),i=t(82),s=t(40),c=t(125),l=t(79),u=t(55),p=u("IE_PROTO"),d=function(){},h=function(e){return" - + @@ -46,6 +46,6 @@

Distributed Infrastructure

Adhering to design principles of distributed systems, Venus chain service enables you to scale and guarantees availability to your storage providing systems

Optimized Storage Deal

Solution for both storage client and storage provider enables seamless storage deal process

Reimagined Storage Power

Completely revamped sealer submodule to help you to grow and maintain your storage power with more efficiency and stability

- + diff --git a/intro/_Footer.html b/intro/_Footer.html index f239bf5b8..a694aa501 100644 --- a/intro/_Footer.html +++ b/intro/_Footer.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

See something missing? Have tips to share? File an issue (opens new window), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)

- + diff --git a/intro/contribute-docs.html b/intro/contribute-docs.html index ac6291801..2486a1dfe 100644 --- a/intro/contribute-docs.html +++ b/intro/contribute-docs.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -72,6 +72,6 @@ Droplet (opens new window)

- + diff --git a/intro/damocles.html b/intro/damocles.html index 874b126bc..cff258859 100644 --- a/intro/damocles.html +++ b/intro/damocles.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

damocles

# Damocles

Damocles, formerly known as Venus Power Service, is THE Filecoin storage power solution. Learn more about Damocles here (opens new window).

- + diff --git a/intro/droplet.html b/intro/droplet.html index c6b81923a..828b872f2 100644 --- a/intro/droplet.html +++ b/intro/droplet.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

droplet

# Droplet

Droplet, formerly known as Venus Deal Service, is THE Filecoin storage deal solution. Learn more about Droplet here (opens new window).

- + diff --git a/intro/index.html b/intro/index.html index ea6ae8f61..7f67ae96a 100644 --- a/intro/index.html +++ b/intro/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -42,6 +42,6 @@ →

- + diff --git a/intro/one-pager.html b/intro/one-pager.html index a20a3d25d..afebc484b 100644 --- a/intro/one-pager.html +++ b/intro/one-pager.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -47,6 +47,6 @@ (opens new window)

- + diff --git a/intro/sophon.html b/intro/sophon.html index 6e9fd7e06..b840e9261 100644 --- a/intro/sophon.html +++ b/intro/sophon.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

sophon

# Sophon

Sophon, formerly known as Venus chain service, is THE Filecoin super node solution. Learn more about Sophon here (opens new window).

- + diff --git a/operation/Efficiency_of_sealing.html b/operation/Efficiency_of_sealing.html index 926cf3414..d9aaa0bc4 100644 --- a/operation/Efficiency_of_sealing.html +++ b/operation/Efficiency_of_sealing.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -140,6 +140,6 @@ MaxSealingSectors = 7

# Stop-loss

If one of tasks fails too many times, manual intervention is needed to get sealing pipeline back to its normal output.

Remove sectors when you have the following issues.

  1. Expired ticket
  2. Expired Commit
  3. Corrupted proof params

To remove incomplete sectors.

venus-sealer sectors remove --really-do-it <sectorNum>
 
- + diff --git a/operation/System_monitor_of_Zabbix.html b/operation/System_monitor_of_Zabbix.html index cd6d826a9..dde80277c 100644 --- a/operation/System_monitor_of_Zabbix.html +++ b/operation/System_monitor_of_Zabbix.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -113,6 +113,6 @@

Check zabbix RAM usage.

Check problems in dashboard.

- + diff --git a/operation/_Footer.html b/operation/_Footer.html index ea8202d5a..543927f0d 100644 --- a/operation/_Footer.html +++ b/operation/_Footer.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

See something missing? Have tips to share? File an issue (opens new window), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)

- + diff --git a/operation/example-single-box.html b/operation/example-single-box.html index 1c12f5010..f2e87fa6f 100644 --- a/operation/example-single-box.html +++ b/operation/example-single-box.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# Venus Single box setup

This is an exmaple venus single box setup that is estimated to grow 1TiB power per day.

# Specs

Parts Recommendation
CPU 3970X * 1 (32 core)
RAM 512G
NVMe (for sealing) 3T/SSD
SSD (for OS) 500G
GPU RTX 3080 * 1

# Job scheduling

Task Core limit Minutes RAM(G) Hourly production rate Daily growth(T)
P1 * 5 20 220 376 1.3636 1.0227
AP, P2, Commit 12 10 120 3 1.125

For more information on core limit, please refer to the next tutorial.

- + diff --git a/operation/index.html b/operation/index.html index e75c1888d..dd406c2aa 100644 --- a/operation/index.html +++ b/operation/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -42,6 +42,6 @@ →

- + diff --git a/operation/lotus-vs-venus.html b/operation/lotus-vs-venus.html index f229461d5..147c1ae77 100644 --- a/operation/lotus-vs-venus.html +++ b/operation/lotus-vs-venus.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# Commands from Lotus

Many basic commands including but not limited to creating worker/controler addresses (opens new window), setting different types of configurations (opens new window), or changing storage locations (opens new window) apply to both Lotus and Venus. Node operators are expected to follow the same process as what is instructed on the Lotus documentation. If you encounter any questions please do not hesitate to reach out to us on #fil-venus (opens new window).

- + diff --git a/operation/nv15-upgrade.html b/operation/nv15-upgrade.html index 3c3e06e56..ea4e53a0c 100644 --- a/operation/nv15-upgrade.html +++ b/operation/nv15-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -51,6 +51,6 @@

- + diff --git a/operation/nv16-upgrade.html b/operation/nv16-upgrade.html index 28c6ddc4b..3c9914882 100644 --- a/operation/nv16-upgrade.html +++ b/operation/nv16-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -69,6 +69,6 @@ →

- + diff --git a/operation/nv17-upgrade.html b/operation/nv17-upgrade.html index 8a76cc436..14a3f5c57 100644 --- a/operation/nv17-upgrade.html +++ b/operation/nv17-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -70,6 +70,6 @@ →

- + diff --git a/operation/nv18-upgrade.html b/operation/nv18-upgrade.html index 11a8da011..8539ed814 100644 --- a/operation/nv18-upgrade.html +++ b/operation/nv18-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -98,6 +98,6 @@ →

- + diff --git a/operation/nv19-upgrade.html b/operation/nv19-upgrade.html index 309933c63..318fcc36d 100644 --- a/operation/nv19-upgrade.html +++ b/operation/nv19-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -79,6 +79,6 @@ →

- + diff --git a/operation/nv21-upgrade.html b/operation/nv21-upgrade.html index bf56bdd2b..2761ac391 100644 --- a/operation/nv21-upgrade.html +++ b/operation/nv21-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -87,6 +87,6 @@ →

- + diff --git a/operation/nv22-upgrade.html b/operation/nv22-upgrade.html index 3b235c03e..d1a643500 100644 --- a/operation/nv22-upgrade.html +++ b/operation/nv22-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -76,6 +76,6 @@ →

- + diff --git a/operation/nv23-upgrade.html b/operation/nv23-upgrade.html index ee46d0f1f..905e54a2b 100644 --- a/operation/nv23-upgrade.html +++ b/operation/nv23-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -76,6 +76,6 @@ →

- + diff --git a/questions.html b/questions.html index 79a49f1ee..e01528ff4 100644 --- a/questions.html +++ b/questions.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# Have a question?

Filecoin.io (opens new window) - general information about the Filecoin network

Community Channels (opens new window) - links to Filecoin community chat and forum

Last Updated: 8/6/2024, 5:04:12 AM
- + diff --git a/zh/TODO.html b/zh/TODO.html index 425507a41..f2d2d79a3 100644 --- a/zh/TODO.html +++ b/zh/TODO.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -39,6 +39,6 @@ 简体中文

# 原则

  基于目前的需要,先从重构 guide 和 modules 模块,让两块联动,形成比较易读的 venus 集群部署介绍。

  • modules 模块存储各组件的简介,将不相干的文档移到对应位置

  • guide 和 modules 对于组件介绍存在很多重复的,只保留一份

  • modules 模块组件介绍老旧,超链接到项目的介绍文档,避免项目内更新后 doc 中不及时及重复劳动

  • guide 将组件介绍,编译构建,部署文档独立

  • guide 模块增加 QA 模块,将 venus discussion 的问题以超链接方式统一到 QA 模块

  • 部署模块尽量少一些设计的介绍,简明扼要,每个指定的操作尽量不涉及不相干的,以免造成误解

# TODO list

  • [ ] modules 模块

    • [ ] 引导页内容更新
    • [ ] 不相关文档移走
    • [ ] 文档命名一致
    • [ ] 组件介绍匹配项目进度
    • [x] 编译构建独立到一个文档
    • [ ] 组件文档移除从项目中搬过来的内容,用超链接
    • [ ] market 和 cluster 模块的技术文档移到 modules 模块,
  • [ ] guide 模块

    • [ ] 将部署用到的基础知识单独形成文档
    • [x] 编译构建超链接到对应文档
    • [x] 增加部分组件的验证:怎么判断部署成功
    • [ ] 目录结构调整
      • [ ] market 和 cluster 归属到链服务部署和独立组件部署文档
      • [ ] .fil_withdraw_and_send.md.swp 文件删除
      • [ ] sealer 文档放到单独的目录
    • [ ] Troubleshooting-&-FAQ.md 用超链接方式管理 venus discussion
  • [ ] 移除没有价值或过时的文档

  • [ ] 在很多模块中重复的内容整合

  • [ ] 每个项目搬过来的内容使用超链接

- + diff --git a/zh/about/index.html b/zh/about/index.html index 9ccbcab94..a7a7bb914 100644 --- a/zh/about/index.html +++ b/zh/about/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# 使命,愿景,价值观

  • ❗️使命:建设 Filecoin 基础设施和工具,支持生态繁荣发展
  • 🌏 愿景:人人都能参与 Filecoin 生态
  • ☯️ 价值观:开放并且去信任

# 联系方式

# 其他资源

- + diff --git a/zh/index.html b/zh/index.html index b7c6b9915..b91d6b369 100644 --- a/zh/index.html +++ b/zh/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -46,6 +46,6 @@

分布式架构

依照分布式系统的设计理念和原则,实现了一套快速扩展,高可用的分布式基础架构

优化订单体验

完善了一整套方便存储提供者接收真实存储订单,同时也方便存储客户发送存储订单的解决方案

全新的算力服务

安全,有韧性的算力维持服务;高效,灵活,可扩容的算力增长服务

- + diff --git a/zh/intro/_Footer.html b/zh/intro/_Footer.html index 2d89baadb..bea1cc68b 100644 --- a/zh/intro/_Footer.html +++ b/zh/intro/_Footer.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

See something missing? Have tips to share? File an issue (opens new window), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)

- + diff --git a/zh/intro/contribute-doc.html b/zh/intro/contribute-doc.html index ec92bf249..5e396ad89 100644 --- a/zh/intro/contribute-doc.html +++ b/zh/intro/contribute-doc.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -50,6 +50,6 @@ 水滴 (opens new window)

- + diff --git a/zh/intro/damocles.html b/zh/intro/damocles.html index 2932514b9..6ec9e1104 100644 --- a/zh/intro/damocles.html +++ b/zh/intro/damocles.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

damocles

# 执剑人

执剑人,原 Venus 算力服务,是一个Filecoin存储算力解决方案。请在 (opens new window)了解更多关于执剑人的信息。

- + diff --git a/zh/intro/droplet.html b/zh/intro/droplet.html index e1ba8b7cc..f711ebf6c 100644 --- a/zh/intro/droplet.html +++ b/zh/intro/droplet.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

droplet

# 水滴

水滴,原 Venus 订单服务,是一个Filecoin存储订单解决方案。请在 (opens new window)了解更多关于水滴的信息。

- + diff --git a/zh/intro/index.html b/zh/intro/index.html index e5f7498be..9a411f574 100644 --- a/zh/intro/index.html +++ b/zh/intro/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -42,6 +42,6 @@ →

- + diff --git a/zh/intro/one-pager.html b/zh/intro/one-pager.html index 37ab49bd7..7f68b47c6 100644 --- a/zh/intro/one-pager.html +++ b/zh/intro/one-pager.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -47,6 +47,6 @@ (opens new window)

- + diff --git a/zh/intro/sophon.html b/zh/intro/sophon.html index ea9b911b2..8048e064c 100644 --- a/zh/intro/sophon.html +++ b/zh/intro/sophon.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

sophon

# 智子

智子,原 Venus 链服务,是一个 Filecoin 超级节点解决方案。请在 (opens new window)了解更多关于智子的信息。

- + diff --git a/zh/operation/Efficiency_of_sealing.html b/zh/operation/Efficiency_of_sealing.html index e323ca7ca..586c29933 100644 --- a/zh/operation/Efficiency_of_sealing.html +++ b/zh/operation/Efficiency_of_sealing.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -201,6 +201,6 @@ MaxSealingSectorsForDeals = 0

此时我们可以通过一个简单的定时脚本就可以做到,始终维持最佳的任务量了

# 损失和止损

  如果一个任务执行错误之后又被反复的重试,这就像我们有 7 个通道进行算力的封装,但是此时有一通道阻塞或者损坏,这就会降低我们 1 / 7 的产量,所以及时的处理错误也是非常重要的

  • 何种情况下应该立刻抛弃任务

    1. ticket 过期
    2. Commit 过期
    3. 依赖文件损坏重试多次都未成功时;
  • 移除无法完成的 sector

venus-sealer sectors remove --really-do-it <sectorNum>
 

如遇到无法彻底删除请查询:顽固扇区如何删除 (opens new window)

- + diff --git a/zh/operation/Independent_com_access_analysis.html b/zh/operation/Independent_com_access_analysis.html index 086c377d1..c9f2cd0d0 100644 --- a/zh/operation/Independent_com_access_analysis.html +++ b/zh/operation/Independent_com_access_analysis.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -64,6 +64,6 @@ INFO filecoin_proofs::caches > no params in memory cache for STACKED[34359738368] INFO storage_proofs_core::parameter_cache > parameter set identifier for cache: layered_drgporep::PublicParams{ graph: stacked_graph::StackedGraph{expansion_degree: 8 base_graph
- + diff --git a/zh/operation/Sealing_deploy_plan_1.html b/zh/operation/Sealing_deploy_plan_1.html index c0552552d..31494a3b5 100644 --- a/zh/operation/Sealing_deploy_plan_1.html +++ b/zh/operation/Sealing_deploy_plan_1.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -101,6 +101,6 @@ ./venus-worker storage attach --seal <ABSOLUTE_LOCAL_PATH>

TRUST_PARAMS=1 环境变量可以跳过校验证明参数文件,如果你确定参数文件都在且是正确的可以用此环境变量用加快 venus-sealer 或 venus-worker 的启动的速度;

seal 要求较高的磁盘吞吐量,建议 ssd 盘。

  • 磁盘空间及并发数计算:

    • 32G 内存消耗:56G cache + 64G * 运行数量

    • 32G 磁盘消耗:520G 左右 * 运行数量

    • 64G 内存消耗:112G cache + 128G

    • 64G 磁盘消耗:1T 左右 * 运行数量

    • 故这两台机器 1t 的内存大约能做 64G sector 的数量为:

   (1024G-112G)/128G=7.125,保险起见我们可以先并发 6 个观察一段时间资源使用率。

   确定了并发密封扇区个数后,就可以确定 seal 需要的磁盘空间= 6*1t=6t.

做策略的思路:先考虑内存,确定并发数,在补充其他资源,如临时磁盘空间,至于 cpu,如果不足,可以限额,这样做的好处是系统可以持续运行,而不被 oom。

可以利用 gpu 加速的任务时 P2,C2 和 windowPoSt,分配 gpu 的顺序是:wdPoSt>C2>P2

  • 并发数控制    ./venus-sealer sectors pledge 发送一个密封任务,通常写一个定时脚本或系统事务,每隔一段时间发送一个 sector 任务;配置文件 MaxSealingSectors 控制同时进行的 sector 上限数。
- + diff --git a/zh/operation/Sealing_deploy_plan_2.html b/zh/operation/Sealing_deploy_plan_2.html index f0bcbc1ae..4f00da857 100644 --- a/zh/operation/Sealing_deploy_plan_2.html +++ b/zh/operation/Sealing_deploy_plan_2.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -91,6 +91,6 @@ sudo echo <PID> > /sys/fs/cgroup/cpuset/worker/cgroup.procs

PID: 进程 ID 号;

每次 worker 重启后 PID 会变化,需要更新文件。

/sys/fs/cgroup/cpuset是系统目录,worker是自己创建的.

- + diff --git a/zh/operation/System_monitor_of_Zabbix.html b/zh/operation/System_monitor_of_Zabbix.html index 1ad9bef5f..a1ec0c706 100644 --- a/zh/operation/System_monitor_of_Zabbix.html +++ b/zh/operation/System_monitor_of_Zabbix.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -117,6 +117,6 @@

5、查看 zabbix 监控机器的内存图

6、异常报警,需要处理的机器

- + diff --git a/zh/operation/_Footer.html b/zh/operation/_Footer.html index 0e25fa2be..c5653dd8b 100644 --- a/zh/operation/_Footer.html +++ b/zh/operation/_Footer.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

See something missing? Have tips to share? File an issue (opens new window), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)

- + diff --git a/zh/operation/example-single-box.html b/zh/operation/example-single-box.html index 557032588..7033388d5 100644 --- a/zh/operation/example-single-box.html +++ b/zh/operation/example-single-box.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# venus 集群日增算力 1T 机器选型方案

# 机器配置

资源 配置
CPU 3970X * 1 (32c)
内存 512G
硬盘 3T/SSD
网卡 千兆
系统盘 500G
显卡 3080 * 1

台数:1 台

# 任务配比

任务分为 AP,P1,P2,Commit 阶段

运行方式 核数限制 耗时 (分钟) 内存消耗 (G) 效率 (个/小时) 日产量 (T)
P1 * 5 20 220 376 1.3636 1.0227
P2,AP,Commit 12 10 120 3 1.125

关于限核,配置执行任务类型,并发任务数等请参考 venus-docs 项目中相关文档。

- + diff --git a/zh/operation/index.html b/zh/operation/index.html index 1ba4a0cc3..cac9f7880 100644 --- a/zh/operation/index.html +++ b/zh/operation/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -42,6 +42,6 @@ →

- + diff --git a/zh/operation/lotus-vs-venus.html b/zh/operation/lotus-vs-venus.html index 575c3c2ce..df31e0486 100644 --- a/zh/operation/lotus-vs-venus.html +++ b/zh/operation/lotus-vs-venus.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# 从 Lotus 来的命令

很多日常的命令包括但不限于创建worker/controler地址 (opens new window),设置不同的配置 (opens new window),或者修改存储路径 (opens new window)等等,都同时适用于LotusVenus。节点运维工程师可以按照 Lotus 文档中的步骤来操作。如果遇到任何问题,欢迎到#fil-venus-cn (opens new window)来提出问题。

- + diff --git a/zh/operation/migrate_market_v1_to_v2.html b/zh/operation/migrate_market_v1_to_v2.html index a9a99e152..2905a70dc 100644 --- a/zh/operation/migrate_market_v1_to_v2.html +++ b/zh/operation/migrate_market_v1_to_v2.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -50,6 +50,6 @@

- + diff --git a/zh/operation/nv15-upgrade.html b/zh/operation/nv15-upgrade.html index 5a34c8361..301c1b294 100644 --- a/zh/operation/nv15-upgrade.html +++ b/zh/operation/nv15-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -82,6 +82,6 @@ →

- + diff --git a/zh/operation/nv16-upgrade.html b/zh/operation/nv16-upgrade.html index f2063f12a..4030a3f70 100644 --- a/zh/operation/nv16-upgrade.html +++ b/zh/operation/nv16-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -69,6 +69,6 @@ →

- + diff --git a/zh/operation/nv17-upgrade.html b/zh/operation/nv17-upgrade.html index 3a578b101..c584776f7 100644 --- a/zh/operation/nv17-upgrade.html +++ b/zh/operation/nv17-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -69,6 +69,6 @@ →

- + diff --git a/zh/operation/nv18-upgrade.html b/zh/operation/nv18-upgrade.html index acf3ac5ab..7e03f2c5b 100644 --- a/zh/operation/nv18-upgrade.html +++ b/zh/operation/nv18-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -98,6 +98,6 @@ →

- + diff --git a/zh/operation/nv19-upgrade.html b/zh/operation/nv19-upgrade.html index bb4399488..d73a5b623 100644 --- a/zh/operation/nv19-upgrade.html +++ b/zh/operation/nv19-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -79,6 +79,6 @@ →

- + diff --git a/zh/operation/nv21-upgrade.html b/zh/operation/nv21-upgrade.html index d98336515..c85c26677 100644 --- a/zh/operation/nv21-upgrade.html +++ b/zh/operation/nv21-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -83,6 +83,6 @@ →

- + diff --git a/zh/operation/nv22-upgrade.html b/zh/operation/nv22-upgrade.html index 2d1606ede..7212c316d 100644 --- a/zh/operation/nv22-upgrade.html +++ b/zh/operation/nv22-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -76,6 +76,6 @@ →

- + diff --git a/zh/operation/nv23-upgrade.html b/zh/operation/nv23-upgrade.html index 14e8732ed..68b9ca434 100644 --- a/zh/operation/nv23-upgrade.html +++ b/zh/operation/nv23-upgrade.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -76,6 +76,6 @@ →

- + diff --git a/zh/operation/prometheus-instruction.html b/zh/operation/prometheus-instruction.html index 9454d8782..b5c41af76 100644 --- a/zh/operation/prometheus-instruction.html +++ b/zh/operation/prometheus-instruction.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -110,6 +110,6 @@ instance: "messager"

# 启动

$ ./prometheus --config.file=prometheus.yml
 

使用http://localhost:9090/targets, 可查询组件的指标。

- + diff --git a/zh/operation/troubleshoot-consensus-fault.html b/zh/operation/troubleshoot-consensus-fault.html index c37f4188a..004fc12dd 100644 --- a/zh/operation/troubleshoot-consensus-fault.html +++ b/zh/operation/troubleshoot-consensus-fault.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -190,6 +190,6 @@ implicit message(f00 -> f03, method : 2, nonce:1288233) idx:480, Compare msg({'/': 'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'}) stateAfterApply: bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs execution-traces: failed

程序会打印出不同的 execution-trace 的消息,以及不匹配的调用堆栈,可以方便快速定位问题。

- +