venus-cluster 代码解析 笔记
pkg/objstore
包主要是提供一个统一的接口,而实现则是由pkg/kvstore
包来完成。venus-worker
主动向venus-sector-manager
的接口进行连接。
问题
- VSM主要功能是什么?
- vsm如何与worker进行通信,通信协议是什么?
- worker会和vsm以外的链服务或者market通信吗?
- vsm如何和node,market建立连接?
- vsm和node需要进行哪些类型的通信?时候进行通信,为什么通信?
- vsm和market需要进行哪些类型的通信?时候进行通信,为什么通信?
答案
venus-sector-manager
vsm/core
包定义了对外的接口格式。vsm/modules/poster
包主要负责定时产生windowPost proof,然后通过venus.messager服务把proof msg发送给node。venus-worker
服务通过api调用vsm/modules/sealer
包的SubmitPreCommit()
方法,进行preCommit消息的提交。而vsm/modeuls/sealer
包会调用vsm/modules/impl/commitmgr
包里实现具体如何向node节点进行提交信息。vsm/miner
包主要负责通过gateway
和venus-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
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
包来实现具体的过程。
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。