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

consensus: Verify hardened checkpoints on start up #2087

Merged

Conversation

cyrossignol
Copy link
Member

This adds a routine that compares the block index entries with the hardened checkpoints when a node starts. It provides user feedback for some forks and database corruption. A node will exit in case of a checkpoint mismatch.

This adds a routine that compares the block index entries with the
hardened checkpoints when a node starts. It provides user feedback
for some forks and database corruption.
Copy link
Member

@jamescowens jamescowens left a comment

Choose a reason for hiding this comment

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

utACK

@jamescowens jamescowens requested a review from div72 April 1, 2021 20:02
Copy link
Member

@div72 div72 left a comment

Choose a reason for hiding this comment

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

utACK, although I think that the shutdown should be left to the init.

On a related note, the GUI doesn't handle failed initializations properly. For example while #1978 did fix the segfault in #1872 any other init error(for example gridcoinresearch -testnet -paytxfee=dog) will still cause the wallet to segfault.

@jamescowens
Copy link
Member

I agree @div72, but I think we should fix that in a separate PR.

@jamescowens jamescowens merged commit b859607 into gridcoin-community:development Apr 1, 2021
@cyrossignol
Copy link
Member Author

@div72 The GUI wasn't responding to the return value of false, so I fudged it. The old init code is a mess. #2088 may be a short-term solution.

@cyrossignol cyrossignol deleted the verify-checkpoints branch April 1, 2021 22:07
jamescowens added a commit to jamescowens/Gridcoin-Research that referenced this pull request Apr 4, 2021
Added
 - doc: Invite users to donate to Gridcoin Foundation gridcoin-community#1997 (@smoe)
 - rpc: Add "getburnreport" RPC function gridcoin-community#2049 (@cyrossignol)
 - doc: Add undocumented "-showorphans" GUI option to help text gridcoin-community#2058 (@cyrossignol)
 - beacon: Cull beacon db memory (passivation) gridcoin-community#2069 (@jamescowens)
 - gui: Avoid refreshing GUI researcher status while out-of-sync gridcoin-community#2068 (@cyrossignol)
 - consensus: Reimplement checkpoint-based spam protection gridcoin-community#2084 (@cyrossignol)
 - consensus: Verify hardened checkpoints on start up gridcoin-community#2087 (@cyrossignol)

Changed
 - gui: Clarify overview page "stake" field gridcoin-community#2056 (@cyrossignol)
 - doc: Update Copyright headers gridcoin-community#2059 (@barton2526)
 - gui: Update Qt Linguist localization files gridcoin-community#2063 (@cyrossignol)
 - build: update dependencies gridcoin-community#2064 (@barton2526)
 - net: Reduce default connection limit back to 125 gridcoin-community#2066 (@cyrossignol)
 - build: openssl patch gridcoin-community#2074 (@barton2526)
 - translation: Translate /src/qt/locale/bitcoin_en.ts in pt_PT gridcoin-community#2083 (@DjMVeiga)
 - log: Adjust logging gridcoin-community#2076 (@jamescowens)
 - gui: Change scraper tab to Inconsolata monospace font gridcoin-community#2085 (@jamescowens)
 - researcher: Change beacon deferment fix to reference nActiveBeforeSB gridcoin-community#2092 (@jamescowens)

Removed
 - net: Clean up mandatory protocol version transition gridcoin-community#2080 (@cyrossignol)
 - refactor: Remove LessVerbose() function gridcoin-community#2089 (@cyrossignol)

Fixed
 - beacon: Fix a subtle error in renewal chain walker gridcoin-community#2054 (@jamescowens)
 - researcher: Fix "malformed CPID" status for some pool projects gridcoin-community#2052 (@cyrossignol)
 - lint: Misc Typos gridcoin-community#2060 (@barton2526)
 - lint: remove identified duplicate includes gridcoin-community#2061 (@barton2526)
 - gui: Fix splash screen block height progress gridcoin-community#2057 (@cyrossignol)
 - gui: Fix garbage placeholders in some tx notification localizations gridcoin-community#2070 (@cyrossignol)
 - build: Patch libzip to fix mingw compile regression for mingw 9.2+ gridcoin-community#2082 (@jamescowens)
 - gui: Fix shutdown response for failed core init gridcoin-community#2088 (@cyrossignol)
 - researcher: Fix deferment of beacon renewal in superblock window gridcoin-community#2090 (@cyrossignol)
 - gui: Fix typo in beacon status refresh gridcoin-community#2091 (@div72)
