From 4ead65dfed51e382e8a063b33b98a5335bfb7bdc Mon Sep 17 00:00:00 2001 From: Fatman13 Date: Sat, 9 Nov 2024 00:16:09 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20filecoin?= =?UTF-8?q?-project/venus-docs@35b7b95beea5a95511daaf04edfb058592c6cbef=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 6 +++--- _Footer.html | 4 ++-- about/index.html | 4 ++-- assets/js/{10.f4a85755.js => 10.538010de.js} | 2 +- assets/js/{11.f97206d7.js => 11.fc475d76.js} | 2 +- assets/js/{13.a0226e76.js => 13.7a1a809b.js} | 2 +- assets/js/{14.789b04e0.js => 14.44d12e11.js} | 2 +- assets/js/{15.f9e33674.js => 15.decd032e.js} | 2 +- assets/js/{16.bb30ec13.js => 16.00e77020.js} | 2 +- assets/js/{22.fc213551.js => 22.daaacc69.js} | 2 +- assets/js/{26.b79cdbaa.js => 26.7c902e8b.js} | 2 +- assets/js/{27.c1a394dd.js => 27.4fe997fb.js} | 2 +- assets/js/{28.ae02dd6f.js => 28.11845a08.js} | 2 +- assets/js/{29.b536a87c.js => 29.66608a9c.js} | 2 +- assets/js/{31.cc5663af.js => 31.f5d0a700.js} | 2 +- assets/js/{32.b7e9f209.js => 32.f4b496d6.js} | 2 +- assets/js/{39.956a95ec.js => 39.d7a6fbe0.js} | 2 +- assets/js/{40.50e9288f.js => 40.2418b6a4.js} | 2 +- assets/js/{42.6f23ba4c.js => 42.215ace8a.js} | 2 +- assets/js/{46.cdd6c8d8.js => 46.6b31baf0.js} | 2 +- assets/js/{6.14585a82.js => 6.fddfe598.js} | 2 +- assets/js/{60.70bb0d4d.js => 60.9e52dcc3.js} | 2 +- assets/js/{61.77e92af3.js => 61.0a1724c0.js} | 2 +- assets/js/{7.48dffc11.js => 7.14526030.js} | 2 +- assets/js/{8.0f750869.js => 8.5880ef83.js} | 2 +- assets/js/{9.69461f25.js => 9.f2fc0f61.js} | 2 +- assets/js/{app.34bf41e3.js => app.dbad91b6.js} | 4 ++-- index.html | 4 ++-- intro/_Footer.html | 4 ++-- intro/contribute-docs.html | 4 ++-- intro/damocles.html | 4 ++-- intro/droplet.html | 4 ++-- intro/index.html | 4 ++-- intro/one-pager.html | 4 ++-- intro/sophon.html | 4 ++-- operation/Efficiency_of_sealing.html | 4 ++-- operation/System_monitor_of_Zabbix.html | 4 ++-- operation/_Footer.html | 4 ++-- operation/example-single-box.html | 4 ++-- operation/index.html | 4 ++-- operation/lotus-vs-venus.html | 4 ++-- operation/nv15-upgrade.html | 4 ++-- operation/nv16-upgrade.html | 4 ++-- operation/nv17-upgrade.html | 4 ++-- operation/nv18-upgrade.html | 4 ++-- operation/nv19-upgrade.html | 4 ++-- operation/nv21-upgrade.html | 4 ++-- operation/nv22-upgrade.html | 4 ++-- operation/nv23-upgrade.html | 4 ++-- questions.html | 4 ++-- zh/TODO.html | 4 ++-- zh/about/index.html | 4 ++-- zh/index.html | 4 ++-- zh/intro/_Footer.html | 4 ++-- zh/intro/contribute-doc.html | 4 ++-- zh/intro/damocles.html | 4 ++-- zh/intro/droplet.html | 4 ++-- zh/intro/index.html | 4 ++-- zh/intro/one-pager.html | 4 ++-- zh/intro/sophon.html | 4 ++-- zh/operation/Efficiency_of_sealing.html | 4 ++-- zh/operation/Independent_com_access_analysis.html | 4 ++-- zh/operation/Sealing_deploy_plan_1.html | 4 ++-- zh/operation/Sealing_deploy_plan_2.html | 4 ++-- zh/operation/System_monitor_of_Zabbix.html | 4 ++-- zh/operation/_Footer.html | 4 ++-- zh/operation/example-single-box.html | 4 ++-- zh/operation/index.html | 4 ++-- zh/operation/lotus-vs-venus.html | 4 ++-- zh/operation/migrate_market_v1_to_v2.html | 4 ++-- zh/operation/nv15-upgrade.html | 4 ++-- zh/operation/nv16-upgrade.html | 4 ++-- zh/operation/nv17-upgrade.html | 4 ++-- zh/operation/nv18-upgrade.html | 4 ++-- zh/operation/nv19-upgrade.html | 4 ++-- zh/operation/nv21-upgrade.html | 4 ++-- zh/operation/nv22-upgrade.html | 4 ++-- zh/operation/nv23-upgrade.html | 4 ++-- zh/operation/prometheus-instruction.html | 4 ++-- zh/operation/troubleshoot-consensus-fault.html | 4 ++-- 80 files changed, 138 insertions(+), 138 deletions(-) rename assets/js/{10.f4a85755.js => 10.538010de.js} (57%) rename assets/js/{11.f97206d7.js => 11.fc475d76.js} (77%) rename assets/js/{13.a0226e76.js => 13.7a1a809b.js} (92%) rename assets/js/{14.789b04e0.js => 14.44d12e11.js} (78%) rename assets/js/{15.f9e33674.js => 15.decd032e.js} (57%) rename assets/js/{16.bb30ec13.js => 16.00e77020.js} (85%) rename assets/js/{22.fc213551.js => 22.daaacc69.js} (90%) rename assets/js/{26.b79cdbaa.js => 26.7c902e8b.js} (99%) rename assets/js/{27.c1a394dd.js => 27.4fe997fb.js} (90%) rename assets/js/{28.ae02dd6f.js => 28.11845a08.js} (97%) rename assets/js/{29.b536a87c.js => 29.66608a9c.js} (95%) rename assets/js/{31.cc5663af.js => 31.f5d0a700.js} (99%) rename assets/js/{32.b7e9f209.js => 32.f4b496d6.js} (99%) rename assets/js/{39.956a95ec.js => 39.d7a6fbe0.js} (93%) rename assets/js/{40.50e9288f.js => 40.2418b6a4.js} (97%) rename assets/js/{42.6f23ba4c.js => 42.215ace8a.js} (90%) rename assets/js/{46.cdd6c8d8.js => 46.6b31baf0.js} (99%) rename assets/js/{6.14585a82.js => 6.fddfe598.js} (99%) rename assets/js/{60.70bb0d4d.js => 60.9e52dcc3.js} (99%) rename assets/js/{61.77e92af3.js => 61.0a1724c0.js} (99%) rename assets/js/{7.48dffc11.js => 7.14526030.js} (99%) rename assets/js/{8.0f750869.js => 8.5880ef83.js} (92%) rename assets/js/{9.69461f25.js => 9.f2fc0f61.js} (77%) rename assets/js/{app.34bf41e3.js => app.dbad91b6.js} (81%) diff --git a/404.html b/404.html index 657fcd51f..f11b2c83b 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ gtag('config', 'G-SMSDTMGLTV'); - + -

404

Looks like we've got some broken links.
+ - + diff --git a/_Footer.html b/_Footer.html index 53d72eed9..20e32d0cb 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 80f4e4720..523dec8e4 100644 --- a/about/index.html +++ b/about/index.html @@ -13,7 +13,7 @@ gtag('config', 'G-SMSDTMGLTV'); - + @@ -38,6 +38,6 @@

# Mission, Vision, Value

  • ❗️Mission: push ecosystem forward by driving Filcoin infrastructure
  • 🌏 Vision: democratize Filecoin ecosystem participation
  • ☯️ Value: Open and trustless

# Contacts

# Resources

