-
Notifications
You must be signed in to change notification settings - Fork 172
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: Fix 20230904 testnet forking issue #2703
Merged
jamescowens
merged 2 commits into
gridcoin-community:development
from
jamescowens:fix_20230904_testnet_forking_issue
Sep 18, 2023
Merged
consensus: Fix 20230904 testnet forking issue #2703
jamescowens
merged 2 commits into
gridcoin-community:development
from
jamescowens:fix_20230904_testnet_forking_issue
Sep 18, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jamescowens
changed the title
Fix 20230904 testnet forking issue
consensus: Fix 20230904 testnet forking issue
Sep 17, 2023
to CheckBlock and WriteBlockToDisk.
jamescowens
force-pushed
the
fix_20230904_testnet_forking_issue
branch
from
September 17, 2023 19:47
4bbbf28
to
9c10ede
Compare
div72
approved these changes
Sep 18, 2023
jamescowens
added a commit
to jamescowens/Gridcoin-Research
that referenced
this pull request
Mar 2, 2024
Added - contrib: add nix file for compilation environment gridcoin-community#2660 (@div72) - gui: Make main Gridcoin window geometry save unique to datadir location gridcoin-community#2661 (@jamescowens) - build: Initial CMake support gridcoin-community#2676 (@CyberTailor) - util: Add `-shutdownnotify` and `startupnotify` options from upstream gridcoin-community#2688 (@barton2526) - gui, staking: Implement facilities for mandatory sidestakes and sidestake GUI gridcoin-community#2704 (@jamescowens) - gui, voting: Implement poll result caching and poll stale indicator gridcoin-community#2709 (@jamescowens) - gui, projects: Implement greylist state for projects in GUI projects table gridcoin-community#2715 (@jamescowens) - gui, poll: Implement poll expiration reminders gridcoin-community#2716 (@jamescowens) - serialize: allow variants to be serialized gridcoin-community#2729 (@div72) - gui: Implement poll field length limiters in GUI forms gridcoin-community#2742 (@jamescowens) Changed - consensus, contract, scraper, protocol, project, beacon, rpc: Replace remaining appcache sections with native structures gridcoin-community#2639 (@jamescowens) - build: update libsecp256k1 to v0.3.0 gridcoin-community#2655 (@div72) - build: Replace $(AT) with .SILENT gridcoin-community#2674 (@barton2526) - build: allow system bdb gridcoin-community#2675 (@div72) - Resize Header Column with Additional Text gridcoin-community#2683 (@PrestackI) - rpc: use RPCErrorCode everywhere gridcoin-community#2687 (@Pythonix) - wallet: SecureString to allow null characters gridcoin-community#2690 (@barton2526) - random: port some upstream changes gridcoin-community#2696 (@div72) - depends: Bump dependencies gridcoin-community#2692 (@barton2526) - doc: Update link to Discord server gridcoin-community#2693 (@adriaanjoubert) - rpc: Change capitalization, remove whitespace of rpc keys gridcoin-community#2711 (@Pythonix) - ci: bump MacOS version to 12 gridcoin-community#2713 (@div72) - depends: no-longer nuke libc++abi.so* in native_clang package gridcoin-community#2719 (@div72) - doc: update windows `-fstack-clash-protection` doc gridcoin-community#2720 (@div72) - Silence `-Wcast-function-type` warning gridcoin-community#2721 (@div72) - build: Use newest `config.{guess,sub}` available gridcoin-community#2722 (@div72) - refactor: use the try_lock result in TryEnter gridcoin-community#2723 (@div72) - Updates for file src/qt/locale/bitcoin_en.ts in pt_PT gridcoin-community#2726 (@gridcoin-community) - ci: do not silently fail gridcoin-community#2727 (@div72) - Properly include Boost Array header gridcoin-community#2730 (@theMarix) - build: Update depends zlib to 1.3.1 gridcoin-community#2734 (@jamescowens) - util: Enhance Fraction class overflow resistance gridcoin-community#2735 (@jamescowens) - refactor: Fix compilation warnings gridcoin-community#2737 (@jamescowens) - gui, util: Improve upgrade dialog gridcoin-community#2738 (@jamescowens) - util: Improve allocation class gridcoin-community#2740 (@jamescowens) - translations: translation updates for Miss Piggy release gridcoin-community#2745 (@jamescowens) Removed - gui: Disable snapshot GUI action gridcoin-community#2700 (@jamescowens) - build, crypto, script: remove most of OpenSSL usage gridcoin-community#2705 (@div72) - util: remove WSL 1 workaround in fs gridcoin-community#2717 (@div72) Fixed - diagnostics: fix missing arg in ETTS warning gridcoin-community#2684 (@div72) - misc: fix include guard in netaddress.h gridcoin-community#2695 (@div72) - gui: Fix expired pending beacon display gridcoin-community#2698 (@jamescowens) - consensus: Fix 20230904 testnet forking issue gridcoin-community#2703 (@jamescowens) - gui: Fix filter by type in Transaction View gridcoin-community#2708 (@jamescowens) - depends: make fontconfig build under clang-16 gridcoin-community#2718 (@div72) - diag: fix researcher mode check gridcoin-community#2725 (@div72) - gui: Add missing switch cases for ALREADY_IN_MEMPOOL gridcoin-community#2728 (@jamescowens) - beacon, registry: Fix beacon history stall gridcoin-community#2731 (@jamescowens) - build: Implement comp_double comparison function in certain tests gridcoin-community#2741 (@jamescowens) - ci: change Qt path in CMake CI gridcoin-community#2743 (@div72) - net: Correct -tor argument handling gridcoin-community#2744 (@jamescowens)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@div72's current explanation for what is going wrong...
"I guess the crux of the issue lies in the fact that txs of orphan blocks are not present in the txleveldb. So if a node receives a side-chain that's longer than the part of main chain where there's a specific transaction used (which is created after the forking point), the block which references the transaction becomes invalid until a re-org is done up to that block (so that the tx which is referenced is accepted once gets in to txleveldb). This never happens in this scenario as the side chain's chain trust exceeds the part of main chain up to that affected block. (I could not simplify that explanation and I also have trouble parsing this paragraph, so I'm going to write up an example in a minute.)"
What this PR does is adds a fallback lookup for the transaction in the block file if it is not found in the index. This is very slow but will be rare under normal circumstances. This PR is meant to be a short term workaround ("band-aid") until we can devise a more elegant fix.