├── .github ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── build_docker_buildenv.yaml │ ├── build_docker_runtime.yaml │ └── publish.yaml ├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── docs ├── .vuepress │ ├── components │ │ └── RedirectTutorial.vue │ ├── config.js │ ├── public │ │ ├── 01-zabbix-install.jpg │ │ ├── 02-zabbix-install.jpg │ │ ├── 03-zabbix-config.jpg │ │ ├── 04-zabbix-hostname.jpg │ │ ├── 05-zabbix-all.jpg │ │ ├── 06-zabbix-finished.jpg │ │ ├── 07-zabbix-login.jpg │ │ ├── 08-zabbix-dashboard.jpg │ │ ├── 09-zabbix-agent.jpg │ │ ├── 10-zabbix-agent-add.jpg │ │ ├── 11-zabbix-graphs.jpg │ │ ├── 12-zabbix-memory.jpg │ │ ├── 13-Alarm-information.jpg │ │ ├── CNAME │ │ ├── assets │ │ │ ├── filecoin-logo-v.svg │ │ │ ├── filecoin-logo.svg │ │ │ ├── fonts │ │ │ │ └── oxygen │ │ │ │ │ ├── OFL.txt │ │ │ │ │ ├── Oxygen-Bold.ttf │ │ │ │ │ ├── Oxygen-Light.ttf │ │ │ │ │ └── Oxygen-Regular.ttf │ │ │ ├── icon-coin-128.png │ │ │ ├── venus-hero-logo.png │ │ │ ├── venus-logo-title.svg │ │ │ └── venus-logo.png │ │ ├── damocles-banner.jpg │ │ ├── droplet-banner.jpg │ │ ├── error-message.png │ │ ├── getting-started-node-diagram.png │ │ ├── lotus-cluster-1.png │ │ ├── lotus-cluster-2.png │ │ ├── min_hardware_requirements.png │ │ ├── monitor │ │ │ ├── filecoin-interface.jpg │ │ │ ├── venus-all.jpg │ │ │ ├── venus-gateway.jpg │ │ │ ├── venus-mesager-gateway-interface.jpg │ │ │ ├── venus-messager.jpg │ │ │ └── venus.jpg │ │ ├── one-pager-venus.png │ │ ├── research │ │ │ ├── 20221013143419.png │ │ │ ├── 20221013153319.png │ │ │ ├── 20221013231224.png │ │ │ └── 20221021131654.png │ │ ├── sophon-banner.jpg │ │ ├── task_resource_table.png │ │ ├── vc_arc.jpeg │ │ ├── venus-cluster.png │ │ ├── venus-cluster2.png │ │ ├── venus-components.png │ │ ├── venus-gateway-system-design.drawio │ │ ├── venus-gateway-system-design.png │ │ ├── venus-messager │ │ │ ├── venus-messager-design.jpg │ │ │ ├── venus-messager-message-state.jpg │ │ │ ├── venus-messager-select-message.jpg │ │ │ └── venus-messager-token-verify.jpg │ │ ├── venus-miner-arch.png │ │ ├── venus-miner-main-progress.png │ │ ├── venus-miner-submit-block.png │ │ ├── venus-sealer-start.jpg │ │ ├── venus-system-architecture.png │ │ ├── venus-wallet-verify-address.png │ │ ├── venus_sequence.png │ │ └── vm_arc.jpg │ └── styles │ │ ├── fonts.styl │ │ └── palette.styl ├── README.md ├── _Footer.md ├── about │ └── README.md ├── intro │ ├── README.md │ ├── _Footer.md │ ├── contribute-docs.md │ ├── damocles.md │ ├── droplet.md │ ├── one-pager.md │ └── sophon.md ├── operation │ ├── Efficiency_of_sealing.md │ ├── README.md │ ├── System_monitor_of_Zabbix.md │ ├── _Footer.md │ ├── example-single-box.md │ ├── lotus-vs-venus.md │ ├── nv15-upgrade.md │ ├── nv16-upgrade.md │ ├── nv17-upgrade.md │ ├── nv18-upgrade.md │ ├── nv19-upgrade.md │ ├── nv21-upgrade.md │ ├── nv22-upgrade.md │ └── nv23-upgrade.md ├── questions.md └── zh │ ├── README.md │ ├── TODO.md │ ├── about │ └── README.md │ ├── intro │ ├── README.md │ ├── _Footer.md │ ├── contribute-doc.md │ ├── damocles.md │ ├── droplet.md │ ├── one-pager.md │ └── sophon.md │ └── operation │ ├── Efficiency_of_sealing.md │ ├── Independent_com_access_analysis.md │ ├── README.md │ ├── Sealing_deploy_plan_1.md │ ├── Sealing_deploy_plan_2.md │ ├── System_monitor_of_Zabbix.md │ ├── _Footer.md │ ├── example-single-box.md │ ├── lotus-vs-venus.md │ ├── migrate_market_v1_to_v2.md │ ├── nv15-upgrade.md │ ├── nv16-upgrade.md │ ├── nv17-upgrade.md │ ├── nv18-upgrade.md │ ├── nv19-upgrade.md │ ├── nv21-upgrade.md │ ├── nv22-upgrade.md │ ├── nv23-upgrade.md │ ├── prometheus-instruction.md │ └── troubleshoot-consensus-fault.md ├── package-lock.json ├── package.json ├── script ├── docker │ ├── common │ │ ├── init.sh │ │ ├── install_mod.sh │ │ └── wait-for-it.sh │ ├── compose │ │ ├── venus-auth.sh │ │ ├── venus-gateway.sh │ │ ├── venus-market.sh │ │ ├── venus-messager.sh │ │ ├── venus-miner.sh │ │ ├── venus-wallet.sh │ │ └── venus.sh │ ├── docker-compose.yaml │ ├── dockerfile │ ├── venus-buildenv.dockerfile │ └── venus-runtime.dockerfile └── download.js └── yarn.lock /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## 关联的Issues (Related Issues) 2 | 3 | 4 | close 5 | 6 | ## 改动 (Proposed Changes) 7 | 8 | 9 | 10 | ## 附注 (Additional Info) 11 | 12 | 13 | 14 | ## 自查清单 (Checklist) 15 | 16 | 在你认为本 PR 满足被审阅的标准之前,需要确保 / Before you mark the PR ready for review, please make sure that: 17 | - [ ] 符合Venus项目管理规范中关于PR的[相关标准](https://github.com/ipfs-force-community/dev-guidances/blob/master/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/Venus/PR%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83.md) / The PR follows the PR standards set out in the Venus project management guidelines 18 | - [ ] 符合[venus-docs文档规范](https://github.com/ipfs-force-community/dev-guidances/blob/master/%E8%B4%A8%E9%87%8F%E7%AE%A1%E7%90%86/%E6%96%87%E6%A1%A3/venus-docs%E6%96%87%E6%A1%A3%E8%A7%84%E8%8C%83.md) 19 | - [ ] 具有清晰明确的[commit message](https://github.com/ipfs-force-community/dev-guidances/blob/master/%E8%B4%A8%E9%87%8F%E7%AE%A1%E7%90%86/%E4%BB%A3%E7%A0%81/git%E4%BD%BF%E7%94%A8/commit-message%E9%A3%8E%E6%A0%BC%E8%A7%84%E8%8C%83.md) / All commits have a clear commit message. 20 | -------------------------------------------------------------------------------- /.github/workflows/build_docker_buildenv.yaml: -------------------------------------------------------------------------------- 1 | name: Build Docker Buildenv 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - 'script/docker/venus-buildenv.dockerfile' 9 | - 'script/docker/common/install_mod.sh' 10 | workflow_dispatch: 11 | 12 | 13 | jobs: 14 | build-and-deploy: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | with: 20 | persist-credentials: false 21 | 22 | - name: Login DockerHub 23 | run: | 24 | docker login --username=filvenus --password ${{ secrets.DOCKER_PASSWORD }} 25 | 26 | 27 | - name: Build And Push Buildenv 28 | run: | 29 | make docker-buildenv 30 | make push-buildenv 31 | 32 | - name: Push Buildenv As Latest 33 | if : github.ref_name == 'master' 34 | run: | 35 | docker push filvenus/venus-buildenv:latest 36 | 37 | - name: Build And Push Runtime 38 | run: | 39 | make docker-runtime 40 | make push-runtime 41 | 42 | - name: Push Runtime As Latest 43 | if : github.ref_name == 'master' 44 | run: | 45 | docker push filvenus/venus-runtime:latest 46 | -------------------------------------------------------------------------------- /.github/workflows/build_docker_runtime.yaml: -------------------------------------------------------------------------------- 1 | name: Build Docker Runtime 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - 'dev/**' 8 | paths: 9 | - 'script/docker/**' 10 | - '!script/docker/venus-buildenv.dockerfile' 11 | - '!script/docker/common/install_mod.sh' 12 | workflow_dispatch: 13 | 14 | 15 | jobs: 16 | build-and-deploy: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | with: 22 | persist-credentials: false 23 | 24 | - name: Login DockerHub 25 | run: | 26 | docker login --username=filvenus --password ${{ secrets.DOCKER_PASSWORD }} 27 | 28 | 29 | - name: Build And Push 30 | run: | 31 | make docker-runtime 32 | make push-runtime 33 | 34 | - name: Push As Latest 35 | if : github.ref_name == 'master' 36 | run: | 37 | docker push filvenus/venus-runtime:latest 38 | -------------------------------------------------------------------------------- /.github/workflows/publish.yaml: -------------------------------------------------------------------------------- 1 | name: Publish page 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | schedule: 8 | - cron: '0 0 1/2 * *' 9 | workflow_dispatch: 10 | 11 | 12 | jobs: 13 | build-and-deploy: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | with: 19 | persist-credentials: false 20 | 21 | - name: Set up Node.js 22 | uses: actions/setup-node@v4 23 | with: 24 | node-version: 16 25 | 26 | - name: Install and Build 27 | run: | 28 | npm install 29 | make build 30 | - name: Deploy 31 | uses: JamesIves/github-pages-deploy-action@v4 32 | with: 33 | token: ${{ secrets.GITHUB_TOKEN }} 34 | branch: gh-pages 35 | folder: docs/.vuepress/dist 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # fs & dev 2 | .DS_Store 3 | node_modules 4 | dist 5 | .temp 6 | 7 | # logs 8 | logs 9 | *.log 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # editor 15 | .vscode 16 | .idea 17 | 18 | deploy.sh -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | build: 2 | npm run predownload 3 | npm run docs:build 4 | 5 | dev: 6 | npm run predownload 7 | npm run docs:dev 8 | 9 | TAG:=v1.17.0 10 | docker-buildenv: 11 | docker build --build-arg https_proxy=$(BUILD_DOCKER_PROXY) -t filvenus/venus-buildenv:$(TAG) -f script/docker/venus-buildenv.dockerfile . 12 | docker tag filvenus/venus-buildenv:$(TAG) filvenus/venus-buildenv:latest 13 | 14 | push-buildenv: 15 | docker push filvenus/venus-buildenv:$(TAG) 16 | # docker push filvenus/venus-buildenv:latest 17 | 18 | docker-runtime: 19 | docker build --build-arg https_proxy=$(BUILD_DOCKER_PROXY) -t filvenus/venus-runtime:$(TAG) -f script/docker/venus-runtime.dockerfile . 20 | docker tag filvenus/venus-runtime:$(TAG) filvenus/venus-runtime:latest 21 | 22 | push-runtime: 23 | docker push filvenus/venus-runtime:$(TAG) 24 | # docker push filvenus/venus-runtime:latest 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Venus Docs 2 | 3 | This repository contains documentation content for the [Venus](https://github.com/filecoin-project/venus) implementation **only**. It is hosted at **[venus.filecoin.io](https://venus.filecoin.io)**. For mandarin speakers, please visit [https://venus.filecoin.io/zh/](https://venus.filecoin.io/zh/). 4 | 5 | For general [Filecoin Documentation](https://docs.filecoin.io), please visit [docs.filecoin.io](https://docs.filecoin.io). The repository with its source can be found in [/filecoin-project/filecoin-docs](https://github.com/filecoin-project/filecoin-docs). 6 | 7 | 8 | ## Contributing 9 | 10 | PRs, bug reports, and issue suggestions are welcome! For major changes, please propose in an issue first so benefits and impacts can be discussed. 11 | 12 | 👉 You can also click on click on :pencil: `Suggest an Edit` links at the bottom of each page to jump directly to Edit mode. 13 | 14 | ## Deployment 15 | 16 | ### Running locally: 17 | 18 | ``` 19 | $ yarn install 20 | $ yarn docs:dev 21 | ``` 22 | 23 | ### Building: 24 | 25 | ``` 26 | $ yarn docs:links # verify all links are well-formed 27 | $ yarn docs:build 28 | ``` 29 | 30 | Then deploy the `docs/.vuepress/dist` directory to the `gh-pages` branch of this repo. 31 | 32 | ### Notes: 33 | 34 | - When new documentation pages are added `./docs/.vuepress/config.js` will need to be **manually updated** in this repo 35 | 36 | ## Licenses 37 | 38 | The Filecoin Project's software code is dual-licensed under Apache 2.0 and MIT terms: 39 | 40 | - Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) 41 | - MIT License ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) 42 | 43 | Documentation and other written content is copyright (c) Protocol Labs under the [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) license. 44 | 45 | See the [LICENSE.md](LICENSE.md) file for details. 46 | 47 | 48 | -------------------------------------------------------------------------------- /docs/.vuepress/components/RedirectTutorial.vue: -------------------------------------------------------------------------------- 1 | // RedirectTutorial.vue 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | title: 'Venus Filecoin', 3 | description: 'Venus is a Go implementation of the Filecoin Distributed Storage Network.', 4 | base: '/', 5 | markdown: { 6 | config: md => { 7 | md.set({ 8 | linkify: true 9 | }) 10 | md.use(require('markdown-it-emoji')) 11 | md.use(require('markdown-it-container')) 12 | md.use(require('markdown-it-footnote')) 13 | md.use(require('markdown-it-deflist')) 14 | md.use(require('markdown-it-task-lists')) 15 | } 16 | }, 17 | plugins: [ 18 | 'vuepress-plugin-check-md', 19 | '@vuepress/active-header-links', 20 | '@vuepress/back-to-top', 21 | '@vuepress/nprogress', 22 | '@vuepress/medium-zoom', 23 | '@vuepress-plugin-zooming', 24 | 'fulltext-search', 25 | ['vuepress-plugin-code-copy', true] 26 | ], 27 | head: [ 28 | ['link', { 29 | rel: 'icon', 30 | href: '/assets/venus-logo.png' 31 | }], 32 | [ 33 | 'script', 34 | { 35 | async: true, 36 | src: 'https://www.googletagmanager.com/gtag/js?id=G-SMSDTMGLTV', 37 | }, 38 | ], 39 | [ 40 | 'script', 41 | {}, 42 | [ 43 | "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-SMSDTMGLTV');", 44 | ], 45 | ], 46 | ], 47 | locales: { 48 | '/': { 49 | lang: 'en-US', 50 | title: 'Venus Filecoin', 51 | description: 'Venus is a Go implementation of the Filecoin Distributed Storage Network.', 52 | }, 53 | '/zh/': { 54 | lang: 'zh-CN', 55 | title: '启明星', 56 | description: 'GO语言实现的Filecoin分布式存储网络', 57 | } 58 | }, 59 | themeConfig: { 60 | logo: '/assets/venus-logo-title.svg', 61 | lastUpdated: 'Last Updated', 62 | // Optional options for generating "Edit this page" link 63 | // if your docs are in a different repo from your main project: 64 | docsRepo: 'filecoin-project/venus-docs', 65 | // if your docs are not at the root of the repo: 66 | docsDir: 'docs', 67 | // if your docs are in a specific branch (defaults to 'master'): 68 | docsBranch: 'master', 69 | // defaults to false, set to true to enable 70 | editLinks: true, 71 | // end Edit on Github section 72 | displayAllHeaders: false, 73 | locales: { 74 | '/': { 75 | selectText: 'Languages', 76 | label: 'English', 77 | lang: 'en-US', 78 | title: 'Venus Filecoin', 79 | description: 'Venus is a Go implementation of the Filecoin Distributed Storage Network.', 80 | nav: [{ 81 | text: 'Introduction', 82 | link: '/intro/' 83 | }, 84 | { 85 | text: 'Deployment & Operation', 86 | link: '/operation/' 87 | }, 88 | { 89 | text: 'About', 90 | link: '/about/' 91 | }, 92 | ], 93 | sidebar: { 94 | '/intro/': [{ 95 | title: 'Introduction', 96 | collapsable: false, 97 | children: [ 98 | ['', 'Overview'], 99 | ['one-pager.md', 'One Pager'] 100 | ] 101 | }, 102 | { 103 | title: 'Products', 104 | collapsable: false, 105 | children: [ 106 | ['https://sophon.venus-fil.io', 'Sophon'], 107 | ['https://damocles.venus-fil.io', 'Damocles'], 108 | ['https://droplet.venus-fil.io', 'Droplet'], 109 | ] 110 | }, 111 | { 112 | title: 'Contributing', 113 | collapsable: false, 114 | children: [ 115 | ['contribute-docs.md', 'Contribute to doc'] 116 | ] 117 | }, 118 | ], 119 | '/operation/': [{ 120 | title: 'Deployment', 121 | collapsable: false, 122 | children: [ 123 | ['', 'Deployment of a Venus system'], 124 | ] 125 | }, 126 | { 127 | title: 'Network Upgrade', 128 | collapsable: false, 129 | children: [ 130 | ['nv23-upgrade.md', 'nv23 upgrade'], 131 | ['nv22-upgrade.md', 'nv22 upgrade'], 132 | ['nv21-upgrade.md', 'nv21 upgrade'], 133 | ['nv19-upgrade.md', 'nv19 upgrade'], 134 | ['nv18-upgrade.md', 'nv18 upgrade'], 135 | ['nv17-upgrade.md', 'nv17 upgrade'], 136 | ['nv16-upgrade.md', 'nv16 upgrade'], 137 | ['nv15-upgrade.md', 'nv15 upgrade'], 138 | ] 139 | }, 140 | ], 141 | '/about/': [{ 142 | title: '', 143 | collapsable: false, 144 | children: [ 145 | ['', 'About'], 146 | ] 147 | }] 148 | } 149 | }, 150 | '/zh/': { 151 | selectText: '选择语言', 152 | label: '简体中文', 153 | title: '启明星', 154 | description: 'Venus is a Go implementation of the Filecoin Distributed Storage Network.', 155 | nav: [{ 156 | text: '简介', 157 | link: '/zh/intro/' 158 | }, 159 | { 160 | text: '运维/部署', 161 | link: '/zh/operation/' 162 | }, 163 | { 164 | text: '关于', 165 | link: '/zh/about/' 166 | }, 167 | ], 168 | sidebar: { 169 | '/zh/intro/': [{ 170 | title: '概述', 171 | collapsable: false, 172 | children: [ 173 | ['', '启明星概要'], 174 | ['one-pager.md', '单页介绍文档'], 175 | 176 | ] 177 | }, 178 | { 179 | title: '产品', 180 | collapsable: false, 181 | children: [ 182 | ['https://sophon.venus-fil.io/zh/', '智子'], 183 | ['https://damocles.venus-fil.io/zh/', '执剑人'], 184 | ['https://droplet.venus-fil.io/zh/', '水滴'], 185 | ] 186 | }, 187 | { 188 | title: '参与', 189 | collapsable: false, 190 | children: [ 191 | ['contribute-doc.md', '贡献文档'], 192 | ] 193 | }, 194 | ], 195 | '/zh/operation/': [{ 196 | title: '部署', 197 | collapsable: false, 198 | children: [ 199 | ['', '部署Venus解决方案'], 200 | ] 201 | }, 202 | { 203 | title: '网络/产品升级', 204 | collapsable: false, 205 | children: [ 206 | ['nv23-upgrade.md', 'nv23网络升级'], 207 | ['nv22-upgrade.md', 'nv22网络升级'], 208 | ['nv21-upgrade.md', 'nv21网络升级'], 209 | ['nv19-upgrade.md', 'nv19网络升级'], 210 | ['nv18-upgrade.md', 'nv18网络升级'], 211 | ['nv17-upgrade.md', 'nv17网络升级'], 212 | ['nv16-upgrade.md', 'nv16网络升级'], 213 | ['nv15-upgrade.md', 'nv15网络升级'], 214 | ['migrate_market_v1_to_v2.md', 'market_v2升级'], 215 | ] 216 | }, 217 | ], 218 | '/zh/about/': [{ 219 | title: '', 220 | collapsable: false, 221 | children: [ 222 | ['', '关于我们'], 223 | ] 224 | }, 225 | ] 226 | } 227 | } 228 | } 229 | } 230 | } 231 | -------------------------------------------------------------------------------- /docs/.vuepress/public/01-zabbix-install.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/01-zabbix-install.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/02-zabbix-install.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/02-zabbix-install.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/03-zabbix-config.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/03-zabbix-config.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/04-zabbix-hostname.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/04-zabbix-hostname.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/05-zabbix-all.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/05-zabbix-all.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/06-zabbix-finished.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/06-zabbix-finished.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/07-zabbix-login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/07-zabbix-login.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/08-zabbix-dashboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/08-zabbix-dashboard.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/09-zabbix-agent.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/09-zabbix-agent.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/10-zabbix-agent-add.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/10-zabbix-agent-add.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/11-zabbix-graphs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/11-zabbix-graphs.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/12-zabbix-memory.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/12-zabbix-memory.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/13-Alarm-information.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/13-Alarm-information.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/CNAME: -------------------------------------------------------------------------------- 1 | venus.filecoin.io 2 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/filecoin-logo-v.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 25 | 33 | 34 | 35 | 39 | 42 | 45 | 48 | 52 | 55 | 56 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/filecoin-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | logo-nopadding 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/fonts/oxygen/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012, vernon adams (vern@newtypography.co.uk), with Reserved Font Names 'Oxygen' 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Bold.ttf -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Light.ttf -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/fonts/oxygen/Oxygen-Regular.ttf -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/icon-coin-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/icon-coin-128.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/venus-hero-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/venus-hero-logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/venus-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/assets/venus-logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/damocles-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/damocles-banner.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/droplet-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/droplet-banner.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/error-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/error-message.png -------------------------------------------------------------------------------- /docs/.vuepress/public/getting-started-node-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/getting-started-node-diagram.png -------------------------------------------------------------------------------- /docs/.vuepress/public/lotus-cluster-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/lotus-cluster-1.png -------------------------------------------------------------------------------- /docs/.vuepress/public/lotus-cluster-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/lotus-cluster-2.png -------------------------------------------------------------------------------- /docs/.vuepress/public/min_hardware_requirements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/min_hardware_requirements.png -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/filecoin-interface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/filecoin-interface.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/venus-all.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/venus-all.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/venus-gateway.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/venus-gateway.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/venus-mesager-gateway-interface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/venus-mesager-gateway-interface.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/venus-messager.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/venus-messager.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/monitor/venus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/monitor/venus.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/one-pager-venus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/one-pager-venus.png -------------------------------------------------------------------------------- /docs/.vuepress/public/research/20221013143419.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/research/20221013143419.png -------------------------------------------------------------------------------- /docs/.vuepress/public/research/20221013153319.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/research/20221013153319.png -------------------------------------------------------------------------------- /docs/.vuepress/public/research/20221013231224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/research/20221013231224.png -------------------------------------------------------------------------------- /docs/.vuepress/public/research/20221021131654.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/research/20221021131654.png -------------------------------------------------------------------------------- /docs/.vuepress/public/sophon-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/sophon-banner.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/task_resource_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/task_resource_table.png -------------------------------------------------------------------------------- /docs/.vuepress/public/vc_arc.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/vc_arc.jpeg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-cluster.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-cluster2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-cluster2.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-components.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-gateway-system-design.drawio: -------------------------------------------------------------------------------- 1 | 7Vxbc6M2GP01nmkfnAEENn7cZJP2YTuzbXZ2s48yyLYagbxCvvXXVwJxFdjENjFOkhcjCQlxvvNdLWcA7oLtHwwuF39RH5GBZfjbAfg8sCzTNEbiQ/bskh5XtmTHnGFf3ZR3POL/kOo0VO8K+ygq3cgpJRwvy50eDUPk8VIfZIxuyrfNKCk/dQnnSOt49CDRe39gny+y9zLygT8Rni/Uo11HDUyh9zxndBWq54U0RMlIANNl1K3RAvp0U+gC9wNwxyjlyVWwvUNEwpoilsx7aBjNtsxQyNtM8J+ensAv5565sxFfP//9uLv7NUwFsIZkpbAYWCMiFrydUbGu2DbfKZRGv1Y0HRhGsQw/iRtMc7kVH2IgRl6MbRRScjSkLIAknyyu5vITh95qCjmmoVjKR/JBiK2xJ1igni/eJNlCMkGBmO3GijY4IFDADW43C8zR4xJ6cmgjKCr6FjwgomWKy1g+yFetTA5yyx4NsKeuCZwicpsJ9I4SysRQLFIxjTP6nLHDVDg8wAATSfrviPkwhKpbMdwUQr6FBM9D0fCEnBDLVkqXH1hg5LloOotHIEvnWkCuhQkp3OhD5M68DIw1YhxtG+lgZiQTeotogDjbiVvUBMtWolcqa01Ue5MrwDilx6LAfTO9ESqlm2dr5+wTF4qALyAjcDQy/oCEIAGJQLAq/1yqUniU8QWd0xCSL5QulYT+RZzvFJ5wxWmZFmiL+ZOcfuOo1s/CyOetWjlu7FSjSSDNMk32jXzNAOWC2quZEV0xD+250ZoogwnZHO1b0XLrCcEQEYq4Lu/v7MJNt3mKpXGkpalaku8oXEXDAEURCudCwVqaj7JROGBBqBjBXJLAOYUFBxR2Dw8a1dgsa/FIV2JzVKPEwOpKh8eamNcoZHi2+yag0bVYKsajaipL25FiG3sVWwiB7QqTZDMzB7KRT4tbfTYIbkuDAOyLGgRXY0qiynPI0QbuTtPYPqjorqKAhzwr6MyxjjSo72iwXHH0VcSfswsq5dV5WwBO1Bk19SvFsdNTVAOmW7LjGWfSJRJlVrMqdMi2cQJDQKN3jpYwPN47rxPvjMOSZ07WfNueOUv8XuqaO7MCdqcyFiq/eGcitkHPoi9LN/Qa9jK7Xe5DRRVZ4DSdYehovSy3dGqAGRl1uaVxBvJbEEw9yzGgNzNG5tgf6iHpq9c4BHYce1joBH+H9Y6WVY1DGnxQXTP6V0mtM7XAxIytZ2di7SZ1KxwhSKR7PKORbGXy6hWlbapp6zrt1ABpd4WjXiy6EhwrTsO5MI66y7gRfxqKAgBehkpTdAkT9iD5pAYC7PskTh6QMKXKn0hUlzKMjd/DuR04n+VaIl+IlBHpCHa3DPtYhx3UwG51BbvulDZxrbP39DVBv+yAXld8m/y1jH4R2GwRa6LQ/yS/nsvDimJFIC+52ROrWHQzbuI4YV/dLW59RQyLl5HCizt9GC0yTRkcLgU0RYrFyllbKR2gf9p3Yp3ArNYJqmFKUsDQ6gT6QtWvf1633qDX/i5l/fYEks0m0OmXCzc/Mpy3keF0wFVQk3u/csZj6tp+qVB9j/pcS95j6gHPNaHZs+wn9XvXFz4eA37PcqD0tfoaBhwyDD3LhNIA/H1wuW/5kFX3Fdp15UN7g8uDxwma5PWRGb2IRnpd86psYs9SI0svt98U/67VOB6I+jNr2Gwc676Y7Mw4gvoqnQ5/D8+D2Y5ZNMbmjTEan2yN45Qx9QVTQr3nbwscpgMPmJBBa7Otug4fDEuP1h97UlSRy7gx3PHkPFa7PIHOZhHqxKymBqaHVDuOFwWCgoldJuihQ4u19Dwj0dpGDCefSK4nlVPx4Pb4dV24rac1Ly3HTerO2cT2sl0p7c1w27Yr3DbAUaHwGdlttj1f+1bpffpZwUmh2CwDrqGKseQYQTOeDea/rxp6SdVU3sLm098sx5F3WeIdjMr177rqDMUFDGRMHDe/4Iij8H4tZP/IGYJB48G1pHvKevlWvYc9Qz3e5jA5dKzOHH8A3j3P/0HRkoYR2g/5JTOg8jciylXlyarbOlndfyIRVG3mxNESIrPuRKLTVUZk153GbS4XeQRGEfaqXjTvLoir5HQrWB7jxM/oOxt+cfI6JSJQSYqdatWhbYnIqRzttt3KXrr2wHqN6Nos04cHvogHLv6e9gPv13PALXDvnRc+g9u1qz8EMGrcbt1P4Y5wu6KZ/zOFxNLm/6wC3P8P -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-gateway-system-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-gateway-system-design.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-messager/venus-messager-design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-messager/venus-messager-design.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-messager/venus-messager-message-state.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-messager/venus-messager-message-state.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-messager/venus-messager-select-message.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-messager/venus-messager-select-message.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-messager/venus-messager-token-verify.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-messager/venus-messager-token-verify.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-miner-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-miner-arch.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-miner-main-progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-miner-main-progress.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-miner-submit-block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-miner-submit-block.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-sealer-start.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-sealer-start.jpg -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-system-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-system-architecture.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus-wallet-verify-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus-wallet-verify-address.png -------------------------------------------------------------------------------- /docs/.vuepress/public/venus_sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/venus_sequence.png -------------------------------------------------------------------------------- /docs/.vuepress/public/vm_arc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filecoin-project/venus-docs/7e4b44f49a43333df624e01556cfa5f43962676c/docs/.vuepress/public/vm_arc.jpg -------------------------------------------------------------------------------- /docs/.vuepress/styles/fonts.styl: -------------------------------------------------------------------------------- 1 | // .vuepress/styles/fonts.styl 2 | 3 | @font-face { 4 | font-family: 'Oxygen'; 5 | font-style: normal; 6 | font-weight: 400; 7 | src: url("/assets/fonts/oxygen/Oxygen-Regular.ttf"); 8 | } 9 | 10 | @font-face { 11 | font-family: 'Oxygen'; 12 | font-weight: 300; 13 | src: url("/assets/fonts/oxygen/Oxygen-Light.ttf"); 14 | } 15 | 16 | @font-face { 17 | font-family: 'Oxygen'; 18 | font-weight: 700; 19 | src: url("/assets/fonts/oxygen/Oxygen-Bold.ttf"); 20 | } 21 | -------------------------------------------------------------------------------- /docs/.vuepress/styles/palette.styl: -------------------------------------------------------------------------------- 1 | // .vuepress/styles/palette.styl 2 | 3 | @import "./fonts.styl"; 4 | 5 | $defaultTeal = #00D2D6 6 | $darkerTeal = #00aaac 7 | $tealGreen = #00E1C4 8 | $lightGreen = #2EE89C 9 | $offWhite = #F4F6F9 10 | $mauveGray = #636C93 11 | $purple = #8535ED 12 | $red = #FE6B57 13 | $orange = #F7A54B 14 | $darkPurple = #4B1CA5 15 | $mudPurple = #410868 16 | $darkGreen = #026963 17 | $offBlack = #2c3e50 18 | 19 | $accentColor = $defaultTeal 20 | $textAccentColor = $darkerTeal 21 | $boldTextColor = $offBlack 22 | 23 | $logoFontFamily = 'Oxygen' 24 | 25 | // adding some overrides here 26 | 27 | a, a.sidebar-link.active { 28 | color: $textAccentColor; 29 | } 30 | 31 | .navbar .site-name, .hero h1 { 32 | font-family: $logoFontFamily; 33 | } -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | heroImage: /assets/venus-hero-logo.png 4 | actionText: Get Started → 5 | actionLink: /intro/ 6 | footer: MIT Apache dual Licensed 7 | --- 8 | 9 |
10 |
11 |