- + diff --git a/assets/js/10.f4a85755.js b/assets/js/10.538010de.js similarity index 57% rename from assets/js/10.f4a85755.js rename to assets/js/10.538010de.js index 2d7ee6293..d8828af06 100644 --- a/assets/js/10.f4a85755.js +++ b/assets/js/10.538010de.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{330:function(t,s,e){t.exports=e.p+"assets/img/one-pager-venus.ba147919.png"},406:function(t,s,e){"use strict";e.r(s);var n=e(17),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("p",[s("img",{attrs:{src:e(330),alt:"venus-cluster"}})])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{332:function(t,s,e){t.exports=e.p+"assets/img/one-pager-venus.ba147919.png"},408:function(t,s,e){"use strict";e.r(s);var n=e(17),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("p",[s("img",{attrs:{src:e(332),alt:"venus-cluster"}})])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/11.f97206d7.js b/assets/js/11.fc475d76.js similarity index 77% rename from assets/js/11.f97206d7.js rename to assets/js/11.fc475d76.js index ea2c696cb..aa4c287ec 100644 --- a/assets/js/11.f97206d7.js +++ b/assets/js/11.fc475d76.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{332:function(n,o,e){n.exports=e.p+"assets/img/sophon-banner.6a83f125.jpg"},408:function(n,o,e){"use strict";e.r(o);var t=e(17),s=Object(t.a)({},(function(){var n=this,o=n.$createElement,t=n._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[t("p",[t("img",{attrs:{src:e(332),alt:"sophon"}})]),n._v(" "),t("h3",{attrs:{id:"sophon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon"}},[n._v("#")]),n._v(" Sophon")]),n._v(" "),t("p",[n._v("Sophon, formerly known as Venus chain service, is THE Filecoin super node solution. Learn more about Sophon "),t("a",{attrs:{href:"https://sophon.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[n._v("here"),t("OutboundLink")],1),n._v(".")])])}),[],!1,null,null,null);o.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{331:function(n,o,e){n.exports=e.p+"assets/img/sophon-banner.6a83f125.jpg"},407:function(n,o,e){"use strict";e.r(o);var t=e(17),s=Object(t.a)({},(function(){var n=this,o=n.$createElement,t=n._self._c||o;return t("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[t("p",[t("img",{attrs:{src:e(331),alt:"sophon"}})]),n._v(" "),t("h3",{attrs:{id:"sophon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sophon"}},[n._v("#")]),n._v(" Sophon")]),n._v(" "),t("p",[n._v("Sophon, formerly known as Venus chain service, is THE Filecoin super node solution. Learn more about Sophon "),t("a",{attrs:{href:"https://sophon.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[n._v("here"),t("OutboundLink")],1),n._v(".")])])}),[],!1,null,null,null);o.default=s.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/14.789b04e0.js b/assets/js/14.44d12e11.js similarity index 78% rename from assets/js/14.789b04e0.js rename to assets/js/14.44d12e11.js index 0efb49846..0462671e0 100644 --- a/assets/js/14.789b04e0.js +++ b/assets/js/14.44d12e11.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{331:function(t,e,r){t.exports=r.p+"assets/img/droplet-banner.5da6d582.jpg"},431:function(t,e,r){"use strict";r.r(e);var n=r(17),s=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:r(331),alt:"droplet"}})]),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://droplet.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),n("OutboundLink")],1),t._v("了解更多关于水滴的信息。")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{330:function(t,e,r){t.exports=r.p+"assets/img/droplet-banner.5da6d582.jpg"},432:function(t,e,r){"use strict";r.r(e);var n=r(17),s=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:r(330),alt:"droplet"}})]),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://droplet.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),n("OutboundLink")],1),t._v("了解更多关于水滴的信息。")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/15.f9e33674.js b/assets/js/15.decd032e.js similarity index 57% rename from assets/js/15.f9e33674.js rename to assets/js/15.decd032e.js index a3b1d64c8..dfe4d75eb 100644 --- a/assets/js/15.f9e33674.js +++ b/assets/js/15.decd032e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{330:function(t,s,e){t.exports=e.p+"assets/img/one-pager-venus.ba147919.png"},432:function(t,s,e){"use strict";e.r(s);var n=e(17),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("p",[s("img",{attrs:{src:e(330),alt:"venus-cluster"}})])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{332:function(t,s,e){t.exports=e.p+"assets/img/one-pager-venus.ba147919.png"},431:function(t,s,e){"use strict";e.r(s);var n=e(17),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("p",[s("img",{attrs:{src:e(332),alt:"venus-cluster"}})])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/16.bb30ec13.js b/assets/js/16.00e77020.js similarity index 85% rename from assets/js/16.bb30ec13.js rename to assets/js/16.00e77020.js index 239c84bce..55b7e0fba 100644 --- a/assets/js/16.bb30ec13.js +++ b/assets/js/16.00e77020.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{332:function(t,e,n){t.exports=n.p+"assets/img/sophon-banner.6a83f125.jpg"},433:function(t,e,n){"use strict";n.r(e);var s=n(17),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[s("img",{attrs:{src:n(332),alt:"sophon"}})]),t._v(" "),s("h3",{attrs:{id:"智子"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#智子"}},[t._v("#")]),t._v(" 智子")]),t._v(" "),s("p",[t._v("智子,原 Venus 链服务,是一个 Filecoin 超级节点解决方案。请在"),s("a",{attrs:{href:"https://sophon.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),s("OutboundLink")],1),t._v("了解更多关于智子的信息。")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{331:function(t,e,n){t.exports=n.p+"assets/img/sophon-banner.6a83f125.jpg"},433:function(t,e,n){"use strict";n.r(e);var s=n(17),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("p",[s("img",{attrs:{src:n(331),alt:"sophon"}})]),t._v(" "),s("h3",{attrs:{id:"智子"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#智子"}},[t._v("#")]),t._v(" 智子")]),t._v(" "),s("p",[t._v("智子,原 Venus 链服务,是一个 Filecoin 超级节点解决方案。请在"),s("a",{attrs:{href:"https://sophon.venus-fil.io/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("此"),s("OutboundLink")],1),t._v("了解更多关于智子的信息。")])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/22.fc213551.js b/assets/js/22.daaacc69.js similarity index 90% rename from assets/js/22.fc213551.js rename to assets/js/22.daaacc69.js index b1d7cf49d..e02bc14e3 100644 --- a/assets/js/22.fc213551.js +++ b/assets/js/22.daaacc69.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{405: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([[22],{402: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/26.b79cdbaa.js b/assets/js/26.7c902e8b.js similarity index 99% rename from assets/js/26.b79cdbaa.js rename to assets/js/26.7c902e8b.js index 39d781bd1..c55f34eae 100644 --- a/assets/js/26.b79cdbaa.js +++ b/assets/js/26.7c902e8b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{411:function(a,s,t){"use strict";t.r(s);var e=t(17),n=Object(e.a)({},(function(){var a=this,s=a.$createElement,t=a._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h2",{attrs:{id:"initial-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[a._v("#")]),a._v(" Initial setup")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ systemctl stop firewalld \n$ systemctl disbale firewalld\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/selinux/config\n\n$ "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("SELINUX")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("disabled "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# change selinux to disabled")]),a._v("\n$ setenforce "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# temporarily change selinux status")]),a._v("\n$ getenforce "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# check selinux status")]),a._v("\n")])])]),t("h2",{attrs:{id:"install-software-dependencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-software-dependencies"}},[a._v("#")]),a._v(" Install software dependencies")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("rpm")]),a._v(" -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm\n$ yum clean all "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("&&")]),a._v(" yum makecache\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Install zabbix-server and zabbix-agent")]),a._v("\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" zabbix-server-mysql zabbix-agent -y\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Install zabbix-ready nginx")]),a._v("\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" centos-release-scl -y\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" rh-php72-php-mysqlnd zabbix-nginx-conf-scl -y\n")])])]),t("p",[a._v("Change zabbix configurations and start Web GUI.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/yum.repos.d/zabbix.repo \n")])])]),t("div",{staticClass:"language-toml extra-class"},[t("pre",{pre:!0,attrs:{class:"language-toml"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),t("span",{pre:!0,attrs:{class:"token table class-name"}},[a._v("zabbix-frontend")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("name")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("Zabbix Official Repository frontend - $basearch\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("baseurl")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("http://repo"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),a._v("zabbix"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),a._v("com/zabbix/"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("5.0")]),a._v("/rhel/"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("7")]),a._v("/$basearch/frontend\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("enabled")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# change to 1")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("gpgcheck")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("gpgkey")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591\n")])])]),t("h2",{attrs:{id:"install-mysql"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-mysql"}},[a._v("#")]),a._v(" Install MySQL")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("mkdir")]),a._v(" mysql-dir\n$ "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("cd")]),a._v(" mysql-dir\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("wget")]),a._v(" https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("tar")]),a._v(" -zxvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" *.rpm -y\n")])])]),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ systemctl start mysqld\n")])])]),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("cat")]),a._v(" /var/log/mysqld.log "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("grep")]),a._v(" root\n")])])]),t("p",[a._v("Grep default password.")]),a._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 number"}},[a._v("2021")]),a._v("-07-26T10:50:49.538494Z "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("Note"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v(" A temporary password is generated "),t("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" root@localhost: **20yyk:Ar67S"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("**\n")])])]),t("p",[a._v("Login to database.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ mysql -uroot -p\nEnter password: 20yyk:Ar67S"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n")])])]),t("p",[a._v("Config database.")]),a._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 builtin class-name"}},[a._v("set")]),a._v(" global "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("validate_password_policy")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" global "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("validate_password_length")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nalter user "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'root'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'localhost'")]),a._v(" identified by "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'venus'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Change root password ")]),a._v("\n\nuse mysql"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nupdate user "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("host")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),a._v(" where user "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'root'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\ncreate user "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'zabbix'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),a._v(" identified by "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'123456'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\ngrant all privileges on zabbix.* to "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'zabbix'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nflush privileges"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Create tables for Zabbix ")]),a._v("\ncreate database zabbix character "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" utf8 collate utf8_bin"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n")])])]),t("p",[a._v("Import zabbix template files.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ zcat /usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" mysql -uzabbix -p123456 zabbix\n")])])]),t("h2",{attrs:{id:"configure-zabbix"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configure-zabbix"}},[a._v("#")]),a._v(" Configure zabbix")]),a._v(" "),t("p",[a._v("Change database password.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/zabbix/zabbix_server.conf\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("DBPassword")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("123456")]),a._v("\n")])])]),t("p",[a._v("Configure Nginx.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf\n")])])]),t("p",[a._v("Append "),t("code",[a._v("nginx")]),a._v(" at the end of line 6.")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("listen.acl_users = apache,nginx\n")])])]),t("p",[a._v("Change location to your choice at line 24.")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("php_value[date.timezone] = Asia/shanghai\n")])])]),t("p",[a._v("Configure port.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf\nserver "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("\n listen "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("80")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# uncomment this line ")]),a._v("\n server_name test.zabbix.com"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# uncomment and change to your own ip")]),a._v("\n")])])]),t("p",[a._v("Change your hosts file too if using hostname.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/hosts\n"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".xx.xx test.zabbix.com\n")])])]),t("p",[a._v("If you are using windows.")]),a._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"}},[a._v("# for window hosts")]),a._v("\nC:"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("Windows"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("System32"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("drivers"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("etc"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("hosts\n"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".xxx.xxx test.zabbix.com \n")])])]),t("p",[a._v("Start service and configure to run on boot.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("enable")]),a._v(" zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm\n")])])]),t("p",[a._v("Change zabbix agent config fie")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("cat")]),a._v(" /etc/zabbix/zabbix_agentd.conf "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("egrep")]),a._v(" -v "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"^$|^#"')]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("PidFile")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/var/run/zabbix/zabbix_agentd.pid\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("LogFile")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/var/log/zabbix/zabbix_agentd.log\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("LogFileSize")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Server")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".88.11 "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# point to ip of zabbix-server")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Hostname")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("venus-sealer\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Include")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/etc/zabbix/zabbix_agentd.d/*.conf\n")])])]),t("h2",{attrs:{id:"configure-monitoring"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configure-monitoring"}},[a._v("#")]),a._v(" Configure monitoring")]),a._v(" "),t("p",[a._v("Visit your zabbix-server with a browser.\n"),t("img",{attrs:{src:"/01-zabbix-install.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/02-zabbix-install.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Configure database connection information.\n"),t("img",{attrs:{src:"/03-zabbix-config.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/04-zabbix-hostname.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/05-zabbix-all.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/06-zabbix-finished.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Login to zabbix. Default user is "),t("code",[a._v("Admin")]),a._v(" with "),t("code",[a._v("zabbix")]),a._v(" as password.\n"),t("img",{attrs:{src:"/07-zabbix-login.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/08-zabbix-dashboard.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Add zabbix-agent.\n"),t("img",{attrs:{src:"/09-zabbix-agent.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/10-zabbix-agent-add.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Check zabbix RAM usage.\n"),t("img",{attrs:{src:"/11-zabbix-graphs.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/12-zabbix-memory.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Check problems in dashboard.\n"),t("img",{attrs:{src:"/13-Alarm-information.jpg",alt:""}})])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{417:function(a,s,t){"use strict";t.r(s);var e=t(17),n=Object(e.a)({},(function(){var a=this,s=a.$createElement,t=a._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h2",{attrs:{id:"initial-setup"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initial-setup"}},[a._v("#")]),a._v(" Initial setup")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ systemctl stop firewalld \n$ systemctl disbale firewalld\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/selinux/config\n\n$ "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("SELINUX")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("disabled "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# change selinux to disabled")]),a._v("\n$ setenforce "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# temporarily change selinux status")]),a._v("\n$ getenforce "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# check selinux status")]),a._v("\n")])])]),t("h2",{attrs:{id:"install-software-dependencies"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-software-dependencies"}},[a._v("#")]),a._v(" Install software dependencies")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("rpm")]),a._v(" -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm\n$ yum clean all "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("&&")]),a._v(" yum makecache\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Install zabbix-server and zabbix-agent")]),a._v("\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" zabbix-server-mysql zabbix-agent -y\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Install zabbix-ready nginx")]),a._v("\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" centos-release-scl -y\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" rh-php72-php-mysqlnd zabbix-nginx-conf-scl -y\n")])])]),t("p",[a._v("Change zabbix configurations and start Web GUI.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/yum.repos.d/zabbix.repo \n")])])]),t("div",{staticClass:"language-toml extra-class"},[t("pre",{pre:!0,attrs:{class:"language-toml"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),t("span",{pre:!0,attrs:{class:"token table class-name"}},[a._v("zabbix-frontend")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("name")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("Zabbix Official Repository frontend - $basearch\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("baseurl")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("http://repo"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),a._v("zabbix"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),a._v("com/zabbix/"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("5.0")]),a._v("/rhel/"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("7")]),a._v("/$basearch/frontend\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("enabled")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# change to 1")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("gpgcheck")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v("\n "),t("span",{pre:!0,attrs:{class:"token key property"}},[a._v("gpgkey")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("=")]),a._v("file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591\n")])])]),t("h2",{attrs:{id:"install-mysql"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#install-mysql"}},[a._v("#")]),a._v(" Install MySQL")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("mkdir")]),a._v(" mysql-dir\n$ "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("cd")]),a._v(" mysql-dir\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("wget")]),a._v(" https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar\n$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("tar")]),a._v(" -zxvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar\n$ yum "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" *.rpm -y\n")])])]),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ systemctl start mysqld\n")])])]),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("cat")]),a._v(" /var/log/mysqld.log "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("grep")]),a._v(" root\n")])])]),t("p",[a._v("Grep default password.")]),a._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 number"}},[a._v("2021")]),a._v("-07-26T10:50:49.538494Z "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("Note"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v(" A temporary password is generated "),t("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("for")]),a._v(" root@localhost: **20yyk:Ar67S"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("**\n")])])]),t("p",[a._v("Login to database.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ mysql -uroot -p\nEnter password: 20yyk:Ar67S"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n")])])]),t("p",[a._v("Config database.")]),a._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 builtin class-name"}},[a._v("set")]),a._v(" global "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("validate_password_policy")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" global "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("validate_password_length")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nalter user "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'root'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'localhost'")]),a._v(" identified by "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'venus'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Change root password ")]),a._v("\n\nuse mysql"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nupdate user "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("host")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),a._v(" where user "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'root'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\ncreate user "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'zabbix'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),a._v(" identified by "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'123456'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\ngrant all privileges on zabbix.* to "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'zabbix'")]),a._v("@"),t("span",{pre:!0,attrs:{class:"token string"}},[a._v("'%'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\nflush privileges"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# Create tables for Zabbix ")]),a._v("\ncreate database zabbix character "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("set")]),a._v(" utf8 collate utf8_bin"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v("\n")])])]),t("p",[a._v("Import zabbix template files.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ zcat /usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" mysql -uzabbix -p123456 zabbix\n")])])]),t("h2",{attrs:{id:"configure-zabbix"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configure-zabbix"}},[a._v("#")]),a._v(" Configure zabbix")]),a._v(" "),t("p",[a._v("Change database password.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/zabbix/zabbix_server.conf\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("DBPassword")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("123456")]),a._v("\n")])])]),t("p",[a._v("Configure Nginx.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf\n")])])]),t("p",[a._v("Append "),t("code",[a._v("nginx")]),a._v(" at the end of line 6.")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("listen.acl_users = apache,nginx\n")])])]),t("p",[a._v("Change location to your choice at line 24.")]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("php_value[date.timezone] = Asia/shanghai\n")])])]),t("p",[a._v("Configure port.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf\nserver "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("\n listen "),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("80")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# uncomment this line ")]),a._v("\n server_name test.zabbix.com"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(";")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# uncomment and change to your own ip")]),a._v("\n")])])]),t("p",[a._v("Change your hosts file too if using hostname.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("vim")]),a._v(" /etc/hosts\n"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".xx.xx test.zabbix.com\n")])])]),t("p",[a._v("If you are using windows.")]),a._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"}},[a._v("# for window hosts")]),a._v("\nC:"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("Windows"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("System32"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("drivers"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("etc"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("hosts\n"),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".xxx.xxx test.zabbix.com \n")])])]),t("p",[a._v("Start service and configure to run on boot.")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("enable")]),a._v(" zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm\n")])])]),t("p",[a._v("Change zabbix agent config fie")]),a._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[a._v("$ "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("cat")]),a._v(" /etc/zabbix/zabbix_agentd.conf "),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[a._v("egrep")]),a._v(" -v "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"^$|^#"')]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("PidFile")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/var/run/zabbix/zabbix_agentd.pid\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("LogFile")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/var/log/zabbix/zabbix_agentd.log\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("LogFileSize")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("0")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Server")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token number"}},[a._v("192.168")]),a._v(".88.11 "),t("span",{pre:!0,attrs:{class:"token comment"}},[a._v("# point to ip of zabbix-server")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Hostname")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("venus-sealer\n"),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("Include")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/etc/zabbix/zabbix_agentd.d/*.conf\n")])])]),t("h2",{attrs:{id:"configure-monitoring"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#configure-monitoring"}},[a._v("#")]),a._v(" Configure monitoring")]),a._v(" "),t("p",[a._v("Visit your zabbix-server with a browser.\n"),t("img",{attrs:{src:"/01-zabbix-install.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/02-zabbix-install.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Configure database connection information.\n"),t("img",{attrs:{src:"/03-zabbix-config.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/04-zabbix-hostname.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/05-zabbix-all.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/06-zabbix-finished.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Login to zabbix. Default user is "),t("code",[a._v("Admin")]),a._v(" with "),t("code",[a._v("zabbix")]),a._v(" as password.\n"),t("img",{attrs:{src:"/07-zabbix-login.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/08-zabbix-dashboard.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Add zabbix-agent.\n"),t("img",{attrs:{src:"/09-zabbix-agent.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/10-zabbix-agent-add.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Check zabbix RAM usage.\n"),t("img",{attrs:{src:"/11-zabbix-graphs.jpg",alt:""}}),a._v(" "),t("img",{attrs:{src:"/12-zabbix-memory.jpg",alt:""}})]),a._v(" "),t("p",[a._v("Check problems in dashboard.\n"),t("img",{attrs:{src:"/13-Alarm-information.jpg",alt:""}})])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/27.c1a394dd.js b/assets/js/27.4fe997fb.js similarity index 90% rename from assets/js/27.c1a394dd.js rename to assets/js/27.4fe997fb.js index 4c9993f12..0c6f14be3 100644 --- a/assets/js/27.c1a394dd.js +++ b/assets/js/27.4fe997fb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{412: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([[27],{411: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/28.ae02dd6f.js b/assets/js/28.11845a08.js similarity index 97% rename from assets/js/28.ae02dd6f.js rename to assets/js/28.11845a08.js index 46549a94c..475eb0d9b 100644 --- a/assets/js/28.ae02dd6f.js +++ b/assets/js/28.11845a08.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{413:function(t,v,_){"use strict";_.r(v);var e=_(17),s=Object(e.a)({},(function(){var t=this,v=t.$createElement,_=t._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h2",{attrs:{id:"venus-single-box-setup"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#venus-single-box-setup"}},[t._v("#")]),t._v(" Venus Single box setup")]),t._v(" "),_("p",[t._v("This is an exmaple venus single box setup that is estimated to grow 1TiB power per day.")]),t._v(" "),_("h2",{attrs:{id:"specs"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#specs"}},[t._v("#")]),t._v(" Specs")]),t._v(" "),_("table",[_("thead",[_("tr",[_("th",[t._v("Parts")]),t._v(" "),_("th",[t._v("Recommendation")])])]),t._v(" "),_("tbody",[_("tr",[_("td",[t._v("CPU")]),t._v(" "),_("td",[t._v("3970X * 1 (32 core)")])]),t._v(" "),_("tr",[_("td",[t._v("RAM")]),t._v(" "),_("td",[t._v("512G")])]),t._v(" "),_("tr",[_("td",[t._v("NVMe (for sealing)")]),t._v(" "),_("td",[t._v("3T/SSD")])]),t._v(" "),_("tr",[_("td",[t._v("SSD (for OS)")]),t._v(" "),_("td",[t._v("500G")])]),t._v(" "),_("tr",[_("td",[t._v("GPU")]),t._v(" "),_("td",[t._v("RTX 3080 * 1")])])])]),t._v(" "),_("h2",{attrs:{id:"job-scheduling"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#job-scheduling"}},[t._v("#")]),t._v(" Job scheduling")]),t._v(" "),_("table",[_("thead",[_("tr",[_("th",[t._v("Task")]),t._v(" "),_("th",[t._v("Core limit")]),t._v(" "),_("th",[t._v("Minutes")]),t._v(" "),_("th",[t._v("RAM(G)")]),t._v(" "),_("th",[t._v("Hourly production rate")]),t._v(" "),_("th",[t._v("Daily growth(T)")])])]),t._v(" "),_("tbody",[_("tr",[_("td",[t._v("P1 * 5")]),t._v(" "),_("td",[t._v("20")]),t._v(" "),_("td",[t._v("220")]),t._v(" "),_("td",[t._v("376")]),t._v(" "),_("td",[t._v("1.3636")]),t._v(" "),_("td",[t._v("1.0227")])]),t._v(" "),_("tr",[_("td",[t._v("AP, P2, Commit")]),t._v(" "),_("td",[t._v("12")]),t._v(" "),_("td",[t._v("10")]),t._v(" "),_("td",[t._v("120")]),t._v(" "),_("td",[t._v("3")]),t._v(" "),_("td",[t._v("1.125")])])])]),t._v(" "),_("p",[t._v("For more information on core limit, please refer to the next tutorial.")])])}),[],!1,null,null,null);v.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{412:function(t,v,_){"use strict";_.r(v);var e=_(17),s=Object(e.a)({},(function(){var t=this,v=t.$createElement,_=t._self._c||v;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h2",{attrs:{id:"venus-single-box-setup"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#venus-single-box-setup"}},[t._v("#")]),t._v(" Venus Single box setup")]),t._v(" "),_("p",[t._v("This is an exmaple venus single box setup that is estimated to grow 1TiB power per day.")]),t._v(" "),_("h2",{attrs:{id:"specs"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#specs"}},[t._v("#")]),t._v(" Specs")]),t._v(" "),_("table",[_("thead",[_("tr",[_("th",[t._v("Parts")]),t._v(" "),_("th",[t._v("Recommendation")])])]),t._v(" "),_("tbody",[_("tr",[_("td",[t._v("CPU")]),t._v(" "),_("td",[t._v("3970X * 1 (32 core)")])]),t._v(" "),_("tr",[_("td",[t._v("RAM")]),t._v(" "),_("td",[t._v("512G")])]),t._v(" "),_("tr",[_("td",[t._v("NVMe (for sealing)")]),t._v(" "),_("td",[t._v("3T/SSD")])]),t._v(" "),_("tr",[_("td",[t._v("SSD (for OS)")]),t._v(" "),_("td",[t._v("500G")])]),t._v(" "),_("tr",[_("td",[t._v("GPU")]),t._v(" "),_("td",[t._v("RTX 3080 * 1")])])])]),t._v(" "),_("h2",{attrs:{id:"job-scheduling"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#job-scheduling"}},[t._v("#")]),t._v(" Job scheduling")]),t._v(" "),_("table",[_("thead",[_("tr",[_("th",[t._v("Task")]),t._v(" "),_("th",[t._v("Core limit")]),t._v(" "),_("th",[t._v("Minutes")]),t._v(" "),_("th",[t._v("RAM(G)")]),t._v(" "),_("th",[t._v("Hourly production rate")]),t._v(" "),_("th",[t._v("Daily growth(T)")])])]),t._v(" "),_("tbody",[_("tr",[_("td",[t._v("P1 * 5")]),t._v(" "),_("td",[t._v("20")]),t._v(" "),_("td",[t._v("220")]),t._v(" "),_("td",[t._v("376")]),t._v(" "),_("td",[t._v("1.3636")]),t._v(" "),_("td",[t._v("1.0227")])]),t._v(" "),_("tr",[_("td",[t._v("AP, P2, Commit")]),t._v(" "),_("td",[t._v("12")]),t._v(" "),_("td",[t._v("10")]),t._v(" "),_("td",[t._v("120")]),t._v(" "),_("td",[t._v("3")]),t._v(" "),_("td",[t._v("1.125")])])])]),t._v(" "),_("p",[t._v("For more information on core limit, please refer to the next tutorial.")])])}),[],!1,null,null,null);v.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/29.b536a87c.js b/assets/js/29.66608a9c.js similarity index 95% rename from assets/js/29.b536a87c.js rename to assets/js/29.66608a9c.js index ff50b50ca..6869c7526 100644 --- a/assets/js/29.b536a87c.js +++ b/assets/js/29.66608a9c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{415:function(t,e,o){"use strict";o.r(e);var r=o(17),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h2",{attrs:{id:"commands-from-lotus"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#commands-from-lotus"}},[t._v("#")]),t._v(" Commands from Lotus")]),t._v(" "),o("p",[t._v("Many basic commands including but not limited to "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/addresses/",target:"_blank",rel:"noopener noreferrer"}},[t._v("creating worker/controler addresses"),o("OutboundLink")],1),t._v(", setting different types of "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/config/",target:"_blank",rel:"noopener noreferrer"}},[t._v("configurations"),o("OutboundLink")],1),t._v(", or "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/lifecycle/#changing-storage-locations",target:"_blank",rel:"noopener noreferrer"}},[t._v("changing storage locations"),o("OutboundLink")],1),t._v(" 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 "),o("a",{attrs:{href:"https://filecoinproject.slack.com/archives/CEHHJNJS3",target:"_blank",rel:"noopener noreferrer"}},[t._v("#fil-venus"),o("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{413:function(t,e,o){"use strict";o.r(e);var r=o(17),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,o=t._self._c||e;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h2",{attrs:{id:"commands-from-lotus"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#commands-from-lotus"}},[t._v("#")]),t._v(" Commands from Lotus")]),t._v(" "),o("p",[t._v("Many basic commands including but not limited to "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/addresses/",target:"_blank",rel:"noopener noreferrer"}},[t._v("creating worker/controler addresses"),o("OutboundLink")],1),t._v(", setting different types of "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/config/",target:"_blank",rel:"noopener noreferrer"}},[t._v("configurations"),o("OutboundLink")],1),t._v(", or "),o("a",{attrs:{href:"https://lotus.filecoin.io/docs/storage-providers/lifecycle/#changing-storage-locations",target:"_blank",rel:"noopener noreferrer"}},[t._v("changing storage locations"),o("OutboundLink")],1),t._v(" 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 "),o("a",{attrs:{href:"https://filecoinproject.slack.com/archives/CEHHJNJS3",target:"_blank",rel:"noopener noreferrer"}},[t._v("#fil-venus"),o("OutboundLink")],1),t._v(".")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/31.cc5663af.js b/assets/js/31.f5d0a700.js similarity index 99% rename from assets/js/31.cc5663af.js rename to assets/js/31.f5d0a700.js index 353440c6e..2eaf9d6fb 100644 --- a/assets/js/31.cc5663af.js +++ b/assets/js/31.f5d0a700.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{416:function(e,t,a){"use strict";a.r(t);var n=a(17),s=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("h2",{attrs:{id:"nv16-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nv16-upgrade"}},[e._v("#")]),e._v(" nv16 upgrade")]),e._v(" "),a("h3",{attrs:{id:"timeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeline"}},[e._v("#")]),e._v(" timeline")]),e._v(" "),a("p",[e._v("Mainnet upgrade time: 2022-07-06T14:00:00Z")]),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("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: shared token access support for multi SPs")]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Add a "),a("code",[e._v("miners")]),e._v(" table to save the correspondence between "),a("code",[e._v("user")]),e._v(" and "),a("code",[e._v("miner")])])]),e._v(" "),a("li",[a("p",[e._v("Write the values ​​of the "),a("code",[e._v("name")]),e._v(" and "),a("code",[e._v("miner")]),e._v(" fields of each row of data in the "),a("code",[e._v("users")]),e._v(" table to the "),a("code",[e._v("user")]),e._v(" and "),a("code",[e._v("miner")]),e._v(" fields in the "),a("code",[e._v("miners")]),e._v(" table, check whether there is any problem with the writing, the success log: "),a("code",[e._v("migrate from:0, to:1 success;")]),e._v(" failure log: "),a("code",[e._v("migrate from store version:0 failed")])])]),e._v(" "),a("li",[a("p",[e._v("Use "),a("code",[e._v("./venus-auth user miner list ")]),e._v(" to list all miners binded to "),a("code",[e._v("user")])])]),e._v(" "),a("li",[a("p",[e._v("Use the command "),a("code",[e._v("./venus-auth user list")]),e._v(" to list all users. "),a("strong",[e._v("Note: make sure that the status of the user being used is enabled")])])])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: Support for nv16 networks")]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after the upgrade")])]),e._v(" "),a("li",[a("p",[e._v("Check the configuration file after the upgrade to see if the upgrade height is properly set. The default configuration file is in "),a("code",[e._v("~/.venus/config.json")]),e._v(" :")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('# cali\n"upgradeSkyrHeight": 1044660\n#mainnet\n"upgradeSkyrHeight": 1960320\n')])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, check whether the blocks are properly synchronized")])]),e._v(" "),a("li",[a("p",[e._v("The api version has changed, affecting the miner connection")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('# Use the curl command to test the interfaces StateGetBeaconEntry, BeaconGetEntry, the following three curl commands should return the same results\ncurl http://127.0.0.1:3453/rpc/v0 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.BeaconGetEntry", "params":[1933610], "id": 0}\'\ncurl http://127.0.0.1:3453/rpc/v1 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.BeaconGetEntry", "params":[1933610], "id": 0}\'\ncurl http://127.0.0.1:3453/rpc/v1 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.StateGetBeaconEntry", "params":[1933610], "id": 0}\'\n')])])])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet v8 actors cid 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\n\n# The order may vary\n_manifest bafy2bzacebogjbpiemi7npzxchgcjjki3tfxon4ims55obfyfleqntteljsea\naccount bafk2bzacedudbf7fc5va57t3tmo63snmt3en4iaidv4vo3qlyacbxaa6hlx6y\nstoragemarket bafk2bzacediohrxkp2fbsl4yj4jlupjdkgsiwqb4zuezvinhdo2j5hrxco62q\nstorageminer bafk2bzacecgnynvd3tene3bvqoknuspit56canij5bpra6wl4mrq2mxxwriyu\nmultisig bafk2bzacebhldfjuy4o5v7amrhp5p2gzv2qo5275jut4adnbyp56fxkwy5fag\npaymentchannel bafk2bzacebalad3f72wyk7qyilvfjijcwubdspytnyzlrhvn73254gqis44rq\nreward bafk2bzacecwzzxlgjiavnc3545cqqil3cmq4hgpvfp2crguxy2pl5ybusfsbe\nsystem bafk2bzacedwq5uppsw7vp55zpj7jdieizirmldceehu6wvombw3ixq2tcq57w\ncron bafk2bzacecqb3eolfurehny6yp7tgmapib4ocazo5ilkopjce2c7wc2bcec62\ninit bafk2bzaceaipvjhoxmtofsnv3aj6gj5ida4afdrxa4ewku2hfipdlxpaektlw\nstoragepower bafk2bzacebjvqva6ppvysn5xpmiqcdfelwbbcxmghx5ww6hr37cgred6dyrpm\nverifiedregistry bafk2bzaceb3zbkjz3auizmoln2unmxep7dyfcmsre64vnqfhdyh7rkqfoxlw4\n")])])])]),e._v(" "),a("li",[a("p",[e._v("Mainnet can use fvm on nv15 network by setting environment variable "),a("code",[e._v("export VENUS_USE_FVM_TO_SYNC_MAINNET_V15=1")])])]),e._v(" "),a("li",[a("p",[e._v("If you do not troubleshoot the problem, the rust log level is "),a("strong",[e._v("not recommended")]),e._v(" to be 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("h3",{attrs:{id:"venus-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-messager"}},[e._v("#")]),e._v(" venus-messager")]),e._v(" "),a("ul",[a("li",[e._v("tag:v1.6.0")]),e._v(" "),a("li",[e._v("Affected function: Support new network version, add home directory, default in "),a("code",[e._v("~/.venus-messager")])]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Whether to generate the main directory "),a("code",[e._v("~/.venus-messager")]),e._v(" after the upgrade")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, the main directory should contain "),a("code",[e._v("config.toml")]),e._v(" and "),a("code",[e._v("tipset.json")]),e._v(", "),a("code",[e._v("config.toml")]),e._v(" should be consistent with the configuration file used to start "),a("code",[e._v("messager")]),e._v(", "),a("code",[e._v("~/.venus-messager/tipset.json")]),e._v(" is copied from "),a("code",[e._v("tipset.json")]),e._v(" in the current directory")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade is successful, restarting again is to read the configuration is "),a("code",[e._v("~/.venus-messager/config.toml")])])]),e._v(" "),a("li",[a("p",[e._v("Whether the message can be received and pushed to the node normally")])])]),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("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: Get the interface name of beacon Change from "),a("code",[e._v("BeaconGetEntry")]),e._v(" to "),a("code",[e._v("StateGetBeaconEntry")])]),e._v(" "),a("li",[e._v("Dependency on other components: venus, venus-auth, venus-gateway")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[e._v("After the upgrade, use the commonly used command address state/list/update to verify it.")]),e._v(" "),a("li",[e._v("If you use a mysql database, check that the parent_key field in the miner_blocks table is varchar(1000)")])]),e._v(" "),a("h3",{attrs:{id:"venus-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-gateway"}},[e._v("#")]),e._v(" venus-gateway")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New Feature: Fix requests without auto cleanup timeouts")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[e._v("Is "),a("code",[e._v("wallet")]),e._v(" re-registered after the upgrade")])]),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("ul",[a("li",[e._v("tag: v2.2.0")]),e._v(" "),a("li",[e._v("New features:")])]),e._v(" "),a("p",[e._v("Things to look out for::")]),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("h4",{attrs:{id:"community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#community"}},[e._v("#")]),e._v(" Community")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features:")])]),e._v(" "),a("p",[e._v("Things to look out for::")]),e._v(" "),a("ol",[a("li",[e._v("Need to unlock wallet")]),e._v(" "),a("li",[e._v("if wallet is properly registered on the gateway")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{415:function(e,t,a){"use strict";a.r(t);var n=a(17),s=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("h2",{attrs:{id:"nv16-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nv16-upgrade"}},[e._v("#")]),e._v(" nv16 upgrade")]),e._v(" "),a("h3",{attrs:{id:"timeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeline"}},[e._v("#")]),e._v(" timeline")]),e._v(" "),a("p",[e._v("Mainnet upgrade time: 2022-07-06T14:00:00Z")]),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("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: shared token access support for multi SPs")]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Add a "),a("code",[e._v("miners")]),e._v(" table to save the correspondence between "),a("code",[e._v("user")]),e._v(" and "),a("code",[e._v("miner")])])]),e._v(" "),a("li",[a("p",[e._v("Write the values ​​of the "),a("code",[e._v("name")]),e._v(" and "),a("code",[e._v("miner")]),e._v(" fields of each row of data in the "),a("code",[e._v("users")]),e._v(" table to the "),a("code",[e._v("user")]),e._v(" and "),a("code",[e._v("miner")]),e._v(" fields in the "),a("code",[e._v("miners")]),e._v(" table, check whether there is any problem with the writing, the success log: "),a("code",[e._v("migrate from:0, to:1 success;")]),e._v(" failure log: "),a("code",[e._v("migrate from store version:0 failed")])])]),e._v(" "),a("li",[a("p",[e._v("Use "),a("code",[e._v("./venus-auth user miner list ")]),e._v(" to list all miners binded to "),a("code",[e._v("user")])])]),e._v(" "),a("li",[a("p",[e._v("Use the command "),a("code",[e._v("./venus-auth user list")]),e._v(" to list all users. "),a("strong",[e._v("Note: make sure that the status of the user being used is enabled")])])])]),e._v(" "),a("h3",{attrs:{id:"venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus"}},[e._v("#")]),e._v(" venus")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: Support for nv16 networks")]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Check whether the vk file is complete after the upgrade")])]),e._v(" "),a("li",[a("p",[e._v("Check the configuration file after the upgrade to see if the upgrade height is properly set. The default configuration file is in "),a("code",[e._v("~/.venus/config.json")]),e._v(" :")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('# cali\n"upgradeSkyrHeight": 1044660\n#mainnet\n"upgradeSkyrHeight": 1960320\n')])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, check whether the blocks are properly synchronized")])]),e._v(" "),a("li",[a("p",[e._v("The api version has changed, affecting the miner connection")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('# Use the curl command to test the interfaces StateGetBeaconEntry, BeaconGetEntry, the following three curl commands should return the same results\ncurl http://127.0.0.1:3453/rpc/v0 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.BeaconGetEntry", "params":[1933610], "id": 0}\'\ncurl http://127.0.0.1:3453/rpc/v1 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.BeaconGetEntry", "params":[1933610], "id": 0}\'\ncurl http://127.0.0.1:3453/rpc/v1 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token" -d \'{"method": "Filecoin.StateGetBeaconEntry", "params":[1933610], "id": 0}\'\n')])])])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet v8 actors cid 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\n\n# The order may vary\n_manifest bafy2bzacebogjbpiemi7npzxchgcjjki3tfxon4ims55obfyfleqntteljsea\naccount bafk2bzacedudbf7fc5va57t3tmo63snmt3en4iaidv4vo3qlyacbxaa6hlx6y\nstoragemarket bafk2bzacediohrxkp2fbsl4yj4jlupjdkgsiwqb4zuezvinhdo2j5hrxco62q\nstorageminer bafk2bzacecgnynvd3tene3bvqoknuspit56canij5bpra6wl4mrq2mxxwriyu\nmultisig bafk2bzacebhldfjuy4o5v7amrhp5p2gzv2qo5275jut4adnbyp56fxkwy5fag\npaymentchannel bafk2bzacebalad3f72wyk7qyilvfjijcwubdspytnyzlrhvn73254gqis44rq\nreward bafk2bzacecwzzxlgjiavnc3545cqqil3cmq4hgpvfp2crguxy2pl5ybusfsbe\nsystem bafk2bzacedwq5uppsw7vp55zpj7jdieizirmldceehu6wvombw3ixq2tcq57w\ncron bafk2bzacecqb3eolfurehny6yp7tgmapib4ocazo5ilkopjce2c7wc2bcec62\ninit bafk2bzaceaipvjhoxmtofsnv3aj6gj5ida4afdrxa4ewku2hfipdlxpaektlw\nstoragepower bafk2bzacebjvqva6ppvysn5xpmiqcdfelwbbcxmghx5ww6hr37cgred6dyrpm\nverifiedregistry bafk2bzaceb3zbkjz3auizmoln2unmxep7dyfcmsre64vnqfhdyh7rkqfoxlw4\n")])])])]),e._v(" "),a("li",[a("p",[e._v("Mainnet can use fvm on nv15 network by setting environment variable "),a("code",[e._v("export VENUS_USE_FVM_TO_SYNC_MAINNET_V15=1")])])]),e._v(" "),a("li",[a("p",[e._v("If you do not troubleshoot the problem, the rust log level is "),a("strong",[e._v("not recommended")]),e._v(" to be 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("h3",{attrs:{id:"venus-messager"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-messager"}},[e._v("#")]),e._v(" venus-messager")]),e._v(" "),a("ul",[a("li",[e._v("tag:v1.6.0")]),e._v(" "),a("li",[e._v("Affected function: Support new network version, add home directory, default in "),a("code",[e._v("~/.venus-messager")])]),e._v(" "),a("li",[e._v("Dependency on other components: none")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("Whether to generate the main directory "),a("code",[e._v("~/.venus-messager")]),e._v(" after the upgrade")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, the main directory should contain "),a("code",[e._v("config.toml")]),e._v(" and "),a("code",[e._v("tipset.json")]),e._v(", "),a("code",[e._v("config.toml")]),e._v(" should be consistent with the configuration file used to start "),a("code",[e._v("messager")]),e._v(", "),a("code",[e._v("~/.venus-messager/tipset.json")]),e._v(" is copied from "),a("code",[e._v("tipset.json")]),e._v(" in the current directory")])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade is successful, restarting again is to read the configuration is "),a("code",[e._v("~/.venus-messager/config.toml")])])]),e._v(" "),a("li",[a("p",[e._v("Whether the message can be received and pushed to the node normally")])])]),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("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features: Get the interface name of beacon Change from "),a("code",[e._v("BeaconGetEntry")]),e._v(" to "),a("code",[e._v("StateGetBeaconEntry")])]),e._v(" "),a("li",[e._v("Dependency on other components: venus, venus-auth, venus-gateway")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[e._v("After the upgrade, use the commonly used command address state/list/update to verify it.")]),e._v(" "),a("li",[e._v("If you use a mysql database, check that the parent_key field in the miner_blocks table is varchar(1000)")])]),e._v(" "),a("h3",{attrs:{id:"venus-gateway"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-gateway"}},[e._v("#")]),e._v(" venus-gateway")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New Feature: Fix requests without auto cleanup timeouts")])]),e._v(" "),a("p",[e._v("Things to look out for:")]),e._v(" "),a("ol",[a("li",[e._v("Is "),a("code",[e._v("wallet")]),e._v(" re-registered after the upgrade")])]),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("ul",[a("li",[e._v("tag: v2.2.0")]),e._v(" "),a("li",[e._v("New features:")])]),e._v(" "),a("p",[e._v("Things to look out for::")]),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("h4",{attrs:{id:"community"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#community"}},[e._v("#")]),e._v(" Community")]),e._v(" "),a("ul",[a("li",[e._v("tag: v1.6.0")]),e._v(" "),a("li",[e._v("New features:")])]),e._v(" "),a("p",[e._v("Things to look out for::")]),e._v(" "),a("ol",[a("li",[e._v("Need to unlock wallet")]),e._v(" "),a("li",[e._v("if wallet is properly registered on the gateway")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/32.b7e9f209.js b/assets/js/32.f4b496d6.js similarity index 99% rename from assets/js/32.b7e9f209.js rename to assets/js/32.f4b496d6.js index b3b82a108..8ca08bd2d 100644 --- a/assets/js/32.b7e9f209.js +++ b/assets/js/32.f4b496d6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{417:function(e,t,a){"use strict";a.r(t);var n=a(17),r=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:"nv17-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nv17-upgrade"}},[e._v("#")]),e._v(" nv17 upgrade")]),e._v(" "),a("p",[e._v("If you are upgrading "),a("code",[e._v("venus-wallet")]),e._v(" or "),a("code",[e._v("venus-gateway")]),e._v(" from "),a("code",[e._v("v1.6.x")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", please read "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5265",target:"_blank",rel:"noopener noreferrer"}},[e._v("Venus component v1.7.0 usage notes"),a("OutboundLink")],1),e._v(" first and pay attention to the upgrade order of "),a("code",[e._v("venus-gateway")]),e._v(" and "),a("code",[e._v("venus-wallet")]),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"timeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeline"}},[e._v("#")]),e._v(" timeline")]),e._v(" "),a("p",[e._v("Upgrade time (UTC): 2022-11-30T14:00:00Z\nUpgrade time (Beijing): 2022-11-30 22:00:00")]),e._v(" "),a("h3",{attrs:{id:"versions-of-each-component"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#versions-of-each-component"}},[e._v("#")]),e._v(" Versions of each component")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893446",target:"_blank",rel:"noopener noreferrer"}},[e._v("calibrationnet"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893449",target:"_blank",rel:"noopener noreferrer"}},[e._v("mainnet"),a("OutboundLink")],1)])]),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("p",[e._v("Dependency: none")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("Add field "),a("code",[e._v("open_mining")]),e._v(" to "),a("code",[e._v("miners")]),e._v(" table, 0 means no block, 1 means block, default is 1")])]),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: nv17 network support")]),e._v(" "),a("p",[e._v("Dependency: None")]),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(".")]),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, whether the upgrade height is set correctly, the configuration file is in "),a("code",[e._v("~/.venus/config.json")]),e._v(" by default:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('#cali\n"upgradeSkyrHeight": 16800\n#mainnet\n"upgradeSkyrHeight": 2383680\n')])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you need to check whether height is synchronized correctly")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet "),a("code",[e._v("v9 actors code")]),e._v(" 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 17\n\n# order may vary\nNetwork Version: 17\nActor Version: 9\nActor CIDs\nreward bafk2bzacebezgbbmcm2gbcqwisus5fjvpj7hhmu5ubd37phuku3hmkfulxm2o\nsystem bafk2bzaceagvlo2jtahj7dloshrmwfulrd6e2izqev32qm46eumf754weec6c\n_manifest bafy2bzaceb6j6666h36xnhksu3ww4kxb6e25niayfgkdnifaqi6m6ooc66i6i\nstoragemarket bafk2bzacec3j7p6gklk64stax5px3xxd7hdtejaepnd4nw7s2adihde6emkcu\nmultisig bafk2bzacec4va3nmugyqjqrs3lqyr2ij67jhjia5frvx7omnh2isha6abxzya\npaymentchannel bafk2bzacebhdvjbjcgupklddfavzef4e4gnkt3xk3rbmgfmk7xhecszhfxeds\nstoragepower bafk2bzacedsetphfajgne4qy3vdrpyd6ekcmtfs2zkjut4r34cvnuoqemdrtw\nverifiedregistry bafk2bzacecf3yodlyudzukumehbuabgqljyhjt5ifiv4vetcfohnvsxzynwga\ndatacap bafk2bzacebb6uy2ys7tapekmtj7apnjg7oyj4ia5t7tlkvbmwtxwv74lb2pug\naccount bafk2bzacect2p7urje3pylrrrjy3tngn6yaih4gtzauuatf2jllk3ksgfiw2y\ncron bafk2bzacebcec3lffmos3nawm5cvwehssxeqwxixoyyfvejy7viszzsxzyu26\ninit bafk2bzacebtdq4zyuxk2fzbdkva6kc4mx75mkbfmldplfntayhbl5wkqou33i\nstorageminer bafk2bzacedyux5hlrildwutvvjdcsvjtwsoc5xnqdjl73ouiukgklekeuyfl4\n")])])])]),e._v(" "),a("li",[a("p",[e._v("If you are not troubleshooting anything, it is "),a("strong",[e._v("NOT")]),e._v(" recommended to set rust log level to "),a("code",[e._v("trace")]),e._v(" as more irrelavant 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("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("ol",[a("li",[e._v("Increase the control of basefee, you can set the basefee separately for an address, when the basefee on the chain is higher than the basefee limit, the message will not be pushed out")])]),e._v(" "),a("p",[e._v("Dependency upgrade components:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("After the upgrade, observe whether the message can be on-chained normally")])]),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("p",[e._v("Dependency upgrade components:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("If you are upgrading from "),a("code",[e._v("1.7.*")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", it will automatically migrate configuration files. Whereas if you are upgrading from "),a("code",[e._v("1.6.*")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", it is required to have a reinitialization of "),a("code",[e._v("repo")]),e._v(" (init). Please checkout this "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus-miner/blob/master/docs/zh/CHANGELOG.md#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2",target:"_blank",rel:"noopener noreferrer"}},[e._v("guide"),a("OutboundLink")],1),e._v(" to learn more.")])]),e._v(" "),a("li",[a("p",[e._v("Check if blocks can be produced normally after the upgrade.")])])]),e._v(" "),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:")]),e._v(" "),a("p",[e._v("Precautions:")]),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(" "),a("ol",[a("li",[e._v("Check wallet after upgrade: "),a("code",[e._v("./venus-gateway wallet list")])]),e._v(" "),a("li",[e._v("Check miners after upgrade: "),a("code",[e._v("./venus-gateway miner list")])])]),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("p",[e._v("Precautions:")]),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(" "),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("Affect function:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("Make sure to unlock the wallet after startup")]),e._v(" "),a("li",[e._v("Check whether the wallet is registered on the gateway")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{416:function(e,t,a){"use strict";a.r(t);var n=a(17),r=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:"nv17-upgrade"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nv17-upgrade"}},[e._v("#")]),e._v(" nv17 upgrade")]),e._v(" "),a("p",[e._v("If you are upgrading "),a("code",[e._v("venus-wallet")]),e._v(" or "),a("code",[e._v("venus-gateway")]),e._v(" from "),a("code",[e._v("v1.6.x")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", please read "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5265",target:"_blank",rel:"noopener noreferrer"}},[e._v("Venus component v1.7.0 usage notes"),a("OutboundLink")],1),e._v(" first and pay attention to the upgrade order of "),a("code",[e._v("venus-gateway")]),e._v(" and "),a("code",[e._v("venus-wallet")]),e._v(".")]),e._v(" "),a("h3",{attrs:{id:"timeline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timeline"}},[e._v("#")]),e._v(" timeline")]),e._v(" "),a("p",[e._v("Upgrade time (UTC): 2022-11-30T14:00:00Z\nUpgrade time (Beijing): 2022-11-30 22:00:00")]),e._v(" "),a("h3",{attrs:{id:"versions-of-each-component"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#versions-of-each-component"}},[e._v("#")]),e._v(" Versions of each component")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893446",target:"_blank",rel:"noopener noreferrer"}},[e._v("calibrationnet"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893449",target:"_blank",rel:"noopener noreferrer"}},[e._v("mainnet"),a("OutboundLink")],1)])]),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("p",[e._v("Dependency: none")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("Add field "),a("code",[e._v("open_mining")]),e._v(" to "),a("code",[e._v("miners")]),e._v(" table, 0 means no block, 1 means block, default is 1")])]),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: nv17 network support")]),e._v(" "),a("p",[e._v("Dependency: None")]),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(".")]),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, whether the upgrade height is set correctly, the configuration file is in "),a("code",[e._v("~/.venus/config.json")]),e._v(" by default:")]),e._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[e._v('#cali\n"upgradeSkyrHeight": 16800\n#mainnet\n"upgradeSkyrHeight": 2383680\n')])])])]),e._v(" "),a("li",[a("p",[e._v("After the upgrade, you need to check whether height is synchronized correctly")])]),e._v(" "),a("li",[a("p",[e._v("Check the mainnet "),a("code",[e._v("v9 actors code")]),e._v(" 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 17\n\n# order may vary\nNetwork Version: 17\nActor Version: 9\nActor CIDs\nreward bafk2bzacebezgbbmcm2gbcqwisus5fjvpj7hhmu5ubd37phuku3hmkfulxm2o\nsystem bafk2bzaceagvlo2jtahj7dloshrmwfulrd6e2izqev32qm46eumf754weec6c\n_manifest bafy2bzaceb6j6666h36xnhksu3ww4kxb6e25niayfgkdnifaqi6m6ooc66i6i\nstoragemarket bafk2bzacec3j7p6gklk64stax5px3xxd7hdtejaepnd4nw7s2adihde6emkcu\nmultisig bafk2bzacec4va3nmugyqjqrs3lqyr2ij67jhjia5frvx7omnh2isha6abxzya\npaymentchannel bafk2bzacebhdvjbjcgupklddfavzef4e4gnkt3xk3rbmgfmk7xhecszhfxeds\nstoragepower bafk2bzacedsetphfajgne4qy3vdrpyd6ekcmtfs2zkjut4r34cvnuoqemdrtw\nverifiedregistry bafk2bzacecf3yodlyudzukumehbuabgqljyhjt5ifiv4vetcfohnvsxzynwga\ndatacap bafk2bzacebb6uy2ys7tapekmtj7apnjg7oyj4ia5t7tlkvbmwtxwv74lb2pug\naccount bafk2bzacect2p7urje3pylrrrjy3tngn6yaih4gtzauuatf2jllk3ksgfiw2y\ncron bafk2bzacebcec3lffmos3nawm5cvwehssxeqwxixoyyfvejy7viszzsxzyu26\ninit bafk2bzacebtdq4zyuxk2fzbdkva6kc4mx75mkbfmldplfntayhbl5wkqou33i\nstorageminer bafk2bzacedyux5hlrildwutvvjdcsvjtwsoc5xnqdjl73ouiukgklekeuyfl4\n")])])])]),e._v(" "),a("li",[a("p",[e._v("If you are not troubleshooting anything, it is "),a("strong",[e._v("NOT")]),e._v(" recommended to set rust log level to "),a("code",[e._v("trace")]),e._v(" as more irrelavant 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("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("ol",[a("li",[e._v("Increase the control of basefee, you can set the basefee separately for an address, when the basefee on the chain is higher than the basefee limit, the message will not be pushed out")])]),e._v(" "),a("p",[e._v("Dependency upgrade components:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("After the upgrade, observe whether the message can be on-chained normally")])]),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("p",[e._v("Dependency upgrade components:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[a("p",[e._v("If you are upgrading from "),a("code",[e._v("1.7.*")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", it will automatically migrate configuration files. Whereas if you are upgrading from "),a("code",[e._v("1.6.*")]),e._v(" to "),a("code",[e._v("v1.8.0")]),e._v(", it is required to have a reinitialization of "),a("code",[e._v("repo")]),e._v(" (init). Please checkout this "),a("a",{attrs:{href:"https://github.com/filecoin-project/venus-miner/blob/master/docs/zh/CHANGELOG.md#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2",target:"_blank",rel:"noopener noreferrer"}},[e._v("guide"),a("OutboundLink")],1),e._v(" to learn more.")])]),e._v(" "),a("li",[a("p",[e._v("Check if blocks can be produced normally after the upgrade.")])])]),e._v(" "),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:")]),e._v(" "),a("p",[e._v("Precautions:")]),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(" "),a("ol",[a("li",[e._v("Check wallet after upgrade: "),a("code",[e._v("./venus-gateway wallet list")])]),e._v(" "),a("li",[e._v("Check miners after upgrade: "),a("code",[e._v("./venus-gateway miner list")])])]),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("p",[e._v("Precautions:")]),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(" "),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("Affect function:")]),e._v(" "),a("p",[e._v("Precautions:")]),e._v(" "),a("ol",[a("li",[e._v("Make sure to unlock the wallet after startup")]),e._v(" "),a("li",[e._v("Check whether the wallet is registered on the gateway")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/39.956a95ec.js b/assets/js/39.d7a6fbe0.js similarity index 93% rename from assets/js/39.956a95ec.js rename to assets/js/39.d7a6fbe0.js index 3ff2a0029..9ace9281b 100644 --- a/assets/js/39.956a95ec.js +++ b/assets/js/39.d7a6fbe0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{424:function(t,s,e){"use strict";e.r(s);var a=e(17),v=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("div",{staticClass:"features"},[e("div",{staticClass:"feature"},[e("h2",[t._v("分布式架构")]),t._v(" "),e("p",[t._v("依照分布式系统的设计理念和原则,实现了一套快速扩展,高可用的分布式基础架构")])]),t._v(" "),e("div",{staticClass:"feature"},[e("h2",[t._v("优化订单体验")]),t._v(" "),e("p",[t._v("完善了一整套方便存储提供者接收真实存储订单,同时也方便存储客户发送存储订单的解决方案")])]),t._v(" "),e("div",{staticClass:"feature"},[e("h2",[t._v("全新的算力服务")]),t._v(" "),e("p",[t._v("安全,有韧性的算力维持服务;高效,灵活,可扩容的算力增长服务")])])])])}),[],!1,null,null,null);s.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{425:function(t,s,e){"use strict";e.r(s);var a=e(17),v=Object(a.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("div",{staticClass:"features"},[e("div",{staticClass:"feature"},[e("h2",[t._v("分布式架构")]),t._v(" "),e("p",[t._v("依照分布式系统的设计理念和原则,实现了一套快速扩展,高可用的分布式基础架构")])]),t._v(" "),e("div",{staticClass:"feature"},[e("h2",[t._v("优化订单体验")]),t._v(" "),e("p",[t._v("完善了一整套方便存储提供者接收真实存储订单,同时也方便存储客户发送存储订单的解决方案")])]),t._v(" "),e("div",{staticClass:"feature"},[e("h2",[t._v("全新的算力服务")]),t._v(" "),e("p",[t._v("安全,有韧性的算力维持服务;高效,灵活,可扩容的算力增长服务")])])])])}),[],!1,null,null,null);s.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/40.50e9288f.js b/assets/js/40.2418b6a4.js similarity index 97% rename from assets/js/40.50e9288f.js rename to assets/js/40.2418b6a4.js index d90ac2a9f..fb0e9abb2 100644 --- a/assets/js/40.50e9288f.js +++ b/assets/js/40.2418b6a4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{425:function(v,_,l){"use strict";l.r(_);var i=l(17),s=Object(i.a)({},(function(){var v=this,_=v.$createElement,l=v._self._c||_;return l("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[l("h2",{attrs:{id:"原则"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#原则"}},[v._v("#")]),v._v(" 原则")]),v._v(" "),l("p",[v._v("  基于目前的需要,先从重构 guide 和 modules 模块,让两块联动,形成比较易读的 venus 集群部署介绍。")]),v._v(" "),l("ul",[l("li",[l("p",[v._v("modules 模块存储各组件的简介,将不相干的文档移到对应位置")])]),v._v(" "),l("li",[l("p",[v._v("guide 和 modules 对于组件介绍存在很多重复的,只保留一份")])]),v._v(" "),l("li",[l("p",[v._v("modules 模块组件介绍老旧,超链接到项目的介绍文档,避免项目内更新后 doc 中不及时及重复劳动")])]),v._v(" "),l("li",[l("p",[v._v("guide 将组件介绍,编译构建,部署文档独立")])]),v._v(" "),l("li",[l("p",[v._v("guide 模块增加 QA 模块,将 venus discussion 的问题以超链接方式统一到 QA 模块")])]),v._v(" "),l("li",[l("p",[v._v("部署模块尽量少一些设计的介绍,简明扼要,每个指定的操作尽量不涉及不相干的,以免造成误解")])])]),v._v(" "),l("h2",{attrs:{id:"todo-list"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#todo-list"}},[v._v("#")]),v._v(" TODO list")]),v._v(" "),l("ul",[l("li",[l("p",[v._v("[ ] modules 模块")]),v._v(" "),l("ul",[l("li",[v._v("[ ] 引导页内容更新")]),v._v(" "),l("li",[v._v("[ ] 不相关文档移走")]),v._v(" "),l("li",[v._v("[ ] 文档命名一致")]),v._v(" "),l("li",[v._v("[ ] 组件介绍匹配项目进度")]),v._v(" "),l("li",[v._v("[x] 编译构建独立到一个文档")]),v._v(" "),l("li",[v._v("[ ] 组件文档移除从项目中搬过来的内容,用超链接")]),v._v(" "),l("li",[v._v("[ ] market 和 cluster 模块的技术文档移到 modules 模块,")])])]),v._v(" "),l("li",[l("p",[v._v("[ ] guide 模块")]),v._v(" "),l("ul",[l("li",[v._v("[ ] 将部署用到的基础知识单独形成文档")]),v._v(" "),l("li",[v._v("[x] 编译构建超链接到对应文档")]),v._v(" "),l("li",[v._v("[x] 增加部分组件的验证:怎么判断部署成功")]),v._v(" "),l("li",[v._v("[ ] 目录结构调整\n"),l("ul",[l("li",[v._v("[ ] market 和 cluster 归属到链服务部署和独立组件部署文档")]),v._v(" "),l("li",[v._v("[ ] .fil_withdraw_and_send.md.swp 文件删除")]),v._v(" "),l("li",[v._v("[ ] sealer 文档放到单独的目录")])])]),v._v(" "),l("li",[v._v("[ ] Troubleshooting-&-FAQ.md 用超链接方式管理 venus discussion")])])]),v._v(" "),l("li",[l("p",[v._v("[ ] 移除没有价值或过时的文档")])]),v._v(" "),l("li",[l("p",[v._v("[ ] 在很多模块中重复的内容整合")])]),v._v(" "),l("li",[l("p",[v._v("[ ] 每个项目搬过来的内容使用超链接")])])])])}),[],!1,null,null,null);_.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{424:function(v,_,l){"use strict";l.r(_);var i=l(17),s=Object(i.a)({},(function(){var v=this,_=v.$createElement,l=v._self._c||_;return l("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[l("h2",{attrs:{id:"原则"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#原则"}},[v._v("#")]),v._v(" 原则")]),v._v(" "),l("p",[v._v("  基于目前的需要,先从重构 guide 和 modules 模块,让两块联动,形成比较易读的 venus 集群部署介绍。")]),v._v(" "),l("ul",[l("li",[l("p",[v._v("modules 模块存储各组件的简介,将不相干的文档移到对应位置")])]),v._v(" "),l("li",[l("p",[v._v("guide 和 modules 对于组件介绍存在很多重复的,只保留一份")])]),v._v(" "),l("li",[l("p",[v._v("modules 模块组件介绍老旧,超链接到项目的介绍文档,避免项目内更新后 doc 中不及时及重复劳动")])]),v._v(" "),l("li",[l("p",[v._v("guide 将组件介绍,编译构建,部署文档独立")])]),v._v(" "),l("li",[l("p",[v._v("guide 模块增加 QA 模块,将 venus discussion 的问题以超链接方式统一到 QA 模块")])]),v._v(" "),l("li",[l("p",[v._v("部署模块尽量少一些设计的介绍,简明扼要,每个指定的操作尽量不涉及不相干的,以免造成误解")])])]),v._v(" "),l("h2",{attrs:{id:"todo-list"}},[l("a",{staticClass:"header-anchor",attrs:{href:"#todo-list"}},[v._v("#")]),v._v(" TODO list")]),v._v(" "),l("ul",[l("li",[l("p",[v._v("[ ] modules 模块")]),v._v(" "),l("ul",[l("li",[v._v("[ ] 引导页内容更新")]),v._v(" "),l("li",[v._v("[ ] 不相关文档移走")]),v._v(" "),l("li",[v._v("[ ] 文档命名一致")]),v._v(" "),l("li",[v._v("[ ] 组件介绍匹配项目进度")]),v._v(" "),l("li",[v._v("[x] 编译构建独立到一个文档")]),v._v(" "),l("li",[v._v("[ ] 组件文档移除从项目中搬过来的内容,用超链接")]),v._v(" "),l("li",[v._v("[ ] market 和 cluster 模块的技术文档移到 modules 模块,")])])]),v._v(" "),l("li",[l("p",[v._v("[ ] guide 模块")]),v._v(" "),l("ul",[l("li",[v._v("[ ] 将部署用到的基础知识单独形成文档")]),v._v(" "),l("li",[v._v("[x] 编译构建超链接到对应文档")]),v._v(" "),l("li",[v._v("[x] 增加部分组件的验证:怎么判断部署成功")]),v._v(" "),l("li",[v._v("[ ] 目录结构调整\n"),l("ul",[l("li",[v._v("[ ] market 和 cluster 归属到链服务部署和独立组件部署文档")]),v._v(" "),l("li",[v._v("[ ] .fil_withdraw_and_send.md.swp 文件删除")]),v._v(" "),l("li",[v._v("[ ] sealer 文档放到单独的目录")])])]),v._v(" "),l("li",[v._v("[ ] Troubleshooting-&-FAQ.md 用超链接方式管理 venus discussion")])])]),v._v(" "),l("li",[l("p",[v._v("[ ] 移除没有价值或过时的文档")])]),v._v(" "),l("li",[l("p",[v._v("[ ] 在很多模块中重复的内容整合")])]),v._v(" "),l("li",[l("p",[v._v("[ ] 每个项目搬过来的内容使用超链接")])])])])}),[],!1,null,null,null);_.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/42.6f23ba4c.js b/assets/js/42.215ace8a.js similarity index 90% rename from assets/js/42.6f23ba4c.js rename to assets/js/42.215ace8a.js index b88677de9..209728c6a 100644 --- a/assets/js/42.6f23ba4c.js +++ b/assets/js/42.215ace8a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{430: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],{429: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/46.cdd6c8d8.js b/assets/js/46.6b31baf0.js similarity index 99% rename from assets/js/46.cdd6c8d8.js rename to assets/js/46.6b31baf0.js index 24bece52f..a3302e3c2 100644 --- a/assets/js/46.cdd6c8d8.js +++ b/assets/js/46.6b31baf0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{435: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],{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 diff --git a/assets/js/6.14585a82.js b/assets/js/6.fddfe598.js similarity index 99% rename from assets/js/6.14585a82.js rename to assets/js/6.fddfe598.js index f29eba2f6..91e4cc357 100644 --- a/assets/js/6.14585a82.js +++ b/assets/js/6.fddfe598.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{328:function(e,t,o){e.exports=o.p+"assets/img/venus-gateway-system-design.993fdfcd.png"},388:function(e,t,o){e.exports=o.p+"assets/img/venus-cluster.39d38e43.png"},402:function(e,t,o){"use strict";o.r(t);var a=o(17),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h2",{attrs:{id:"preface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preface"}},[e._v("#")]),e._v(" Preface")]),e._v(" "),a("p",[e._v("Multiple interoperable implementations are required on the same public blockchain. Each implementation may has its own set of security issues, but they are not all the same . Therefore, launching cryptocurrency networks with multiple implementations can reduce the catastrophic errors. Venus is one of the four implementations in Filecoin network.")]),e._v(" "),a("p",[e._v("Venus (Capital V) refers to one of the general implementations of Filecoin, while venus (v in lowercase) refers to one of the components of Venus. Venus is committed to helping small and medium-sized storage providers to join the Filecoin ecosystem network with a lower barrier.")]),e._v(" "),a("p",[e._v("Now Venus has lead the way to the distributed storage pool of Filecoin through components like venus、damocles, sophon-miner, venus-wallet, sophon-messager, sophon-auth, sophon-gateway. In the future, Venus will continue its evolvement and jointly promote the open source development of Filecoin ecosystem.")]),e._v(" "),a("h2",{attrs:{id:"why-are-we-doing-this"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-are-we-doing-this"}},[e._v("#")]),e._v(" Why are we doing this")]),e._v(" "),a("p",[e._v("On June 2020, Protocol Labs launched an RFP to handover the maintenance of go-filecoin to another community member, and IPFSForce applied for it and successfully obtain the project. In October, We renamed go-filecoin as Venus, and take over the maintenance of Venus Implementation.")]),e._v(" "),a("p",[e._v("Before IPFSForce’s application, maintenance effort is seriously lacking in Venus project. In terms of protocols and components, vm,mpool, chain, rpc are all available, but all have different kind of issue. It takes Venus team more than 3 months to gradually fix protocol layer, code layer, and problematic functions, making Venus complete the interoperability with Lotus, so that the nodes using Venus can run smoothly in the Filecoin network. And then we let Venus support calibration and 2K networks.")]),e._v(" "),a("p",[e._v("After completing the above work, we start to set the roadmap of Venus development.")]),e._v(" "),a("p",[e._v("We plan to let Venus support the development of storage pool. At the beginning, we decide to achieve the best of expansion from a single storage provider. It is technically feasible, but the biggest problem was caused by the mechanism of Filecoin proofs. Storage providers in the Filecoin network have to submit the PoSt periodically, and in order to generate the proof, they need to read the data of a whole Partition. If all sectors are distributed in different places, to read the data through the public network will be heavy time-consuming.")]),e._v(" "),a("p",[e._v("After that, through several times of re-design and modification, we finally decide to build it as a distributed storage pool. Distributed storage pool will not completely in charge with any single storage provider, but managed by multiple storage providers, which is more like a storage provider group/union.")]),e._v(" "),a("p",[e._v("The external features of Venus distributed storage pool are similar to other pools. Storage Providers can store their resources in distributed geographic nodes. As long as there is a stable connection to the network, the storage provider can create a node accessible to Venus storage pool; The probability of earning the block reward is proportional to the amount of storage the storage provider contributes to the Filecoin network, and the final result of separate calculation and overall calculation should be the same: "),a("em",[a("strong",[e._v("n1/p+ n2/p+n3/p......= (n1+n2+n3+.....)/p")])]),e._v(", which provides a theoretical basis on the algorithm.")]),e._v(" "),a("p",[e._v("For the storage and retrieval, storage providers can access the network through the venus unified entrance or by themselves. In the design and with the permission from storage providers, venus will select the appropriate node to store data according to specific requirements, so that the data is closer to the real scenario.")]),e._v(" "),a("ol",[a("li",[a("p",[a("em",[a("strong",[e._v("Data storage")])]),e._v(": component sharing is supported, and the storage will be gradually migrated to MySQL to ensure the metadata security of Venus through some highly available solutions.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Shared Modules")])]),e._v(": support high availability, ensure the quality of service, reduce the time cost and maintenance cost of storage providers, which make it easier for storage providers to join the storage pool. Nowadays, mining is a high-tech activity, but to achieve Filecoin's goal to get the utmost out of storage resources, it is inevitable to lower the threshold to attract more participants.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Combine the right for more block rewards")])]),e._v(": storage providers can integrate resources together and help each other pack messages, so as to avoid the situation of small storage providers that no one can pack messages.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the TPS of Filecoin network")])]),e._v(": if there are multiple blocks at the same height, sophon-miner can ensure that the messages in each block are different, as the avoidance of highly-repeated messages when blocks are separated.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the stability of messages")])]),e._v(": messages in storing activities can be separated from nodes and managed by sophon-messager, which can track the latest state of the chain to set a relatively reasonable estimated gas parameter, and also supports users to set a message parameter themselves.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the speed of data access")])]),e._v(": the current Filecoin network is more like a pool which is merely for data storage, but as a complete data service, it also needs data retrieval to realize its real value. With sufficient miner users, Venus has more chances to promote the real data application. For example, for data distribution, Venus can distribute the data to some storage providers' nodes nearest to the customers, which can improve the access speed; some public data can distribute these data to more nodes as much as possible to ensure that access at any location is effective, which can greatly improve the performance of IPFS network and further realize the goal of IPFS, as one of the Web3.0 solutions.")])])]),e._v(" "),a("h2",{attrs:{id:"how-venus-works"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-venus-works"}},[e._v("#")]),e._v(" How Venus works")]),e._v(" "),a("h3",{attrs:{id:"architecture"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#architecture"}},[e._v("#")]),e._v(" Architecture")]),e._v(" "),a("p",[e._v("Venus architecture includes venus, sophon-miner, damocles, sophon-messager, venus-wallet, sophon-auth, and droplet. In the classic architecture, venus, sophon-miner, sophon-auth, sophon-messager and droplet are "),a("strong",[e._v("public components")]),e._v(", and damocles and venus-wallet are "),a("strong",[e._v("local components")]),e._v(".")]),e._v(" "),a("p",[e._v("Public components can be established by service providers or by multiple storage providers, and they only need to run damocles and venus-wallet locally. In fact, all components of Venus are protocol oriented. If storage providers have sufficient skills, "),a("strong",[e._v("they can also deploy all or part of the public components locally, so the deployment can be more flexible")]),e._v(".")]),e._v(" "),a("p",[e._v("The following figure is a typical application scenario in our design.")]),e._v(" "),a("p",[a("img",{attrs:{src:o(388),alt:""}})]),e._v(" "),a("p",[e._v("The following contents show the relationship between components, which are similar in function, but with more powerful expanded functions in details and uses.")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth --\x3e token authentication service extend lotus jwt")]),e._v(" "),a("li",[e._v("sophon-miner --\x3e lotus-miner block produce part")]),e._v(" "),a("li",[e._v("damocles --\x3e lotus-miner sealer scheduler part/wd")]),e._v(" "),a("li",[e._v("venus daemon --\x3e lotus daemon")]),e._v(" "),a("li",[e._v("venus-wallet -> lotus wallet part")]),e._v(" "),a("li",[e._v("sophon-messager --\x3e lotus mpool")])]),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("venus is similar to lotus-daemon, which is used to support all nodes. venus is connected to the Filecoin blockchain network to provide data support for Venus. venus can be used as an ordinary node. It has all the necessary functions of blockchain nodes, such as chain, mpool and wallet. The APIs of venus are almost compatible with those of lotus (you can mention the issue of incompatible APIs). On venus, you can create private keys, query assets, transfer funds, etc. In a typical deployment environment, venus only provides data query service on the basic chain without private key restoration. The block data needed by slashfilter is stored in the database, and the node itself is stateless. In this case, venus node can realize its high availability through nginx reverse proxy.")]),e._v(" "),a("h4",{attrs:{id:"venus-and-lotus-the-difference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-and-lotus-the-difference"}},[e._v("#")]),e._v(" Venus and Lotus,The Difference")]),e._v(" "),a("ol",[a("li",[e._v("External signature is supported in the API of creating block (request will be proposed to lotus too).")]),e._v(" "),a("li",[e._v("The API of message selection supports the selection of multiple batches of messages at the same time, which is used to select messages when multiple storage providers get the block rewards.")]),e._v(" "),a("li",[e._v("Support the centralized authorization access to sophon-auth.")])]),e._v(" "),a("p",[e._v("Therefore, if you are interested in the mixed deployment of venus / lotus, you need to use "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/lotus/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("Venus project which is compatible to Lotus"),a("OutboundLink")],1),e._v(" or pick your own CCS.")]),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",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-auth",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-auth"),a("OutboundLink")],1),e._v(" (formerly venus-auth) is a component used for authorization. In a typical deployment environment, sophon-auth is used to provide authorization services to venus, sophon-miner and sophon-messager. Local nodes need to be authorized to have access to the shared components. Based on the authorization, sophon-auth will expand its functions, such as security control, including access restriction and blacklist.")]),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("The function of "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-miner",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-miner"),a("OutboundLink")],1),e._v(" (formerly venus-miner) is to combine the rights to earn block rewards. The program can configure the location of multiple storage providers and their sealers and wallets, and generate blocks for these storage providers at the same time. sophon-miner has the following features:")]),e._v(" "),a("ol",[a("li",[e._v("Separate data: because the process of generating blocks needs to access data, and storage provider's sealer may be heterogeneous, but now most storage providers will use their own codes, so there is a problem about how to access these data to realize joint mining. By sophon-miner’s independence on the storage organization mode and completing the proofs by storage providers, no matter how the miner's sealer organizes the storage, as long as the Computeproof API is implemented, sophon-miner can generate the proof through it.")]),e._v(" "),a("li",[e._v("Separate private key: when calculating random numbers and signature blocks, all operations about private key are accessed through remote wallet, which can improve the security of mining activities.")]),e._v(" "),a("li",[e._v("Improve storage providers' wincount and TPS: when the miner who uses sophon-miner rto get multiple (> 1) rights of block rewards in a period, sophon-miner will try to select different messages from the message pool for packaging, which can somehow improve the speed of these messages on the chain, and make the block get more gas premium.")])]),e._v(" "),a("h3",{attrs:{id:"sophon-messenger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messenger"}},[e._v("#")]),e._v(" sophon-messenger")]),e._v(" "),a("p",[e._v("The goal of "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-messager",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-messager"),a("OutboundLink")],1),e._v(" (formerly venus-messager) is to help messages on chain more efficiently, and to flexibly control the timing of messages on chain to reduce gas consumption and control the data traffic, etc. It includes remote wallet management, address management and message management.")]),e._v(" "),a("ol",[a("li",[e._v("Wallet management: sophon-messager connects multiple wallets and scans these addresses into the list.")]),e._v(" "),a("li",[e._v("Address management: the major purpose is to manage the nonce value to ensure that the value can be assigned in the correct order.")]),e._v(" "),a("li",[e._v('Message management: it is divided into three parts, namely "message receiving and saving", "message selection and pushing" and "tracking the status of message on the chain".')])]),e._v(" "),a("p",[e._v("In terms of functions:")]),e._v(" "),a("ol",[a("li",[e._v("Support remote wallet: one messenger supports multiple wallets to manage their message separately.")]),e._v(" "),a("li",[e._v("Support local storage of SQLite and remote storage of MySQL for more secure and stable storage.")]),e._v(" "),a("li",[e._v("Dynamic Fill: gas related parameters and nonce are to be filled out when sending a message on chain according to gas and push policy, to make sure the gas-estimation and other setting are valid.")]),e._v(" "),a("li",[e._v("Maintain message status, including whether the message is chained and replaced and save the results of the execution.")]),e._v(" "),a("li",[e._v("Multi-point message delivery (directly to the blockchain network with libp2p, push to the node by Mpool API), to make sure that messages are propagated over the network.")]),e._v(" "),a("li",[e._v("Flexible config includes gas estimate, msg push strategy, etc.")])]),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("venus-wallet is a remote wallet, which can support both Lotus and Venus in terms of protocols. In a typical deployment environment, this module is deployed locally by storage providers, and the security of assets is guaranteed by certain policy configuration. venus-wallet has the following features:")]),e._v(" "),a("ol",[a("li",[e._v("Private key management function: currently it supports the private key management of asymmetric algorithms BLS and SECP, and it can generate random private key, and uses aes128 to encrypt and store the private key symmetrically whilst supports the private key to sign the data.")]),e._v(" "),a("li",[e._v("Signature verification: each signature type has its verification policy, which ensures that the signer won't do deceits the wallet through non-credible signature type.")]),e._v(" "),a("li",[e._v("Signature tactics module: for the Lotus and Venus implementation of Filecoin, the module is created to manage 10 existing data structures and more than 60 signature types in message data structure, and configure various combination methods on demand to bind private key signature rules, and then integrate several different private key signature rules and authorize them to external components for further usage.")])]),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("Droplet (formerly venus-market) is the market component in the Venus system. Its vision is to create a distributed storage and retrieval market in the Filecoin network. Currently, it has realized order storage and retrieval compatible with the Lotus protocol, and is gradually moving towards receiving orders from multiple clusters of droplet services and providing unified retrieval services to the outside world. You can refer to "),a("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 design and roadmap"),a("OutboundLink")],1),e._v(".")]),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",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-gateway",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-gateway"),a("OutboundLink")],1),e._v(" (formerly venus-gateway) is a bridge between independent components and the chain service layer. It is used to simplify deployment and reduce the complexity of storage provider access, and increase the security of storage provider access. When the independent component is started, its service interface is registered with sophon-gateway. The chain service component needs to request the corresponding cluster’s service API through sophon-gateway.")]),e._v(" "),a("ul",[a("li",[e._v("Storage providers do not need external IP and exposed wallet service;")]),e._v(" "),a("li",[e._v("After the storage pool is configured with an SSL certificate, the connection between the cluster and the storage pool is secure;")]),e._v(" "),a("li",[e._v("Storage providers can simply register multiple clients (wallets/proofs) with the storage pool to achieve high availability.")])]),e._v(" "),a("p",[a("img",{attrs:{src:o(328),alt:"sophon-gateway"}})]),e._v(" "),a("h3",{attrs:{id:"damocles"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" damocles")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/damocles",target:"_blank",rel:"noopener noreferrer"}},[e._v("damocles"),a("OutboundLink")],1),e._v(" (formerly venus-cluster) is a new version of sector sealing and computing power maintenance components launched by Venus. Compared with the original venus-sealer, it has certain advantages in task scheduling and maximizing system resources, and its target users will also be different")]),e._v(" "),a("h2",{attrs:{id:"learn-more-about-venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#learn-more-about-venus"}},[e._v("#")]),e._v(" Learn more about Venus")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://venus.filecoin.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docs"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discussion"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://app.slack.com/client/TEHTVS1L6/C028PCH8L31",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"github.com/filecoin-project/venus"}},[e._v("GitHub")])]),e._v(" "),a("li",[e._v("Chain explorer: "),a("a",{attrs:{href:"filscan.io"}},[e._v("filscan.io")])]),e._v(" "),a("li",[e._v("Store on the MainNet: "),a("a",{attrs:{href:"https://docs.filecoin.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs.filecoin.io"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{328:function(e,t,o){e.exports=o.p+"assets/img/venus-gateway-system-design.993fdfcd.png"},388:function(e,t,o){e.exports=o.p+"assets/img/venus-cluster.39d38e43.png"},404:function(e,t,o){"use strict";o.r(t);var a=o(17),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h2",{attrs:{id:"preface"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#preface"}},[e._v("#")]),e._v(" Preface")]),e._v(" "),a("p",[e._v("Multiple interoperable implementations are required on the same public blockchain. Each implementation may has its own set of security issues, but they are not all the same . Therefore, launching cryptocurrency networks with multiple implementations can reduce the catastrophic errors. Venus is one of the four implementations in Filecoin network.")]),e._v(" "),a("p",[e._v("Venus (Capital V) refers to one of the general implementations of Filecoin, while venus (v in lowercase) refers to one of the components of Venus. Venus is committed to helping small and medium-sized storage providers to join the Filecoin ecosystem network with a lower barrier.")]),e._v(" "),a("p",[e._v("Now Venus has lead the way to the distributed storage pool of Filecoin through components like venus、damocles, sophon-miner, venus-wallet, sophon-messager, sophon-auth, sophon-gateway. In the future, Venus will continue its evolvement and jointly promote the open source development of Filecoin ecosystem.")]),e._v(" "),a("h2",{attrs:{id:"why-are-we-doing-this"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#why-are-we-doing-this"}},[e._v("#")]),e._v(" Why are we doing this")]),e._v(" "),a("p",[e._v("On June 2020, Protocol Labs launched an RFP to handover the maintenance of go-filecoin to another community member, and IPFSForce applied for it and successfully obtain the project. In October, We renamed go-filecoin as Venus, and take over the maintenance of Venus Implementation.")]),e._v(" "),a("p",[e._v("Before IPFSForce’s application, maintenance effort is seriously lacking in Venus project. In terms of protocols and components, vm,mpool, chain, rpc are all available, but all have different kind of issue. It takes Venus team more than 3 months to gradually fix protocol layer, code layer, and problematic functions, making Venus complete the interoperability with Lotus, so that the nodes using Venus can run smoothly in the Filecoin network. And then we let Venus support calibration and 2K networks.")]),e._v(" "),a("p",[e._v("After completing the above work, we start to set the roadmap of Venus development.")]),e._v(" "),a("p",[e._v("We plan to let Venus support the development of storage pool. At the beginning, we decide to achieve the best of expansion from a single storage provider. It is technically feasible, but the biggest problem was caused by the mechanism of Filecoin proofs. Storage providers in the Filecoin network have to submit the PoSt periodically, and in order to generate the proof, they need to read the data of a whole Partition. If all sectors are distributed in different places, to read the data through the public network will be heavy time-consuming.")]),e._v(" "),a("p",[e._v("After that, through several times of re-design and modification, we finally decide to build it as a distributed storage pool. Distributed storage pool will not completely in charge with any single storage provider, but managed by multiple storage providers, which is more like a storage provider group/union.")]),e._v(" "),a("p",[e._v("The external features of Venus distributed storage pool are similar to other pools. Storage Providers can store their resources in distributed geographic nodes. As long as there is a stable connection to the network, the storage provider can create a node accessible to Venus storage pool; The probability of earning the block reward is proportional to the amount of storage the storage provider contributes to the Filecoin network, and the final result of separate calculation and overall calculation should be the same: "),a("em",[a("strong",[e._v("n1/p+ n2/p+n3/p......= (n1+n2+n3+.....)/p")])]),e._v(", which provides a theoretical basis on the algorithm.")]),e._v(" "),a("p",[e._v("For the storage and retrieval, storage providers can access the network through the venus unified entrance or by themselves. In the design and with the permission from storage providers, venus will select the appropriate node to store data according to specific requirements, so that the data is closer to the real scenario.")]),e._v(" "),a("ol",[a("li",[a("p",[a("em",[a("strong",[e._v("Data storage")])]),e._v(": component sharing is supported, and the storage will be gradually migrated to MySQL to ensure the metadata security of Venus through some highly available solutions.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Shared Modules")])]),e._v(": support high availability, ensure the quality of service, reduce the time cost and maintenance cost of storage providers, which make it easier for storage providers to join the storage pool. Nowadays, mining is a high-tech activity, but to achieve Filecoin's goal to get the utmost out of storage resources, it is inevitable to lower the threshold to attract more participants.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Combine the right for more block rewards")])]),e._v(": storage providers can integrate resources together and help each other pack messages, so as to avoid the situation of small storage providers that no one can pack messages.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the TPS of Filecoin network")])]),e._v(": if there are multiple blocks at the same height, sophon-miner can ensure that the messages in each block are different, as the avoidance of highly-repeated messages when blocks are separated.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the stability of messages")])]),e._v(": messages in storing activities can be separated from nodes and managed by sophon-messager, which can track the latest state of the chain to set a relatively reasonable estimated gas parameter, and also supports users to set a message parameter themselves.")])]),e._v(" "),a("li",[a("p",[a("em",[a("strong",[e._v("Improve the speed of data access")])]),e._v(": the current Filecoin network is more like a pool which is merely for data storage, but as a complete data service, it also needs data retrieval to realize its real value. With sufficient miner users, Venus has more chances to promote the real data application. For example, for data distribution, Venus can distribute the data to some storage providers' nodes nearest to the customers, which can improve the access speed; some public data can distribute these data to more nodes as much as possible to ensure that access at any location is effective, which can greatly improve the performance of IPFS network and further realize the goal of IPFS, as one of the Web3.0 solutions.")])])]),e._v(" "),a("h2",{attrs:{id:"how-venus-works"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#how-venus-works"}},[e._v("#")]),e._v(" How Venus works")]),e._v(" "),a("h3",{attrs:{id:"architecture"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#architecture"}},[e._v("#")]),e._v(" Architecture")]),e._v(" "),a("p",[e._v("Venus architecture includes venus, sophon-miner, damocles, sophon-messager, venus-wallet, sophon-auth, and droplet. In the classic architecture, venus, sophon-miner, sophon-auth, sophon-messager and droplet are "),a("strong",[e._v("public components")]),e._v(", and damocles and venus-wallet are "),a("strong",[e._v("local components")]),e._v(".")]),e._v(" "),a("p",[e._v("Public components can be established by service providers or by multiple storage providers, and they only need to run damocles and venus-wallet locally. In fact, all components of Venus are protocol oriented. If storage providers have sufficient skills, "),a("strong",[e._v("they can also deploy all or part of the public components locally, so the deployment can be more flexible")]),e._v(".")]),e._v(" "),a("p",[e._v("The following figure is a typical application scenario in our design.")]),e._v(" "),a("p",[a("img",{attrs:{src:o(388),alt:""}})]),e._v(" "),a("p",[e._v("The following contents show the relationship between components, which are similar in function, but with more powerful expanded functions in details and uses.")]),e._v(" "),a("ul",[a("li",[e._v("sophon-auth --\x3e token authentication service extend lotus jwt")]),e._v(" "),a("li",[e._v("sophon-miner --\x3e lotus-miner block produce part")]),e._v(" "),a("li",[e._v("damocles --\x3e lotus-miner sealer scheduler part/wd")]),e._v(" "),a("li",[e._v("venus daemon --\x3e lotus daemon")]),e._v(" "),a("li",[e._v("venus-wallet -> lotus wallet part")]),e._v(" "),a("li",[e._v("sophon-messager --\x3e lotus mpool")])]),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("venus is similar to lotus-daemon, which is used to support all nodes. venus is connected to the Filecoin blockchain network to provide data support for Venus. venus can be used as an ordinary node. It has all the necessary functions of blockchain nodes, such as chain, mpool and wallet. The APIs of venus are almost compatible with those of lotus (you can mention the issue of incompatible APIs). On venus, you can create private keys, query assets, transfer funds, etc. In a typical deployment environment, venus only provides data query service on the basic chain without private key restoration. The block data needed by slashfilter is stored in the database, and the node itself is stateless. In this case, venus node can realize its high availability through nginx reverse proxy.")]),e._v(" "),a("h4",{attrs:{id:"venus-and-lotus-the-difference"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#venus-and-lotus-the-difference"}},[e._v("#")]),e._v(" Venus and Lotus,The Difference")]),e._v(" "),a("ol",[a("li",[e._v("External signature is supported in the API of creating block (request will be proposed to lotus too).")]),e._v(" "),a("li",[e._v("The API of message selection supports the selection of multiple batches of messages at the same time, which is used to select messages when multiple storage providers get the block rewards.")]),e._v(" "),a("li",[e._v("Support the centralized authorization access to sophon-auth.")])]),e._v(" "),a("p",[e._v("Therefore, if you are interested in the mixed deployment of venus / lotus, you need to use "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/lotus/releases",target:"_blank",rel:"noopener noreferrer"}},[e._v("Venus project which is compatible to Lotus"),a("OutboundLink")],1),e._v(" or pick your own CCS.")]),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",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-auth",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-auth"),a("OutboundLink")],1),e._v(" (formerly venus-auth) is a component used for authorization. In a typical deployment environment, sophon-auth is used to provide authorization services to venus, sophon-miner and sophon-messager. Local nodes need to be authorized to have access to the shared components. Based on the authorization, sophon-auth will expand its functions, such as security control, including access restriction and blacklist.")]),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("The function of "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-miner",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-miner"),a("OutboundLink")],1),e._v(" (formerly venus-miner) is to combine the rights to earn block rewards. The program can configure the location of multiple storage providers and their sealers and wallets, and generate blocks for these storage providers at the same time. sophon-miner has the following features:")]),e._v(" "),a("ol",[a("li",[e._v("Separate data: because the process of generating blocks needs to access data, and storage provider's sealer may be heterogeneous, but now most storage providers will use their own codes, so there is a problem about how to access these data to realize joint mining. By sophon-miner’s independence on the storage organization mode and completing the proofs by storage providers, no matter how the miner's sealer organizes the storage, as long as the Computeproof API is implemented, sophon-miner can generate the proof through it.")]),e._v(" "),a("li",[e._v("Separate private key: when calculating random numbers and signature blocks, all operations about private key are accessed through remote wallet, which can improve the security of mining activities.")]),e._v(" "),a("li",[e._v("Improve storage providers' wincount and TPS: when the miner who uses sophon-miner rto get multiple (> 1) rights of block rewards in a period, sophon-miner will try to select different messages from the message pool for packaging, which can somehow improve the speed of these messages on the chain, and make the block get more gas premium.")])]),e._v(" "),a("h3",{attrs:{id:"sophon-messenger"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sophon-messenger"}},[e._v("#")]),e._v(" sophon-messenger")]),e._v(" "),a("p",[e._v("The goal of "),a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-messager",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-messager"),a("OutboundLink")],1),e._v(" (formerly venus-messager) is to help messages on chain more efficiently, and to flexibly control the timing of messages on chain to reduce gas consumption and control the data traffic, etc. It includes remote wallet management, address management and message management.")]),e._v(" "),a("ol",[a("li",[e._v("Wallet management: sophon-messager connects multiple wallets and scans these addresses into the list.")]),e._v(" "),a("li",[e._v("Address management: the major purpose is to manage the nonce value to ensure that the value can be assigned in the correct order.")]),e._v(" "),a("li",[e._v('Message management: it is divided into three parts, namely "message receiving and saving", "message selection and pushing" and "tracking the status of message on the chain".')])]),e._v(" "),a("p",[e._v("In terms of functions:")]),e._v(" "),a("ol",[a("li",[e._v("Support remote wallet: one messenger supports multiple wallets to manage their message separately.")]),e._v(" "),a("li",[e._v("Support local storage of SQLite and remote storage of MySQL for more secure and stable storage.")]),e._v(" "),a("li",[e._v("Dynamic Fill: gas related parameters and nonce are to be filled out when sending a message on chain according to gas and push policy, to make sure the gas-estimation and other setting are valid.")]),e._v(" "),a("li",[e._v("Maintain message status, including whether the message is chained and replaced and save the results of the execution.")]),e._v(" "),a("li",[e._v("Multi-point message delivery (directly to the blockchain network with libp2p, push to the node by Mpool API), to make sure that messages are propagated over the network.")]),e._v(" "),a("li",[e._v("Flexible config includes gas estimate, msg push strategy, etc.")])]),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("venus-wallet is a remote wallet, which can support both Lotus and Venus in terms of protocols. In a typical deployment environment, this module is deployed locally by storage providers, and the security of assets is guaranteed by certain policy configuration. venus-wallet has the following features:")]),e._v(" "),a("ol",[a("li",[e._v("Private key management function: currently it supports the private key management of asymmetric algorithms BLS and SECP, and it can generate random private key, and uses aes128 to encrypt and store the private key symmetrically whilst supports the private key to sign the data.")]),e._v(" "),a("li",[e._v("Signature verification: each signature type has its verification policy, which ensures that the signer won't do deceits the wallet through non-credible signature type.")]),e._v(" "),a("li",[e._v("Signature tactics module: for the Lotus and Venus implementation of Filecoin, the module is created to manage 10 existing data structures and more than 60 signature types in message data structure, and configure various combination methods on demand to bind private key signature rules, and then integrate several different private key signature rules and authorize them to external components for further usage.")])]),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("Droplet (formerly venus-market) is the market component in the Venus system. Its vision is to create a distributed storage and retrieval market in the Filecoin network. Currently, it has realized order storage and retrieval compatible with the Lotus protocol, and is gradually moving towards receiving orders from multiple clusters of droplet services and providing unified retrieval services to the outside world. You can refer to "),a("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 design and roadmap"),a("OutboundLink")],1),e._v(".")]),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",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/sophon-gateway",target:"_blank",rel:"noopener noreferrer"}},[e._v("sophon-gateway"),a("OutboundLink")],1),e._v(" (formerly venus-gateway) is a bridge between independent components and the chain service layer. It is used to simplify deployment and reduce the complexity of storage provider access, and increase the security of storage provider access. When the independent component is started, its service interface is registered with sophon-gateway. The chain service component needs to request the corresponding cluster’s service API through sophon-gateway.")]),e._v(" "),a("ul",[a("li",[e._v("Storage providers do not need external IP and exposed wallet service;")]),e._v(" "),a("li",[e._v("After the storage pool is configured with an SSL certificate, the connection between the cluster and the storage pool is secure;")]),e._v(" "),a("li",[e._v("Storage providers can simply register multiple clients (wallets/proofs) with the storage pool to achieve high availability.")])]),e._v(" "),a("p",[a("img",{attrs:{src:o(328),alt:"sophon-gateway"}})]),e._v(" "),a("h3",{attrs:{id:"damocles"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#damocles"}},[e._v("#")]),e._v(" damocles")]),e._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/ipfs-force-community/damocles",target:"_blank",rel:"noopener noreferrer"}},[e._v("damocles"),a("OutboundLink")],1),e._v(" (formerly venus-cluster) is a new version of sector sealing and computing power maintenance components launched by Venus. Compared with the original venus-sealer, it has certain advantages in task scheduling and maximizing system resources, and its target users will also be different")]),e._v(" "),a("h2",{attrs:{id:"learn-more-about-venus"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#learn-more-about-venus"}},[e._v("#")]),e._v(" Learn more about Venus")]),e._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"https://venus.filecoin.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Docs"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://github.com/filecoin-project/venus/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("Discussion"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"https://app.slack.com/client/TEHTVS1L6/C028PCH8L31",target:"_blank",rel:"noopener noreferrer"}},[e._v("Slack"),a("OutboundLink")],1)]),e._v(" "),a("li",[a("a",{attrs:{href:"github.com/filecoin-project/venus"}},[e._v("GitHub")])]),e._v(" "),a("li",[e._v("Chain explorer: "),a("a",{attrs:{href:"filscan.io"}},[e._v("filscan.io")])]),e._v(" "),a("li",[e._v("Store on the MainNet: "),a("a",{attrs:{href:"https://docs.filecoin.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("docs.filecoin.io"),a("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/60.70bb0d4d.js b/assets/js/60.9e52dcc3.js similarity index 99% rename from assets/js/60.70bb0d4d.js rename to assets/js/60.9e52dcc3.js index 499007e13..7bed7ea57 100644 --- a/assets/js/60.70bb0d4d.js +++ b/assets/js/60.9e52dcc3.js @@ -1 +1 @@ -(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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{452: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.77e92af3.js b/assets/js/61.0a1724c0.js similarity index 99% rename from assets/js/61.77e92af3.js rename to assets/js/61.0a1724c0.js index 2b106d4c5..9c020657f 100644 --- a/assets/js/61.77e92af3.js +++ b/assets/js/61.0a1724c0.js @@ -1 +1 @@ -(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 +(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 diff --git a/assets/js/7.48dffc11.js b/assets/js/7.14526030.js similarity index 99% rename from assets/js/7.48dffc11.js rename to assets/js/7.14526030.js index e3fb50323..1f22100db 100644 --- a/assets/js/7.48dffc11.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"},436: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.0f750869.js b/assets/js/8.5880ef83.js similarity index 92% rename from assets/js/8.0f750869.js rename to assets/js/8.5880ef83.js index 2c59fde29..74916d0f2 100644 --- a/assets/js/8.0f750869.js +++ b/assets/js/8.5880ef83.js @@ -1 +1 @@ -(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 +(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 diff --git a/assets/js/9.69461f25.js b/assets/js/9.f2fc0f61.js similarity index 77% rename from assets/js/9.69461f25.js rename to assets/js/9.f2fc0f61.js index d6603b064..cf4466765 100644 --- a/assets/js/9.69461f25.js +++ b/assets/js/9.f2fc0f61.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{331:function(e,t,r){e.exports=r.p+"assets/img/droplet-banner.5da6d582.jpg"},407:function(e,t,r){"use strict";r.r(t);var o=r(17),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("img",{attrs:{src:r(331),alt:"droplet"}})]),e._v(" "),o("h3",{attrs:{id:"droplet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" Droplet")]),e._v(" "),o("p",[e._v("Droplet, formerly known as Venus Deal Service, is THE Filecoin storage deal solution. Learn more about Droplet "),o("a",{attrs:{href:"https://droplet.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{330:function(e,t,r){e.exports=r.p+"assets/img/droplet-banner.5da6d582.jpg"},406:function(e,t,r){"use strict";r.r(t);var o=r(17),n=Object(o.a)({},(function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("p",[o("img",{attrs:{src:r(330),alt:"droplet"}})]),e._v(" "),o("h3",{attrs:{id:"droplet"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#droplet"}},[e._v("#")]),e._v(" Droplet")]),e._v(" "),o("p",[e._v("Droplet, formerly known as Venus Deal Service, is THE Filecoin storage deal solution. Learn more about Droplet "),o("a",{attrs:{href:"https://droplet.venus-fil.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),o("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/app.34bf41e3.js b/assets/js/app.dbad91b6.js similarity index 81% rename from assets/js/app.34bf41e3.js rename to assets/js/app.dbad91b6.js index ea3fa0a95..030f82310 100644 --- a/assets/js/app.34bf41e3.js +++ b/assets/js/app.dbad91b6.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 a1b340f3b..34594104f 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 9a4c77df8..d74921b2e 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 674374644..b048083ee 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 9984eab00..b8bdb5af8 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 92c6b62d7..f1fe87e0f 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 39a29d31c..f3f6cb020 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 5e857e7ca..dceba6d18 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 584471ac0..71be4d0d5 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 aed243932..dc06cf962 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 1b2d91b15..cef51d997 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 0a9a8a0b0..eae309381 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 7fe453daa..739dc3ad4 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 1e51a20fc..12f743b68 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 d2c95e929..aedc2ff12 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 bfbd019c7..6c6fb2a63 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 bfdc913f1..acef9cca5 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 f168a6ef5..e87987ac8 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 231eddae4..656d15a97 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 f49afaedb..4a4fc6b0e 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 b03404975..0e6bf2f43 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 2f05fe8a1..133a8cbf8 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 98ac914cb..efb6ddec8 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 f8a4a1dab..c76a947f2 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 5f5228efb..e82fd2fa5 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 369bee2fc..35d578630 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 43cd2ca5c..dfd73766c 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 202b90283..71e1becaa 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 63fa16161..a4c7ca62c 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 f05828583..d1ddde771 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 06953f1e4..222a402db 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 785b6450f..10662d8f0 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 1c7629af5..26b22b08b 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 b80bd073d..7001e95bb 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 a074e9802..23b7f14c5 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 b5727e18d..2345863b5 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 aa38eb114..6e7f17512 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 3ac72aa7d..4770904ad 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 8b55b49aa..23f7113a0 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 78db2ebf7..45001c683 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 f350f0df3..0777b807b 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 2b4e091b1..0c6b31f4c 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 412074ce5..5d38fd2eb 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 c21f8f8fb..90b41317e 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 45c80713d..5430587ca 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 fd3e6b248..1285b68fd 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 7c74a3921..6f4eeff3f 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 8f27ab445..2b13fb50e 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 d14b7b24f..36a7e14f2 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 e2bbbb255..81b956d8f 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 fad169a82..b7fc98338 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 ef4288d28..946561c10 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 b13e03ac6..57b941b79 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 的消息,以及不匹配的调用堆栈,可以方便快速定位问题。

- +