jamescowens added a commit to jamescowens/Gridcoin-Research that referenced this pull request Apr 4, 2021
Added
 - doc: Invite users to donate to Gridcoin Foundation gridcoin-community#1997 (@smoe)
 - rpc: Add "getburnreport" RPC function gridcoin-community#2049 (@cyrossignol)
 - gui: Add stats export reminder to beacon wizard auth page gridcoin-community#2050 (@cyrossignol)
 - doc: Add undocumented "-showorphans" GUI option to help text gridcoin-community#2058 (@cyrossignol)
 - beacon: Cull beacon db memory (passivation) gridcoin-community#2069 (@jamescowens)
 - gui: Avoid refreshing GUI researcher status while out-of-sync gridcoin-community#2068 (@cyrossignol)
 - consensus: Reimplement checkpoint-based spam protection gridcoin-community#2084 (@cyrossignol)
 - consensus: Verify hardened checkpoints on start up gridcoin-community#2087 (@cyrossignol)

Changed
 - test: autogenerate data headers gridcoin-community#2030 (@div72)
 - doc: Change copyright years to 2021 gridcoin-community#2042 (@caraka)
 - gui: Clarify overview page "stake" field gridcoin-community#2056 (@cyrossignol)
 - doc: Update Copyright headers gridcoin-community#2059 (@barton2526)
 - gui: Update Qt Linguist localization files gridcoin-community#2063 (@cyrossignol)
 - build: update dependencies gridcoin-community#2064 (@barton2526)
 - net: Reduce default connection limit back to 125 gridcoin-community#2066 (@cyrossignol)
 - build: openssl patch gridcoin-community#2074 (@barton2526)
 - translation: Translate /src/qt/locale/bitcoin_en.ts in pt_PT gridcoin-community#2083 (@DjMVeiga)
 - log: Adjust logging gridcoin-community#2076 (@jamescowens)
 - gui: Change scraper tab to Inconsolata monospace font gridcoin-community#2085 (@jamescowens)
 - researcher: Change beacon deferment fix to reference nActiveBeforeSB gridcoin-community#2092 (@jamescowens)

Removed
 - net: Clean up mandatory protocol version transition gridcoin-community#2080 (@cyrossignol)
 - refactor: Remove LessVerbose() function gridcoin-community#2089 (@cyrossignol)

Fixed
 - build: Fix depends cross-compilation for macOS gridcoin-community#2038 (@cyrossignol)
 - build: Deal with Qt depends .qmake.stash file gridcoin-community#2048 (@cyrossignol)
 - beacon: Fix a subtle error in renewal chain walker gridcoin-community#2054 (@jamescowens)
 - researcher: Fix "malformed CPID" status for some pool projects gridcoin-community#2052 (@cyrossignol)
 - lint: Misc Typos gridcoin-community#2060 (@barton2526)
 - lint: remove identified duplicate includes gridcoin-community#2061 (@barton2526)
 - gui: Fix splash screen block height progress gridcoin-community#2057 (@cyrossignol)
 - gui: Fix garbage placeholders in some tx notification localizations gridcoin-community#2070 (@cyrossignol)
 - build: Patch libzip to fix mingw compile regression for mingw 9.2+ gridcoin-community#2082 (@jamescowens)
 - gui: Fix shutdown response for failed core init gridcoin-community#2088 (@cyrossignol)
 - researcher: Fix deferment of beacon renewal in superblock window gridcoin-community#2090 (@cyrossignol)
 - gui: Fix typo in beacon status refresh gridcoin-community#2091 (@div72)
@jamescowens jamescowens added this to the Ingrid milestone May 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants