Description
Upcoming changes to built-in actors to implement direct data onboarding will invoke the batch_verify_seals
syscall directly from the miner actor. In the past, this syscall has been invoked only from the power actor's cron handler. It does not charge the correct amount of gas, though there's no apparent reason why it can't. This syscall should instead charge the correct amount of gas. Doing so won't have any effect on the existing use since the cron originator has unlimited gas budget.
Fixing this is necessary for the deployment of direct data onboarding. I don't think it needs a FIP since the end result is just that the syscall works as expected, with no change to existing on-chain observable behaviour. Any necessary things can be specified in the direct onboarding FIP.
- Fix the comment in kernel/mod.rs by basically deleting it. The call is not privileged and should charge gas (reference to the pre-payment is both wrong and irrelevant here).
- Delete the comment in kernel/default.rs
- Fix the gas calculation in kernel/default.rs. A a minimum this might involve changing the price list item for
verify_seal_base
from 2000 to a real number for per-proof verification.
Changing the verify_seal_base
price to 34721049
the amount hardcoded in the power actor, would then price this the same as the current cost of seal proof validation. However this price might (?) include an empirical discount that assumes some unknown number of additional proofs are submitted in the same epoch which can be verified in parallel. But a fixed price per item also obviously doesn't include a discount for the known number of proofs that actually are submitted when this is called directly from the miner.
FYI @ZenGround0 @Kubuxu
Metadata
Metadata
Assignees
Labels
Type
Projects
Status