Distributed Infrastructure

12 |

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

13 |
14 |
15 |

Optimized Storage Deal

16 |

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

17 |
18 | 19 |
20 |

Reimagined Storage Power

21 |

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

22 |
23 |
24 | -------------------------------------------------------------------------------- /docs/_Footer.md: -------------------------------------------------------------------------------- 1 | _See something missing? Have tips to share? [File an issue](https://github.com/filecoin-project/venus/issues/new), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)_ -------------------------------------------------------------------------------- /docs/about/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Mission, Vision, Value 3 | 4 | - :exclamation:Mission: push ecosystem forward by driving Filcoin infrastructure 5 | - :earth_asia: Vision: democratize Filecoin ecosystem participation 6 | - :yin_yang: Value: Open and trustless 7 | 8 | ## Contacts 9 | 10 | - Ask us any questions: [#fil-venus](https://filecoinproject.slack.com/archives/CEHHJNJS3), [#fil-venus-cn](https://filecoinproject.slack.com/archives/C028PCH8L31), [venus@ipfsforce.com](mailto:venus@ipfsforce.com) 11 | 12 | ## Resources 13 | 14 | - venus-docs: [venus.filecoin.io](venus.filecoin.io) 15 | - VenusHub: [venushub.io](venushub.io) 16 | - Github: [venus](https://github.com/filecoin-project/venus), [damocles](https://github.com/ipfs-force-community/damocles), [droplet](https://github.com/ipfs-force-community/droplet) 17 | - Social Media: [Twitter](https://twitter.com/venus_filecoin), [Wechat](https://mp.weixin.qq.com/s/p4_ch03QeMMXxPyakr_8XQ) 18 | - Security audit report: [link](https://leastauthority.com/static/publications/LeastAuthority_Filecoin_Foundation_Venus_Final_Audit_Report.pdf) 19 | -------------------------------------------------------------------------------- /docs/intro/_Footer.md: -------------------------------------------------------------------------------- 1 | _See something missing? Have tips to share? [File an issue](https://github.com/filecoin-project/venus/issues/new), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)_ -------------------------------------------------------------------------------- /docs/intro/contribute-docs.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | PRs, bug reports, and issue suggestions are welcome! For major changes, please propose in an issue first so benefits and impacts can be discussed. 4 | 5 | 👉 You can also click on click on `Edit this page` links at the bottom of each page to jump directly to Edit mode. 6 | 7 | ## Deployment 8 | 9 | ### Running locally 10 | 11 | ``` 12 | $ yarn install 13 | $ yarn docs:dev 14 | ``` 15 | 16 | ### Building 17 | 18 | ``` 19 | $ yarn docs:links # verify all links are well-formed 20 | $ yarn docs:build 21 | ``` 22 | 23 | Then deploy the `docs/.vuepress/dist` directory to the `gh-pages` branch of this repo. 24 | 25 | ### Deploy script 26 | 27 | You can also run the following script to combine building and deployment together. Make sure everything is running okay locally. 28 | 29 | ```bash 30 | #!/usr/bin/env sh 31 | 32 | # abort on errors 33 | set -e 34 | 35 | # build 36 | npm run docs:build 37 | 38 | # navigate into the build output directory 39 | cd docs/.vuepress/dist 40 | 41 | # if you are deploying to a custom domain 42 | echo 'venus.filecoin.io' > CNAME 43 | 44 | git init 45 | git add -A 46 | git commit -m 'deploy' 47 | 48 | # if you are deploying to https://.github.io 49 | # git push -f git@github.com:/.github.io.git master 50 | 51 | # if you are deploying to https://.github.io/ 52 | git push -f git@github.com:filecoin-project/venus-docs.git master:gh-pages 53 | 54 | cd - 55 | ``` 56 | 57 | ### Notes: 58 | 59 | - When new documentation pages are added `./docs/config.js` will need to be **manually updated** in this repo -------------------------------------------------------------------------------- /docs/intro/damocles.md: -------------------------------------------------------------------------------- 1 | 2 | ![damocles](../.vuepress/public/damocles-banner.jpg) 3 | 4 | ### Damocles 5 | 6 | Damocles, formerly known as Venus Power Service, is THE Filecoin storage power solution. Learn more about Damocles [here](https://damocles.venus-fil.io/). -------------------------------------------------------------------------------- /docs/intro/droplet.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ![droplet](../.vuepress/public/droplet-banner.jpg) 4 | 5 | ### Droplet 6 | 7 | Droplet, formerly known as Venus Deal Service, is THE Filecoin storage deal solution. Learn more about Droplet [here](https://droplet.venus-fil.io/). -------------------------------------------------------------------------------- /docs/intro/one-pager.md: -------------------------------------------------------------------------------- 1 | ![venus-cluster](../.vuepress/public/one-pager-venus.png) -------------------------------------------------------------------------------- /docs/intro/sophon.md: -------------------------------------------------------------------------------- 1 | 2 | ![sophon](../.vuepress/public/sophon-banner.jpg) 3 | 4 | ### Sophon 5 | 6 | Sophon, formerly known as Venus chain service, is THE Filecoin super node solution. Learn more about Sophon [here](https://sophon.venus-fil.io/). -------------------------------------------------------------------------------- /docs/operation/README.md: -------------------------------------------------------------------------------- 1 | # Deployment of a Venus System 2 | 3 | `Venus` refers to products developed and maintained by Venus team to interact efficiently and robustly with Filecoin protocol. The target audience are storage providers, storage clients, ecosystem partners and `Dapp`. `Venus` has been widely adopted in SP and SC use cases. 4 | 5 | ### Deployment 6 | 7 | Since the [rebranding](https://github.com/filecoin-project/venus/discussions/5420) of `Venus` by the end of 2022, three main products has been formed, namely [Sophon](https://sophon.venus-fil.io/),[Damocles](https://damocles.venus-fil.io/) and [Droplet](https://droplet.venus-fil.io/). Please refer to each product's own documentation for deployment guide. 8 | 9 | ### Architecture 10 | 11 | -------------------------------------------------------------------------------- /docs/operation/System_monitor_of_Zabbix.md: -------------------------------------------------------------------------------- 1 | ## Initial setup 2 | 3 | ```bash 4 | $ systemctl stop firewalld 5 | $ systemctl disbale firewalld 6 | $ vim /etc/selinux/config 7 | 8 | $ SELINUX=disabled # change selinux to disabled 9 | $ setenforce 0 # temporarily change selinux status 10 | $ getenforce # check selinux status 11 | ``` 12 | 13 | ## Install software dependencies 14 | 15 | ```bash 16 | $ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 17 | $ yum clean all && yum makecache 18 | 19 | # Install zabbix-server and zabbix-agent 20 | $ yum install zabbix-server-mysql zabbix-agent -y 21 | 22 | # Install zabbix-ready nginx 23 | $ yum install centos-release-scl -y 24 | $ yum install rh-php72-php-mysqlnd zabbix-nginx-conf-scl -y 25 | ``` 26 | 27 | Change zabbix configurations and start Web GUI. 28 | 29 | ```bash 30 | $ vim /etc/yum.repos.d/zabbix.repo 31 | ``` 32 | 33 | ```toml 34 | [zabbix-frontend] 35 | name=Zabbix Official Repository frontend - $basearch 36 | baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend 37 | enabled=1 # change to 1 38 | gpgcheck=1 39 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 40 | ``` 41 | 42 | ## Install MySQL 43 | 44 | ```bash 45 | $ mkdir mysql-dir 46 | $ cd mysql-dir 47 | $ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar 48 | $ tar -zxvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar 49 | $ yum install *.rpm -y 50 | ``` 51 | 52 | ```bash 53 | $ systemctl start mysqld 54 | ``` 55 | 56 | ```bash 57 | $ cat /var/log/mysqld.log | grep root 58 | ``` 59 | 60 | Grep default password. 61 | 62 | ```bash 63 | 2021-07-26T10:50:49.538494Z 1 [Note] A temporary password is generated for root@localhost: **20yyk:Ar67S;** 64 | ``` 65 | 66 | Login to database. 67 | 68 | ```bash 69 | $ mysql -uroot -p 70 | Enter password: 20yyk:Ar67S; 71 | ``` 72 | 73 | Config database. 74 | 75 | ```bash 76 | set global validate_password_policy=0; 77 | set global validate_password_length=1; 78 | alter user 'root'@'localhost' identified by 'venus'; # Change root password 79 | 80 | use mysql; 81 | update user set host = '%' where user = 'root'; 82 | create user 'zabbix'@'%' identified by '123456'; 83 | grant all privileges on zabbix.* to 'zabbix'@'%'; 84 | flush privileges; 85 | 86 | # Create tables for Zabbix 87 | create database zabbix character set utf8 collate utf8_bin; 88 | ``` 89 | 90 | Import zabbix template files. 91 | 92 | ```bash 93 | $ zcat /usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz | mysql -uzabbix -p123456 zabbix 94 | ``` 95 | 96 | ## Configure zabbix 97 | 98 | Change database password. 99 | 100 | ```bash 101 | $ vim /etc/zabbix/zabbix_server.conf 102 | DBPassword=123456 103 | ``` 104 | Configure Nginx. 105 | 106 | ```bash 107 | $ vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 108 | ``` 109 | 110 | Append `nginx` at the end of line 6. 111 | 112 | ``` 113 | listen.acl_users = apache,nginx 114 | ``` 115 | 116 | Change location to your choice at line 24. 117 | 118 | ``` 119 | php_value[date.timezone] = Asia/shanghai 120 | ``` 121 | 122 | Configure port. 123 | 124 | ```bash 125 | $ vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf 126 | server { 127 | listen 80; # uncomment this line 128 | server_name test.zabbix.com; # uncomment and change to your own ip 129 | ``` 130 | 131 | Change your hosts file too if using hostname. 132 | 133 | ```bash 134 | $ vim /etc/hosts 135 | 192.168.xx.xx test.zabbix.com 136 | ``` 137 | 138 | If you are using windows. 139 | 140 | ```bash 141 | # for window hosts 142 | C:\Windows\System32\drivers\etc\hosts 143 | 192.168.xxx.xxx test.zabbix.com 144 | ``` 145 | 146 | Start service and configure to run on boot. 147 | 148 | ```bash 149 | systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm 150 | systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm 151 | ``` 152 | 153 | Change zabbix agent config fie 154 | 155 | ```bash 156 | $ cat /etc/zabbix/zabbix_agentd.conf | egrep -v "^$|^#" 157 | PidFile=/var/run/zabbix/zabbix_agentd.pid 158 | LogFile=/var/log/zabbix/zabbix_agentd.log 159 | LogFileSize=0 160 | Server=192.168.88.11 # point to ip of zabbix-server 161 | Hostname=venus-sealer 162 | Include=/etc/zabbix/zabbix_agentd.d/*.conf 163 | ``` 164 | 165 | ## Configure monitoring 166 | 167 | Visit your zabbix-server with a browser. 168 | ![](/01-zabbix-install.jpg) 169 | ![](/02-zabbix-install.jpg) 170 | 171 | Configure database connection information. 172 | ![](/03-zabbix-config.jpg) 173 | ![](/04-zabbix-hostname.jpg) 174 | ![](/05-zabbix-all.jpg) 175 | ![](/06-zabbix-finished.jpg) 176 | 177 | Login to zabbix. Default user is `Admin` with `zabbix` as password. 178 | ![](/07-zabbix-login.jpg) 179 | ![](/08-zabbix-dashboard.jpg) 180 | 181 | Add zabbix-agent. 182 | ![](/09-zabbix-agent.jpg) 183 | ![](/10-zabbix-agent-add.jpg) 184 | 185 | Check zabbix RAM usage. 186 | ![](/11-zabbix-graphs.jpg) 187 | ![](/12-zabbix-memory.jpg) 188 | 189 | Check problems in dashboard. 190 | ![](/13-Alarm-information.jpg) -------------------------------------------------------------------------------- /docs/operation/_Footer.md: -------------------------------------------------------------------------------- 1 | _See something missing? Have tips to share? [File an issue](https://github.com/filecoin-project/venus/issues/new), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)_ 2 | -------------------------------------------------------------------------------- /docs/operation/example-single-box.md: -------------------------------------------------------------------------------- 1 | ## Venus Single box setup 2 | 3 | This is an exmaple venus single box setup that is estimated to grow 1TiB power per day. 4 | 5 | ## Specs 6 | 7 | | Parts | Recommendation | 8 | | ------------------ | ------------------- | 9 | | CPU | 3970X * 1 (32 core) | 10 | | RAM | 512G | 11 | | NVMe (for sealing) | 3T/SSD | 12 | | SSD (for OS) | 500G | 13 | | GPU | RTX 3080 * 1 | 14 | 15 | ## Job scheduling 16 | 17 | | Task | Core limit | Minutes | RAM(G) | Hourly production rate | Daily growth(T) | 18 | | -------------- | ---------- | ------- | ------ | ---------------------- | --------------- | 19 | | P1 * 5 | 20 | 220 | 376 | 1.3636 | 1.0227 | 20 | | AP, P2, Commit | 12 | 10 | 120 | 3 | 1.125 | 21 | 22 | For more information on core limit, please refer to the next tutorial. 23 | -------------------------------------------------------------------------------- /docs/operation/lotus-vs-venus.md: -------------------------------------------------------------------------------- 1 | ## Commands from Lotus 2 | 3 | Many basic commands including but not limited to [creating worker/controler addresses](https://lotus.filecoin.io/docs/storage-providers/addresses/), setting different types of [configurations](https://lotus.filecoin.io/docs/storage-providers/config/), or [changing storage locations](https://lotus.filecoin.io/docs/storage-providers/lifecycle/#changing-storage-locations) 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](https://filecoinproject.slack.com/archives/CEHHJNJS3). -------------------------------------------------------------------------------- /docs/operation/nv15-upgrade.md: -------------------------------------------------------------------------------- 1 | ## Upgrading to network version 15 2 | 3 | Please upgrade each venus component in the order as it is presented in this document. We recommend that you go through the document before upgrading. When in doubt, please do not hesitate to reach out to us [here](https://github.com/filecoin-project/venus/discussions/4688). 4 | 5 | :::warning 6 | 7 | Please make sure that your storage system is not doing any windowPost when you upgrade and leave ample time before the next upcoming windowPost 8 | 9 | ::: 10 | 11 | :::tip 12 | 13 | If you have partitions in all deadlines, it is recommended that you build another transition environment for the upgrade. 14 | 15 | ::: 16 | 17 | :::tip 18 | 19 | It is recommended that you backup your old binary and critical data as you go through the upgrade process. 20 | 21 | ::: 22 | 23 | :::tip 24 | 25 | For large scale storage systems, it is recommended that running chain-co with both venus daemon and venus wrapped daemon. 26 | 27 | ::: 28 | 29 | 1. venus-auth: `optional` upgrade; branch/tag `v1.3.2`; 30 | 31 | 2. venus-wallet: `optional` upgrade; branch/tag `v1.4.0`; 32 | 33 | 3. venus daemon: `mandatory` upgrade; branch/tag `v1.2.1`; 34 | 35 | :::tip 36 | 37 | Checkups after upgrading: 38 | 39 | - integrity of vk files 40 | - see if upgrade epochs are properly set in config files 41 | 42 | ```toml 43 | # cali 44 | "upgradeOhSnapHeight": 682006 45 | # mainnet 46 | "upgradeOhSnapHeight": 1594680 47 | ``` 48 | 49 | - see if `maxfee` under `mpool` section is now in the format of `[x] Fil` 50 | 51 | ``` 52 | "mpool": { 53 | "maxNonceGap": 100, 54 | "maxFee": "10 FIL" 55 | }, 56 | ``` 57 | 58 | - see if chain synchronization is working properly 59 | 60 | ::: 61 | 62 | :::warning 63 | 64 | As a result of a mandatory network upgrade with API changes, sealer connection maybe lost during the this step of the upgrade. 65 | 66 | ::: 67 | 68 | 4. venus wrapped deamon: `mandatory` upgrade (if you are using `chain-co`); branch/tag `venus/v1.14.0`; 69 | 70 | :::tip 71 | 72 | Checkups after upgrading: 73 | 74 | - see if chain synchronization is working properly 75 | - see if connection to venus-auth is okay 76 | 77 | ``` 78 | curl http://127.0.0.1:3453/rpc/v0 -X POST -H "Content-Type: application/json" -H "Authorization: Bearer " -d '{"method": "Filecoin.ChainHead","params":[], "id": 0}' 79 | ``` 80 | 81 | ::: 82 | 83 | 5. chain-co: `mandatory` upgrade (if you deployed chain-co for your HA solution); branch/tag `v0.1.0`; 84 | 85 | :::tip 86 | 87 | Checkups after upgrading: 88 | 89 | - see if two new API MpoolPending and MpoolGetNonce are working properly 90 | 91 | ::: 92 | 93 | 6. venus-messager: `mandatory` upgrade; branch/tag `v1.4.0`; 94 | 95 | 7. venus-gateway: `mandatory` upgrade; branch/tag `v1.2.0`; 96 | 97 | :::tip 98 | 99 | - support for both old and new API due to changes in ComputeProof's params 100 | - see if both v0 and v1 APIs are working properly 101 | 102 | ::: 103 | 104 | 8. venus-miner: `mandatory` upgrade; branch/tag `v1.4.0`; 105 | 106 | :::tip 107 | 108 | Parameter changes for ComputeProof. 109 | 110 | ::: 111 | 112 | 9. venus-market: `optional` upgrade; branch/tag `v2.0.0`; 113 | 114 | 10. venus-sealer: `mandatory` upgrade; branch/tag `v1.4.0`; 115 | 116 | For more question regarding nv15 upgrade, please refer to this discussion [thread](https://github.com/filecoin-project/venus/discussions/4688). 117 | -------------------------------------------------------------------------------- /docs/operation/nv16-upgrade.md: -------------------------------------------------------------------------------- 1 | ## nv16 upgrade 2 | 3 | ### timeline 4 | 5 | Mainnet upgrade time: 2022-07-06T14:00:00Z 6 | 7 | ### venus-auth 8 | 9 | - tag: v1.6.0 10 | - New features: shared token access support for multi SPs 11 | - Dependency on other components: none 12 | 13 | Things to look out for: 14 | 15 | 1. Add a `miners` table to save the correspondence between `user` and `miner` 16 | 17 | 2. Write the values ​​of the `name` and `miner` fields of each row of data in the `users` table to the `user` and `miner` fields in the `miners` table, check whether there is any problem with the writing, the success log: `migrate from:0, to:1 success;` failure log: `migrate from store version:0 failed` 18 | 19 | 3. Use `./venus-auth user miner list ` to list all miners binded to `user` 20 | 21 | 4. Use the command `./venus-auth user list` to list all users. **Note: make sure that the status of the user being used is enabled** 22 | 23 | 24 | ### venus 25 | 26 | - tag: v1.6.0 27 | - New features: Support for nv16 networks 28 | - Dependency on other components: none 29 | 30 | Things to look out for: 31 | 1. Check whether the vk file is complete after the upgrade 32 | 33 | 2. Check the configuration file after the upgrade to see if the upgrade height is properly set. The default configuration file is in `~/.venus/config.json` : 34 | ```` 35 | # cali 36 | "upgradeSkyrHeight": 1044660 37 | #mainnet 38 | "upgradeSkyrHeight": 1960320 39 | ```` 40 | 41 | 3. After the upgrade, check whether the blocks are properly synchronized 42 | 43 | 4. The api version has changed, affecting the miner connection 44 | 45 | ```` 46 | # Use the curl command to test the interfaces StateGetBeaconEntry, BeaconGetEntry, the following three curl commands should return the same results 47 | curl 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}' 48 | curl 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}' 49 | curl 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}' 50 | ```` 51 | 52 | 5. Check the mainnet v8 actors cid and make sure it is the same as the output below 53 | 54 | ```` 55 | ./venus state actor-cids 56 | 57 | # The order may vary 58 | _manifest bafy2bzacebogjbpiemi7npzxchgcjjki3tfxon4ims55obfyfleqntteljsea 59 | account bafk2bzacedudbf7fc5va57t3tmo63snmt3en4iaidv4vo3qlyacbxaa6hlx6y 60 | storagemarket bafk2bzacediohrxkp2fbsl4yj4jlupjdkgsiwqb4zuezvinhdo2j5hrxco62q 61 | storageminer bafk2bzacecgnynvd3tene3bvqoknuspit56canij5bpra6wl4mrq2mxxwriyu 62 | multisig bafk2bzacebhldfjuy4o5v7amrhp5p2gzv2qo5275jut4adnbyp56fxkwy5fag 63 | paymentchannel bafk2bzacebalad3f72wyk7qyilvfjijcwubdspytnyzlrhvn73254gqis44rq 64 | reward bafk2bzacecwzzxlgjiavnc3545cqqil3cmq4hgpvfp2crguxy2pl5ybusfsbe 65 | system bafk2bzacedwq5uppsw7vp55zpj7jdieizirmldceehu6wvombw3ixq2tcq57w 66 | cron bafk2bzacecqb3eolfurehny6yp7tgmapib4ocazo5ilkopjce2c7wc2bcec62 67 | init bafk2bzaceaipvjhoxmtofsnv3aj6gj5ida4afdrxa4ewku2hfipdlxpaektlw 68 | storagepower bafk2bzacebjvqva6ppvysn5xpmiqcdfelwbbcxmghx5ww6hr37cgred6dyrpm 69 | verifiedregistry bafk2bzaceb3zbkjz3auizmoln2unmxep7dyfcmsre64vnqfhdyh7rkqfoxlw4 70 | ```` 71 | 72 | 6. Mainnet can use fvm on nv15 network by setting environment variable `export VENUS_USE_FVM_TO_SYNC_MAINNET_V15=1` 73 | 74 | 7. If you do not troubleshoot the problem, the rust log level is **not recommended** to be set to `trace`, because more logs will be printed 75 | 76 | 8. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful 77 | 78 | 79 | ### venus-messager 80 | 81 | - tag:v1.6.0 82 | - Affected function: Support new network version, add home directory, default in `~/.venus-messager` 83 | - Dependency on other components: none 84 | 85 | Things to look out for: 86 | 1. Whether to generate the main directory `~/.venus-messager` after the upgrade 87 | 88 | 2. After the upgrade, the main directory should contain `config.toml` and `tipset.json`, `config.toml` should be consistent with the configuration file used to start `messager`, `~/.venus-messager/tipset.json` is copied from `tipset.json` in the current directory 89 | 90 | 3. After the upgrade is successful, restarting again is to read the configuration is `~/.venus-messager/config.toml` 91 | 92 | 4. Whether the message can be received and pushed to the node normally 93 | 94 | 95 | ### venus-miner 96 | 97 | - tag: v1.6.0 98 | - New features: Get the interface name of beacon Change from `BeaconGetEntry` to `StateGetBeaconEntry` 99 | - Dependency on other components: venus, venus-auth, venus-gateway 100 | 101 | Things to look out for: 102 | 1. After the upgrade, use the commonly used command address state/list/update to verify it. 103 | 2. If you use a mysql database, check that the parent_key field in the miner_blocks table is varchar(1000) 104 | 105 | 106 | ### venus-gateway 107 | 108 | - tag: v1.6.0 109 | - New Feature: Fix requests without auto cleanup timeouts 110 | 111 | Things to look out for: 112 | 113 | 1. Is `wallet` re-registered after the upgrade 114 | 115 | 116 | ### venus-market 117 | 118 | - tag: v2.2.0 119 | - New features: 120 | 121 | Things to look out for:: 122 | 123 | 124 | ### venus-wallet 125 | 126 | #### Community 127 | 128 | - tag: v1.6.0 129 | - New features: 130 | 131 | Things to look out for:: 132 | 133 | 1. Need to unlock wallet 134 | 2. if wallet is properly registered on the gateway -------------------------------------------------------------------------------- /docs/operation/nv17-upgrade.md: -------------------------------------------------------------------------------- 1 | # nv17 upgrade 2 | 3 | If you are upgrading `venus-wallet` or `venus-gateway` from `v1.6.x` to `v1.8.0`, please read [Venus component v1.7.0 usage notes](https://github.com/filecoin-project/venus/discussions/5265) first and pay attention to the upgrade order of `venus-gateway` and `venus-wallet`. 4 | 5 | ### timeline 6 | 7 | Upgrade time (UTC): 2022-11-30T14:00:00Z 8 | Upgrade time (Beijing): 2022-11-30 22:00:00 9 | 10 | ### Versions of each component 11 | 12 | * [calibrationnet](https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893446) 13 | * [mainnet](https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893449) 14 | 15 | ### venus-auth 16 | 17 | Affected function: 18 | 19 | Dependency: none 20 | 21 | Precautions: 22 | 23 | 1. Add field `open_mining` to `miners` table, 0 means no block, 1 means block, default is 1 24 | 25 | 26 | ### venus 27 | 28 | Affected function: nv17 network support 29 | 30 | Dependency: None 31 | 32 | Precautions: 33 | 34 | Compilation: first `make dist-clean` and then `make`, this can prevent problems caused by failing to upgrade `filecoin-ffi`. 35 | 36 | 1. Check whether the vk file is complete after upgrading 37 | 38 | 2. Check the configuration file after the upgrade, whether the upgrade height is set correctly, the configuration file is in `~/.venus/config.json` by default: 39 | ``` 40 | #cali 41 | "upgradeSkyrHeight": 16800 42 | #mainnet 43 | "upgradeSkyrHeight": 2383680 44 | ``` 45 | 46 | 3. After the upgrade, you need to check whether height is synchronized correctly 47 | 48 | 4. Check the mainnet `v9 actors code` to make sure it is the same as the output below 49 | 50 | ``` 51 | ./venus state actor-cids --network-version 17 52 | 53 | # order may vary 54 | Network Version: 17 55 | Actor Version: 9 56 | Actor CIDs 57 | reward bafk2bzacebezgbbmcm2gbcqwisus5fjvpj7hhmu5ubd37phuku3hmkfulxm2o 58 | system bafk2bzaceagvlo2jtahj7dloshrmwfulrd6e2izqev32qm46eumf754weec6c 59 | _manifest bafy2bzaceb6j6666h36xnhksu3ww4kxb6e25niayfgkdnifaqi6m6ooc66i6i 60 | storagemarket bafk2bzacec3j7p6gklk64stax5px3xxd7hdtejaepnd4nw7s2adihde6emkcu 61 | multisig bafk2bzacec4va3nmugyqjqrs3lqyr2ij67jhjia5frvx7omnh2isha6abxzya 62 | paymentchannel bafk2bzacebhdvjbjcgupklddfavzef4e4gnkt3xk3rbmgfmk7xhecszhfxeds 63 | storagepower bafk2bzacedsetphfajgne4qy3vdrpyd6ekcmtfs2zkjut4r34cvnuoqemdrtw 64 | verifiedregistry bafk2bzacecf3yodlyudzukumehbuabgqljyhjt5ifiv4vetcfohnvsxzynwga 65 | datacap bafk2bzacebb6uy2ys7tapekmtj7apnjg7oyj4ia5t7tlkvbmwtxwv74lb2pug 66 | account bafk2bzacect2p7urje3pylrrrjy3tngn6yaih4gtzauuatf2jllk3ksgfiw2y 67 | cron bafk2bzacebcec3lffmos3nawm5cvwehssxeqwxixoyyfvejy7viszzsxzyu26 68 | init bafk2bzacebtdq4zyuxk2fzbdkva6kc4mx75mkbfmldplfntayhbl5wkqou33i 69 | storageminer bafk2bzacedyux5hlrildwutvvjdcsvjtwsoc5xnqdjl73ouiukgklekeuyfl4 70 | ``` 71 | 72 | 5. If you are not troubleshooting anything, it is **NOT** recommended to set rust log level to `trace` as more irrelavant logs will be printed 73 | 74 | 6. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful 75 | 76 | 77 | ### venus-messager 78 | 79 | Affected function: 80 | 81 | 1. 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 82 | 83 | Dependency upgrade components: 84 | 85 | Precautions: 86 | 87 | 1. After the upgrade, observe whether the message can be on-chained normally 88 | 89 | 90 | ### venus-miner 91 | 92 | Affected function: 93 | 94 | Dependency upgrade components: 95 | 96 | Precautions: 97 | 98 | 1. If you are upgrading from `1.7.*` to `v1.8.0`, it will automatically migrate configuration files. Whereas if you are upgrading from `1.6.*` to `v1.8.0`, it is required to have a reinitialization of `repo` (init). Please checkout this [guide](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) to learn more. 99 | 100 | 2. Check if blocks can be produced normally after the upgrade. 101 | 102 | 103 | ### venus-gateway 104 | 105 | Affected function: 106 | 107 | Precautions: 108 | 109 | Compile: first `make dist-clean` and then `make` 110 | 111 | 1. Check wallet after upgrade: `./venus-gateway wallet list` 112 | 2. Check miners after upgrade: `./venus-gateway miner list` 113 | 114 | 115 | ### venus-market 116 | 117 | Affected function: 118 | 119 | Precautions: 120 | 121 | Compile: first `make dist-clean` and then `make` 122 | 123 | ### venus-wallet 124 | 125 | Affect function: 126 | 127 | Precautions: 128 | 129 | 1. Make sure to unlock the wallet after startup 130 | 2. Check whether the wallet is registered on the gateway -------------------------------------------------------------------------------- /docs/operation/nv18-upgrade.md: -------------------------------------------------------------------------------- 1 | # nv18 Upgrade Guide 2 | 3 | If you are upgrading chain service components from `v1.8.x` to `v1.10.0`, please read [venus chain-service v1.9.* & venus-market v2.5.* upgrade list / 链服务 v1.9.*和订单服务 v2.5.*升级清单](https://github.com/filecoin-project/venus/discussions/5531) first and pay special attention to the upgrade of `venus-auth` and `venus-market`. Before upgrading `venus-auth`, a user account needs to be created for each miner. Also startup CLI and configurations of `venus-market` major breaking changes made to it. 4 | 5 | ## About nv18 upgrade 6 | 7 | We storngly encourage you to test out the upgrade in calibration before mainnet. 8 | 9 | ### Upgrade Timeline 10 | 11 | Upgrade UTC time: 2023-03-14T15:14:00Z, which is 2023-03-14 23:14:00 in Beijing time 12 | 13 | ### nv18 compatible versions 14 | 15 | * [calibrationnet](https://github.com/filecoin-project/venus/discussions/5649#discussioncomment-4652920) 16 | * [mainnet](https://github.com/filecoin-project/venus/discussions/5649#discussioncomment-4652933) 17 | 18 | ## venus 19 | 20 | Feature: support nv18 network 21 | 22 | Dependency: None 23 | 24 | Precautions: 25 | 26 | 1. Compile: make sure to first `make dist-clean` and then `make`. This can prevent problems caused by failing to upgrade `filecoin-ffi` normally 27 | 28 | 2. Check whether the vk file is complete after upgrading 29 | 30 | 3. After upgrading, check the configuration file. And see whether `AllowableClockDriftSecs`, `UpgradeHyggeHeight` and `UpgradeHyggeHeight` are normal in the log: 31 | 32 | ``` 33 | #cali 34 | AllowableClockDriftSecs: 1 35 | Eip155ChainID:314159 36 | UpgradeHyggeHeight: 322354 37 | #mainnet 38 | AllowableClockDriftSecs: 1 39 | Eip155ChainID:314 40 | UpgradeHyggeHeight: 2683348 41 | ``` 42 | 43 | 4. After upgrading, check the status of block synchronization 44 | 45 | 5. Check the mainnet v10 actors CID and make sure it is the same as the output below... 46 | 47 | ``` 48 | ./venus state actor-cids --network-version 18 49 | 50 | # order may vary 51 | Network Version: 18 52 | Actor Version: 10 53 | Actor CIDs 54 | datacap bafk2bzacealj5uk7wixhvk7l5tnredtelralwnceafqq34nb2lbylhtuyo64u 55 | evm bafk2bzaceahmzdxhqsm7cu2mexusjp6frm7r4kdesvti3etv5evfqboos2j4g 56 | init bafk2bzaced2f5rhir3hbpqbz5ght7ohv2kgj42g5ykxrypuo2opxsup3ykwl6 57 | account bafk2bzaceampw4romta75hyz5p4cqriypmpbgnkxncgxgqn6zptv5lsp2w2bo 58 | ethaccount bafk2bzaceaqoc5zakbhjxn3jljc4lxnthllzunhdor7sxhwgmskvc6drqc3fa 59 | multisig bafk2bzaceduf3hayh63jnl4z2knxv7cnrdenoubni22fxersc4octlwpxpmy4 60 | paymentchannel bafk2bzaceartlg4mrbwgzcwric6mtvyawpbgx2xclo2vj27nna57nxynf3pgc 61 | reward bafk2bzacebnhtaejfjtzymyfmbdrfmo7vgj3zsof6zlucbmkhrvcuotw5dxpq 62 | storagemarket bafk2bzaceclejwjtpu2dhw3qbx6ow7b4pmhwa7ocrbbiqwp36sq5yeg6jz2bc 63 | storageminer bafk2bzaced4h7noksockro7glnssz2jnmo2rpzd7dvnmfs4p24zx3h6gtx47s 64 | verifiedregistry bafk2bzacedfel6edzqpe5oujno7fog4i526go4dtcs6vwrdtbpy2xq6htvcg6 65 | eam bafk2bzacedrpm5gbleh4xkyo2jvs7p5g6f34soa6dpv7ashcdgy676snsum6g 66 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 67 | storagepower bafk2bzacec4ay4crzo73ypmh7o3fjendhbqrxake46bprabw67fvwjz5q6ixq 68 | system bafk2bzacedakk5nofebyup4m7nvx6djksfwhnxzrfuq4oyemhpl4lllaikr64 69 | cron bafk2bzacedcbtsifegiu432m5tysjzkxkmoczxscb6hqpmrr6img7xzdbbs2g 70 | ``` 71 | 72 | 6. When not debugging, it is **not recommended** is set the rust log level to `trace` as too much logs may be printed 73 | 74 | 7. After upgrading, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful 75 | 76 | 8. Actor Migration 77 | 78 | ``` 79 | The pre-migration height is 60 epoch before the upgrade epoch of 2683288 80 | Pre-migration start: STARTING pre-migration end: COMPLETED pre-migration 81 | migration started: STARTING migration ended: COMPLETED migration 82 | ``` 83 | 84 | 9. Configuration changes 85 | 86 | ```json 87 | # Added fevm related configuration, where the enableEthRPC field is used to control whether to enable ETH RPC, the default is false 88 | "fevm": { 89 | "enableEthRPC": false, 90 | "ethTxHashMappingLifetimeDays": 0, 91 | "event": { 92 | "enableRealTimeFilterAPI": false, 93 | "enableHistoricFilterAPI": false, 94 | "filterTTL": "24h0m0s", 95 | "maxFilters": 100, 96 | "maxFilterResults": 10000, 97 | "maxFilterHeightRange": 2880, 98 | "databasePath": "" 99 | } 100 | } 101 | 102 | # Added allowableClockDriftSecs field, default is 1 103 | "parameters": { 104 | "allowableClockDriftSecs": 1 105 | }, 106 | ``` 107 | 108 | 109 | ## venus-auth 110 | 111 | Feature: 112 | 113 | Dependency: none 114 | 115 | Precautions: 116 | 117 | 1. Check whether the command line can be used correctly 118 | 119 | 120 | ## venus-messager 121 | 122 | Function: 123 | 124 | 1. Added additional interface authentication 125 | 126 | Dependency: 127 | 128 | Precautions: 129 | 130 | 1. Observe if messages can be received normally after upgrading 131 | 132 | 2. After upgrading, observe whether the message can be on-chained properly 133 | 134 | 3. `ReplacedMsg` is renamed to `NonceConflictMsg` 135 | 136 | 137 | ## venus-miner 138 | 139 | Feature: 140 | 141 | Dependency: 142 | 143 | Precautions: 144 | 145 | 1. Check if block be produced properly after upgrading 146 | 147 | 148 | ## venus-gateway 149 | 150 | Feature: 151 | 152 | Precautions: 153 | 154 | 1. Compile: first `make dist-clean` and then `make` 155 | 156 | 2. Check remote wallet after upgrading: `./venus-gateway wallet list` 157 | 158 | 3. Check miners after upgrading: `./venus-gateway miner list` 159 | 160 | 161 | ## venus-market 162 | 163 | Feature: 164 | 165 | Precautions: 166 | 167 | 1. Compile: first `make dist-clean` and then `make` 168 | 169 | 170 | ## venus-wallet 171 | 172 | Feature: 173 | 174 | Precautions: 175 | 176 | 1. Need to unlock the wallet after restart 177 | 178 | 2. Check if wallet is properly registered to the gateway 179 | 180 | ## venus-sector-manager 181 | 182 | Compile: first `make dist-clean` and then `make` -------------------------------------------------------------------------------- /docs/operation/nv19-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus nv19 Upgrade Guide 2 | 3 | ## Precautions 4 | 5 | 1. Upgrade all Venus products 6 | 2. After upgrading, use the `curl` command to call `version` interface to check the version number; Interfaces of each Venus component can be referred [here](https://github.com/filecoin-project/venus/issues/5132) 7 | 3. Check Pre/Pro messages on-chain status 8 | 4. Check wdPost message on-chain status 9 | 5. Check whether the block production is normal 10 | 6. Check whether the gas fee related settings are in effect in accordance to configuration 11 | 12 | ## Components that Need to be Upgraded 13 | 14 | component name|tag|commit 15 | ---|---|--- 16 | venus-auth | v1.11.0 | 0c30588 17 | venus | v1.11.0 | afd3d47 18 | venus-messager | v1.11.0 | e4c4ab4 19 | venus-gateway | v1.11.0 | 877a851 20 | venus-wallet | v1.11.0 | 7afa1eb 21 | venus-miner | v1.11.0 | a30f342 22 | venus-market | v2.7.0 | 61f2cb5 23 | venus-sector-manager | v0.6.0-rc3 | 134b502 24 | venus-worker | no upgrade required | - 25 | 26 | 27 | ### Upgrade order 28 | 29 | 1. venus-auth 30 | 2. Venus 31 | 3. venus-gateway 32 | 4. venus-messager 33 | 5. venus-miner 34 | 6. venus-market 35 | 7. venus-wallet-pro 36 | 8. venus-sector-manager 37 | 38 | ### venus-auth 39 | 40 | Affected function: 41 | 42 | - updated way for other components to obtain auth services 43 | 44 | Dependency upgrade components: None 45 | 46 | Precautions: 47 | 48 | - Use "--disable-perm-check" at startup to temporarily disable the feature of auth interface protection 49 | - Before creating a token, you need to create the corresponding user 50 | 51 | Note: 52 | 53 | - The new version of auth will automatically generate a token named "defaultLocalToken" when it starts, which is used for authentication when auth-cli executes commands 54 | 55 | 56 | ### venus 57 | 58 | Affected function: none 59 | 60 | Dependency upgrade component: venus-auth 61 | 62 | Precautions: 63 | 64 | Compilation: first `make dist-clean` and then `make`, this can prevent problems caused by failing to upgrade `filecoin-ffi` normally 65 | 66 | **Should use `--auth-token` flag when starting, or modify configuration file `api.venusAuthToken` configuration item** 67 | 68 | 1. Check whether the vk file is complete after upgrading 69 | 70 | 2. Check the configuration file after the upgrade; check whether `UpgradeLightningHeight` and `UpgradeThunderHeight` are normal through the log: 71 | 72 | ``` 73 | #cali 74 | UpgradeLightningHeight: 489094 75 | UpgradeThunderHeight:489094+3120 76 | #mainnet 77 | UpgradeLightningHeight: 2809800 78 | UpgradeThunderHeight: 2809800 + 2880*21 = 2870280 79 | ``` 80 | 81 | 3. After the upgrade, check whether the chain is synchronized normally 82 | 83 | 4. Check the mainnet v11 actors code to make sure it is the same as the output below 84 | 85 | ``` 86 | ./venus state actor-cids --network-version 19 87 | 88 | # order may vary 89 | Network Version: 19 90 | Actor Version: 11 91 | Actor CIDs 92 | reward bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo 93 | system bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm 94 | eam bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2 95 | cron bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o 96 | datacap bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq 97 | ethaccount bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k 98 | evm bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe 99 | init bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg 100 | multisig bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk 101 | paymentchannel bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo 102 | account bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so 103 | storageminer bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us 104 | storagepower bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4 105 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 106 | verified registry bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a 107 | storagemarket bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m 108 | ``` 109 | 110 | 5. If not troubleshooting, the rust log level **not recommended** is set to `trace`, because more logs will be printed 111 | 112 | 6. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful 113 | 114 | 7. Actor Migration 115 | 116 | **Through testing, the pre-migration time is about 80 seconds, and the mainnet migration time should be about 60 seconds** 117 | 118 | ``` 119 | # The pre-migration height is 120 heights before the upgrade height: 2809800 - 120 = 2809680 120 | Pre-migration start: STARTING pre-migration end: COMPLETED pre-migration 121 | migration start: STARTING migration end: COMPLETED migration 122 | ``` 123 | 124 | ### venus-gateway 125 | 126 | Affected function: none 127 | 128 | Dependency upgrade component: venus-auth 129 | 130 | Precautions: 131 | 132 | - When compiling, you need to `make dist-clean` first and then `make` 133 | - When starting, you should use the `--auth-token` flag, or set the configuration item directly in the configuration: `AuthConfig.Token` 134 | - Remove flag: `--disable-address-verify`, **Check if the startup command is still using this flag when upgrading** 135 | 136 | ### venus-messager 137 | 138 | Affected function: 139 | 140 | - message replace 141 | - list --block command 142 | 143 | Dependency upgrade components: venus, venus-auth, venus-gateway 144 | 145 | Precautions: 146 | 147 | - When starts for the first time during the upgrade, use the `auth-token` falg, or modify the configuration file `JWTConfig.Token` configuration item first 148 | - After the upgrade, it is necessary to observe whether the message can be received normally and whether the message can be sent to the chain normally 149 | 150 | 151 | Note: 152 | 153 | - The minimum value of the replace fee coefficient has been reduced from 1.25 to 1.11 154 | - When listing blocked messages, `unfill` status messages will now also be listed as blocked messages 155 | 156 | 157 | ### venus-miner 158 | 159 | Affected function: 160 | 161 | - Added timeout mechanism for selecting message 162 | 163 | Dependency upgrade component: auth, venus, gateway 164 | 165 | Precautions: 166 | 167 | - `[Auth].[Token]` must be configured in the configuration file, and has `admin` permission in venus-auth, do not use the token from `defaultLocalToken`, you need to manually create one. 168 | 169 | ### venus-market 170 | 171 | Affected function: 172 | 173 | - Added and adjusted some commands 174 | 175 | Dependency upgrade components: auth, venus, gateway, messager 176 | 177 | Precautions: 178 | 179 | - You must use `cs-token` when starting, or modify the configuration item `AuthNode.Token` 180 | 181 | ### venus-wallet 182 | 183 | Affected function: none 184 | 185 | Dependency upgrade component: gateway 186 | 187 | Precautions: 188 | - After the upgrade, observe whether the signature is normal and whether the message can be sent to the chain normally 189 | - `wallet new`, `import`, and `export` commands have been removed. The purpose of deletion is to avoid misuse. 190 | 191 | ### venus-sector-manger 192 | 193 | Affected features: fip-0061 wdpost algorithm changes 194 | 195 | Dependency upgrade component: Chain Service component 196 | 197 | Precautions: 198 | 199 | - When compiling, you need to `make dist-clean` first and then `make` 200 | 201 | --- 202 | 203 | Upgrade verification: 204 | 205 | 1. The program starts normally 206 | 2. Pre/Pro messages are on-chained normally 207 | 3. Block generation is normal 208 | 4. WdPost on-chain is normal 209 | 5. Storage power is increasing normally 210 | 7. Verified deal retrieval is normal 211 | 8. Various gas, life cycle, database and aggregation settings are normal 212 | 213 | ### Notes on Database Changes 214 | 215 | 1. [venus-messager added actor configuration and related commands, and adds `actor_cfg` table](https://github.com/filecoin-project/venus/issues/5558) 216 | 217 | 2. Added index to venus-market `storage_deals` table: `CREATE INDEX idx_cdpprovider_state ON storage_deals(cdp_provider,state)` -------------------------------------------------------------------------------- /docs/operation/nv21-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus nv21 Upgrade Guide 2 | 3 | ## Precautions 4 | 5 | 1. Be sure to upgrade all Venus products 6 | 2. After upgrading, please use the `curl` command to call the `Version` API to check the version number. Details of each Venus products' version interface can be found [here](https://github.com/filecoin-project/venus/issues/5132). 7 | 3. Monitor proper on-chain of pre and prove messages 8 | 4. Monitor proper on-chain of window post messages 9 | 5. Monitor block producing 10 | 6. Check whether the gas fee related settings are in effect 11 | 12 | 13 | ## Products Upgrade Guide 14 | 15 | Product | tag | commit 16 | ---|---|--- 17 | sophon-auth | v1.14.0 | 7caadbc 18 | venus | v1.14.2 | 9204048 19 | sophon-messager | v1.14.0 | e5f8371 20 | soohon-gateway | v1.14.0 | 1adf038 21 | venus-wallet | v1.14.0 | b478cd0 22 | sophon-miner | v1.14.0 | 9ca976c 23 | droplet | v2.10.0 | 6daf168 24 | damocles-manager | v0.9.2 | f3c5400 25 | damocles-worker | v0.9.2 | f3c5400 26 | 27 | 28 | 29 | ### Recommended Upgrade Sequence 30 | 31 | 1. sophon-auth 32 | 2. venus 33 | 3. soohon-gateway 34 | 4. sophon-messager 35 | 5. sophon-miner 36 | 6. droplet 37 | 7. venus-wallet 38 | 8. damocles-manager 39 | 9.damocles-worker 40 | 41 | 42 | ### sophon-auth 43 | 44 | Affected functions: 45 | 46 | - Affecting how other Venus products are authorized to use the sophon service 47 | 48 | Dependency: 49 | 50 | - None 51 | 52 | Precautions: 53 | 54 | - Check if authentication is normal after startup 55 | 56 | 57 | ### venus 58 | 59 | Affected functions: 60 | 61 | - None 62 | 63 | Dependency: 64 | 65 | - sophon-auth 66 | 67 | Precautions: 68 | 69 | :::tip 70 | Compile: First `make dist-clean` and then `make`, this can prevent problems caused by failure to upgrade `filecoin-ffi` properly 71 | 72 | **If `~/.venus` exists and you need to import a snapshot, you need to delete the `~/.venus/version` file first before importing the snapshot** 73 | ::: 74 | 75 | ``` 76 | The memory consumption of migration depends on the CPUs used. You can set the limit of CPU by environment variable (`VENUS_MIGRATION_MAX_WORKER_COUNT=n`), to avoid use out of memory. 77 | Recommended value of `VENUS_MIGRATION_MAX_WORKER_COUNT`: 78 | 79 | 48G VENUS_MIGRATION_MAX_WORKER_COUNT=13 80 | 64G VENUS_MIGRATION_MAX_WORKER_COUNT=18 81 | 96G VENUS_MIGRATION_MAX_WORKER_COUNT=24 82 | 83 | The migration of update 84 | ``` 85 | 86 | 1. Check whether the vk file is complete after upgrading 87 | 88 | 2. After the upgrade, execute the command `./venus state network-info`, and then check whether the `UpgradeWatermelonHeight` is normal through the log: 89 | 90 | ``` 91 | #cali 92 | UpgradeWatermelonHeight: 1013134 93 | #mainnet 94 | UpgradeWatermelonHeight: 3469380 95 | ``` 96 | 97 | 3. After the upgrade, you need to check whether the block height is synchronized normally. 98 | 99 | 4. Check the mainnet `v12 actors` code and make sure it is the same as the output below 100 | 101 | ``` 102 | ./venus state actor-cids --network-version 21 103 | 104 | # Ordering may be different 105 | Network Version: 21 106 | Actor Version: 12 107 | Actor CID 108 | datacap bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq 109 | ethaccount bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq 110 | reward bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u 111 | verifiedregistry bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q 112 | eam bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe 113 | multisig bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42 114 | storagemarket bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4 115 | system bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu 116 | account bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa 117 | cron bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls 118 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 119 | storagepower bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6 120 | evm bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi 121 | init bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms 122 | paymentchannel bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4 123 | storageminer bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6 124 | ``` 125 | 126 | 5. If there is no problem troubleshoot, it is not recommended to set the rust log level to `trace` because more logs will be printed. 127 | 128 | 6. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful. 129 | 130 | 7. actor migration 131 | 132 | :::tip 133 | **After testing, the pre-migration time is about 20 to 30 minutes, and the actual migration time is about 70 seconds** 134 | 135 | ``` 136 | The pre-migration height is the 120 heights before the upgrade height: 137 | pre-migration start: STARTING pre-migration end: COMPLETED pre-migration 138 | migration starts: STARTING migration ends: COMPLETED migration 139 | ``` 140 | ::: 141 | 142 | ### sophon-gateway 143 | 144 | Functions affected: 145 | 146 | - None 147 | 148 | Dependency: 149 | 150 | - sophon-auth 151 | 152 | Precautions: 153 | 154 | - When compiling, you need to first `make dist-clean` and then `make` 155 | 156 | 157 | ### sophon-messager 158 | 159 | Affected functions: 160 | 161 | - None 162 | 163 | Dependency: 164 | 165 | - venus 166 | - sophon-auth 167 | - sophon-gateway 168 | 169 | Precautions: 170 | 171 | - After the upgrade, monitor whether the messages can be received normally and whether the messages can be on-chained normally. 172 | 173 | 174 | ### sophon-miner 175 | 176 | Affect functions: 177 | 178 | Dependency: 179 | 180 | - auth 181 | - venus 182 | - gateway 183 | 184 | Precautions: 185 | 186 | - `[Auth].[Token]` in the configuration file must be configured, and the token must be created with admin permission from sophon-auth. It is recommended that one does not use the token from `defaultLocalToken`, one should create one manually. 187 | 188 | 189 | ### Droplet 190 | 191 | Affected functions: 192 | 193 | - Support v2 version of storage deal protocol 194 | - Support offline computation of commP 195 | 196 | 197 | Dependency: 198 | 199 | - auth 200 | - venus 201 | - gateway 202 | - messager 203 | 204 | Precautions: 205 | 206 | - Monitor deals and retrievals 207 | 208 | ### venus-wallet 209 | 210 | Affected functions: 211 | 212 | - None 213 | 214 | Dependency: 215 | 216 | - gateway 217 | 218 | Precautions: 219 | 220 | - After the upgrade, monitor whether the signature is normal and whether the message can be on-chained normally. 221 | 222 | 223 | ### damocles-manager 224 | 225 | Dependency: 226 | 227 | - Sophon service 228 | 229 | Precautions: 230 | 231 | - When compiling, you need to first `make dist-clean` and then `make` 232 | 233 | ### damocles-worker 234 | 235 | Dependency: 236 | 237 | - damocles-manager 238 | 239 | Precautions: 240 | Translation: 241 | 242 | - It is recommended to perform program updates after all tasks have been done and there are no ongoing tasks. If an update is required during the task on going, the sealing thread may get stuck in the 'SyntheticPoRepNeeded' state. In such cases, resetting the task status to 'PCSubmitted' can resolve the issue. You can use the following command: `damocles-manager util worker resume PCSubmitted`. 243 | - The new proof type `SyntheticPoRep` uses a new proof parameter file. If `SyntheticPoRep` is enabled, it is best to prepare new proof parameters in advance. **Failing to do so may cause SyntheticPoRep deadlock**. 244 | 245 | --- 246 | 247 | Upgrade result verification steps: 248 | 249 | 1. Check if program starts normally 250 | 2. Check if Pre & prove messages are on-chained normally 251 | 3. Check if block producing is normal 252 | 4. Check if window post is normal 253 | 5. Check if storage power grows normally 254 | 7. Check if storage deal retrieval is normal 255 | 8. Check if various gas, life cycle, and aggregation settings of the database are normal. 256 | 257 | ### Database changes 258 | 259 | 1. Add `id` field to droplet `storage_deals` table ==> `ALTER TABLE storage_deals ADD id varchar(128)` 260 | -------------------------------------------------------------------------------- /docs/operation/nv22-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus Stack nv22 Upgrade Guide 2 | 3 | ## Precautions 4 | 5 | 1. Upgrade all Venus products / components 6 | 2. Use the `curl` command to call the `Version` interface to check the version number after upgrading. Refer to the guide [here](https://github.com/filecoin-project/venus/issues/5132) for details. 7 | 3. Check if pre/pro messages are on-chained 8 | 4. Check if windowPost messages are on-chained 9 | 5. Check if block producing is working correctly 10 | 6. Check if the gas fee related settings are in effect 11 | 12 | 13 | ## Products / Components to be Upgraded 14 | 15 | Component name|tag|commit 16 | ---|---|--- 17 | sophon-auth | v1.15.0 | a1e964b 18 | venus | v1.15.1 | 81c99f3 19 | sophon-co | v0.8.0 | 0e48712 20 | sophon-messager | v1.15.0 | 1e4f0d5 21 | soohon-gateway | v1.15.0 | 541891a 22 | venus-wallet | v1.15.0 | 6b3de34 23 | sophon-miner | v1.15.0 | 8dd6c68 24 | droplet | v2.11.0 | 44481dd 25 | damocles-manager | v0.10.0-rc1 | 2f6c5f9 26 | damocles-worker | v0.10.0-rc1 | 2f6c5f9 27 | 28 | ### Upgrade Sequence 29 | 30 | 1. sophon-auth 31 | 2. venus 32 | 3. soohon-co 33 | 4. soohon-gateway 34 | 5. sophon-messager 35 | 6. sophon-miner 36 | 7. droplet 37 | 8. venus-wallet 38 | 9. damocles-manager 39 | 10. damocles-worker 40 | 41 | 42 | ### sophon-auth 43 | 44 | Affected functions: 45 | 46 | - Aquiring auth services from other components 47 | 48 | Upgrade Dependency: 49 | 50 | - None 51 | 52 | Precautions: 53 | 54 | - Check if authentication working normally after startup. 55 | 56 | ### Venus 57 | 58 | Affected functions: 59 | 60 | - None 61 | 62 | Upgrade Dependency: 63 | 64 | - sophon-auth 65 | 66 | Precautions: 67 | 68 | Compile: First `make dist-clean` and then `make`, this can prevent problems caused by failure to upgrade `filecoin-ffi` properly. 69 | 70 | 71 | 1. Check if the vk file is complete after upgrading 72 | 73 | 2. After the upgrade, execute the command `./venus state network-info`, and then check whether the UpgradeDragonHeight is normal through the log: 74 | 75 | ``` 76 | #cali 77 | UpgradeDragonHeight: 1427974 78 | #mainnet 79 | UpgradeDragonHeight: 3855360 80 | ``` 81 | 82 | 3. After the upgrade, you need to check if the blocks are synchronized normally. 83 | 84 | 4. Check the mainnet v13 actors code and make sure it is the same as the output below 85 | 86 | ``` 87 | ./venus state actor-cids --network-version 22 88 | 89 | # The order may be different 90 | Network Version: 22 91 | Actor Version: 13 92 | Manifest CID: bafy2bzacecdhvfmtirtojwhw2tyciu4jkbpsbk5g53oe24br27oy62sn4dc4e 93 | Actor CID 94 | account bafk2bzacedxnbtlsqdk76fsfmnhyvsblwyfducerwwtp3mqtx2wbrvs5idl52 95 | cron bafk2bzacebbopddyn5csb3fsuhh2an4ttd23x6qnwixgohlirj5ahtcudphyc 96 | datacap bafk2bzaceah42tfnhd7xnztawgf46gbvc3m2gudoxshlba2ucmmo2vy67t7ci 97 | eam bafk2bzaceb23bhvvcjsth7cn7vp3gbaphrutsaz7v6hkls3ogotzs4bnhm4mk 98 | ethaccount bafk2bzaceautge6zhuy6jbj3uldwoxwhpywuon6z3xfvmdbzpbdribc6zzmei 99 | evm bafk2bzacedq6v2lyuhgywhlllwmudfj2zufzcauxcsvvd34m2ek5xr55mvh2q 100 | init bafk2bzacedr4xacm3fts4vilyeiacjr2hpmwzclyzulbdo24lrfxbtau2wbai 101 | multisig bafk2bzacecr5zqarfqak42xqcfeulsxlavcltawsx2fvc7zsjtby6ti4b3wqc 102 | paymentchannel bafk2bzacebntdhfmyc24e7tm52ggx5tnw4i3hrr3jmllsepv3mibez4hywsa2 103 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 104 | reward bafk2bzacedq4q2kwkruu4xm7rkyygumlbw2yt4nimna2ivea4qarvtkohnuwu 105 | storagemarket bafk2bzacebjtoltdviyznpj34hh5qp6u257jnnbjole5rhqfixm7ug3epvrfu 106 | storageminer bafk2bzacebf4rrqyk7gcfggggul6nfpzay7f2ordnkwm7z2wcf4mq6r7i77t2 107 | storagepower bafk2bzacecjy4dkulvxppg3ocbmeixe2wgg6yxoyjxrm4ko2fm3uhpvfvam6e 108 | system bafk2bzacecyf523quuq2kdjfdvyty446z2ounmamtgtgeqnr3ynlu5cqrlt6e 109 | verifiedregistry bafk2bzacedkxehp7y7iyukbcje3wbpqcvufisos6exatkanyrbotoecdkrbta 110 | ``` 111 | 112 | 5. If you are not troubleshooting the system, it is not recommended to set the rust log level to `trace` because more logs will be printed. 113 | 114 | 6. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful. 115 | 116 | 7. actor migration 117 | 118 | **After testing, the pre-migration time is about 30 minutes, and the main migration time is about 100 seconds** 119 | 120 | ``` 121 | The pre-migration height is 120 heights before the upgrade height: 122 | pre-migration start: STARTING pre-migration end: COMPLETED pre-migration 123 | migration starts: STARTING migration ends: COMPLETED migration 124 | ``` 125 | 8. If `~/.venus` exists and you need to import a snapshot, you need to delete the `~/.venus/version` file first and then import the snapshot. 126 | 127 | * Mainnet: `./venus daemon --import-snapshot snapshot.car` 128 | * calibnet: `./venus daemon --import-snapshot snapshot.car --network calibrationnet` 129 | 130 | 131 | ### sophon-gateway 132 | 133 | Affected functions: 134 | 135 | - None 136 | 137 | Upgrade Dependency: 138 | 139 | - sophon-auth 140 | 141 | Precautions: 142 | 143 | - When compiling, you need to first `make dist-clean` and then `make` 144 | 145 | 146 | ### sophon-messager 147 | 148 | Affected functions: 149 | 150 | - None 151 | 152 | Upgrade Dependency: 153 | 154 | - venus 155 | - sophon-auth 156 | - sophon-gateway 157 | 158 | Precautions: 159 | 160 | - After the upgrade, you need to observe whether the messages can be received normally and whether the messages can be on-chained normally. 161 | 162 | 163 | ### sophon-miner 164 | 165 | Affected functions: 166 | 167 | - None 168 | 169 | Upgrade Dependency: 170 | 171 | - auth 172 | - venus 173 | - gateway 174 | 175 | Precautions: 176 | 177 | ### droplet 178 | 179 | Affected functions: 180 | 181 | - Direct data onboarding support; Documentation [here](https://github.com/ipfs-force-community/droplet/blob/master/docs/zh/direct-on-boarding.md) 182 | 183 | 184 | Upgrade Dependency: 185 | 186 | - auth 187 | - venus 188 | - gateway 189 | - messager 190 | 191 | Precautions: 192 | 193 | - Check if deals and retrieval can be issued normally after the upgrade? 194 | 195 | ### venus-wallet 196 | 197 | Affected functions: 198 | 199 | - None 200 | 201 | Upgrade Dependency: 202 | 203 | - gateway 204 | 205 | Precautions: 206 | 207 | - After the upgrade, observe whether the signing is normal and whether the message can be on-chained normally. 208 | 209 | 210 | ### damocles-manager 211 | 212 | Upgrade Dependency: 213 | 214 | - Sophon service 215 | 216 | Precautions: 217 | 218 | - When compiling, you need to first `make dist-clean` and then `make` 219 | 220 | ### damocles-worker 221 | 222 | Upgrade Dependency: 223 | 224 | - damocles-manager 225 | 226 | Precautions: 227 | 228 | Upgrade result verification steps: 229 | 230 | 1. Check if the program starts normally 231 | 2. Check if pre / pro messages are uploaded normally 232 | 3. Check if block producing is normal 233 | 4. Check if windowPost is normal 234 | 5. Check if storage power grows normally 235 | 7. Check if verified deal retrieval is normal 236 | 8. Check if various gas, sector life cycle, and aggregation settings in the database are normal. 237 | 238 | 239 | ### Database changes 240 | 241 | 1. The droplet adds the `direct_deals` table to store DDO deals. 242 | -------------------------------------------------------------------------------- /docs/operation/nv23-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus Stack nv23 Upgrade Guide 2 | 3 | ## Precautions 4 | 5 | 1. Upgrade all Venus products / components 6 | 2. Use the `curl` command to call the `Version` interface to check the version number after upgrading. Refer to the guide [here](https://github.com/filecoin-project/venus/issues/5132) for details. 7 | 3. Check if pre/pro messages are on-chained 8 | 4. Check if windowPost messages are on-chained 9 | 5. Check if block producing is working correctly 10 | 6. Check if the gas fee related settings are in effect 11 | 12 | 13 | #### It is recommended not to perform sealing tasks before upgrading. If p2 messages are on-chain but c2 messages are not on-chain before upgrading, an error will be reported when c2 messages are on-chain after upgrading. 14 | 15 | ## Products / Components to be Upgraded 16 | 17 | Component name|tag|commit 18 | ---|---|--- 19 | sophon-auth | v1.16.0 | e2340d5 20 | venus | v1.16.0 | 3fdb199 21 | sophon-co | v0.9.0 | 0f344ed 22 | sophon-messager | v1.16.0 | f695806 23 | soohon-gateway | v1.16.0 | 2d32b8e 24 | venus-wallet | v1.16.0 | 48b1e02 25 | sophon-miner | v1.16.0 | 500c186 26 | droplet | v2.12.0 | deec963 27 | damocles-manager | v0.11.0 | 7d06bd4 28 | damocles-worker | v0.11.0 | 7d06bd4 29 | 30 | ### Upgrade Sequence 31 | 32 | 1. sophon-auth 33 | 2. venus 34 | 3. soohon-co 35 | 4. soohon-gateway 36 | 5. sophon-messager 37 | 6. sophon-miner 38 | 7. droplet 39 | 8. venus-wallet 40 | 9. damocles-manager 41 | 10. damocles-worker 42 | 43 | 44 | ### sophon-auth 45 | 46 | Affected functions: 47 | 48 | - Aquiring auth services from other components 49 | 50 | Upgrade Dependency: 51 | 52 | - None 53 | 54 | Precautions: 55 | 56 | - Check if authentication working normally after startup. 57 | 58 | ### Venus 59 | 60 | Affected functions: 61 | 62 | - None 63 | 64 | Upgrade Dependency: 65 | 66 | - sophon-auth 67 | 68 | Precautions: 69 | 70 | Compile: First `make dist-clean` and then `make`, this can prevent problems caused by failure to upgrade `filecoin-ffi` properly. 71 | 72 | 73 | 1. Check if the vk file is complete after upgrading 74 | 75 | 2. After the upgrade, execute the command `./venus state network-info`, and then check whether the UpgradeWaffleHeight is normal through the log: 76 | 77 | ``` 78 | #cali 79 | UpgradeWaffleHeight: 1779094 80 | #mainnet 81 | UpgradeWaffleHeight: 4154640 82 | ``` 83 | 84 | 3. After the upgrade, you need to check if the blocks are synchronized normally. 85 | 86 | 4. Check the mainnet v14 actors code and make sure it is the same as the output below 87 | 88 | ``` 89 | ./venus state actor-cids --network-version 23 90 | 91 | # The order may be different 92 | Network Version: 23 93 | Actor Version: 14 94 | Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba 95 | Actor CID 96 | account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy 97 | cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc 98 | datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg 99 | eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju 100 | ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko 101 | evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw 102 | init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6 103 | multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc 104 | paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne 105 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 106 | reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc 107 | storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg 108 | storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc 109 | storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42 110 | system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs 111 | verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4 112 | ``` 113 | 114 | 5. If you are not troubleshooting the system, it is not recommended to set the rust log level to `trace` because more logs will be printed. 115 | 116 | 6. After the upgrade, you can use the command `./venus state get-actor t01000` to confirm whether the upgrade is successful. 117 | 118 | 7. actor migration 119 | 120 | **After testing, the pre-migration time is about 1 minutes, and the main migration time is about 50 seconds** 121 | 122 | ``` 123 | The pre-migration height is 120 heights before the upgrade height: 124 | pre-migration start: STARTING pre-migration end: COMPLETED pre-migration 125 | migration starts: STARTING migration ends: COMPLETED migration 126 | ``` 127 | 8. If `~/.venus` exists and you need to import a snapshot, you need to delete the `~/.venus/version` file first and then import the snapshot. 128 | 129 | * Mainnet: `./venus daemon --import-snapshot snapshot.car` 130 | * calibnet: `./venus daemon --import-snapshot snapshot.car --network calibrationnet` 131 | 132 | 133 | ### sophon-gateway 134 | 135 | Affected functions: 136 | 137 | - None 138 | 139 | Upgrade Dependency: 140 | 141 | - sophon-auth 142 | 143 | Precautions: 144 | 145 | - When compiling, you need to first `make dist-clean` and then `make` 146 | 147 | 148 | ### sophon-messager 149 | 150 | Affected functions: 151 | 152 | - None 153 | 154 | Upgrade Dependency: 155 | 156 | - venus 157 | - sophon-auth 158 | - sophon-gateway 159 | 160 | Precautions: 161 | 162 | - After the upgrade, you need to observe whether the messages can be received normally and whether the messages can be on-chained normally. 163 | 164 | 165 | ### sophon-miner 166 | 167 | Affected functions: 168 | 169 | - None 170 | 171 | Upgrade Dependency: 172 | 173 | - auth 174 | - venus 175 | - gateway 176 | 177 | Precautions: 178 | - None 179 | 180 | ### droplet 181 | 182 | Affected functions: 183 | 184 | - None 185 | 186 | Upgrade Dependency: 187 | 188 | - auth 189 | - venus 190 | - gateway 191 | - messager 192 | 193 | Precautions: 194 | 195 | - Check if deals and retrieval can be issued normally after the upgrade? 196 | 197 | ### venus-wallet 198 | 199 | Affected functions: 200 | 201 | - None 202 | 203 | Upgrade Dependency: 204 | 205 | - gateway 206 | 207 | Precautions: 208 | 209 | - After the upgrade, observe whether the signing is normal and whether the message can be on-chained normally. 210 | 211 | 212 | ### damocles-manager 213 | 214 | Upgrade Dependency: 215 | 216 | - Sophon service 217 | 218 | Precautions: 219 | 220 | - When compiling, you need to first `make dist-clean` and then `make` 221 | 222 | ### damocles-worker 223 | 224 | Upgrade Dependency: 225 | 226 | - damocles-manager 227 | 228 | Precautions: 229 | - None 230 | 231 | Upgrade result verification steps: 232 | 233 | 1. Check if the program starts normally 234 | 2. Check if pre / pro messages are uploaded normally 235 | 3. Check if block producing is normal 236 | 4. Check if windowPost is normal 237 | 5. Check if storage power grows normally 238 | 7. Check if verified deal retrieval is normal 239 | 8. Check if various gas, sector life cycle, and aggregation settings in the database are normal. 240 | 241 | 242 | ### Database changes 243 | 244 | - None 245 | -------------------------------------------------------------------------------- /docs/questions.md: -------------------------------------------------------------------------------- 1 | --- 2 | editLink: false 3 | --- 4 | ### Have a question? 5 | 6 | [Filecoin.io](https://filecoin.io) - general information about the Filecoin network 7 | 8 | [Community Channels](https://filecoin.io/build/#community) - links to Filecoin community chat and forum 9 | 10 | -------------------------------------------------------------------------------- /docs/zh/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | heroImage: /assets/venus-hero-logo.png 4 | actionText: 快速上手 → 5 | actionLink: /zh/intro/ 6 | footer: MIT Apache dual Licensed 7 | --- 8 | 9 |
10 |
11 |

分布式架构

12 |

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

13 |
14 |
15 |

优化订单体验

16 |

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

17 |
18 | 19 |
20 |

全新的算力服务

21 |

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

22 |
23 |
-------------------------------------------------------------------------------- /docs/zh/TODO.md: -------------------------------------------------------------------------------- 1 | ## 原则 2 | 3 |   基于目前的需要,先从重构 guide 和 modules 模块,让两块联动,形成比较易读的 venus 集群部署介绍。 4 | 5 | - modules 模块存储各组件的简介,将不相干的文档移到对应位置 6 | 7 | - guide 和 modules 对于组件介绍存在很多重复的,只保留一份 8 | 9 | - modules 模块组件介绍老旧,超链接到项目的介绍文档,避免项目内更新后 doc 中不及时及重复劳动 10 | 11 | - guide 将组件介绍,编译构建,部署文档独立 12 | 13 | - guide 模块增加 QA 模块,将 venus discussion 的问题以超链接方式统一到 QA 模块 14 | 15 | - 部署模块尽量少一些设计的介绍,简明扼要,每个指定的操作尽量不涉及不相干的,以免造成误解 16 | 17 | ## TODO list 18 | 19 | - [ ] modules 模块 20 | - [ ] 引导页内容更新 21 | - [ ] 不相关文档移走 22 | - [ ] 文档命名一致 23 | - [ ] 组件介绍匹配项目进度 24 | - [x] 编译构建独立到一个文档 25 | - [ ] 组件文档移除从项目中搬过来的内容,用超链接 26 | - [ ] market 和 cluster 模块的技术文档移到 modules 模块, 27 | 28 | - [ ] guide 模块 29 | - [ ] 将部署用到的基础知识单独形成文档 30 | - [x] 编译构建超链接到对应文档 31 | - [x] 增加部分组件的验证:怎么判断部署成功 32 | - [ ] 目录结构调整 33 | - [ ] market 和 cluster 归属到链服务部署和独立组件部署文档 34 | - [ ] .fil_withdraw_and_send.md.swp 文件删除 35 | - [ ] sealer 文档放到单独的目录 36 | - [ ] Troubleshooting-&-FAQ.md 用超链接方式管理 venus discussion 37 | 38 | - [ ] 移除没有价值或过时的文档 39 | - [ ] 在很多模块中重复的内容整合 40 | - [ ] 每个项目搬过来的内容使用超链接 41 | -------------------------------------------------------------------------------- /docs/zh/about/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## 使命,愿景,价值观 3 | 4 | - :exclamation:使命:建设 Filecoin 基础设施和工具,支持生态繁荣发展 5 | - :earth_asia: 愿景:人人都能参与 Filecoin 生态 6 | - :yin_yang: 价值观:开放并且去信任 7 | 8 | ## 联系方式 9 | 10 | - Slack:[#fil-venus](https://filecoinproject.slack.com/archives/CEHHJNJS3), Slack:[#fil-venus-cn](https://filecoinproject.slack.com/archives/C028PCH8L31), [venus@ipfsforce.com](mailto:venus@ipfsforce.com) 11 | 12 | ## 其他资源 13 | 14 | - venus-docs: [venus.filecoin.io](venus.filecoin.io) 15 | - VenusHub: [venushub.io](venushub.io) 16 | - Github: [venus](https://github.com/filecoin-project/venus) 17 | - Social Media: [Twitter](https://twitter.com/venus_filecoin), [Wechat](https://mp.weixin.qq.com/s/p4_ch03QeMMXxPyakr_8XQ) 18 | - 安全审计报告:[link](https://leastauthority.com/static/publications/LeastAuthority_Filecoin_Foundation_Venus_Final_Audit_Report.pdf) 19 | -------------------------------------------------------------------------------- /docs/zh/intro/README.md: -------------------------------------------------------------------------------- 1 | ## 前言 2 | 3 | 在同一条区块链上需要具有多个互操作的软件实现,每个实现都有自己的安全问题集,但是所有实现不尽相同,因此,启动具有多种实现方式的加密货币网络可降低发生灾难性错误的可能性,Venus 正是 Filecoin 的实现之一。 4 | 5 | Venus 代指 Filecoin 的通用实现之一,venus 则代指 Venus 的组件之一。Venus 致力于帮助中小存储提供者能够更加简单的加入到 Filecoin 生态网络建设中。 6 | 7 | 目前 Venus 通过 venus、damocles、sophon-miner、venus-wallet、sophon-messager、sophon-auth、sophon-gateway 组件,已经实现了 Filecoin 分布式矿池的支持,未来,Venus 将持续完善自身,并共同推进开源的 Filecoin 开发与生态的发展。 8 | 9 | ## 为什么我们要这样做 10 | 11 | 2020 年 6 月,Protocol Lab 发起了关于由社区后续维护 go-filecoin 的 RFP,IPFSForce 随后申请并获得了维护权。10 月,go-filecoin 更名为 Venus,我们继续推进对 Venus 项目的维护工作。 12 | 13 | 在重新保持维护之前,Venus 是一个严重缺乏维护的项目。协议和组件上,vm/mpool/chain/rpc 虽然都有了,但是全都存在不同程度的问题,我们用了三个多月的时间,逐渐修复很多协议层、代码层,、性能的问题,使得 Venus 完成了与 Lotus 的互操作,让使用 Venus 的节点可以正常的在网络上运行。后续我们又逐渐的让 Venus 支持了 Calibration、2k 网络。 14 | 15 | 完成以上工作后,我们着手于 Venus 的开发方向。 16 | 17 | 我们的设计是让 Venus 向矿池的发展角度去支持,最初的设计是从“如何扩展单一存储提供者”思考,这个方向存在理论上的可行性,但是最大的问题在于 Filecoin 独特的证明机制。因为 Filecoin 网络的存储提供者必须周期性的提交‘时空证明’,而为了生成证明,存储提供者必须读取一整个 partition 的数据,如果 sector 极其分散的分布到不同的地方,通过公网读取,则不是一个可执行的方案。 18 | 19 | 后来我们通过数次的设计与修改,最终产生了现在的方案,就是分布式矿池。分布式矿池并非体现在单一存储提供者,而是将分布式的概念体现在多存储提供者的管理,这更像一个存储提供者联合体。 20 | 21 | Venus 分布式矿池在外部的体现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池;在出块的角度上,因为 Filecoin 按算力比例来计算出块机率,所以分散的计算和整体的计算的最终结果应该是相同:***n1/p+ n2/p+n3/p......= (n1+n2+n3+.....)/p***,这在算法的基础上提供了理论基础。 22 | 23 | 在真实数据存储检索上,存储提供者可以通过 venus 统一入口接入网络或者自主接入。设计中,venus 会在获得存储提供者允许的条件下,按照数据的访问需求来选择合适的节点存储数据,使得数据更贴近真实的使用场景。 24 | 25 | 1. ***数据存储***:支持组件共享,存储会逐渐迁移到 MySQL,通过一些高可用的方案保证 Venus 的元数据安全。 26 | 2. ***共享组件***:支持高可用,保证服务的质量,减少存储提供者的时间成本与维护成本,这使得存储提供者能够更容易加入到矿池生态中。现在的挖矿活动专业性很强,而实现 Filecoin 利用闲散存储资源的梦想则不可避免需要降低参与门槛,才能吸引更多的参与者进来。 27 | 3. ***聚集出块权***:存储提供者能够将资源整合在一起,互相帮助打包消息,这样可以避免小存储提供者的消息无人打包的困境。 28 | 4. ***提升 Filecoin 网络的吞吐量***:如果同一高度存在多个区块,venus-miner 能够保证每个区块中的消息都是不同的,而如果各自出块,消息则很可能大量重复。 29 | 5. ***提升消息的稳定性***:挖矿活动中的消息可以和节点分开,由 venus-messager 来管理,venus-messager 会跟踪链的最新状态来设置一个相对合理的预估的 gas 参数,同时也支持用户自己设置一个消息参数。 30 | 6. ***提升数据访问速度***:目前的 Filecoin 网络更多的还是存储,但是作为一个存储服务,最终需要对外输出检索服务才能实现根本价值。如果有足够多的存储提供者使用 Venus,那么 Venus 在真实数据的处理上就有更多的可能,比如数据的分布,Venus 可以将数据分布到距离客户最近的一些存储提供者节点,这样可以提高客户的访问速度;比如一些公有数据可以把这些数据尽可能的分散到更多的节点上,保障在任意位置的访问都有效,这可以大大提升 IPFS 网络的效能,进一步实现 IPFS Web3.0 的梦想。 31 | 32 | ## venus 如何工作 33 | 34 | Venus 是 Filecoin 的通用实现之一,致力于分布式的集群架构及更简洁的职责划分。 35 | 36 | Venus 分布式存储池在外部的呈现和传统的分布式矿池是相似的。在存储资源上体现在地域分布性,只要有网络可以访问的地方,都可以使节点接入到 Venus 矿池。 37 | 38 | ### venus 39 | 40 | [venus](https://github.com/filecoin-project/venus) 类似 lotus-daemon,用于实现全节点。venus 接入 Filecoin 区块链网络,为 Venus 提供数据支持。可以把 venus 当作普通节点来使用,它具有区块链节点必备的所有功能,如 chain、mpool、wallet。venus 的接口和 lotus 基本兼容(如果存在不兼容的接口,欢迎发布 Issue),你可以在 venus 上创建私钥、查询资产、转账等等。在典型部署环境里,venus 仅仅提供基础链上数据查询服务,本身不保存私钥。slashfilter 所需要的区块数据,存储到数据库里,节点本身是无状态的,这样通过 nginx 反向代理后就可以实现 venus 节点的高可用。 41 | 42 | venus 节点自身有一些区别与 lotus 的地方: 43 | 44 | 1. 创建区块的接口中支持了外部签名(后续会向 Lotus 提 PR) 45 | 2. 消息选择的接口支持同时选择多个批次的消息,用于多存储提供者出块时选择消息。 46 | 3. 支持 sophon-auth 的的中心访问授权 47 | 48 | 因此如果对 Venus/Lotus 混合部署感兴趣,需要使用我们维护的 [lotus 兼容 venus 的项目](https://github.com/ipfs-force-community/lotus/releases),可自行 pick 代码编译。 49 | 50 | ### sophon-auth 51 | 52 | [sophon-auth](https://github.com/ipfs-force-community/sophon-auth) (原 venus-auth) 是用于授权的组件,在典型的部署环境下 sophon-auth 用于给 venus、sophon-miner、sophon-messager 提供授权服务,每个本地的节点访问共享组件都要经过授权,后续会在这个基础上进行功能扩充,做一些安全方面的控制,比如访问限流、黑名单。 53 | 54 | ### sophon-miner 55 | 56 | [sophon-miner](https://github.com/ipfs-force-community/sophon-miner) (原 venus-miner) 的作用是聚集出块权,可以为接入链服务的多个集群执行出块逻辑。sophon-miner 有以下特点: 57 | 58 | 1. 分离数据:由于生成区块的过程需要访问数据,并且存储提供者的 sealer 可能是异构的,但目前多数存储提供者会使用自己定制的代码,那么要实现联合挖矿就存在如何访问到这些数据的问题。通过隔断 sophon-miner 对存储组织方式的依赖,通过让证明在存储提供者侧完成,无论存储提供者的 sealer 如何组织存储,只要实现了**ComputeProof**接口,sophon-miner 就可以通过这个接口来生成证明。 59 | 2. 分离私钥:计算随机数及签名区块的过程中,所有涉及到私钥的操作都通过远程钱包的方式来访问,这样既无泄漏集群私钥,又能保证出块逻辑正常运行。 60 | 3. 提高网络 TPS:当 sophon-miner 负责的存储提供者在一个周期获得多个(>1)出块权,sophon-miner 会尽量从消息池中选择不同的消息进行打包,这样一定程度上可以提升消息上链的速度,同时使该出块可能获得更多的小费奖励(Premium)。 61 | 4. 收益稳定性:多存储提供者联合挖矿配套奖励池分配系统可以让小存储提供者每天都能获得区块奖励,也可以减少某些存储提供者偶发性出块错误造成的损失。 62 | 63 | ### sophon-messager 64 | 65 | [sophon-messager](https://github.com/ipfs-force-community/sophon-messager) (原 venus-messager) 组件的目标是更好的帮助消息上链,并能够灵活的控制消息上链的时机,减少 gas 消耗,流量控制等。其中包括远程钱包管理、地址管理、消息管理。 66 | 67 | 1. 地址管理:主要是管理 nonce 值,保证 nonce 值能够按照正确的顺序分配。 68 | 2. 消息管理:消息管理分成三个部分,分别是“消息接收和保存”、“消息选择及推送”“消息上链状态的追踪”。 69 | 3. GasFee 管理:可以按地址分别设置 gasLimit 的系数和 maxFee。 70 | 71 | 从功能性上来说: 72 | 1. 远程钱包支持:一个 sophon-messager 支持多个钱包,分别管理自己的 message。 73 | 2. 支持 sqlite 本地存储和 mysql 远程存储:存储更加安全稳定。 74 | 3. 动态填充:根据 gas 和 push 策略,在链上发送消息时,需要填写 gas 相关参数和 nonce,以确保 gas 估算和其他设置有效。 75 | 4. 维护消息状态:包括消息是否被链接和替换,保存执行结果。 76 | 5. 多点消息传递(通过 Mpool API 推送到多个节点):确保消息在网络上传播。 77 | 6. 灵活配置:包括 gas 估算、消息推送策略等。 78 | 79 | ### venus-wallet 80 | 81 | [venus-wallet](https://github.com/filecoin-project/venus-wallet) 是一个远程钱包,协议上能够同时支持 lotus 和 venus。在典型的部署环境中,这个组件由存储提供者部署在本地,并通过一定的策略配置保证资产的安全。venus-wallet 有以下功能特点: 82 | 83 | 1. 私钥管理模块:目前支持非对称算法 BLS 和 SECP 的私钥管理,能够生成随机私钥,并运用 aes128 对私钥进行对称加密存储,同时支持私钥对数据进行签名。 84 | 2. 签名验证:每种签名类型都有对应验证策略,保证了签名方不能在签名类型上欺骗钱包。 85 | 3. 签名策略模块:针对 Filecoin 的 Lotus 及 Venus 实现,对存在的数 10 种数据结构以及 message 数据结构中的 60 余种签名类型进行统一管理,按需配置各种组合方式绑定私钥签名规则,而后可以将数种不同的私钥签名规则组成一个整体,授权于外部组件使用。 86 | 87 | 88 | ### droplet 89 | 90 | [droplet](https://github.com/ipfs-force-community/droplet) (原 venus-market) 是 Venus 系统中的市场组件。其愿景是打造 Filecoin 网络中分布式的存储和检索市场。目前已经实现了兼容 Lotus 协议的订单存储和检索,逐渐向着 droplet 服务多个集群的接单,对外提供统一的检索服务方向发展。可参见[droplet 设计与路线图](https://github.com/filecoin-project/venus/blob/master/documentation/en/venus-market-design-roadmap.md) 91 | 92 | ### sophon-gateway 93 | 94 | [sophon-gateway](https://github.com/ipfs-force-community/sophon-gateway) (原 venus-gateway) 是独立组件与链服务层的桥梁,用于简化部署并降低存储提供者访问的复杂性、增加存储提供者访问的安全性。独立组件启动时将其服务接口注册到 sophon-gateway,链服务组件需要时通过 sophon-gateway 请求对应集群的服务接口。 95 | 96 | - 存储提供者不需要外部 IP 和曝露钱包服务; 97 | - 存储池配置 SSL 证书后,集群与存储池的连接是安全的; 98 | - 存储提供者可以简单地将多个客户端(钱包/证明)注册到存储池以获得高可用性。 99 | 100 | ![sophon-gateway](../../../docs/.vuepress/public/venus-gateway-system-design.png) 101 | 102 | ### damocles 103 | 104 | [damocles](https://github.com/ipfs-force-community/damocles) (原 venus-cluster) 是 Venus 推出的新版本扇区封装、算力维持组件,相对于原本的 venus-sealer,在任务调度、最大化系统资源方面有一定优势,其面向的用户受众也将有所不同。 105 | -------------------------------------------------------------------------------- /docs/zh/intro/_Footer.md: -------------------------------------------------------------------------------- 1 | _See something missing? Have tips to share? [File an issue](https://github.com/filecoin-project/venus/issues/new), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)_ -------------------------------------------------------------------------------- /docs/zh/intro/contribute-doc.md: -------------------------------------------------------------------------------- 1 | # 如何运行文档项目 2 | 3 | ## 依赖 4 | 5 | 运行 docs 项目需要安装 ***node*** 和 ***yarn*** 6 | 7 | 8 | ## 拉取项目 9 | 10 | ```sh 11 | git clone git@github.com:filecoin-project/venus-docs.git 12 | cd venus-docs 13 | yarn install #安装依赖 14 | ``` 15 | 16 | ## 本地运行 17 | 18 | 运行命令: 19 | ```sh 20 | yarn docs:dev 21 | ``` 22 | 23 | 英文文档直接在 master 下更改,中文在 zh 文件夹下面更改,请确保文件夹结构完全相同。在文档上做的修改能够实时的反映在网站上,不需要重新运行命令。 24 | 增加文档需要修改 ***./docs/.vuepress/config.js*** 文件,并在 sidebar 下的 children 增加一行新的记录。 25 | 26 | ## 编译与部署 27 | 28 | ```sh 29 | yarn docs:links # verify all links are well-formed 30 | yarn docs:build # generate html pages 31 | ``` 32 | build 完成后结果输入到 ***./docs/.vuepress/dist*** 目录里面,将本目录覆盖 ***gh-page*** 分支即可部署项目文档。 33 | -------------------------------------------------------------------------------- /docs/zh/intro/damocles.md: -------------------------------------------------------------------------------- 1 | 2 | ![damocles](../../.vuepress/public/damocles-banner.jpg) 3 | 4 | ### 执剑人 5 | 6 | 执剑人,原 Venus 算力服务,是一个`Filecoin`存储算力解决方案。请在[此](https://damocles.venus-fil.io/zh/)了解更多关于执剑人的信息。 -------------------------------------------------------------------------------- /docs/zh/intro/droplet.md: -------------------------------------------------------------------------------- 1 | 2 | ![droplet](../../.vuepress/public/droplet-banner.jpg) 3 | 4 | ### 水滴 5 | 6 | 水滴,原 Venus 订单服务,是一个`Filecoin`存储订单解决方案。请在[此](https://droplet.venus-fil.io/zh/)了解更多关于水滴的信息。 -------------------------------------------------------------------------------- /docs/zh/intro/one-pager.md: -------------------------------------------------------------------------------- 1 | ![venus-cluster](../../.vuepress/public/one-pager-venus.png) -------------------------------------------------------------------------------- /docs/zh/intro/sophon.md: -------------------------------------------------------------------------------- 1 | 2 | ![sophon](../../.vuepress/public/sophon-banner.jpg) 3 | 4 | ### 智子 5 | 6 | 智子,原 Venus 链服务,是一个 Filecoin 超级节点解决方案。请在[此](https://sophon.venus-fil.io/zh/)了解更多关于智子的信息。 -------------------------------------------------------------------------------- /docs/zh/operation/Independent_com_access_analysis.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### venus-wallet 健康状态检查: 4 | 5 | #### 1、启动 6 | 7 | 可以看到 venus-wallet 连接到的 gateway 节点地址信息和 venus-gateway 建立连接的会话 ID 信息 8 | 9 | ```bash 10 | wallet_event/listenevent.go:173 restarting listenWalletRequestOnce {"api hub": "/dns/gateway.filincubator.com/tcp/83/wss"} 11 | wallet_event/listenevent.go:200 connect to server 9ad36ec8-4a47-4f84-b618-e89cf03f6f38 {"api hub": "/dns/gateway.filincubator.com/tcp/83/wss" 12 | ``` 13 | 14 | 但如果有类似如下的报错信息,则为异常启动: 15 | 16 | ```bash 17 | ERROR wallet_event wallet_event/listenevent.go:236 WalletSign error password not set {"api hub": "/dns/gateway.filincubator.com/tcp/83/wss"} 18 | ``` 19 | 20 | 从日志报 venus-wallet 的密码没有设置,需要执行**./venus-wallet setpwd**来配置 wallet 的密码。 21 | 22 | 23 | 24 | #### 2、锁定钱包 25 | 26 | 如下执行以下命令,则可以上锁钱包,**建议不要尝试**: 27 | 28 | ```bash 29 | ./venus-wallet lock 30 | Password:****** 31 | wallet lock successfully 32 | ``` 33 | 34 | 此时,在日志中会有一条如下信息: 35 | 36 | ```bash 37 | WARN rpc go-jsonrpc@v1.1ec/handler.go:279 error in RPC call to 'Filecoin.Unlock': wallet already unlocked 38 | ``` 39 | 40 | 现在 venus-wallet 已经上锁了,这个会影响 venus-sealer 发送到 venus-message 的消息不会被签名,如下图: 41 | 42 | ![error-message](../../.vuepress/public/error-message.png) 43 | 44 | 可以执行如下命令,解锁 venus-wallet,可以对 venus-sealer 发出来的消息进行签名后,由 venus 节点向链上发送 45 | 46 | ```bash 47 | ./venus-wallet unlock 48 | Password:****** 49 | wallet unlock successfully 50 | ``` 51 | 52 | 53 | 54 | ### Venus-sealer 健康状态检查: 55 | 56 | 主要可以从输出的日志中看到版本信息、节点同步状态、加载证明参数文件、本地存储 id 和 venus-sealer 连接到 venus-gateway 节点的会话建立等信息; 57 | 58 | ![](../../.vuepress/public/venus-sealer-start.jpg) 59 | 60 | 61 | 62 | ### venus-worker 健康状态检查: 63 | 64 | ```bash 65 | INFO main venus-worker/main.go:158 Starting venus worker 66 | INFO main venus-worker/main.go:188 config: {~/.venusworker/config.toml ~/.venusworker {/ip4/10.108.2.42/tcp/6666 eyJhbGciOiJIUzaW4iXX0.4ZDslo6-8kD74} {sqlite { 0 0 0s} {worker.db}}} 67 | INFO main venus-worker/main.go:255 Remote version 1.0.2+api1.2.0 68 | WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION 69 | WARN paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:158 Assuming parameter files are ok. DO NOT USE IN PRODUCTION 70 | INFO paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:207 parameter and key-fetching complete 71 | INFO main venus-worker/main.go:306 Acceptable task types: [seal/v0/fetch seal/v0/commit/1 seal/v0/finalize seal/v0/commit/2] 72 | INFO main venus-worker/main.go:356 Opening local storage; connecting to master 73 | INFO main venus-worker/main.go:408 Setting up control endpoint at 10.121.2.214:5555 74 | INFO main venus-worker/main.go:507 Making sure no local tasks are running 75 | INFO main venus-worker/main.go:530 Worker registered successfully, waiting for tasks 76 | ``` 77 | 78 | 可以从 venus-worker 日志中,看到 venus-worker 启动后加载的配置文件目录,监控的端口号;以及在启动之后注册到 venus-sealer 上,等待获取任务。 79 | 80 | 81 | 82 | 如下输出以下信息,则说明 venus-worker 已经获得了新的任务: 83 | 84 | ```bash 85 | INFO filcrypto::proofs::api > seal_commit_phase2: start 86 | INFO filecoin_proofs::api::seal > seal_commit_phase2:start: SectorId(1000054) 87 | INFO filecoin_proofs::caches > trying parameters memory cache for: STACKED[34359738368] 88 | INFO filecoin_proofs::caches > no params in memory cache for STACKED[34359738368] 89 | INFO storage_proofs_core::parameter_cache > parameter set identifier for cache: layered_drgporep::PublicParams{ graph: stacked_graph::StackedGraph{expansion_degree: 8 base_graph 90 | ``` 91 | 92 | -------------------------------------------------------------------------------- /docs/zh/operation/README.md: -------------------------------------------------------------------------------- 1 | ## 部署`Venus`解决方案 2 | 3 | `Venus`泛指一系列与`filecoin`协议稳定/高效互动的软件产品。`Venus`的,目标群体大致分为`4`类。`SP`存储提供者,`SC`存储客户,生态合作伙伴,以及去中心化应用`Dapp`。`Venus`解决方案当前被广泛应用于`SP`和`SC`的场景中。 4 | 5 | ### 部署 6 | 7 | 经过`Venus`在 2022 年底的[品牌重塑](https://github.com/filecoin-project/venus/discussions/5420)之后,`Venus`拆分出 3 个产品,分别是[智子](https://sophon.venus-fil.io/zh/),[执剑人](https://damocles.venus-fil.io/zh/)以及[水滴](https://droplet.venus-fil.io/zh/)。关于各产品的具体部署流程,请参见各产品的文档。 8 | 9 | ### 架构 10 | 11 | -------------------------------------------------------------------------------- /docs/zh/operation/Sealing_deploy_plan_1.md: -------------------------------------------------------------------------------- 1 | # 算力增加与维持部署参考方案 1 2 | 3 | ## 集群规模: 4 | - 机器:两台 5 | - 配置:128 核,1T 内存,双 3060Ti(GPU) 6 | 7 | ## 方案 8 | - 建议每台机器各去掉一块 GPU,因为目前程序只能访问一块 GPU; 9 | 10 | - 安装 zabbix 监控 11 | 12 | - 因为单个机器上运行不同的任务,需要给每个 worker 限核,需关闭超线程以确保限核的精准 13 | 14 | ```bash 15 | # 绝大多数的主板都可以设置关闭超线程,但需要重新启动。我们通过一种方式关闭一半 CPU 的映射关系来做到相同的效果,这种方式不需要重启,但是每次重启都会失效。 16 | 17 | #!/bin/bash 18 | for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ',' '\n' | sort -un) 19 | do 20 | echo 0 > /sys/devices/system/cpu/cpu$cpunum/online 21 | done 22 | ``` 23 | 24 | - 部署方案: 25 | * A 机器:venus-sealer 只做 wdpost 和 winningpost 的计算;跑一个 venus-worker 只做 AP,P1,P2(用 cpu 做); 26 | ```sh 27 | ./venus-sealer --network=mainnet init --actor= --node-url=/ip4//tcp/ --gateway-url=/ip4//tcp/ --auth-token --no-local-storage 28 | 29 | # 修改配置文件只允许sealer做wdpost 30 | 31 | [Storage] 32 | ParallelFetchLimit = 10 33 | AllowAddPiece = false 34 | AllowPreCommit1 = false 35 | AllowPreCommit2 = false 36 | AllowCommit = false 37 | AllowUnseal = false 38 | 39 | 40 | # 启动venus-sealer 41 | 42 | BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 nohup ./venus-sealer run > sealer.log 2>&1 & 43 | 44 | # FIL_PROOFS_MAXIMIZE_CACHING=1 表示做P1的时候把部分临时文件缓存到内存 45 | 46 | # 设置store目录,因为sealer我们不做任务,故只需设置store目录 47 | ./venus-sealer storage attach --init --seal 48 | 49 | 50 | # 启动一个worker,只做AP,P1,P2,unseal(不允许用GPU) 51 | FIL_PROOFS_MAXIMIZE_CACHING=1 BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 ./venus-worker run --miner-addr=/ip4/127.0.0.1/tcp/2345 --miner-token= --commit=false --no-local-storage 52 | 53 | # 指定worker的seal路径 54 | ./venus-worker storage attach --init --seal 55 | ``` 56 | > venus-sealer 不做任务,故只需指定 store 目录,不需要 seal 目录。 57 | 58 | > 这里 worker 为什么只用 cpu 而不用 GPU 做呢?因为 wdpost 需要 gpu 做,并且是具有时效性的任务,如果 worker 竞争 gpu,wdpost 没法及时完成,存在惩罚算力的隐患。 59 | 60 | 61 | > venus-sealer 默认只监听 127.0.0.1,要想别的机器连接 sealer 需要修改配置文件: 62 | ```sh 63 | [API] 64 | ListenAddress = "/ip4/0.0.0.0/tcp/2345/http" 65 | RemoteListenAddress = "内网ip:2345" 66 | ``` 67 | 68 | > 设置 p2,C2,wdPost 等消息的 from,即发送消息消耗 fil 的 address 69 | ```sh 70 | [Addresses] 71 | PreCommitControl = [] # P2 72 | CommitControl = [] # C2 73 | DisableOwnerFallback = true # 禁用owner发消息 74 | DisableWorkerFallback = false 75 | ``` 76 | 77 | > 设置 sealer 可接受任务类型 78 | ```sh 79 | [Storage] 80 | ParallelFetchLimit = 10 81 | AllowAddPiece = true 82 | AllowPreCommit1 = true 83 | AllowPreCommit2 = true 84 | AllowCommit = true 85 | AllowUnseal = true 86 | ``` 87 | 88 | * B 机器:启动两个 worker,一个做 P2,一个做 Commit。p2 阶段使用 CPU,commit 阶段使用 GPU 运行。 89 | - 限核:这台机器我们运行 2 个 worker 为了避免一个 worker 占满 cpu 资源,故需要对每个 worker 进程进行限核。这里我们将 75% 的核数分配给 worker01,将 25% 的核数分配给 worker02.参考文档:https://venus.filecoin.io/zh/operation/Efficiency_of_sealing.html 90 | ```sh 91 | # worker01 92 | BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 FIL_PROOFS_MAXIMIZE_CACHING=1 ./venus-worker run --miner-addr=/ip4/127.0.0.1/tcp/2345 --miner-token= --unseal=false --addpiece=false --commit=false --no-local-storage 93 | 94 | # 指定worker01的seal路径 95 | ./venus-worker storage attach --init --seal 96 | 97 | # worker02 98 | VENUS_WORKER_PATH= BELLMAN_CPU_UTILIZATION=0.2 ./venus-worker run --miner-addr=/ip4/127.0.0.1/tcp/2345 --miner-token= --precommit1=false --precommit2=false --addpiece=false --unseal=false --no-local-storage 99 | 100 | # 指定worker02的seal路径与worker01相同,这样做的好处是不需要文件的拷贝。 101 | ./venus-worker storage attach --seal 102 | ``` 103 | > TRUST_PARAMS=1 环境变量可以跳过校验证明参数文件,如果你确定参数文件都在且是正确的可以用此环境变量用加快 venus-sealer 或 venus-worker 的启动的速度; 104 | 105 | > seal 要求较高的磁盘吞吐量,建议 ssd 盘。 106 | 107 | - 磁盘空间及并发数计算: 108 | 109 | * 32G 内存消耗:56G cache + 64G * 运行数量 110 | * 32G 磁盘消耗:520G 左右 * 运行数量 111 | * 64G 内存消耗:112G cache + 128G 112 | * 64G 磁盘消耗:1T 左右 * 运行数量 113 | 114 | * 故这两台机器 1t 的内存大约能做 64G sector 的数量为: 115 | 116 |    (1024G-112G)/128G=7.125,保险起见我们可以先并发 6 个观察一段时间资源使用率。 117 | 118 |    确定了并发密封扇区个数后,就可以确定 seal 需要的磁盘空间= 6*1t=6t. 119 | 120 | > 做策略的思路:先考虑内存,确定并发数,在补充其他资源,如临时磁盘空间,至于 cpu,如果不足,可以限额,这样做的好处是系统可以持续运行,而不被 oom。 121 | 122 | > 可以利用 gpu 加速的任务时 P2,C2 和 windowPoSt,分配 gpu 的顺序是:wdPoSt>C2>P2 123 | 124 | - 并发数控制 125 |    ./venus-sealer sectors pledge 发送一个密封任务,通常写一个定时脚本或系统事务,每隔一段时间发送一个 sector 任务;配置文件 MaxSealingSectors 控制同时进行的 sector 上限数。 126 | -------------------------------------------------------------------------------- /docs/zh/operation/Sealing_deploy_plan_2.md: -------------------------------------------------------------------------------- 1 | # 算力增加与维持部署参考方案 2 2 | 3 | ## 机器配置 4 | 5 | | 资源 | 配置 | 6 | | ---- | ---- | 7 | | CPU | AMD EPYC 7282 *1 (32c) 单路 | 8 | | 内存 | 32GB ECC/Reg, DDR4-3200 *8 | 9 | | 硬盘 | M.2 NVME PCIe Gen3 x4 2TB SSD *2 | 10 | | 网卡 | 10G | 11 | | 系统盘 | 500G | 12 | | 显卡 | 3090 * 1 | 13 | | 存储 | 4TB SSD *25 RAID 5 | 14 | 15 | 台数:1 台 16 | 17 | ## 任务配比 18 | 19 | 任务分为 AP,P1,P2,Commit 阶段 20 | 21 | | 运行方式 | 核数限制 | 耗时 (分钟) | 内存消耗 (G) | 效率 (个/小时) | 日产量 (T) | 22 | | ----------- | ----- | --------- | ---------- | ------------ | ------- | 23 | | P1 * 5 | 20 | 220 | 376 | 1.3636 | 1.0227 | 24 | | P2,AP,Commit | 12 | 10 | 120 | 3 | 1.125 | 25 | 26 | 资源说明: 27 | - 内存加到 512G; 28 | 29 | ## 部署 30 | 31 | - 关闭超线程 32 | ```bash 33 | # 绝大多数的主板都可以设置关闭超线程,但需要重新启动。我们通过一种方式关闭一半CPU的映射关系来做到相同的效果,这种方式不需要重启,但是每次重启都会失效。 34 | 35 | #!/bin/bash 36 | for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ',' '\n' | sort -un) 37 | do 38 | echo 0 > /sys/devices/system/cpu/cpu$cpunum/online 39 | done 40 | ``` 41 | 42 | - 确保证明参数文件已下载,参数文件默认目录:/var/tmp/filecoin-proof-parameters 43 | 44 | - 启动 venus-sealer: sealer 只做 windowPoSt. 45 | ```sh 46 | ./venus-sealer --network=mainnet init --actor= --node-url=/ip4//tcp/ --gateway-url=/ip4//tcp/ --auth-token --no-local-storage 47 | 48 | # 修改配置文件只允许sealer做wdpost 49 | [Storage] 50 | ParallelFetchLimit = 10 51 | AllowAddPiece = false 52 | AllowPreCommit1 = false 53 | AllowPreCommit2 = false 54 | AllowCommit = false 55 | AllowUnseal = false 56 | 57 | 58 | # 启动venus-sealer 59 | BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 nohup ./venus-sealer run > sealer.log 2>&1 & 60 | 61 | # 设置store目录,因为sealer我们不做任务,故只需设置store目录 62 | ./venus-sealer storage attach --init --store 63 | ``` 64 | 65 | > init 时加`--no-local-storage`不回创建默认的store/seal目录; 66 | 67 | - 启动 venus-worker-01: 只做 P1 68 | ```bash 69 | FIL_PROOFS_MAXIMIZE_CACHING=1 BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 \ 70 | nohup ./venus-worker --repo= run --miner-addr=/ip4/127.0.0.1/tcp/2345 --miner-token= \ 71 | --addpiece=false --unseal=false --precommit2=false --commit=false --no-local-storage > worker-01.log 2>&1 & 72 | 73 | # 指定seal路径 74 | ./venus-worker --repo= storage attach --init --seal 75 | ``` 76 | > FIL_PROOFS_MAXIMIZE_CACHING=1 表示做 P1 的时候把部分临时文件缓存到内存 77 | 78 | - 启动 venus-worker-02: 做 AP,P2,Commit 等任务 79 | 80 | ```bash 81 | BELLMAN_CPU_UTILIZATION=0.2 FIL_PROOFS_USE_MULTICORE_SDR=1 TMP_DIR= \ 82 | nohup ./venus-worker --repo= run --miner-addr=/ip4/127.0.0.1/tcp/2345 --miner-token= \ 83 | --precommit1=false --no-local-storage > worker-02.log 2>&1 & 84 | 85 | # 指定seal路径 86 | ./venus-worker --repo= storage attach --init --seal 87 | ``` 88 | 89 | > 设置 worker01 和 worker02 的 seal 路径相同,可以避免不必要的拷贝; 90 | 91 | > P2 没有设置用 GPU; 92 | 93 | > TMP_DIR 目的是为了避免和 venus-sealer 竞争 bellman.gpu.lock,C2 阶段会自动搜索用 GPU,如果和 wdPost 竞争 gpu 锁会报错 94 | 95 | - 设置发送消息的 wallet 96 | 97 | ```sh 98 | [Addresses] 99 | PreCommitControl = [] # P2 100 | CommitControl = [] # C2 101 | DisableOwnerFallback = true # 禁用owner发消息 102 | DisableWorkerFallback = false 103 | ``` 104 | > 根据上面字段的含义自己配置想要的结果 105 | 106 | - 限核:Cgrep 限核 107 | 108 | ```bash 109 | # 设置进程管理目录 110 | sudo mkdir -p /sys/fs/cgroup/cpuset/worker 111 | 112 | # 设置能够使用的核数范围 113 | sudo echo 0-20 > /sys/fs/cgroup/cpuset/worker/cpuset.cpus 114 | 115 | # 设置使用内存 116 | echo 0 > cpuset.mems 117 | 118 | # 加入进程的PID 119 | sudo echo > /sys/fs/cgroup/cpuset/worker/cgroup.procs 120 | 121 | ``` 122 | 123 | > PID: 进程 ID 号; 124 | 125 | > 每次 worker 重启后 PID 会变化,需要更新文件。 126 | 127 | > /sys/fs/cgroup/cpuset是系统目录,worker是自己创建的. 128 | -------------------------------------------------------------------------------- /docs/zh/operation/System_monitor_of_Zabbix.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | #### 一、服务器基础配置: 4 | 5 | ```bash 6 | systemctl stop firewalld 7 | systemctl disbale firewalld 8 | vim /etc/selinux/config 9 | 10 | SELINUX=disabled //修改selinux为disabled 11 | setenforce 0 //临时修改selinux状态 12 | getenforce //查看selinux状态 13 | ``` 14 | 15 | #### 二、安装相关软件包 16 | 17 | ```bash 18 | # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 19 | # yum clean all && yum makecache 20 | 21 | // server端安装zabbix-server和zabbix-agent 22 | # yum install zabbix-server-mysql zabbix-agent -y 23 | 24 | //安装zabbix默认的nginx 25 | # yum install centos-release-scl -y 26 | # yum install rh-php72-php-mysqlnd zabbix-nginx-conf-scl -y 27 | ``` 28 | 29 | 修改 zabbix 的安装源配置文件,启用前端的源 30 | 31 | ```bash 32 | # vim /etc/yum.repos.d/zabbix.repo 33 | [zabbix-frontend] 34 | name=Zabbix Official Repository frontend - $basearch 35 | baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend 36 | enabled=1 //此处改为1 37 | gpgcheck=1 38 | gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 39 | ``` 40 | 41 | 42 | 43 | #### 三、安装 MySQL 44 | 45 | ```bash 46 | mkdir mysql-dir 47 | cd mysql-dir 48 | wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar 49 | tar -zxvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar 50 | yum install *.rpm -y 51 | ``` 52 | 53 | ```bash 54 | systemctl start mysqld 55 | ``` 56 | 57 | ```bash 58 | cat /var/log/mysqld.log | grep root 59 | ``` 60 | 61 | 2021-07-26T10:50:49.538494Z 1 [Note] A temporary password is generated for root@localhost: **20yyk:Ar67S;** 62 | 63 | 登录数据库: 64 | 65 | ```mysql 66 | # mysql -uroot -p 67 | Enter password: 20yyk:Ar67S; 68 | ``` 69 | 70 | 配置数据库: 71 | 72 | ```bash 73 | set global validate_password_policy=0; 74 | set global validate_password_length=1; 75 | alter user 'root'@'localhost' identified by 'venus'; #修改root登录密码为venus 76 | 77 | use mysql; 78 | update user set host = '%' where user = 'root'; 79 | create user 'zabbix'@'%' identified by '123456'; 80 | grant all privileges on zabbix.* to 'zabbix'@'%'; 81 | flush privileges; 82 | 83 | # 创建zabbix所需的数据库 84 | create database zabbix character set utf8 collate utf8_bin; 85 | ``` 86 | 87 | 导入 zabbix 模版文件: 88 | 89 | ```bash 90 | zcat /usr/share/doc/zabbix-server-mysql-5.0.14/create.sql.gz | mysql -uzabbix -p123456 zabbix 91 | ``` 92 | 93 | 94 | 95 | #### 四、修改 zabbix 默认配置文件 96 | 97 | 1、修改连接数据库的密码: 98 | 99 | ```bash 100 | # vim /etc/zabbix/zabbix_server.conf 101 | DBPassword=123456 102 | ``` 103 | 2、修改 nginx 和所属地域 104 | 105 | ```bash 106 | # vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 107 | # 在第6行后边加上一个nginx 108 | listen.acl_users = apache,nginx 109 | 110 | # 在第24行修改zabbix所属的地域 111 | php_value[date.timezone] = Asia/shanghai 112 | ``` 113 | 114 | 3、配置监听端口和访问方式 115 | 116 | ```bash 117 | vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf 118 | server { 119 | listen 80;//取消注释 120 | server_name test.zabbix.com;//取消注释修改成IP或自己的域名 121 | ``` 122 | 123 | 4、如果是伪装域名则修改本地的 hosts 文件 124 | 125 | ```bash 126 | vim /etc/hosts 127 | 192.168.xx.xx test.zabbix.com 128 | 129 | window hosts文件也需要添加一下 130 | C:\Windows\System32\drivers\etc\hosts 131 | 192.168.xxx.xxx test.zabbix.com 132 | ``` 133 | 134 | 5、启动服务并设为开机自启 135 | 136 | ```bash 137 | # 启动服务 138 | systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm 139 | systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm 140 | ``` 141 | 142 | 6、修改 zabbix-agent 的配置文件 143 | 144 | ```bash 145 | cat /etc/zabbix/zabbix_agentd.conf | egrep -v "^$|^#" 146 | PidFile=/var/run/zabbix/zabbix_agentd.pid 147 | LogFile=/var/log/zabbix/zabbix_agentd.log 148 | LogFileSize=0 149 | Server=192.168.88.11 //指定zabbix-server的ip地址 150 | Hostname=venus-sealer 151 | Include=/etc/zabbix/zabbix_agentd.d/*.conf 152 | ``` 153 | 154 | #### 四、配置 zabbix 监控主机 155 | 1、在浏览器输入 zabbix-server 的 ip 地址或者主机名 156 | ![](/01-zabbix-install.jpg) 157 | ![](/02-zabbix-install.jpg) 158 | 159 | 2、配置数据库连接地址信息 160 | ![](/03-zabbix-config.jpg) 161 | ![](/04-zabbix-hostname.jpg) 162 | ![](/05-zabbix-all.jpg) 163 | ![](/06-zabbix-finished.jpg) 164 | 165 | 3、登录到 zabbix 系统,默认的用户为 Admin,密码为 zabbix;注意 Admin 的 A 是大写字母 166 | ![](/07-zabbix-login.jpg) 167 | ![](/08-zabbix-dashboard.jpg) 168 | 169 | 4、添加 zabbix-agent 主机 170 | ![](/09-zabbix-agent.jpg) 171 | ![](/10-zabbix-agent-add.jpg) 172 | 173 | 5、查看 zabbix 监控机器的内存图 174 | ![](/11-zabbix-graphs.jpg) 175 | ![](/12-zabbix-memory.jpg) 176 | 177 | 6、异常报警,需要处理的机器 178 | ![](/13-Alarm-information.jpg) -------------------------------------------------------------------------------- /docs/zh/operation/_Footer.md: -------------------------------------------------------------------------------- 1 | _See something missing? Have tips to share? [File an issue](https://github.com/filecoin-project/venus/issues/new), and we'll follow up as soon as possible. (If you have write permission in this repo, feel free to edit directly.)_ 2 | -------------------------------------------------------------------------------- /docs/zh/operation/example-single-box.md: -------------------------------------------------------------------------------- 1 | # venus 集群日增算力 1T 机器选型方案 2 | 3 | ## 机器配置 4 | 5 | | 资源 | 配置 | 6 | | ------ | --------------- | 7 | | CPU | 3970X * 1 (32c) | 8 | | 内存 | 512G | 9 | | 硬盘 | 3T/SSD | 10 | | 网卡 | 千兆 | 11 | | 系统盘 | 500G | 12 | | 显卡 | 3080 * 1 | 13 | 14 | 台数:1 台 15 | 16 | 17 | ## 任务配比 18 | 19 | 任务分为 AP,P1,P2,Commit 阶段 20 | 21 | | 运行方式 | 核数限制 | 耗时 (分钟) | 内存消耗 (G) | 效率 (个/小时) | 日产量 (T) | 22 | | ------------ | -------- | ---------- | ----------- | ------------- | --------- | 23 | | P1 * 5 | 20 | 220 | 376 | 1.3636 | 1.0227 | 24 | | P2,AP,Commit | 12 | 10 | 120 | 3 | 1.125 | 25 | 26 | > 关于限核,配置执行任务类型,并发任务数等请参考 venus-docs 项目中相关文档。 -------------------------------------------------------------------------------- /docs/zh/operation/lotus-vs-venus.md: -------------------------------------------------------------------------------- 1 | ## 从 Lotus 来的命令 2 | 3 | 很多日常的命令包括但不限于[创建worker/controler地址](https://lotus.filecoin.io/docs/storage-providers/addresses/),设置不同的[配置](https://lotus.filecoin.io/docs/storage-providers/config/),或者修改[存储路径](https://lotus.filecoin.io/docs/storage-providers/lifecycle/#changing-storage-locations)等等,都同时适用于`Lotus`和`Venus`。节点运维工程师可以按照 Lotus 文档中的步骤来操作。如果遇到任何问题,欢迎到[#fil-venus-cn](https://filecoinproject.slack.com/archives/C028PCH8L31)来提出问题。 4 | 5 | -------------------------------------------------------------------------------- /docs/zh/operation/migrate_market_v1_to_v2.md: -------------------------------------------------------------------------------- 1 | # market v1-v2 升级指南 2 | 3 | market v1 升级到 v2 的过程中数据结构发生了变化,如果需要现有的数据请按照现有的步骤进行升级数据 4 | 5 | ## 编译升级工具 6 | 7 | ``` 8 | git clone https://github.com/filecoin-project/venus-market.git 9 | git checkout feat/export_v1_data 10 | 11 | make deps 12 | cd cli/market_export 13 | go build 14 | ``` 15 | 16 | 执行上述步骤后会生成一个工具,这个工具用于导出 v1 版本的数据 17 | 18 | ## 升级步骤 19 | 20 | 1. 停止 venus-market 程序 21 | 22 | 2. 备份 venus-market 数据目录,这个目录默认保存在 ~/.venusmarket. 23 | 24 | 3. 导出 v1 版本的数据 25 | 26 | ```sh 27 | ./market_export --repo export 28 | ``` 29 | 30 | 4. 重新初始化 v2 版本的 venus-market(版本号必须高于 2.0.0 rc2) 31 | 32 | 5. 执行 v2 版本的升级命令,这个命令用于导入步骤 3 中导出的数据。 33 | 34 | ```sh 35 | ./market_export --repo migrate import_v1 36 | ``` 37 | 38 | ***稳妥起见,做升级之前请确保没有处于 (Publish/Publishing/StorageDealAwaitingPreCommit) 状态的订单*** -------------------------------------------------------------------------------- /docs/zh/operation/nv15-upgrade.md: -------------------------------------------------------------------------------- 1 | # nv15 升级指南 2 | 3 | ## 版本信息 4 | 5 | 6 | 1. venus-wallet 7 | 2. venus 8 | 3. lotus 兼容版本 9 | 4. chain-co 10 | 5. messager 11 | 6. venus-gateway 12 | 7. venus-miner 13 | 8. venus-market 14 | 9. venus-sealer 15 | 16 | 17 | ## 升级细节 18 | 1. venus-auth: 可选择升级 19 | 分支:v1.3.2 20 | 影响功能:无 21 | 2. venus:升级 22 | 分支:v1.2.1 23 | 影响功能:支持新网络版本 24 | 注意事项: 25 | 1. 升级后检查 vk 文件是否完整 26 | 2. 升级后检查配置文件,升级高度是否正常设置: 27 | ``` 28 | # cali 29 | "upgradeOhSnapHeight": 682006 30 | # mainnet 31 | "upgradeOhSnapHeight": 1594680 32 | ``` 33 | 3. 升级后检查 mpool 下 maxfee 配置是否由数字转换成 xxFil 形式 34 | ``` 35 | "mpool": { 36 | "maxNonceGap": 100, 37 | "maxFee": "10 FIL" 38 | }, 39 | ``` 40 | 4. 升级后需检查是否正常同步区块 41 | 5. api 版本发生变化,影响 sealer 的连接,升级方式需要按照大升级的方式来处理 42 | 43 | 3. lotus 兼容版本:升级 44 | 分支:venus/v1.14.0 45 | 影响功能:支持新网络版本 46 | 注意事项: 47 | 1. 检查是否正常同步 48 | 2. 检查和 venus-auth 的连接是否完好(curl 命令验证) 49 | 50 | 4. chain-co:升级 51 | 分支:v0.1.0 52 | 注意事项: 53 | 影响功能: 54 | 1. 暴露新的接口MpoolPending/MpoolGetNonce 55 | 2. 升级后检查两个接口是否存在,且能正常工作 56 | 57 | 5. venus-messager:升级 58 | 分支:v1.4.0 59 | 影响功能:仅支持新的网络版本 60 | 注意事项:无 61 | 62 | 6. venus-miner:升级 63 | Tag: v1.4.0 64 | 影响功能: 65 | 1. 计算证明的接口 (ComputeProof) 参数发生变化 66 | 注意事项:无 67 | 68 | 7. venus-gateway:升级 69 | 分支:v1.2.0 70 | 影响功能: 71 | 1. ComputeProof 接口参数发生变化, 72 | 2. 需同时支持新老两组接口 73 | 注意事项: 74 | 1. 升级后需检查是否v0/v1两组接口都在正常工作 75 | 76 | 8. venus-wallet:可选择升级 77 | Tag:v1.4.0 78 | 影响功能:无 79 | 80 | 9. venus-market:可选择升级 81 | 分支:v2.0.0 82 | 影响功能 新版本 83 | 84 | ## 升级顺序 85 | 86 | 1. venus-wallet Tag:v1.4.0 87 | 2. venus v1.2.0 88 | 3. lotus for venuspool venus/v1.14.0 89 | 4. chain-co v0.1.0 90 | 5. venus-messager v1.4.0 91 | 6. venus-gateway v1.2.0 92 | 7. venus-miner Tag:v1.4.0 93 | 8. venus-market v2.0.0 94 | 9. venus-sealer v1.4.0 95 | 96 | ## 升级建议 97 | 98 | 1. 对于还有证明空窗期的用户,选择一个安全的时间来升级。 99 | 2. 对于已经不具备空窗期的用户,最好的办法是在建立一个环境来进行过度。 100 | 3. 建议运行一个备用的兼容版本 lotus 用于备份。 101 | 102 | 103 | 有任何关于升级的问题可以到 disscusion 讨论:https://github.com/filecoin-project/venus/discussions/4688 104 | -------------------------------------------------------------------------------- /docs/zh/operation/nv16-upgrade.md: -------------------------------------------------------------------------------- 1 | ## nv16 各组件升级文档 2 | 3 | ### 时间线 4 | 5 | 升级时间:2022-07-06T14:00:00Z,北京时间是 2022-07-06 22:00:00(周三) 6 | 7 | ### venus-auth 8 | 9 | tag: v1.6.0 10 | 11 | 影响功能:支持多个 miner 共享同一个 token 的功能 12 | 13 | 依赖升级组件:无 14 | 15 | 注意事项: 16 | 17 | 1. 新增加一张 `miners` 表,用于保存 `user` 和 `miner` 的对应关系 18 | 19 | 2. 会把 `users` 表每行数据的 `name` 和 `miner` 字段的值写入到 `miners` 表中的 `user` 和 `miner`字段,检查写入是否有问题,成功日志:migrate from:0, to:1 success;失败日志:migrate from store version:0 failed 20 | 21 | 3. `./venus-auth user miner list ` 可以查看每个用户绑定的 miner 22 | 23 | 4. 使用命令 `./venus-auth user list`列出所有 user,**确保被使用的 user 状态都为 enabled 状态** 24 | 25 | 26 | ### venus 27 | 28 | tag: v1.6.0 29 | 30 | 影响功能:支持 nv16 网络 31 | 32 | 依赖升级组件:无 33 | 34 | 注意事项: 35 | 1. 升级后检查 vk 文件是否完整 36 | 37 | 2. 升级后检查配置文件,升级高度是否正常设置,配置文件默认在 `~/.venus/config.json` : 38 | ``` 39 | # cali 40 | "upgradeSkyrHeight": 1044660 41 | # mainnet 42 | "upgradeSkyrHeight": 1960320 43 | ``` 44 | 45 | 3. 升级后需检查是否正常同步区块 46 | 47 | 4. api 版本发生变化,影响 miner 的连接 48 | 49 | ``` 50 | # 用 curl 命令测试接口 StateGetBeaconEntry、BeaconGetEntry,下面三个 curl 命令返回结果应该一样 51 | curl 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}' 52 | curl 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}' 53 | curl 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}' 54 | ``` 55 | 56 | 5. 检查主网 v8 actors cid,确保与下面输出一样 57 | 58 | ``` 59 | ./venus state actor-cids 60 | 61 | # 顺序可能会不一样 62 | _manifest bafy2bzacebogjbpiemi7npzxchgcjjki3tfxon4ims55obfyfleqntteljsea 63 | account bafk2bzacedudbf7fc5va57t3tmo63snmt3en4iaidv4vo3qlyacbxaa6hlx6y 64 | storagemarket bafk2bzacediohrxkp2fbsl4yj4jlupjdkgsiwqb4zuezvinhdo2j5hrxco62q 65 | storageminer bafk2bzacecgnynvd3tene3bvqoknuspit56canij5bpra6wl4mrq2mxxwriyu 66 | multisig bafk2bzacebhldfjuy4o5v7amrhp5p2gzv2qo5275jut4adnbyp56fxkwy5fag 67 | paymentchannel bafk2bzacebalad3f72wyk7qyilvfjijcwubdspytnyzlrhvn73254gqis44rq 68 | reward bafk2bzacecwzzxlgjiavnc3545cqqil3cmq4hgpvfp2crguxy2pl5ybusfsbe 69 | system bafk2bzacedwq5uppsw7vp55zpj7jdieizirmldceehu6wvombw3ixq2tcq57w 70 | cron bafk2bzacecqb3eolfurehny6yp7tgmapib4ocazo5ilkopjce2c7wc2bcec62 71 | init bafk2bzaceaipvjhoxmtofsnv3aj6gj5ida4afdrxa4ewku2hfipdlxpaektlw 72 | storagepower bafk2bzacebjvqva6ppvysn5xpmiqcdfelwbbcxmghx5ww6hr37cgred6dyrpm 73 | verifiedregistry bafk2bzaceb3zbkjz3auizmoln2unmxep7dyfcmsre64vnqfhdyh7rkqfoxlw4 74 | ``` 75 | 76 | 6. 主网可以通过设置环境变量 `export VENUS_USE_FVM_TO_SYNC_MAINNET_V15=1` 在 nv15 网络使用 fvm 77 | 78 | 7. 若不排查问题,rust 日志级别**不建议**设置为 `trace`,因为会打印较多日志 79 | 80 | 8. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 81 | 82 | 83 | ### venus-messager 84 | 85 | tag:v1.6.0 86 | 87 | 影响功能:支持新的网络版本,新增主目录,默认在 `~/.venus-messager` 88 | 89 | 依赖升级组件: 90 | 91 | 注意事项: 92 | 1. 升级后是否生成主目录 `~/.venus-messager` 93 | 94 | 2. 升级后主目录应包含 `config.toml` 和 `tipset.json`,`config.toml` 应与启动 `messager` 使用的配置文件内容一致,`~/.venus-messager/tipset.json` 是由当前目录中的 `tipset.json` 拷贝而来 95 | 96 | 3. 升级成功后再次重启是读取的配置是`~/.venus-messager/config.toml` 97 | 98 | 4. 能否正常收到消息和推送消息到节点 99 | 100 | 101 | ### venus-miner 102 | 103 | tag: v1.6.0 104 | 105 | 影响功能: 106 | 1. 获取 beacon 的接口名字 由 `BeaconGetEntry` 改为 `StateGetBeaconEntry` 107 | 108 | 依赖升级组件:venus,venus-auth,venus-gateway 109 | 110 | 注意事项: 111 | 1. 升级后常用命令 address state/list/update验证一遍. 112 | 2. 如果用 mysql 数据库,检查下 miner_blocks 表中 parent_key 字段是 varchar(1000) 113 | 114 | 115 | ### venus-gateway 116 | 117 | tag: v1.6.0 118 | 119 | 影响功能:修复没有自动清理超时的请求 120 | 121 | 注意事项: 122 | 123 | 1. 升级后 `wallet` 是否重新注册上来 124 | 125 | 126 | ### venus-market 127 | 128 | tag: v2.2.0 129 | 130 | 影响功能: 131 | 132 | 注意事项: 133 | 134 | 135 | ### venus-wallet 136 | 137 | #### 社区 138 | 139 | tag: v1.6.0 140 | 141 | 影响功能: 142 | 143 | 注意事项: 144 | 145 | 1. 需要解锁钱包 146 | 2. 是否注册到 gateway 147 | -------------------------------------------------------------------------------- /docs/zh/operation/nv17-upgrade.md: -------------------------------------------------------------------------------- 1 | # nv17 各组件升级文档 2 | 3 | 如果 `venus-wallet` 或者 `venus-gateway` 的版本从 `v1.6.x` 升级到 `v1.8.0`,请先阅读 [Venus 组件 v1.7.0 使用注意事项 ](https://github.com/filecoin-project/venus/discussions/5265),注意 `venus-gateway` 和 `venus-wallet`的升级顺序。 4 | 5 | ### 时间线 6 | 7 | 升级时间:2022-11-30T14:00:00Z,北京时间是 2022-11-30 22:00:00 8 | 9 | ### 各组件版本 10 | 11 | * [calibrationnet](https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893446) 12 | * [mainnet](https://github.com/filecoin-project/venus/discussions/5386#discussioncomment-3893449) 13 | 14 | ### venus-auth 15 | 16 | 影响功能: 17 | 18 | 依赖升级组件:无 19 | 20 | 注意事项: 21 | 22 | 1. `miners` 表增加字段 `open_mining`,0 表示不出块,1 表示出块,默认是 1 23 | 24 | 25 | ### venus 26 | 27 | 影响功能:支持 nv17 网络 28 | 29 | 依赖升级组件:无 30 | 31 | 注意事项: 32 | 33 | 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 34 | 35 | 1. 升级后检查 vk 文件是否完整 36 | 37 | 2. 升级后检查配置文件,升级高度是否正常设置,配置文件默认在 `~/.venus/config.json` : 38 | ``` 39 | # cali 40 | "upgradeSkyrHeight": 16800 41 | # mainnet 42 | "upgradeSkyrHeight": 2383680 43 | ``` 44 | 45 | 3. 升级后需检查是否正常同步区块 46 | 47 | 4. 检查主网 v9 actors code,确保与下面输出一样 48 | 49 | ``` 50 | ./venus state actor-cids --network-version 17 51 | 52 | # 顺序可能会不一样 53 | Network Version: 17 54 | Actor Version: 9 55 | Actor CID 56 | reward bafk2bzacebezgbbmcm2gbcqwisus5fjvpj7hhmu5ubd37phuku3hmkfulxm2o 57 | system bafk2bzaceagvlo2jtahj7dloshrmwfulrd6e2izqev32qm46eumf754weec6c 58 | _manifest bafy2bzaceb6j6666h36xnhksu3ww4kxb6e25niayfgkdnifaqi6m6ooc66i6i 59 | storagemarket bafk2bzacec3j7p6gklk64stax5px3xxd7hdtejaepnd4nw7s2adihde6emkcu 60 | multisig bafk2bzacec4va3nmugyqjqrs3lqyr2ij67jhjia5frvx7omnh2isha6abxzya 61 | paymentchannel bafk2bzacebhdvjbjcgupklddfavzef4e4gnkt3xk3rbmgfmk7xhecszhfxeds 62 | storagepower bafk2bzacedsetphfajgne4qy3vdrpyd6ekcmtfs2zkjut4r34cvnuoqemdrtw 63 | verifiedregistry bafk2bzacecf3yodlyudzukumehbuabgqljyhjt5ifiv4vetcfohnvsxzynwga 64 | datacap bafk2bzacebb6uy2ys7tapekmtj7apnjg7oyj4ia5t7tlkvbmwtxwv74lb2pug 65 | account bafk2bzacect2p7urje3pylrrrjy3tngn6yaih4gtzauuatf2jllk3ksgfiw2y 66 | cron bafk2bzacebcec3lffmos3nawm5cvwehssxeqwxixoyyfvejy7viszzsxzyu26 67 | init bafk2bzacebtdq4zyuxk2fzbdkva6kc4mx75mkbfmldplfntayhbl5wkqou33i 68 | storageminer bafk2bzacedyux5hlrildwutvvjdcsvjtwsoc5xnqdjl73ouiukgklekeuyfl4 69 | ``` 70 | 71 | 5. 若不排查问题,rust 日志级别**不建议**设置为 `trace`,因为会打印较多日志 72 | 73 | 6. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 74 | 75 | 76 | ### venus-messager 77 | 78 | 功能: 79 | 80 | 1. 增加对 basefee 的控制,可以对某个地址单独设置 basefee,当链上 basefee 高于限制的 basefee,消息将不会被推送出去 81 | 82 | 依赖升级组件: 83 | 84 | 注意事项: 85 | 86 | 1. 升级后观察消息能否正常上链 87 | 88 | 89 | ### venus-miner 90 | 91 | 影响功能: 92 | 93 | 依赖升级组件: 94 | 95 | 注意事项: 96 | 97 | 1. 从 `1.7.*`升级到`v1.8.0`会自动迁移配置文件,从 `1.6.*` 升级到`v1.8.0`需重新初始化`repo`(init),[参考](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) 98 | 2. 升级后能否正常出块 99 | 100 | 101 | ### venus-gateway 102 | 103 | 影响功能: 104 | 105 | 注意事项: 106 | 107 | 编译:先 `make dist-clean` 再 `make` 108 | 109 | 1. 升级后检查钱包:`./venus-gateway wallet list` 110 | 2. 升级后检查矿工:`./venus-gateway miner list` 111 | 112 | 113 | ### venus-market 114 | 115 | 影响功能: 116 | 117 | 注意事项: 118 | 119 | 编译:先 `make dist-clean` 再 `make` 120 | 121 | ### venus-wallet 122 | 123 | 影响功能: 124 | 125 | 注意事项: 126 | 127 | 1. 启动后需要解锁钱包 128 | 2. 是否注册到 gateway 129 | -------------------------------------------------------------------------------- /docs/zh/operation/nv18-upgrade.md: -------------------------------------------------------------------------------- 1 | ## nv18 各组件升级文档 2 | 3 | 如果 venus 各组件的版本从 `v1.8.x` 升级到 `v1.10.0`,请先阅读 [venus chain-service v1.9.* & venus-market v2.5.* upgrade list / 链服务 v1.9.*和订单服务 v2.5.*升级清单](https://github.com/filecoin-project/venus/discussions/5531),尤其注意 `venus-auth` 和 `venus-market` 的升级,`venus-auth` 升级前需要为每一个矿工都创建一个用户,`venus-market` 的启动方式和配置有较大变动。 4 | 5 | ### 时间线 6 | 7 | 升级时间:2023-03-14T15:14:00Z,北京时间是 2023-03-14 23:14:00 8 | 9 | ### 各组件版本 10 | 11 | * [calibrationnet](https://github.com/filecoin-project/venus/discussions/5649#discussioncomment-4652920) 12 | * [mainnet](https://github.com/filecoin-project/venus/discussions/5649#discussioncomment-4652933) 13 | 14 | 15 | ### venus 16 | 17 | 影响功能:支持 nv18 网络 18 | 19 | 依赖升级组件:无 20 | 21 | 注意事项: 22 | 23 | 1. 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 24 | 25 | 2. 升级后检查 vk 文件是否完整 26 | 27 | 3. 升级后检查配置文件,通过日志检查 `AllowableClockDriftSecs` `UpgradeHyggeHeight` 和 `UpgradeHyggeHeight` 是否正常 : 28 | 29 | ``` 30 | # cali 31 | AllowableClockDriftSecs:1 32 | Eip155ChainID:314159 33 | UpgradeHyggeHeight:322354 34 | # mainnet 35 | AllowableClockDriftSecs:1 36 | Eip155ChainID:314 37 | UpgradeHyggeHeight:2683348 38 | ``` 39 | 40 | 4. 升级后需检查是否正常同步区块 41 | 42 | 5. 检查主网 v10 actors code,确保与下面输出一样 43 | 44 | ``` 45 | ./venus state actor-cids --network-version 18 46 | 47 | # 顺序可能会不一样 48 | Network Version: 18 49 | Actor Version: 10 50 | Actor CID 51 | datacap bafk2bzacealj5uk7wixhvk7l5tnredtelralwnceafqq34nb2lbylhtuyo64u 52 | evm bafk2bzaceahmzdxhqsm7cu2mexusjp6frm7r4kdesvti3etv5evfqboos2j4g 53 | init bafk2bzaced2f5rhir3hbpqbz5ght7ohv2kgj42g5ykxrypuo2opxsup3ykwl6 54 | account bafk2bzaceampw4romta75hyz5p4cqriypmpbgnkxncgxgqn6zptv5lsp2w2bo 55 | ethaccount bafk2bzaceaqoc5zakbhjxn3jljc4lxnthllzunhdor7sxhwgmskvc6drqc3fa 56 | multisig bafk2bzaceduf3hayh63jnl4z2knxv7cnrdenoubni22fxersc4octlwpxpmy4 57 | paymentchannel bafk2bzaceartlg4mrbwgzcwric6mtvyawpbgx2xclo2vj27nna57nxynf3pgc 58 | reward bafk2bzacebnhtaejfjtzymyfmbdrfmo7vgj3zsof6zlucbmkhrvcuotw5dxpq 59 | storagemarket bafk2bzaceclejwjtpu2dhw3qbx6ow7b4pmhwa7ocrbbiqwp36sq5yeg6jz2bc 60 | storageminer bafk2bzaced4h7noksockro7glnssz2jnmo2rpzd7dvnmfs4p24zx3h6gtx47s 61 | verifiedregistry bafk2bzacedfel6edzqpe5oujno7fog4i526go4dtcs6vwrdtbpy2xq6htvcg6 62 | eam bafk2bzacedrpm5gbleh4xkyo2jvs7p5g6f34soa6dpv7ashcdgy676snsum6g 63 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 64 | storagepower bafk2bzacec4ay4crzo73ypmh7o3fjendhbqrxake46bprabw67fvwjz5q6ixq 65 | system bafk2bzacedakk5nofebyup4m7nvx6djksfwhnxzrfuq4oyemhpl4lllaikr64 66 | cron bafk2bzacedcbtsifegiu432m5tysjzkxkmoczxscb6hqpmrr6img7xzdbbs2g 67 | ``` 68 | 69 | 6. 若不排查问题,rust 日志级别**不建议**设置为 `trace`,因为会打印较多日志 70 | 71 | 7. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 72 | 73 | 8. actor 迁移 74 | 75 | ``` 76 | 预迁移高度是升级高度前 60 个高度:2683288 77 | pre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration 78 | migration 开始:STARTING migration 结束:COMPLETED migration 79 | ``` 80 | 81 | 9. 配置变更 82 | 83 | ``` json 84 | # 增加 fevm 相关配置,其中 enableEthRPC 字段用来控制是否启用 ETH RPC,默认是 false 85 | "fevm": { 86 | "enableEthRPC": false, 87 | "ethTxHashMappingLifetimeDays": 0, 88 | "event": { 89 | "enableRealTimeFilterAPI": false, 90 | "enableHistoricFilterAPI": false, 91 | "filterTTL": "24h0m0s", 92 | "maxFilters": 100, 93 | "maxFilterResults": 10000, 94 | "maxFilterHeightRange": 2880, 95 | "databasePath": "" 96 | } 97 | } 98 | 99 | # 增加 allowableClockDriftSecs 字段,默认是 1 100 | "parameters": { 101 | "allowableClockDriftSecs": 1 102 | }, 103 | ``` 104 | 105 | 106 | ### venus-auth 107 | 108 | 影响功能: 109 | 110 | 依赖升级组件:无 111 | 112 | 注意事项: 113 | 114 | 1. 命令行能否正常使用 115 | 116 | 117 | ### venus-messager 118 | 119 | 功能: 120 | 121 | 1. 补充对接口权限的验证 122 | 123 | 依赖升级组件: 124 | 125 | 注意事项: 126 | 127 | 1. 升级后观察能够正常收消息 128 | 129 | 2. 升级后观察消息能否正常上链 130 | 131 | 3. `ReplacedMsg` 更名为 `NonceConflictMsg` 132 | 133 | 134 | ### venus-miner 135 | 136 | 影响功能: 137 | 138 | 依赖升级组件: 139 | 140 | 注意事项: 141 | 142 | 1. 升级后能否正常出块 143 | 144 | 145 | ### venus-gateway 146 | 147 | 影响功能: 148 | 149 | 注意事项: 150 | 151 | 编译:先 `make dist-clean` 再 `make` 152 | 153 | 1. 升级后检查钱包:`./venus-gateway wallet list` 154 | 2. 升级后检查矿工:`./venus-gateway miner list` 155 | 156 | 157 | ### venus-market 158 | 159 | 影响功能: 160 | 161 | 注意事项: 162 | 163 | 编译:先 `make dist-clean` 再 `make` 164 | 165 | 166 | ### venus-wallet 167 | 168 | 影响功能: 169 | 170 | 注意事项: 171 | 172 | 1. 启动后需要解锁钱包 173 | 2. 是否注册到 gateway 174 | 175 | ### venus-sector-manager 176 | 编译:先 `make dist-clean` 再 `make` -------------------------------------------------------------------------------- /docs/zh/operation/nv19-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus 各组件升级文档 2 | 3 | ## 注意事项 4 | 5 | 1. 所有组件全部更换 6 | 2. 更新完通过 curl 命令调用 `Version` 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132 7 | 3. pre/pro消息上链的情况 8 | 4. WD 消息上链的情况 9 | 5. 出块情况是否正常 10 | 6. gas fee 相关设置是否生效 11 | 12 | ## 需要升级的组件 13 | 14 | 组件名|tag|commit 15 | ---|---|--- 16 | venus-auth | v1.11.0 | 0c30588 17 | venus | v1.11.1 | 870f1b4 18 | venus-messager | v1.11.0 | e4c4ab4 19 | venus-gateway | v1.11.1 | 8d7be74 20 | venus-wallet | v1.11.0 | 7afa1eb 21 | venus-miner | v1.11.0 | a30f342 22 | venus-market | v2.7.1 | b920551 23 | venus-sector-manager | v0.6.0-rc3 | 134b502 24 | venus-worker | 无需升级 | - 25 | 26 | 27 | ### 升级顺序 28 | 29 | 1. venus-auth 30 | 2. venus 31 | 3. venus-gateway 32 | 4. venus-messager 33 | 5. venus-miner 34 | 6. venus-market 35 | 7. venus-wallet-pro 36 | 8. venus-sector-manager 37 | 38 | 39 | ### venus-auth 40 | 41 | 影响功能: 42 | 43 | - 其他组件对获取 auth 的服务 44 | 45 | 依赖升级组件:无 46 | 47 | 注意事项: 48 | 49 | - 启动时使用 "--disable-perm-check" ,暂时关闭 auth 接口保护的特性 50 | - 创建 token 之前需要先创建对应的用户 51 | 52 | 备注: 53 | - 新版本的 auth 在启动的时候会自动生成一个名为 "defaultLocalToken" 的 token, 该 token 用于 auth-cli 执行命令时的鉴权 54 | 55 | 56 | ### venus 57 | 58 | 影响功能:无 59 | 60 | 依赖升级组件:venus-auth 61 | 62 | 注意事项: 63 | 64 | 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 65 | 66 | **启动时应带上 flag --auth-token ,或者修改配置文件 api.venusAuthToken 配置项** 67 | 68 | 1. 升级后检查 vk 文件是否完整 69 | 70 | 2. 升级后检查配置文件,通过日志检查 `UpgradeLightningHeight` 和 `UpgradeThunderHeight` 是否正常 : 71 | 72 | ``` 73 | # cali 74 | UpgradeLightningHeight:489094 75 | UpgradeThunderHeight:489094+3120 76 | # mainnet 77 | UpgradeLightningHeight:2809800 78 | UpgradeThunderHeight: 2809800 + 2880*21 = 2870280 79 | ``` 80 | 81 | 3. 升级后需检查是否正常同步区块 82 | 83 | 4. 检查主网 v11 actors code,确保与下面输出一样 84 | 85 | ``` 86 | ./venus state actor-cids --network-version 19 87 | 88 | # 顺序可能会不一样 89 | Network Version: 19 90 | Actor Version: 11 91 | Actor CID 92 | reward bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo 93 | system bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm 94 | eam bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2 95 | cron bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o 96 | datacap bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq 97 | ethaccount bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k 98 | evm bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe 99 | init bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg 100 | multisig bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk 101 | paymentchannel bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo 102 | account bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so 103 | storageminer bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us 104 | storagepower bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4 105 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 106 | verifiedregistry bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a 107 | storagemarket bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m 108 | ``` 109 | 110 | 5. 若不排查问题,rust 日志级别**不建议**设置为 `trace`,因为会打印较多日志 111 | 112 | 6. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 113 | 114 | 7. actor 迁移 115 | 116 | **经测试本次预迁移时间在 80 秒左右,正式迁移时间再 60 秒左右** 117 | 118 | ``` 119 | 预迁移高度是升级高度前 120 个高度:2809800 - 120 = 2809680 120 | pre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration 121 | migration 开始:STARTING migration 结束:COMPLETED migration 122 | ``` 123 | 124 | ### venus-gateway 125 | 126 | 影响功能:无 127 | 128 | 依赖升级组件:venus-auth 129 | 130 | 注意事项: 131 | 132 | - 编译时,需要先 `make dist-clean` 再 `make` 133 | - 启动时,应带上 flag --auth-token ,或者直接在配置中设置配置项:AuthConfig.Token 134 | - 移除 flag:`--disable-address-verify`,**升级时检查启动命令是否还在使用该 flag** 135 | 136 | ### venus-messager 137 | 138 | 影响功能: 139 | - 消息 replace 140 | - list --block 命令 141 | 142 | 依赖升级组件:venus, venus-auth, venus-gateway 143 | 144 | 注意事项: 145 | 146 | - 升级第一次启动时,带上 auth-token flag, 或者先修改配置文件 JWTConfig.Token 配置项 147 | - 升级之后需要观察能否正常接收消息,消息能否正常上链 148 | 149 | 150 | 备注: 151 | - replace fee 系数的最小值 由 1.25 下调 到 1.11 152 | - list blocked 消息的时候,unfill 状态的消息也会作为 blocked 消息被列出来 153 | 154 | 155 | ### venus-miner 156 | 157 | 影响功能: 158 | 159 | - 选消息增加超时机制 160 | 161 | 依赖升级组件:auth, venus, gateway 162 | 163 | 注意事项: 164 | 165 | - 配置文件中 [Auth].[Token] 必须配置,且在 venus-auth 中具有 admin 权限,不要使用`defaultLocalToken`对应的 token,应手动创建一个。 166 | 167 | ### venus-market 168 | 169 | 影响功能: 170 | - 新增和调整部分命令 171 | 依赖升级组件:auth, venus, gateway, messager 172 | 173 | 注意事项: 174 | 175 | - 启动时必须带上 cs-token, 或者修改 配置项 AuthNode.Token 176 | 177 | ### venus-wallet 178 | 179 | 影响功能:无 180 | 181 | 依赖升级组件:gateway 182 | 183 | 注意事项: 184 | - 升级后观察是否正常签名,消息能否正常上链 185 | 186 | ### venus-sector-manger 187 | 188 | 影响功能:fip-0061 wdpost 算法改动 189 | 190 | 依赖升级组件:链服务组件 191 | 192 | 注意事项: 193 | - 编译时,需要先 `make dist-clean` 再 `make` 194 | - wdpost 算法回滚步骤 195 | 1. vsm 切换到 [fip-0061-fallback] https://github.com/ipfs-force-community/venus-cluster/tree/fip-0061-fallback 分支 196 | 197 | --- 198 | 199 | 更新结果验证步骤: 200 | 1. 程序启动正常 201 | 2. pre/pro消息正常上链 202 | 3. 出块正常 203 | 4. WD 上链正常 204 | 5. 算力增长正常 205 | 7. 真实订单检索正常 206 | 8. 数据库各种 gas,生命周期,聚合设置正常 207 | 208 | ### 数据库变更 209 | 210 | 1. [venus-messager 增加对 actor 的配置及相关命令,新增 `actor_cfg` 表](https://github.com/filecoin-project/venus/issues/5558) 211 | 212 | 2. venus-market `storage_deals` 表增加索引:`CREATE INDEX idx_cdpprovider_state ON storage_deals(cdp_provider,state)` 213 | -------------------------------------------------------------------------------- /docs/zh/operation/nv21-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus 各组件升级文档 2 | 3 | ## 注意事项 4 | 5 | 1. 所有组件全部更换 6 | 2. 更新完通过 curl 命令调用 `Version` 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132 7 | 3. pre/pro消息上链的情况 8 | 4. WD消息上链的情况 9 | 5. 出块情况是否正常 10 | 6. gas fee 相关设置是否生效 11 | 12 | 13 | ## 需要升级的组件 14 | 15 | 组件名|tag|commit 16 | ---|---|--- 17 | sophon-auth | v1.14.0 | 7caadbc 18 | venus | v1.14.2 | 9204048 19 | sophon-messager | v1.14.0 | e5f8371 20 | soohon-gateway | v1.14.0 | 1adf038 21 | venus-wallet | v1.14.0 | b478cd0 22 | sophon-miner | v1.14.0 | 9ca976c 23 | droplet | v2.10.0 | 6daf168 24 | damocles-manager | v0.9.2 | f3c5400 25 | damocles-worker | v0.9.2 | f3c5400 26 | 27 | ### 升级顺序 28 | 29 | 1. sophon-auth 30 | 2. venus 31 | 3. soohon-gateway 32 | 4. sophon-messager 33 | 5. sophon-miner 34 | 6. droplet 35 | 7. venus-wallet 36 | 8. damocles-manager 37 | 9. damocles-worker 38 | 39 | 40 | ### sophon-auth 41 | 42 | 影响功能: 43 | 44 | - 其他组件对获取 auth 的服务 45 | 46 | 依赖升级组件: 无 47 | 48 | 注意事项: 49 | 50 | * 启动后能否正常鉴权 51 | 52 | 53 | ### venus 54 | 55 | 影响功能:无 56 | 57 | 依赖升级组件: sophon-auth 58 | 59 | 注意事项: 60 | 61 | 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 62 | **如果 `~/.venus` 存在且需要导入快照,需要先删除 `~/.venus/version` 文件再导入快照** 63 | 64 | ``` 65 | 本次升级 migration(actor迁移)使用的CPU越多,消耗的内存也越多,所以需要限制CPU使用的数量。 66 | 在 venus 中可以通过环境变量(VENUS_MIGRATION_MAX_WORKER_COUN)来控制 migration 使用的CPU数量, 67 | 例子:export VENUS_MIGRATION_MAX_WORKER_COUNT=13。以下是对于不同机器内存时,建议设置 VENUS_MIGRATION_MAX_WORKER_COUNT 的数量: 68 | 69 | 48G VENUS_MIGRATION_MAX_WORKER_COUNT=13 70 | 64G VENUS_MIGRATION_MAX_WORKER_COUNT=18 71 | 96G VENUS_MIGRATION_MAX_WORKER_COUNT=24 72 | ``` 73 | 74 | 1. 升级后检查vk文件是否完整 75 | 76 | 2. 升级后执行命令 `./venus state network-info`,然后检查通过日志检查 UpgradeWatermelonHeight 是否正常: 77 | 78 | ``` 79 | # cali 80 | UpgradeWatermelonHeight: 1013134 81 | # mainnet 82 | UpgradeWatermelonHeight: 3469380 83 | ``` 84 | 85 | 3. 升级后需检查是否正常同步区块 86 | 87 | 4. 检查主网 v12 actors code,确保与下面输出一样 88 | 89 | ``` 90 | ./venus state actor-cids --network-version 21 91 | 92 | # 顺序可能会不一样 93 | Network Version: 21 94 | Actor Version: 12 95 | Actor CID 96 | datacap bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq 97 | ethaccount bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq 98 | reward bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u 99 | verifiedregistry bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q 100 | eam bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe 101 | multisig bafk2bzacecw5lyp3n3t67xdwrmo36h4z7afc3lobmmr6wg55w6yjzg5jhmh42 102 | storagemarket bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4 103 | system bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu 104 | account bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa 105 | cron bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls 106 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 107 | storagepower bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6 108 | evm bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi 109 | init bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms 110 | paymentchannel bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4 111 | storageminer bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6 112 | ``` 113 | 114 | 5. 若不排查问题,rust日志级别**不建议**设置为 `trace`,因为会打印较多日志 115 | 116 | 6. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 117 | 118 | 7. actor 迁移 119 | 120 | **经测试本次预迁移时间在 20-30 分钟,正式迁移时间在 70 秒左右** 121 | 122 | ``` 123 | 预迁移高度是升级高度前 180 个高度: 124 | pre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration 125 | migration 开始:STARTING migration 结束:COMPLETED migration 126 | ``` 127 | 128 | 129 | ### sophon-gateway 130 | 131 | 影响功能:无 132 | 133 | 依赖升级组件: sophon-auth 134 | 135 | 注意事项: 136 | 137 | - 编译时,需要先 `make dist-clean` 再 `make` 138 | 139 | 140 | ### sophon-messager 141 | 142 | 影响功能: 143 | 144 | 依赖升级组件: venus, sophon-auth, soohon-gateway 145 | 146 | 注意事项: 147 | 148 | - 升级之后需要观察能否正常接收消息, 消息能否正常上链 149 | 150 | 151 | ### sophon-miner 152 | 153 | 影响功能: 154 | 155 | 依赖升级组件:auth, venus, gateway 156 | 157 | 注意事项: 158 | 159 | - 配置文件中 [Auth].[Token] 必须配置,且在sophon-auth中具有admin权限,不要使用`defaultLocalToken`对应的token,应手动创建一个. 160 | 161 | 162 | ### droplet 163 | 164 | 影响功能: 165 | 166 | - 支持 v2 版本发单协议 167 | - 支持离线计算 commP 168 | 169 | 170 | 依赖升级组件: auth, venus, gateway, messager 171 | 172 | 注意事项: 173 | 174 | - 升级后能否正常发单和检索 175 | 176 | ### venus-wallet 177 | 178 | 影响功能: 无 179 | 180 | 依赖升级组件: gateway 181 | 182 | 注意事项: 183 | 184 | - 升级后观察是否正常签名,消息能否正常上链 185 | 186 | 187 | ### damocles-manager 188 | 依赖升级组件: 链服务组件 189 | 190 | 注意事项: 191 | - 编译时,需要先 `make dist-clean` 再 `make` 192 | 193 | ### damocles-worker 194 | 依赖升级组件: damocles-manager 195 | 196 | 注意事项: 197 | - 建议等封装完所有的任务之后, 没有正在进行的的封装任务时, 进行程序更新。如果需要再封装进行的过程中进行更新的话,封装线程可能会卡在 `SyntheticPoRepNeeded` 状态。这个时候重置任务的状态为 `PCSubmitted` 即可:`damocles-manager util worker resume PCSubmitted` 198 | - 新的证明类型 SyntheticPoRep 会使用新的证明参数文件。 如果启用 SyntheticPoRep 最好提前准备好新的证明参数,**证明参数有问题可能会导致 SyntheticPoRep 死锁**。 199 | 200 | --- 201 | 202 | 更新结果验证步骤: 203 | 1. 程序启动正常 204 | 2. pre/pro消息正常上链 205 | 3. 出块正常 206 | 4. WD上链正常 207 | 5. 算力增长正常 208 | 7. 真实订单检索正常 209 | 8. 数据库各种gas,生命周期,聚合设置正常 210 | 211 | 212 | ### 数据库变更 213 | 214 | 1. droplet `storage_deals` 表增加 `id` 字段 ==> `ALTER TABLE storage_deals ADD id varchar(128)` 215 | -------------------------------------------------------------------------------- /docs/zh/operation/nv22-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus 各组件升级文档 (持续更新中) 2 | 3 | ## 注意事项 4 | 5 | 1. 所有组件全部更换 6 | 2. 更新完通过 curl 命令调用 `Version` 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132 7 | 3. pre/pro消息上链的情况 8 | 4. WD消息上链的情况 9 | 5. 出块情况是否正常 10 | 6. gas fee 相关设置是否生效 11 | 12 | 13 | ## 需要升级的组件 14 | 15 | 组件名|tag|commit 16 | ---|---|--- 17 | sophon-auth | v1.15.0 | a1e964b 18 | venus | v1.15.1 | 81c99f3 19 | sophon-co | v0.8.0 | 0e48712 20 | sophon-messager | v1.15.0 | 1e4f0d5 21 | soohon-gateway | v1.15.0 | 541891a 22 | venus-wallet | v1.15.0 | 6b3de34 23 | sophon-miner | v1.15.0 | 8dd6c68 24 | droplet | v2.11.0 | 44481dd 25 | damocles-manager | v0.10.0-rc1 | 2f6c5f9 26 | damocles-worker | v0.10.0-rc1 | 2f6c5f9 27 | 28 | ### 升级顺序 29 | 30 | 1. sophon-auth 31 | 2. venus 32 | 3. soohon-co 33 | 4. soohon-gateway 34 | 5. sophon-messager 35 | 6. sophon-miner 36 | 7. droplet 37 | 8. venus-wallet 38 | 9. damocles-manager 39 | 10. damocles-worker 40 | 41 | 42 | ### sophon-auth 43 | 44 | 影响功能: 45 | 46 | - 其他组件对获取 auth 的服务 47 | 48 | 依赖升级组件: 无 49 | 50 | 注意事项: 51 | 52 | * 启动后能否正常鉴权 53 | 54 | ### venus 55 | 56 | 影响功能:无 57 | 58 | 依赖升级组件: sophon-auth 59 | 60 | 注意事项: 61 | 62 | 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 63 | 64 | 65 | 1. 升级后检查vk文件是否完整 66 | 67 | 2. 升级后执行命令 `./venus state network-info`,然后检查通过日志检查 UpgradeDragonHeight 是否正常: 68 | 69 | ``` 70 | # cali 71 | UpgradeDragonHeight: 1427974 72 | # mainnet 73 | UpgradeDragonHeight: 3855360 74 | ``` 75 | 76 | 3. 升级后需检查是否正常同步区块 77 | 78 | 4. 检查主网 v13 actors code,确保与下面输出一样 79 | 80 | ``` 81 | ./venus state actor-cids --network-version 22 82 | 83 | # 顺序可能会不一样 84 | Network Version: 22 85 | Actor Version: 13 86 | Manifest CID: bafy2bzacecdhvfmtirtojwhw2tyciu4jkbpsbk5g53oe24br27oy62sn4dc4e 87 | Actor CID 88 | account bafk2bzacedxnbtlsqdk76fsfmnhyvsblwyfducerwwtp3mqtx2wbrvs5idl52 89 | cron bafk2bzacebbopddyn5csb3fsuhh2an4ttd23x6qnwixgohlirj5ahtcudphyc 90 | datacap bafk2bzaceah42tfnhd7xnztawgf46gbvc3m2gudoxshlba2ucmmo2vy67t7ci 91 | eam bafk2bzaceb23bhvvcjsth7cn7vp3gbaphrutsaz7v6hkls3ogotzs4bnhm4mk 92 | ethaccount bafk2bzaceautge6zhuy6jbj3uldwoxwhpywuon6z3xfvmdbzpbdribc6zzmei 93 | evm bafk2bzacedq6v2lyuhgywhlllwmudfj2zufzcauxcsvvd34m2ek5xr55mvh2q 94 | init bafk2bzacedr4xacm3fts4vilyeiacjr2hpmwzclyzulbdo24lrfxbtau2wbai 95 | multisig bafk2bzacecr5zqarfqak42xqcfeulsxlavcltawsx2fvc7zsjtby6ti4b3wqc 96 | paymentchannel bafk2bzacebntdhfmyc24e7tm52ggx5tnw4i3hrr3jmllsepv3mibez4hywsa2 97 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 98 | reward bafk2bzacedq4q2kwkruu4xm7rkyygumlbw2yt4nimna2ivea4qarvtkohnuwu 99 | storagemarket bafk2bzacebjtoltdviyznpj34hh5qp6u257jnnbjole5rhqfixm7ug3epvrfu 100 | storageminer bafk2bzacebf4rrqyk7gcfggggul6nfpzay7f2ordnkwm7z2wcf4mq6r7i77t2 101 | storagepower bafk2bzacecjy4dkulvxppg3ocbmeixe2wgg6yxoyjxrm4ko2fm3uhpvfvam6e 102 | system bafk2bzacecyf523quuq2kdjfdvyty446z2ounmamtgtgeqnr3ynlu5cqrlt6e 103 | verifiedregistry bafk2bzacedkxehp7y7iyukbcje3wbpqcvufisos6exatkanyrbotoecdkrbta 104 | ``` 105 | 106 | 5. 若不排查问题,rust日志级别**不建议**设置为 `trace`,因为会打印较多日志 107 | 108 | 6. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 109 | 110 | 7. actor 迁移 111 | 112 | **经测试本次预迁移时间在 30 分钟左右,正式迁移时间在 100 秒左右** 113 | 114 | ``` 115 | 预迁移高度是升级高度前 120 个高度: 116 | pre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration 117 | migration 开始:STARTING migration 结束:COMPLETED migration 118 | ``` 119 | 8. 如果 `~/.venus` 存在且需要导入快照,需要先删除 `~/.venus/version` 文件再导入快照 120 | * 主网: `./venus daemon --import-snapshot snapshot.car` 121 | * calibnet: `./venus daemon --import-snapshot snapshot.car --network calibrationnet` 122 | 123 | 124 | ### sophon-gateway 125 | 126 | 影响功能:无 127 | 128 | 依赖升级组件: sophon-auth 129 | 130 | 注意事项: 131 | 132 | - 编译时,需要先 `make dist-clean` 再 `make` 133 | 134 | 135 | ### sophon-messager 136 | 137 | 影响功能: 138 | 139 | 依赖升级组件: venus, sophon-auth, soohon-gateway 140 | 141 | 注意事项: 142 | 143 | - 升级之后需要观察能否正常接收消息, 消息能否正常上链 144 | 145 | 146 | ### sophon-miner 147 | 148 | 影响功能: 149 | 150 | 依赖升级组件:auth, venus, gateway 151 | 152 | 注意事项: 153 | 154 | ### droplet 155 | 156 | 影响功能: 157 | 158 | - 支持 direct data onboarding,使用文档:https://github.com/ipfs-force-community/droplet/blob/master/docs/zh/direct-on-boarding.md 159 | 160 | 161 | 依赖升级组件: auth, venus, gateway, messager 162 | 163 | 注意事项: 164 | 165 | - 升级后能否正常发单和检索 166 | 167 | ### venus-wallet 168 | 169 | 影响功能: 无 170 | 171 | 依赖升级组件: gateway 172 | 173 | 注意事项: 174 | 175 | - 升级后观察是否正常签名,消息能否正常上链 176 | 177 | 178 | ### damocles-manager 179 | 依赖升级组件: 链服务组件 180 | 181 | 注意事项: 182 | - 编译时,需要先 `make dist-clean` 再 `make` 183 | 184 | ### damocles-worker 185 | 依赖升级组件: damocles-manager 186 | 187 | 注意事项: 188 | 189 | --- 190 | 191 | 更新结果验证步骤: 192 | 1. 程序启动正常 193 | 2. pre/pro消息正常上链 194 | 3. 出块正常 195 | 4. WD上链正常 196 | 5. 算力增长正常 197 | 7. 真实订单检索正常 198 | 8. 数据库各种gas,生命周期,聚合设置正常 199 | 200 | 201 | ### 数据库变更 202 | 203 | 1. droplet 增加 direct_deals 表,用于存储 direct 订单。 204 | -------------------------------------------------------------------------------- /docs/zh/operation/nv23-upgrade.md: -------------------------------------------------------------------------------- 1 | # Venus 各组件升级文档 (持续更新中) 2 | 3 | ## 注意事项 4 | 5 | 1. 所有组件全部更换 6 | 2. 更新完通过 curl 命令调用 `Version` 接口检查版本号,各组件接口调用方式:https://github.com/filecoin-project/venus/issues/5132 7 | 3. pre/pro消息上链的情况 8 | 4. WD消息上链的情况 9 | 5. 出块情况是否正常 10 | 6. gas fee 相关设置是否生效 11 | 12 | #### 建议升级之前不要做算力,如果升级前 p2 消息上链但 c2 消息没上链,升级后 c2 消息上链会报错 13 | 14 | ## 需要升级的组件 15 | 16 | 组件名|tag|commit 17 | ---|---|--- 18 | sophon-auth | v1.16.0 | e2340d5 19 | venus | v1.16.0 | 3fdb199 20 | sophon-co | v0.9.0 | 0f344ed 21 | sophon-messager | v1.16.0 | f695806 22 | soohon-gateway | v1.16.0 | 2d32b8e 23 | venus-wallet | v1.16.0 | 48b1e02 24 | sophon-miner | v1.16.0 | 500c186 25 | droplet | v2.12.0 | deec963 26 | damocles-manager | v0.11.0 | 7d06bd4 27 | damocles-worker | v0.11.0 | 7d06bd4 28 | 29 | ### 升级顺序 30 | 31 | 1. sophon-auth 32 | 2. venus 33 | 3. soohon-co 34 | 4. soohon-gateway 35 | 5. sophon-messager 36 | 6. sophon-miner 37 | 7. droplet 38 | 8. venus-wallet 39 | 9. damocles-manager 40 | 10. damocles-worker 41 | 42 | 43 | ### sophon-auth 44 | 45 | 影响功能: 46 | 47 | - 其他组件对获取 auth 的服务 48 | 49 | 依赖升级组件: 无 50 | 51 | 注意事项: 52 | 53 | * 启动后能否正常鉴权 54 | 55 | ### venus 56 | 57 | 影响功能:无 58 | 59 | 依赖升级组件: sophon-auth 60 | 61 | 注意事项: 62 | 63 | 编译:先 `make dist-clean` 再 `make`,这样可以防止未能正常升级 `filecoin-ffi` 而带来的问题 64 | 65 | 66 | 1. 升级后检查vk文件是否完整 67 | 68 | 2. 升级后执行命令 `./venus state network-info`,然后检查通过日志检查 UpgradeWaffleHeight 是否正常: 69 | 70 | ``` 71 | # cali 72 | UpgradeWaffleHeight: 1779094 73 | # mainnet 74 | UpgradeWaffleHeight: 4154640 75 | ``` 76 | 77 | 3. 升级后需检查是否正常同步区块 78 | 79 | 4. 检查主网 v14 actors code,确保与下面输出一样 80 | 81 | ``` 82 | ./venus state actor-cids --network-version 23 83 | 84 | # 顺序可能会不一样 85 | Network Version: 23 86 | Actor Version: 14 87 | Manifest CID: bafy2bzacecbueuzsropvqawsri27owo7isa5gp2qtluhrfsto2qg7wpgxnkba 88 | Actor CID 89 | account bafk2bzacebr7ik7lng7vysm754mu5x7sakphwm4soqi6zwbox4ukpd6ndwvqy 90 | cron bafk2bzacecwn6eiwa7ysimmk6i57i5whj4cqzwijx3xdlxwb5canmweaez6xc 91 | datacap bafk2bzacecidw7ajvtjhmygqs2yxhmuybyvtwp25dxpblvdxxo7u4gqfzirjg 92 | eam bafk2bzaced2cxnfwngpcubg63h7zk4y5hjwwuhfjxrh43xozax2u6u2woweju 93 | ethaccount bafk2bzacechu4u7asol5mpcsr6fo6jeaeltvayj5bllupyiux7tcynsxby7ko 94 | evm bafk2bzacedupohbgwrcw5ztbbsvrpqyybnokr4ylegmk7hrbt3ueeykua6zxw 95 | init bafk2bzacecbbcshenkb6z2v4irsudv7tyklfgphhizhghix6ke5gpl4r5f2b6 96 | multisig bafk2bzaceajcmsngu3f2chk2y7nanlen5xlftzatytzm6hxwiiw5i5nz36bfc 97 | paymentchannel bafk2bzaceavslp27u3f4zwjq45rlg6assj6cqod7r5f6wfwkptlpi6j4qkmne 98 | placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro 99 | reward bafk2bzacedvfnjittwrkhoar6n5xrykowg2e6rpur4poh2m572f7m7evyx4lc 100 | storagemarket bafk2bzaceaju5wobednmornvdqcyi6khkvdttkru4dqduqicrdmohlwfddwhg 101 | storageminer bafk2bzacea3f43rxzemmakjpktq2ukayngean3oo2de5cdxlg2wsyn53wmepc 102 | storagepower bafk2bzacedo6scxizooytn53wjwg2ooiawnj4fsoylcadnp7mhgzluuckjl42 103 | system bafk2bzacecak4ow7tmauku42s3u2yydonk4hx6ov6ov542hy7lcbji3nhrrhs 104 | verifiedregistry bafk2bzacebvyzjzmvmjvpypphqsumpy6rzxuugnehgum7grc6sv3yqxzrshb4 105 | ``` 106 | 107 | 5. 若不排查问题,rust日志级别**不建议**设置为 `trace`,因为会打印较多日志 108 | 109 | 6. 升级后可以通过命令来 `./venus state get-actor t01000` 来确认是否升级成功 110 | 111 | 7. actor 迁移 112 | 113 | **经测试本次预迁移时间在1分钟左右,正式迁移时间在50秒左右** 114 | 115 | ``` 116 | 预迁移高度是升级高度前 120 个高度: 117 | pre-migration 开始:STARTING pre-migration 结束:COMPLETED pre-migration 118 | migration 开始:STARTING migration 结束:COMPLETED migration 119 | ``` 120 | 8. 如果 `~/.venus` 存在且需要导入快照,需要先删除 `~/.venus/version` 文件再导入快照 121 | * 主网: `./venus daemon --import-snapshot snapshot.car` 122 | * calibnet: `./venus daemon --import-snapshot snapshot.car --network calibrationnet` 123 | 124 | 125 | ### sophon-gateway 126 | 127 | 影响功能:无 128 | 129 | 依赖升级组件: sophon-auth 130 | 131 | 注意事项: 132 | 133 | - 编译时,需要先 `make dist-clean` 再 `make` 134 | 135 | 136 | ### sophon-messager 137 | 138 | 影响功能: 139 | 140 | 依赖升级组件: venus, sophon-auth, soohon-gateway 141 | 142 | 注意事项: 143 | 144 | - 升级之后需要观察能否正常接收消息, 消息能否正常上链 145 | 146 | 147 | ### sophon-miner 148 | 149 | 影响功能: 150 | 151 | 依赖升级组件:auth, venus, gateway 152 | 153 | 注意事项: 154 | 155 | ### droplet 156 | 157 | 影响功能: 158 | 159 | - 无 160 | 161 | 162 | 依赖升级组件: auth, venus, gateway, messager 163 | 164 | 注意事项: 165 | 166 | - 升级后能否正常发单和检索 167 | 168 | ### venus-wallet 169 | 170 | 影响功能: 无 171 | 172 | 依赖升级组件: gateway 173 | 174 | 注意事项: 175 | 176 | - 升级后观察是否正常签名,消息能否正常上链 177 | 178 | 179 | ### damocles-manager 180 | 依赖升级组件: 链服务组件 181 | 182 | 注意事项: 183 | - 编译时,需要先 `make dist-clean` 再 `make` 184 | 185 | ### damocles-worker 186 | 依赖升级组件: damocles-manager 187 | 188 | 注意事项: 189 | 190 | --- 191 | 192 | 更新结果验证步骤: 193 | 1. 程序启动正常 194 | 2. pre/pro消息正常上链 195 | 3. 出块正常 196 | 4. WD上链正常 197 | 5. 算力增长正常 198 | 7. 真实订单检索正常 199 | 8. 数据库各种gas,生命周期,聚合设置正常 200 | 201 | 202 | ### 数据库变更 203 | 204 | 无 205 | -------------------------------------------------------------------------------- /docs/zh/operation/prometheus-instruction.md: -------------------------------------------------------------------------------- 1 | # prometheus 使用说明 2 | 3 | 本文主要介绍 `prometheus` 的基本部署,及用其监控 `venus` 系统指标的基本方案。 4 | 5 | ## 配置解析 6 | 7 | 默认的配置文件为 `prometheus.yml` 8 | ```yaml 9 | # my global config 10 | global: 11 | scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. 12 | evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. 13 | # scrape_timeout is set to the global default (10s). 14 | 15 | # Alertmanager configuration 16 | alerting: 17 | alertmanagers: 18 | - static_configs: 19 | - targets: 20 | # - alertmanager:9093 21 | 22 | # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. 23 | rule_files: 24 | # - "first_rules.yml" 25 | # - "second_rules.yml" 26 | 27 | # A scrape configuration containing exactly one endpoint to scrape: 28 | # Here it's Prometheus itself. 29 | scrape_configs: 30 | # The job name is added as a label `job=` to any timeseries scraped from this config. 31 | - job_name: "prometheus" 32 | 33 | # metrics_path defaults to '/metrics' 34 | # scheme defaults to 'http'. 35 | 36 | static_configs: 37 | - targets: ["localhost:9090"] 38 | 39 | # 配置采集点,一个 job 可对应一个或多个采集点 40 | - job_name: "venus" 41 | 42 | metrics_path: "/metrics" 43 | scheme: "http" 44 | 45 | static_configs: 46 | - targets: ["localhost:4567", "localhost:5678"] 47 | ``` 48 | 49 | ### 服务发现 50 | 51 | 可以通过额外的文件来配置采集点,支持热加载,相当于基于文件的服务发现。 52 | 53 | `prometheus.yml` 54 | ```yaml 55 | scrape_configs: 56 | # The job name is added as a label `job=` to any timeseries scraped from this config. 57 | - job_name: "prometheus" 58 | 59 | # metrics_path defaults to '/metrics' 60 | # scheme defaults to 'http'. 61 | 62 | static_configs: 63 | - targets: ["localhost:9090"] 64 | 65 | # 热加载 66 | - job_name: "venus" 67 | 68 | file_sd_configs: 69 | - files: 70 | - "./venus.yml" 71 | 72 | # 多久重新加载 73 | refresh_interval: 10m 74 | ``` 75 | 76 | `venus` 每个实现指标监控的服务可以认为是单独的采集点。下面配置采集 `venus-miner` 和 `venus-messager` 的监控指标。文件名为 `venus.yml`。 77 | 78 | ```yaml 79 | # 该文件中的每一个 targets 都是一个采集点 80 | - targets: 81 | # venus-miner 指标监控服务地址 82 | - ":" 83 | labels: 84 | __metrics_path__: "/debug/metrics" 85 | instance: "miner" 86 | 87 | - targets: 88 | # venus-messager 指标监控服务地址 89 | - ":" 90 | labels: 91 | __metrics_path__: "/debug/metrics" 92 | instance: "messager" 93 | ``` 94 | 95 | ## 启动 96 | ```bash 97 | $ ./prometheus --config.file=prometheus.yml 98 | ``` 99 | 使用`http://localhost:9090/targets`, 可查询组件的指标。 100 | 101 | 102 | -------------------------------------------------------------------------------- /docs/zh/operation/troubleshoot-consensus-fault.md: -------------------------------------------------------------------------------- 1 | ## Venus Tipset Execution trace 比较工具使用说明 2 | 3 | execution-trace 比较工具是用于当 venus 链同步发生共识错误导致同步异常时, 4 | 用于快速定位不一致的消息及其执行细节,帮助精准定位问题。 5 | 6 | ### 原理 7 | 此工具通过 API 接口在 lotus 和 venus 上执行整个 tipset 中的消息,并获取所有的 execution-trace 进行比较, 8 | 通常共识错误发生时,execution-traced 的细节也是不一致的。 9 | 10 | ### 操作步骤: 11 | 12 | #### 编译 lotus,并启动 13 | 在原力区维护的 lotus, v1.12.0/incubation 分支上,支持了相关接口, 14 | 编译时添加`ENABLE_GAS_TARCE=1` 15 | ```shell 16 | git clone https://github.com/ipfs-force-community/lotus.git 17 | git checkout -b v1.12.0/incubation oriign/v1.12.0/incubation 18 | make lotus ENABLE_GAS_TRACE=1 19 | ``` 20 | 21 | #### 获取 execution-trace 分析工具 22 | ```shell 23 | git clone https://github.com/zl03jsj/filecoin-head-comparer.git 24 | ``` 25 | 26 | #### 配置 execution-trace 分析工具 27 | 在项目的跟目录下打开配置文件`./cfg_exec_trace.json` 28 | 编辑配置 venus 和 lotus 的节点信息: 29 | ```json 30 | { 31 | "lotus": { 32 | "url": "http://192.168.200.21:1234/rpc/v0", 33 | "token": "" 34 | }, 35 | "venus": { 36 | "url": "http://192.168.1.125:3453/rpc/v0", 37 | "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJyZWFkIiwid3JpdGUiLCJzaWduIiwiYWRtaW4iXX0.oLkKAMWEiUA6oK-stwd3Spiwrx9TlGOuVFgrgn7JPwU" 38 | } 39 | } 40 | ``` 41 | 42 | #### 启动 execution-trace 工具开始问题检测 43 | 由于共识问题,导致链同步时问题时,通过日志,很容易就可以定位有问题的 tipset epoch, 44 | 在根目录执行命令,在参数中指定高度,就可以对指定的 tipset 进行分析比较了。 45 | 46 | ```shell 47 | python3 ./exec_trace_cmp.py 1288233 48 | venus url:http://192.168.1.125:3453/rpc/v0 49 | lotus url:http://192.168.200.21:1234/rpc/v0 50 | 51 | Venus and lotus got the same state root(bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs) after apply tipset(1288233) 52 | 53 | start compile tipset(1288233) traces 54 | venus total message count(contain implicit)= 481 55 | lotus total message count(contain implicit)= 481 56 | 57 | idx: 0, Compare msg(bafy2bzacebo67zpnnaqb4jzz3peflh6mu3hczu7isd4yxkymvlao5li6lrqwi) stateAfterApply: bafy2bzaceaijdjyg263zawvczt3alkciu2ptrzv3pftu434gvxjujqmam2nxe execution-traces: ok 58 | idx: 1, Compare msg(bafy2bzaceavrkj7coojud5amhn2ukrhrkntaxk6r7esnilldbjocia7ut7jzw) stateAfterApply: bafy2bzacedus5agquqptf3o3yy3cylg7j2jb2sil24clvtyff4vcoedzxdaha execution-traces: ok 59 | idx: 2, Compare msg(bafy2bzaceaadqo5lv75q7qvsbgx3prm5oh7nqfz6volerwleyt65jizhcyxqa) stateAfterApply: bafy2bzacebkdqv25av4bjabifpe2vye74j73ou62le3hztyx33pxy254cul5u execution-traces: ok 60 | idx: 3, Compare msg(bafy2bzacebrmjo2ahojpjj5rvdd6fxqvtgntoovvb722o25dmwmlub4u6icdw) stateAfterApply: bafy2bzacebzez4rvo4yteqjtsdmwmaqpz7vadepdoikbaqcvnzqnhkuhkzt5y execution-traces: ok 61 | idx: 4, Compare msg(bafy2bzaceapwk7p5c7gy35buhy6mqs42rv36kxvczca3siwl6h2evufsld5b6) stateAfterApply: bafy2bzaceahpmfeq46nagmbzpvjnabrsem2zjrvcy77cxldaf43aniclduqik execution-traces: ok 62 | idx: 5, Compare msg(bafy2bzacecdl2zt4bd4nwhxnehlqejtlikvqwztnk3leil54dsmnx6koz42zu) stateAfterApply: bafy2bzacec7uk7o6rbnxdwyluvlm3fsposlvangkqdaj5fargbwlbwws4ezuo execution-traces: ok 63 | idx: 6, Compare msg(bafy2bzaceakhot2tzgn4zt3nr6aokq2brcity2eh2d67gc2iqrpswlgch5ng6) stateAfterApply: bafy2bzacea3n7ku4epbmqq2ecebmgifpb26etb2hrww4ryqmhiumzwpsvf7es execution-traces: ok 64 | idx: 7, Compare msg(bafy2bzacecc5zqh2fm55hno66f56pqji5245huk45xqpxzt7b5hz63o7nh622) stateAfterApply: bafy2bzaceb223qjyqk53zic5th7npzik3redyvy723egt47dsgwlshmaksqr6 execution-traces: ok 65 | idx: 8, Compare msg(bafy2bzacedoohork3gnnzfvv5kme3gqfxrygw4otcwh5lklfbdz3mxy2evinq) stateAfterApply: bafy2bzacea6ks7weiqy65m6m426dvihljvapmbts6cdlu6ytirrpveupvoj2y execution-traces: ok 66 | idx: 9, Compare msg(bafy2bzacecivu4pfhvvdiwfk23ntidy2aein2y646uzrt4hotve46mejtgjsa) stateAfterApply: bafy2bzaceaqjbks2bjmdal6tu7yoxrecygrcn2s2pmwxwkukzj23p5lsjms2s execution-traces: ok 67 | idx: 10, Compare msg(bafy2bzacecn6mfxfspglrrwu26uvj3fcirbz2femaeyv7f63vh7ochrwt76ay) stateAfterApply: bafy2bzacec5rnu4a6xunucqpvks5eujn5t3cywpqwieoirex25mgycucbesky execution-traces: ok 68 | idx: 11, Compare msg(bafy2bzacebvxwcnorwmplriluvus6jjvqvfcknkn44lzf37ptbe5oeiwpt3vu) stateAfterApply: bafy2bzaceaobqsuortebd4nujtqinnwnc7dgs44majmnnkdtt4dqow3wyxah2 execution-traces: ok 69 | idx: 12, Compare msg(bafy2bzacear7yqpsjwvz5cofocunlyesh3q43ppvqgcs5pcnbsjmxqd4gbmtm) stateAfterApply: bafy2bzacecxjuehhuu2hadecr4avab4qwyy5nenyilbftuuppdoxmohj7emjs execution-traces: ok 70 | idx: 13, Compare msg(bafy2bzacedqliipes5nh74aeyy3wbn4md6t33kkgqx7m2ukke7qvajp2lrbkw) stateAfterApply: bafy2bzaceb37mvzapylc67d3vtz5fcbusziz2bofdicwny6zehonlkd3zwhus execution-traces: ok 71 | idx: 14, Compare msg(bafy2bzaceas2brzrd3qhto26hfdi7diouff3yzemsvje5yyv66st3vgqzbjcg) stateAfterApply: bafy2bzacec27fdotcosdnj423naofdqczrykexqblhvu3iey4eptaublp4aeq execution-traces: ok 72 | idx: 15, Compare msg(bafy2bzacebuyl637qzpqzw46jossgq4tef6j7bh62ec237mghrx4yj4ltu6h6) stateAfterApply: bafy2bzacec3hijr5nvasludlrpa37muy4o64326tofzii7hop4zxynao3oquc execution-traces: ok 73 | idx: 16, Compare msg(bafy2bzaceagr3ucrm3exnpnm62sq6qrpnyjb74u257by2i52axnqjtvsy5t5m) stateAfterApply: bafy2bzacecbhtzedpwlpdr7imuv7j47rsbj3vsilibcp5j6ocrtqr4qiekp7s execution-traces: ok 74 | idx: 17, Compare msg(bafy2bzacedqpta5vr5ha4wvezsenbu7qczhctnwndu2yiclgp52ienbk6oljk) stateAfterApply: bafy2bzacedblssnkunnlr2zl3rji5457mlgtc2oxunc6q37swqygtopu47eck execution-traces: ok 75 | idx: 18, Compare msg(bafy2bzaceduw75wrsj6fdokywn4mm72hzvsfk74i2bu7zjmvmvntmupztsa62) stateAfterApply: bafy2bzaceapkogzfoym2n4q6mwnjfvkiqp2ff5ueampjxa2o3htjy2sknq4hm execution-traces: ok 76 | idx: 19, Compare msg(bafy2bzacea4eoihdgbaui4rchhz66pk5ybeeyyv63qtnb3zbednp5p6m7prtq) stateAfterApply: bafy2bzacebqhutaiusljv4cgwh235cyvd3mrwbruypz7utk7tmwjf5esxekjq execution-traces: ok 77 | idx: 20, Compare msg(bafy2bzaceatyz5v6cxbnb7lw4zrw574aogec4aaeaxy2rwzs3fvr2qnvvoc6g) stateAfterApply: bafy2bzaceczfrg57g4fhmxugaf53s3h7a3hgqyziv5h6ztq7jdsinuaickr6c execution-traces: ok 78 | ....................................... 79 | ``` 80 | 81 | 当执行一致时,会看到下面的输出。 82 | ``` 83 | Venus and lotus got the same state root(bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs) after apply tipset(1288233) 84 | ``` 85 | 86 | 当执行不一致是,会看到如下的输出 87 | ```shell 88 | .... 89 | idx:477, Compare msg(bafy2bzaceclyunwu6ig3pvwurm34vxengjc33igcax3rxmmazo4ypevkcc4xg) stateAfterApply: bafy2bzacebmfzfvdp7x6fg7yk7i7p7gbvu56afosgbxyju6236b4ytpllv2tg execution-traces: ok 90 | idx:478, Compare msg(bafy2bzaceaftdrisbrnb2yppgx37dahsp4ko23l47wsfg7g6gczx6czmtdvoa) stateAfterApply: bafy2bzaceaj3jyduelozrbaggwu2v5mokmbds67ouh5s6gdajneqrp6pdbxem execution-traces: ok 91 | -> this is a cron message: <- 92 | implicit message(f00 -> f03, method : 2, nonce:1288233) 93 | idx:479, Compare msg({'/': 'bafy2bzacedqbx4tfp7qwpe7oylrwueiye4ipfx6ii7f2p4r5w55thwayci44q'}) stateAfterApply: bafy2bzacea2o5ylrpovsg6f3bvufgolcd6z46kxgfohzp3c27gendhpirug5i execution-traces: ok 94 | -> this is a cron message: <- 95 | 96 | message trace(283) not equals: 97 | message details : cid:{'/': 'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'}, from:f00, to:f03, nonce:1288233 98 | -----> lotus_trace:--------------- 99 | { 100 | "Name": "OnMethodInvocation", 101 | "loc": [ 102 | { 103 | "File": "/root/theduan/lotus-src/chain/vm/vm.go", 104 | "Line": 333, 105 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*VM).send.func3" 106 | }, 107 | { 108 | "File": "/root/theduan/lotus-src/chain/vm/vm.go", 109 | "Line": 354, 110 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*VM).send" 111 | }, 112 | { 113 | "File": "/root/theduan/lotus-src/chain/vm/runtime.go", 114 | "Line": 445, 115 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*Runtime).internalSend" 116 | }, 117 | { 118 | "File": "/root/theduan/lotus-src/chain/vm/runtime.go", 119 | "Line": 402, 120 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*Runtime).Send" 121 | }, 122 | { 123 | "File": "/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go", 124 | "Line": 450, 125 | "Function": "github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.processBatchProofVerifies" 126 | }, 127 | { 128 | "File": "/root/go/pkg/mod/github.com/filecoin-project/specs-actors/v6@v6.0.0/actors/builtin/power/power_actor.go", 129 | "Line": 222, 130 | "Function": "github.com/filecoin-project/specs-actors/v6/actors/builtin/power.Actor.OnEpochTickEnd" 131 | }, 132 | { 133 | "File": "/usr/lib/go/src/reflect/value.go", 134 | "Line": 543, 135 | "Function": "reflect.Value.call" 136 | }, 137 | { 138 | "File": "/usr/lib/go/src/reflect/value.go", 139 | "Line": 339, 140 | "Function": "reflect.Value.Call" 141 | }, 142 | { 143 | "File": "/root/theduan/lotus-src/chain/vm/invoker.go", 144 | "Line": 247, 145 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*ActorRegistry).transform.func2.1" 146 | }, 147 | { 148 | "File": "/root/theduan/lotus-src/chain/vm/runtime.go", 149 | "Line": 171, 150 | "Function": "github.com/filecoin-project/lotus/chain/vm.(*Runtime).shimCall" 151 | } 152 | ], 153 | "tg": 23856, 154 | "cg": 23856, 155 | "sg": 0, 156 | "vtg": 23856, 157 | "vcg": 23856, 158 | "vsg": 0, 159 | "tt": 2830, 160 | "ex": "i" 161 | } 162 | -----> venus_trace:--------------- 163 | { 164 | "Name": "OnVerifySeal", 165 | "loc": [ 166 | { 167 | "File": "/home/zl/venus-src/pkg/vm/vmcontext/syscalls.go", 168 | "Line": 106, 169 | "Function": "github.com/filecoin-project/venus/pkg/vm/vmcontext.syscalls.BatchVerifySeals.func1" 170 | }, 171 | { 172 | "File": "/root/go/src/runtime/asm_amd64.s", 173 | "Line": 1371, 174 | "Function": "runtime.goexit" 175 | } 176 | ], 177 | "tg": 2000, 178 | "cg": 2000, 179 | "sg": 0, 180 | "vtg": 0, 181 | "vcg": 2000, 182 | "vsg": 0, 183 | "tt": 0 184 | } 185 | 186 | implicit message(f00 -> f03, method : 2, nonce:1288233) 187 | idx:480, Compare msg({'/': 'bafy2bzacebka5xwpzelt4cl5pa452k3oi45mbcy7pyrlc3om7sfnul4cz7dcu'}) stateAfterApply: bafy2bzacebhpihnow4fwuebtxenpl27kvl4k7aeozlsruwcdj3berrposkfgs execution-traces: failed 188 | ``` 189 | 190 | 程序会打印出不同的 execution-trace 的消息,以及不匹配的调用堆栈,可以方便快速定位问题。 191 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "start": "yarn docs:dev", 4 | "predownload": "node ./script/download.js", 5 | "docs:dev": "npx vuepress dev docs", 6 | "docs:build": "npx vuepress build docs", 7 | "docs:links": "npx vuepress check-md docs", 8 | "docs:build-for-github": "npm config set unsafe-perm true && npx vuepress build docs" 9 | }, 10 | "devDependencies": { 11 | "@vuepress/plugin-back-to-top": "^1.0.0-rc.1", 12 | "@vuepress/plugin-google-analytics": "^1.8.2", 13 | "@vuepress/plugin-medium-zoom": "^1.0.0-rc.1", 14 | "@vuepress/plugin-nprogress": "^1.0.0-rc.1", 15 | "markdown-it-container": "^2.0.0", 16 | "markdown-it-deflist": "^2.0.3", 17 | "markdown-it-footnote": "^3.0.2", 18 | "markdown-it-task-lists": "^2.1.1", 19 | "moment": "^2.24.0", 20 | "vuepress": "^1.7.1", 21 | "vuepress-plugin-fulltext-search": "^2.2.1" 22 | }, 23 | "dependencies": { 24 | "axios": "^1.1.3", 25 | "cryptiles": "4.1.2", 26 | "hoek": "4.2.1", 27 | "markdown-it": "^8.4.2", 28 | "markdown-it-emoji": "^1.4.0", 29 | "npm": "6.14.6", 30 | "npx": "^10.2.2", 31 | "vuepress-plugin-check-md": "^0.0.2", 32 | "vuepress-plugin-code-copy": "^1.0.6", 33 | "yargs-parser": "13.1.2" 34 | }, 35 | "version": "0.0.0" 36 | } 37 | -------------------------------------------------------------------------------- /script/docker/common/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $VENUS_COMPONENT == venus-miner ]; 4 | then 5 | echo "EXEC: venus-miner $@ && venus-miner run \n\n" 6 | venus-miner $@ 7 | venus-miner run 8 | else 9 | echo "EXEC: $VENUS_COMPONENT $@ \n\n" 10 | $VENUS_COMPONENT $@ 11 | fi 12 | -------------------------------------------------------------------------------- /script/docker/common/install_mod.sh: -------------------------------------------------------------------------------- 1 | #! bash 2 | # this script is used to pre download and install golang dependencies from source repos 3 | 4 | # go env -w GOPROXY=https://goproxy.io,direct 5 | 6 | repos=(\ 7 | https://github.com/filecoin-project/venus.git \ 8 | https://github.com/filecoin-project/venus-messager.git \ 9 | https://github.com/ipfs-force-community/venus-gateway.git \ 10 | https://github.com/filecoin-project/venus-auth.git \ 11 | https://github.com/filecoin-project/venus-miner.git \ 12 | https://github.com/filecoin-project/venus-wallet.git \ 13 | https://github.com/filecoin-project/venus-market.git \ 14 | ) 15 | 16 | mkdir -p /gomod/ 17 | cd /gomod/ 18 | 19 | function checkout { 20 | git clone $1 --depth 1 21 | } 22 | 23 | for repo in ${repos[@]} 24 | do checkout $repo --depth 1 25 | done 26 | 27 | for directory in $(ls) 28 | do 29 | if [ -d $directory ] 30 | then 31 | cd $directory 32 | go mod download -x 33 | cd .. 34 | echo $directory 35 | fi 36 | done 37 | 38 | rm -rf /gomod 39 | -------------------------------------------------------------------------------- /script/docker/common/wait-for-it.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Use this script to test if a given TCP host/port are available 3 | 4 | WAITFORIT_cmdname=${0##*/} 5 | 6 | echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } 7 | 8 | usage() 9 | { 10 | cat << USAGE >&2 11 | Usage: 12 | $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args] 13 | -h HOST | --host=HOST Host or IP under test 14 | -p PORT | --port=PORT TCP port under test 15 | Alternatively, you specify the host and port as host:port 16 | -s | --strict Only execute subcommand if the test succeeds 17 | -q | --quiet Don't output any status messages 18 | -t TIMEOUT | --timeout=TIMEOUT 19 | Timeout in seconds, zero for no timeout 20 | -- COMMAND ARGS Execute command with args after the test finishes 21 | USAGE 22 | exit 1 23 | } 24 | 25 | wait_for() 26 | { 27 | if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then 28 | echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" 29 | else 30 | echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" 31 | fi 32 | WAITFORIT_start_ts=$(date +%s) 33 | while : 34 | do 35 | if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then 36 | nc -z $WAITFORIT_HOST $WAITFORIT_PORT 37 | WAITFORIT_result=$? 38 | else 39 | (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 40 | WAITFORIT_result=$? 41 | fi 42 | if [[ $WAITFORIT_result -eq 0 ]]; then 43 | WAITFORIT_end_ts=$(date +%s) 44 | echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" 45 | break 46 | fi 47 | sleep 1 48 | done 49 | return $WAITFORIT_result 50 | } 51 | 52 | wait_for_wrapper() 53 | { 54 | # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 55 | if [[ $WAITFORIT_QUIET -eq 1 ]]; then 56 | timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & 57 | else 58 | timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & 59 | fi 60 | WAITFORIT_PID=$! 61 | trap "kill -INT -$WAITFORIT_PID" INT 62 | wait $WAITFORIT_PID 63 | WAITFORIT_RESULT=$? 64 | if [[ $WAITFORIT_RESULT -ne 0 ]]; then 65 | echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" 66 | fi 67 | return $WAITFORIT_RESULT 68 | } 69 | 70 | # process arguments 71 | while [[ $# -gt 0 ]] 72 | do 73 | case "$1" in 74 | *:* ) 75 | WAITFORIT_hostport=(${1//:/ }) 76 | WAITFORIT_HOST=${WAITFORIT_hostport[0]} 77 | WAITFORIT_PORT=${WAITFORIT_hostport[1]} 78 | shift 1 79 | ;; 80 | --child) 81 | WAITFORIT_CHILD=1 82 | shift 1 83 | ;; 84 | -q | --quiet) 85 | WAITFORIT_QUIET=1 86 | shift 1 87 | ;; 88 | -s | --strict) 89 | WAITFORIT_STRICT=1 90 | shift 1 91 | ;; 92 | -h) 93 | WAITFORIT_HOST="$2" 94 | if [[ $WAITFORIT_HOST == "" ]]; then break; fi 95 | shift 2 96 | ;; 97 | --host=*) 98 | WAITFORIT_HOST="${1#*=}" 99 | shift 1 100 | ;; 101 | -p) 102 | WAITFORIT_PORT="$2" 103 | if [[ $WAITFORIT_PORT == "" ]]; then break; fi 104 | shift 2 105 | ;; 106 | --port=*) 107 | WAITFORIT_PORT="${1#*=}" 108 | shift 1 109 | ;; 110 | -t) 111 | WAITFORIT_TIMEOUT="$2" 112 | if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi 113 | shift 2 114 | ;; 115 | --timeout=*) 116 | WAITFORIT_TIMEOUT="${1#*=}" 117 | shift 1 118 | ;; 119 | --) 120 | shift 121 | WAITFORIT_CLI=("$@") 122 | break 123 | ;; 124 | --help) 125 | usage 126 | ;; 127 | *) 128 | echoerr "Unknown argument: $1" 129 | usage 130 | ;; 131 | esac 132 | done 133 | 134 | if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then 135 | echoerr "Error: you need to provide a host and port to test." 136 | usage 137 | fi 138 | 139 | WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15} 140 | WAITFORIT_STRICT=${WAITFORIT_STRICT:-0} 141 | WAITFORIT_CHILD=${WAITFORIT_CHILD:-0} 142 | WAITFORIT_QUIET=${WAITFORIT_QUIET:-0} 143 | 144 | # Check to see if timeout is from busybox? 145 | WAITFORIT_TIMEOUT_PATH=$(type -p timeout) 146 | WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) 147 | 148 | WAITFORIT_BUSYTIMEFLAG="" 149 | if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then 150 | WAITFORIT_ISBUSY=1 151 | # Check if busybox timeout uses -t flag 152 | # (recent Alpine versions don't support -t anymore) 153 | if timeout &>/dev/stdout | grep -q -e '-t '; then 154 | WAITFORIT_BUSYTIMEFLAG="-t" 155 | fi 156 | else 157 | WAITFORIT_ISBUSY=0 158 | fi 159 | 160 | if [[ $WAITFORIT_CHILD -gt 0 ]]; then 161 | wait_for 162 | WAITFORIT_RESULT=$? 163 | exit $WAITFORIT_RESULT 164 | else 165 | if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then 166 | wait_for_wrapper 167 | WAITFORIT_RESULT=$? 168 | else 169 | wait_for 170 | WAITFORIT_RESULT=$? 171 | fi 172 | fi 173 | 174 | if [[ $WAITFORIT_CLI != "" ]]; then 175 | if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then 176 | echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess" 177 | exit $WAITFORIT_RESULT 178 | fi 179 | exec "${WAITFORIT_CLI[@]}" 180 | else 181 | exit $WAITFORIT_RESULT 182 | fi 183 | -------------------------------------------------------------------------------- /script/docker/compose/venus-auth.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | /app/venus-auth run & 5 | 6 | sleep 1 7 | 8 | # if /env/token is not exist 9 | if [ ! -f /env/token ]; then 10 | echo "regist admin" 11 | /app/venus-auth user add admin 12 | token=`/app/venus-auth token gen --perm admin admin` 13 | /app/venus-auth user active admin 14 | 15 | echo "token:" 16 | echo ${token#*: } 17 | echo "${token#*: }" > /env/token 18 | fi 19 | 20 | wait 21 | -------------------------------------------------------------------------------- /script/docker/compose/venus-gateway.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | token=$(cat /env/token ) 5 | echo ${token} 6 | 7 | /app/venus-gateway --listen=/ip4/0.0.0.0/tcp/45132 \ 8 | run \ 9 | --auth-url=http://127.0.0.1:8989 \ 10 | --auth-token= 11 | -------------------------------------------------------------------------------- /script/docker/compose/venus-market.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | token=$(cat /env/token ) 5 | echo "token:" 6 | echo ${token} 7 | 8 | 9 | /app/venus-market run \ 10 | --node-url=/ip4/127.0.0.1/tcp/3453 \ 11 | --auth-url=http://127.0.0.1:8989 \ 12 | --gateway-url=/ip4/127.0.0.1/tcp/45132/ \ 13 | --messager-url=/ip4/127.0.0.1/tcp/39812/ \ 14 | --cs-token=${token} \ 15 | --signer-type="gateway" & 16 | 17 | sleep 3 18 | exist=$(/app/venus-market piece-storage list | grep DefaultPieceStorage ) 19 | if [ -z "$exist" ]; then 20 | echo "add piece storage" 21 | /app/venus-market piece-storage add-fs --name DefaultPieceStorage --path /data/piece-storage 22 | fi 23 | wait 24 | -------------------------------------------------------------------------------- /script/docker/compose/venus-messager.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | token=$(cat /env/token ) 5 | echo ${token} 6 | 7 | /app/venus-messager run \ 8 | --auth-url=http://127.0.0.1:8989 \ 9 | --node-url /ip4/127.0.0.1/tcp/3453 \ 10 | --gateway-url=/ip4/127.0.0.1/tcp/45132 \ 11 | --auth-token ${token} 12 | -------------------------------------------------------------------------------- /script/docker/compose/venus-miner.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | 5 | token=$(cat /env/token ) 6 | echo "token:" 7 | echo ${token} 8 | 9 | 10 | if [ ! -d "/root/.venusminer" ]; 11 | then 12 | echo "not found ~/.venusminer" 13 | /app/venus-miner init --auth-api http://127.0.0.1:8989 --token ${token} --gateway-api /ip4/127.0.0.1/tcp/45132 --api /ip4/127.0.0.1/tcp/3453 --slash-filter local 14 | fi 15 | 16 | /app/venus-miner run 17 | -------------------------------------------------------------------------------- /script/docker/compose/venus-wallet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | 5 | PSWD=$(head -n 10 /dev/urandom | md5sum | head -c 20) 6 | 7 | token=$(cat /env/token ) 8 | 9 | echo "token:" 10 | echo ${token} 11 | 12 | Args="" 13 | 14 | Args="run --password=$PWD --gateway-api=/ip4/127.0.0.1/tcp/45132 --gateway-token=$token --support-accounts=admin" 15 | 16 | 17 | echo "EXEC: ./venus-wallet $Args \n\n" 18 | ./venus-wallet $Args & 19 | 20 | 21 | sleep 3 22 | addr_exist=$( venus-wallet list ) 23 | if [ -z "$addr_exist" ] 24 | then 25 | if [ -f /env/init.key ]; then 26 | ADDR=$(venus-wallet import /env/init.key) 27 | while [ $? -ne 0 ]; do 28 | ADDR=$(venus-wallet import /env/init.key) 29 | done 30 | echo "imported address: $ADDR" 31 | else 32 | ADDR=$(venus-wallet new bls) 33 | echo "new address: $ADDR" 34 | fi 35 | echo $ADDR > /env/wallet_address 36 | fi 37 | 38 | wallet_token=$(venus-wallet auth api-info --perm admin) 39 | echo "wallet_token: $wallet_token" 40 | echo $wallet_token > /env/wallet_token 41 | 42 | wait 43 | -------------------------------------------------------------------------------- /script/docker/compose/venus.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Arg: $@" 4 | Args=" --auth-url=http://127.0.0.1:8989 " 5 | 6 | if [ $nettype ] 7 | then 8 | Args="$Args --network=$nettype" 9 | fi 10 | 11 | if [ $snapshot ] 12 | then 13 | Args="$Args --import-snapshot=/snapshot.car" 14 | fi 15 | 16 | if [ $genesisfile ] 17 | then 18 | Args="$Args --genesisfile=/genesis.gen" 19 | fi 20 | 21 | echo "EXEC: /app/venus daemon $Args \n\n" 22 | /app/venus daemon $Args & 23 | 24 | sleep 3 25 | if [ -f /env/bootstrap ]; 26 | then 27 | bootstraper=$(cat /env/bootstrap ) 28 | /app/venus swarm connect $bootstraper 29 | echo "connect to $bootstraper" 30 | 31 | fi 32 | wait 33 | -------------------------------------------------------------------------------- /script/docker/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | # 使用 v1.7 以上版本的组件镜像 2 | 3 | # nettype (default:mainnet) 4 | # piecestorage (defaul:./.venus/storage/) 5 | # proofparameters (default:/var/tmp/filecoin-proof-parameters/) 6 | # snapshot (optionnal) 7 | # genesisfile (optional) 8 | # proxy (optional) 9 | # TZ (optional) 10 | 11 | version: '3' 12 | services: 13 | auth: 14 | image: filvenus/venus-auth 15 | ports: 16 | - 8989:8989 17 | environment: 18 | - TZ=${TZ-UTC} 19 | volumes: 20 | - ./.venus/env:/env 21 | - ./.venus/root:/root 22 | network_mode: "host" 23 | entrypoint: "/script/compose/venus-auth.sh" 24 | 25 | venus: 26 | image: filvenus/venus 27 | ports: 28 | - 3453:3453 29 | network_mode: "host" 30 | volumes: 31 | - ${snapshot-./.venus/storage/snapshot.car}:/snapshot.car 32 | - ${genesisfile-./.venus/storage/genesis.gen}:/genesis.gen 33 | - ${proofparameters-/var/tmp/filecoin-proof-parameters/}:/var/tmp/filecoin-proof-parameters/ 34 | - ./.venus/env:/env 35 | - ./.venus/root:/root 36 | environment: 37 | - HTTPS_PROXY=${proxy} 38 | - nettype=${nettype-mainnet} 39 | - TZ=${TZ-UTC} 40 | - snapshot=${snapshot} 41 | - genesisfile=${genesisfile} 42 | entrypoint: "/script/compose/venus.sh" 43 | depends_on: 44 | - auth 45 | 46 | gateway: 47 | image: filvenus/venus-gateway 48 | network_mode: "host" 49 | environment: 50 | - TZ=${TZ-UTC} 51 | volumes: 52 | - ./.venus/env:/env 53 | - ./.venus/root:/root 54 | ports: 55 | - 45132:45132 56 | depends_on: 57 | - auth 58 | 59 | entrypoint: "/script/compose/venus-gateway.sh" 60 | 61 | messager: 62 | image: filvenus/venus-messager 63 | network_mode: "host" 64 | ports: 65 | - 39812:39812 66 | volumes: 67 | - ./.venus/env:/env 68 | - ./.venus/root:/root 69 | environment: 70 | - TZ=${TZ-UTC} 71 | entrypoint: "/script/wait-for-it.sh 127.0.0.1:3453 -t 0 -- /script/compose/venus-messager.sh" 72 | depends_on: 73 | - auth 74 | - venus 75 | - gateway 76 | 77 | miner: 78 | image: filvenus/venus-miner 79 | network_mode: "host" 80 | ports: 81 | - 12308:12308 82 | volumes: 83 | - ./.venus/env:/env 84 | - ./.venus/root:/root 85 | environment: 86 | - nettype=${nettype-mainnet} 87 | - TZ=${TZ-UTC} 88 | entrypoint: "/script/wait-for-it.sh 127.0.0.1:3453 -t 0 -- /script/compose/venus-miner.sh" 89 | depends_on: 90 | - auth 91 | - venus 92 | - gateway 93 | 94 | market: 95 | image: filvenus/venus-market 96 | network_mode: "host" 97 | environment: 98 | - TZ=${TZ-UTC} 99 | ports: 100 | - 41235:41235 101 | volumes: 102 | - ./.venus/env:/env 103 | - ./.venus/root:/root 104 | - ${piecestorage-./.venus/storage/}:/PieceStorage 105 | 106 | entrypoint: "/script/wait-for-it.sh 127.0.0.1:39812 -t 0 -- /script/compose/venus-market.sh" 107 | depends_on: 108 | - auth 109 | - venus 110 | - gateway 111 | -------------------------------------------------------------------------------- /script/docker/dockerfile: -------------------------------------------------------------------------------- 1 | ARG RUNTIME_TAG=latest 2 | 3 | FROM filvenus/venus-buildenv:${RUNTIME_TAG} AS buildenv 4 | 5 | WORKDIR /build 6 | 7 | COPY ./go.mod /build/ 8 | COPY ./exter[n] ./go.mod /build/extern/ 9 | RUN go mod download 10 | 11 | COPY . /build 12 | RUN make 13 | 14 | 15 | FROM filvenus/venus-runtime:${RUNTIME_TAG} 16 | 17 | ARG BUILD_TARGET= 18 | ENV VENUS_COMPONENT=${BUILD_TARGET} 19 | 20 | # copy the app from build env 21 | COPY --from=buildenv /build/${BUILD_TARGET} /app/${BUILD_TARGET} 22 | 23 | ENTRYPOINT ["/script/init.sh"] 24 | -------------------------------------------------------------------------------- /script/docker/venus-buildenv.dockerfile: -------------------------------------------------------------------------------- 1 | # build container stage 2 | FROM golang:1.23-bookworm AS build-env 3 | 4 | # RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list 5 | 6 | # download dependence 7 | RUN apt-get update -y && apt-get install -y \ 8 | bzr \ 9 | build-essential \ 10 | clang \ 11 | curl \ 12 | gcc \ 13 | git \ 14 | hwloc \ 15 | jq \ 16 | libhwloc-dev \ 17 | make \ 18 | mesa-opencl-icd \ 19 | ncftp \ 20 | ocl-icd-opencl-dev \ 21 | pkg-config \ 22 | wget && rm -rf /var/lib/apt/lists/* 23 | 24 | COPY script/docker/common/install_mod.sh /script/ 25 | RUN bash /script/install_mod.sh 26 | -------------------------------------------------------------------------------- /script/docker/venus-runtime.dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm 2 | 3 | # install dependence 4 | RUN apt-get -qq update \ 5 | && apt-get -qq install -y --no-install-recommends ca-certificates curl vim telnet tzdata subversion jq 6 | 7 | # set time zone to Shanghai 8 | ENV TZ=Asia/Shanghai 9 | RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \ 10 | && echo ${TZ} > /etc/timezone \ 11 | && dpkg-reconfigure --frontend noninteractive tzdata 12 | 13 | # set charset 14 | ENV LANG C.UTF-8 15 | 16 | # copy ddl 17 | COPY --from=filvenus/venus-buildenv /usr/lib/x86_64-linux-gnu/libhwloc.so.15 \ 18 | /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 \ 19 | /lib/x86_64-linux-gnu/libgcc_s.so.1 \ 20 | /lib/x86_64-linux-gnu/libutil.so.1 \ 21 | /lib/x86_64-linux-gnu/librt.so.1 \ 22 | /lib/x86_64-linux-gnu/libpthread.so.0 \ 23 | /lib/x86_64-linux-gnu/libm.so.6 \ 24 | /lib/x86_64-linux-gnu/libdl.so.2 \ 25 | /lib/x86_64-linux-gnu/libc.so.6 \ 26 | /usr/lib/x86_64-linux-gnu/libnuma.so.1 \ 27 | /usr/lib/x86_64-linux-gnu/libltdl.so.7 \ 28 | /lib/ 29 | 30 | RUN echo "alias messager=venus-messager market=venus-market miner=venus-miner gateway=venus-gateway wallet=venus-wallet auth=venus-auth" >> /etc/bash.bashrc 31 | 32 | # RUN svn checkout https://github.com/filecoin-project/venus-docs/trunk/script/docker 33 | # COPY ./docker/common/* /script 34 | # COPY ./docker/compose /script 35 | 36 | COPY ./script/docker/common/* /script/ 37 | COPY ./script/docker/compose /script/compose 38 | 39 | # DIR for app 40 | WORKDIR /app 41 | ENV PATH "$PATH:/app/" 42 | -------------------------------------------------------------------------------- /script/download.js: -------------------------------------------------------------------------------- 1 | const config = require("../docs/.vuepress/config"); 2 | const axios = require('axios'); 3 | const fs = require('fs'); 4 | const path = require('path'); 5 | const console = require("console"); 6 | 7 | const proxy = process.env.http_proxy || process.env.HTTP_PROXY; 8 | 9 | function downloadFile(uri, dest) { 10 | docDir = path.resolve(__dirname, '../'); 11 | const targetPath = path.join(docDir, "docs", dest); 12 | const dir = path.dirname(targetPath); 13 | // check if dir exists 14 | if (!fs.existsSync(dir)) { 15 | fs.mkdirSync(dir, { recursive: true }); 16 | } 17 | const file = fs.createWriteStream(targetPath, { flags: 'w+' }); 18 | let param = null 19 | 20 | if (proxy != null && proxy != "") { 21 | proxy_host = proxy ? proxy.split("//")[1].split(":")[0] : null; 22 | proxy_port = proxy ? proxy.split("//")[1].split(":")[1] : null; 23 | proxy_scheme = proxy ? proxy.split("//")[0].split(":")[0] : null; 24 | proxy_scheme = proxy_scheme == "socks5" ? "http" : proxy_scheme; 25 | param = { 26 | proxy: { 27 | host: proxy_host, 28 | port: parseInt(proxy_port), 29 | protocol: proxy_scheme != "socks5" ? proxy_scheme : "http" 30 | } 31 | }; 32 | } 33 | 34 | rawUri = uri.replace("github.com", "raw.githubusercontent.com"); 35 | rawUri = rawUri.replace("/blob/", "/"); 36 | 37 | axios.get(rawUri, param).then(res => { 38 | if (res.status !== 200) { 39 | content = `# 文档引用 40 | 请访问这个 [链接](${uri}),了解更多相关信息。` 41 | file.write(content) 42 | console.log(`download error : ${res.statusCode}(${rawUri})`); 43 | return; 44 | } 45 | 46 | file.write(res.data, (err) => { 47 | if (err) { 48 | console.log(err); 49 | } 50 | console.log('finish write file to ' + targetPath) 51 | file.close(); 52 | }) 53 | }).catch(err => { 54 | console.log(err) 55 | }) 56 | } 57 | 58 | function preDownload(config) { 59 | const preDownloadUrls = []; 60 | const { base, themeConfig } = config; 61 | locales = Object.keys(themeConfig.locales || {}); 62 | if (locales.length === 0) { 63 | locales = ['']; 64 | } 65 | locales.forEach((locale) => { 66 | const sidebar = themeConfig.locales[locale].sidebar; 67 | const sidebarKeys = Object.keys(sidebar); 68 | sidebarKeys.forEach((key) => { 69 | const sidebarItem = sidebar[key]; 70 | sidebarItem.forEach((item) => { 71 | if (item.children) { 72 | item.children.forEach((child) => { 73 | if (child[2]) { 74 | preDownloadUrls.push({ 75 | path: `${key}${child[0]}`, 76 | url: child[2] 77 | }); 78 | } 79 | }); 80 | } 81 | }); 82 | }); 83 | }); 84 | 85 | preDownloadUrls.forEach((url) => { 86 | console.debug(`download ${url.url} to ${url.path}`); 87 | downloadFile(url.url, url.path); 88 | }); 89 | 90 | } 91 | 92 | 93 | preDownload(config); 94 | --------------------------------------------------------------------------------