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

Add milestones. #352

Open
evoskuil opened this issue Apr 10, 2017 · 3 comments
Open

Add milestones. #352

evoskuil opened this issue Apr 10, 2017 · 3 comments
Milestone

Comments

@evoskuil
Copy link
Member

Checkpoints currently force the chain through a specific block. This does not produce the desired behavior.

The objective of checkpoints was to prevent wasting time on weak chains especially at low hash power. Checkpoints also provide a performance boost in avoidance of validation for a chain segment that is encountered that has previously been verified.

The objectives can both be attained without the undesired forcing behavior. The checkpoint hash is also indicative of a certain amount of work. This can be treated as a minimum amount of work at the given height (i.e. not a min + max). The prevents inadvertently blocking a higher difficulty chain. The avoidance of validation can be achieved based on building a verified header chain that matches a specified point. In that case all blocks to that point can be assumed valid (based on previous validation by the owner), allowing the implementation to skip expensive aspects of the validation.

Renaming the configuration setting value will be helpful in preventing conflation with the original implementation.

@evoskuil evoskuil added this to the 4.0 milestone Apr 10, 2017
@evoskuil evoskuil changed the title Change checkpoints to trustpoints. Change checkpoints to milestones. May 3, 2017
@evoskuil
Copy link
Member Author

evoskuil commented Mar 6, 2018

Or keep checkpoints and add milestones.

@evoskuil evoskuil changed the title Change checkpoints to milestones. Add milestones. Jan 3, 2019
@evoskuil
Copy link
Member Author

evoskuil commented Jan 3, 2019

Duplicate: libbitcoin/libbitcoin-node#410

@evoskuil
Copy link
Member Author

evoskuil commented Jan 3, 2019

Use configured hash:height tuples to skip full validation (use checkpoint logic) below when hash is found in candidate ancestry. This differs from checkpoints in that the point is not required. Technically the height is not required but retained as self-documenting.

[blockchain]
milestone = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce261:100000
milestone = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce262:200000
milestone = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce263:300000
milestone = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce264:400000
milestone = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce265:500000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant