区块链 区块链技术 比特币公众号手机端

venus-cluster 代码解析 笔记

liumuhui 2年前 (2023-06-28) 阅读数 264 #技术
文章标签 vsmwor
  1. pkg/objstore包主要是提供一个统一的接口,而实现则是由pkg/kvstore包来完成。
  2. venus-worker主动向venus-sector-manager的接口进行连接。

问题

  1. VSM主要功能是什么?
  2. vsm如何与worker进行通信,通信协议是什么?
  3. worker会和vsm以外的链服务或者market通信吗?
  4. vsm如何和node,market建立连接?
  5. vsm和node需要进行哪些类型的通信?时候进行通信,为什么通信?
  6. vsm和market需要进行哪些类型的通信?时候进行通信,为什么通信?

答案

venus-sector-manager

  1. vsm/core包定义了对外的接口格式。
  2. vsm/modules/poster包主要负责定时产生windowPost proof,然后通过venus.messager服务把proof msg发送给node。
  3. venus-worker服务通过api调用vsm/modules/sealer包的SubmitPreCommit()方法,进行preCommit消息的提交。而vsm/modeuls/sealer包会调用vsm/modules/impl/commitmgr包里实现具体如何向node节点进行提交信息。
  4. vsm/miner包主要负责通过gatewayvenus-miner进行建立长链接。venus-miner会通过长链接主动向vsm/miner包发送ComputeProof命令,让其计算winningPost。vsm/modules/miner会通过vsm/modules/impl/prover包来实现具体的计算任务。vsm/moduels/impl/prover包会直接通过ffi直接调用rust库的函数进行计算。也可以通过vsm/moduels/impl/prover/ext包来调用vsm/pkg/extproc包来使用外部执行器来进行proof产生。

venus-worker

  1. src/sealing/worker/task/planner/sealer.rs文件的Planner类方法exec()会执行状态机状态转换,大部分sealer.rs文件的方法都会调用common.rs文件中的方法,common.rs文件中的函数会task的具体执行的processor定义在vc-processors/src/builtin/processors.rs文件中,这个文件会直接调用官方定义的fil-proofs包来实现具体的过程。
版权声明

本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门