Full window post check at any time #6025
Locked
kikakkz
started this conversation in
Show and tell
Replies: 2 comments 2 replies
-
can you consider making this is a pull request to the mainline code? |
Beta Was this translation helpful? Give feedback.
2 replies
-
as we storing more and more client data and deals, and the power is accumulating, the stake of successful window post become critical. Could we please have this tool ready sooner? It would be very helpful and appreciated!! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
For many miner, we have useful instruction 'lotus-miner proving check --slow 0' to check validation of single sector proof. But this instruction is slow, and it's process is not totally same as deadline wdpost. In https://github.com/EntropyPool/lotus.git branch feature/v1.6.0-full-wdpost, some code is added to implement such check.
From the point of design, we should use the code in storage/wdpost_run.go directly, that's where the window post proof is generated when deadline check happens. But from the client, it can't access here directly, where the client can access is node/impl/stominer.go. Fotunately, storage/wdpost_sched.go can access storage/miner.go as its sub-system, and storage/miner.go can access node/impl/stominer.go. So, we can make a chan in storage/miner.go as a bridge, which will be notified by command from client through node/impl/stominer.go, and listened by storage/wdpost_sched.go, then invoke storage/wdpost_run.go to do full proof generation.
Another issue is that runPost need tipset, but we don't have tipset when we do full check. Luckily, what runPost need in tipset is just tipset height and tipset key. When do full check not at current deadline, we can just use 0 as tipset height, and types.EmptyTSK as tipset key.
A command 'lotus-miner proving check --full 0' is added in client to fullfill full deadline check. RPC will be send to node/impl/stominer.go, then notify the channel in storage/miner.go. And storage/wdpost_sched.go will accept the notification from the channel to generate the proof.
Beta Was this translation helpful? Give feedback.
All reactions