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包来实现具体的过程。
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
区块链技术网

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