Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sealer: Config for disabling builtin PoSt / PoSt pre-checks #8959

Merged
merged 6 commits into from
Jul 4, 2022

Conversation

magik6k
Copy link
Contributor

@magik6k magik6k commented Jul 1, 2022

Related Issues

#8967

Proposed Changes

Add some new knobs to the proving config:

  # Disable Window PoSt computation on the lotus-miner process even if no window PoSt workers are present.
  # 
  # WARNING: If no windowPoSt workers are connected, window PoSt WILL FAIL resulting in faulty sectors which will need
  # to be recovered. Before enabling this option, make sure your PoSt workers work correctly.
  # 
  # After changing this option, confirm that the new value works in your setup by invoking
  # 'lotus-miner proving compute window-post 0'
  #
  # type: bool
  # env var: LOTUS_PROVING_DISABLEBUILTINWINDOWPOST
  DisableBuiltinWindowPoSt = false

  # Disable Winning PoSt computation on the lotus-miner process even if no winning PoSt workers are present.
  # 
  # WARNING: If no WinningPoSt workers are connected, Winning PoSt WILL FAIL resulting in lost block rewards.
  # Before enabling this option, make sure your PoSt workers work correctly.
  #
  # type: bool
  # env var: LOTUS_PROVING_DISABLEBUILTINWINNINGPOST
  DisableBuiltinWinningPoSt = false

  # Disable WindowPoSt provable sector readability checks.
  # 
  # In normal operation, when preparing to compute WindowPoSt, lotus-miner will perform a round of reading challenges
  # from all sectors to confirm that those sectors can be proven. Challenges read in this process are discarded, as
  # we're only interested in checkdng that sector data can be read.
  # 
  # When using builtin proof computation (no PoSt workers, and DisableBuiltinWindowPoSt is set to false), this process
  # can save a lot of time and compute resources in the case that some sectors are not readable - this is caused by
  # the builtin logic not skipping snark computation when some sectors need to be skipped.
  # 
  # When using PoSt workers, this process is mostly redundant, with PoSt workers challenges will be read once, and
  # if challenges for some sectors aren't readable, those sectors will just get skipped.
  # 
  # Disabling sector pre-checks will slightly requice IO load when proving sectors, possibly resulting in shorter
  # time to produce window PoSt. In setups with good IO capabilities the effect of this option on proving time should
  # be negligible.
  # 
  # NOTE: It likely is a bad idea to disable sector pre-checks in setups with no PoSt workers.
  # 
  # NOTE: Even when this option is enabled, recovering sectors will be checked before recovery declaration message is
  # sent to the chain
  # 
  # After changing this option, confirm that the new value works in your setup by invoking
  # 'lotus-miner proving compute window-post 0'
  #
  # type: bool
  # env var: LOTUS_PROVING_DISABLEWDPOSTPRECHECKS
  DisableWDPoStPreChecks = false

DisableBuiltinWinningPoSt is bundled with this PR as enabling DisableWDPoStPreChecks without PoSt workers is likely a bad idea, so at least we should make it possible to tell lotus-miner to not even bother using the builtin proving mechanism.

TODO

  • Test disabling builtin PoSt provers (with/without workers)
  • Test PoSt with skipped checks

@magik6k magik6k changed the title Feat/post check config sealer: Config for disabling builtin PoSt Jul 1, 2022
@magik6k magik6k force-pushed the feat/post-check-config branch from 34cee8f to d5100f8 Compare July 1, 2022 20:32
@magik6k magik6k changed the title sealer: Config for disabling builtin PoSt sealer: Config for disabling builtin PoSt / PoSt pre-checks Jul 4, 2022
@magik6k magik6k marked this pull request as ready for review July 4, 2022 14:32
@magik6k magik6k requested a review from a team as a code owner July 4, 2022 14:32
Copy link
Contributor

@arajasek arajasek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

documentation/en/default-lotus-miner-config.toml Outdated Show resolved Hide resolved
documentation/en/default-lotus-miner-config.toml Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants