filecoin-project / filecoin-project/specs

Miner/worker addresses and validation sequence inconsistencies

Open
#609 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
SCSS
Stars
363
Forks
164
PR merge metrics
No merged PRs in 30d

Description

(Related to https://github.com/filecoin-project/specs/issues/415)

Because the worker address is mutable in the state machine it prevents us from performing validation as specified.

[The spec says](https://filecoin-project.github.io/specs/#progressive-block-validation)
> These stages can be used partially across many blocks in a candidate chain, in order to prune out clearly bad blocks long before actually doing the expensive validation work.

However BV2 and BV3, which we would like to apply "long before doing the expensive validation work" cannot be done until each header's parent state is fully constructed. This is because these steps depend on the worker address key which only exists in the state machine, not the header.

Two simple solutions: a) impose a delay on worker address mutation (similar to #415) so that validators can apply these checks to partial sections of candidate headers. b) included worker address in header.

A related issue is that we don't seem to have a hard bound between when a miner can be created and when they can start mining blocks. If the spec imposes a number on this (which it should do for other security reasons) then the minerAddress portion of BV1 can also be applied on partial chains of headers.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the progressive block validation section linked in the issue and the related specs issue #415. Compare the two proposed approaches for worker-address handling, and clarify the bound between miner creation and starting to mine; done means the specification resolves these validation-sequence rules.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.