-
Notifications
You must be signed in to change notification settings - Fork 15
Abc 19.3 #69
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
Conversation
This file contains hidden or 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
…en parameter is a reorg'd block
Summary:
876e92b Testing: listsinceblock should display all transactions that were affected since the given block, including transactions that were removed due to a reorg. (Karl-Johan Alm)
f999c46 listsinceblock: optionally find and list any transactions that were undone due to reorg when requesting a non-main chain block in a new 'removed' array. (Karl-Johan Alm)
Pull request description:
The following scenario will not notify the caller of the fact `tx0` has been dropped:
1. User 1 receives BTC in tx0 from utxo1 in block aa1.
2. User 2 receives BTC in tx1 from utxo1 (same) in block bb1
3. User 1 sees 2 confirmations at block aa3.
4. Reorg into bb chain.
5. User 1 asks `listsinceblock aa3` and does not see that tx0 is now invalidated.
See `listsinceblock.py` commit for related test.
The proposed fix is to iterate from the given block down to the fork point, and to check each transaction in the blocks against the wallet, in addition to including all transactions from the fork point to the active chain tip (the current behavior). Any transactions that were present will now also be listed in the `listsinceblock` output in a new `replaced` array. This operation may be a bit heavy but the circumstances (and perceived frequency of occurrence) warrant it, I believe.
Example output:
```Python
{
'transactions': [],
'replaced': [
{
'walletconflicts': [],
'vout': 1,
'account': '',
'timereceived': 1485234857,
'time': 1485234857,
'amount': '1.00000000',
'bip125-replaceable': 'unknown',
'trusted': False,
'category': 'receive',
'txid': 'ce673859a30dee1d2ebdb3c05f2eea7b1da54baf68f93bb8bfe37c5f09ed22ff',
'address': 'miqEt4kWp9zSizwGGuUWLAmxEcTW9bFUnQ',
'label': '',
'confirmations': -7
}
],
'lastblock': '7a388f27d09e3699102a4ebf81597d974fc4c72093eeaa02adffbbf7527f6715'
}
```
I believe this addresses the comment by @luke-jr in bitcoin/bitcoin#9516 (comment) but I could be wrong..
Tree-SHA512: 607b5dcaeccb9dc0d963d3de138c40490f3e923050b29821e6bd513d26beb587bddc748fbb194503fe618cfe34a6ed65d95e8d9c5764a882b6c5f976520cff35
Backport of Core PR 9622
https://github.com/bitcoin/bitcoin/pull/9622/files
Completes T551
Test Plan:
make check
test_runner.py wallet_listsinceblock
Reviewers: deadalnix, Fabien, #bitcoin_abc
Reviewed By: Fabien, #bitcoin_abc
Subscribers: teamcity, schancel
Differential Revision: https://reviews.bitcoinabc.org/D2689
Summary: Getwalletinfo returned an uninitialized value for unlocked_until before the first walletpassphrase call, even though the wallet was locked and it should return 0. Test Plan: make check ./wallet_encryption.py Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien Subscribers: teamcity, schancel Differential Revision: https://reviews.bitcoinabc.org/D2633
…noncefp Summary: This warning was hidden under normal conditions because SECP256K1_ARG_NONNULL is bypassed when SECP256K1_BUILD is set. A NULL noncefp means the default nonce function is used. Test Plan: make check Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2747
Summary: Move block writing out of AcceptBlock Backport of Core PR 10279 commit e104f0f bitcoin/bitcoin@e104f0f Depends on D1968 Progress towards T572 Test Plan: make check test_runner.py Reviewers: #bitcoin_abc, schancel, Fabien Reviewed By: #bitcoin_abc, Fabien Subscribers: jasonbcox, teamcity Differential Revision: https://reviews.bitcoinabc.org/D1969
Summary: schnorr jni binding that will allow jvm support Test Plan: use the test vector data from https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr/test-vectors.csv Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, jasonbcox Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, jasonbcox Subscribers: jasonbcox, schancel Differential Revision: https://reviews.bitcoinabc.org/D2745
…fy "warnings" field in get*info RPCs Summary: 395cef7 Change getmininginfo errors field to warnings (Andrew Chow) 8502b20 Unify help text for GetWarnings output in get*info RPCs (Andrew Chow) f77f0e4 Add warnings field to getblockchaininfo (Andrew Chow) Pull request description: The `getblockchaininfo` output does not contain the `warnings` field which the `getinfo`, `getmininginfo`, and `getnetworkinfo` RPCs have. It should have it as the errors pertain to the blockchain. This PR adds that field. This PR also unifies the help text for the `warnings` field and its output position so that all of the `get*info` commands are consistent. `getnetworkinfo`'s `errors` field is named `warnings`. I did not change this even though it is inconsistent since this naming has been in use for a long time. Tree-SHA512: 385ab6acfee67fc8816f4d51ab2bd7a623264c7973906dfbab0a171f199e9db16fde19093a5bc3dfbdd4ff5f19d2186b646eb6b3bae0a4d7c9add43650a4a9d9 Backport of PR10858 bitcoin/bitcoin@9a8e916?diff=unified#diff-a0c8f511d90e83aa9b5857e819ced344R1165 Completes T567 Test Plan: make check test_runner.py getblockchaininfo should also produce a "warnings" field getmininginfo should have a "warnings" field in place of its "errors" field during regular use getmininginfo should behave as previously (i.e. have an "errors" field) when running bitcoind -deprecatedrpc=getmininginfo Reviewers: deadalnix, jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2730
Summary: remove unused fnoncriticalerrors variable from cwalletdb::findwallettx Backport of Core PR11923 https://github.com/bitcoin/bitcoin/pull/11923/files Completes T570 Test Plan: make check test_runner.py bitcoin-qt Reviewers: Fabien, jasonbcox, deadalnix, O1 Bitcoin ABC, #bitcoin_abc Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2742
Summary: Make DisconnectBlock unaware of where undo data resides on disk Backport of core PR 10279 Commit 93a34cf. Depends on D1969 Test Plan: make VERBOSE=1 check && ./test/functional/test_runner.py Reviewers: #bitcoin_abc, O1 Bitcoin ABC, jasonbcox Reviewed By: #bitcoin_abc, O1 Bitcoin ABC, jasonbcox Subscribers: teamcity Differential Revision: https://reviews.bitcoinabc.org/D1970
Summary: s/order/n/ for consistency. Test Plan: None Reviewers: markblundeberg, O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien, jasonbcox Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien, jasonbcox Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2741
Summary: As per title Test Plan: make check ./test/functional/test_runner.py Reviewers: #bitcoin_abc, Fabien Reviewed By: #bitcoin_abc, Fabien Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2758
Summary: Partial backport of Core PR 10742 https://github.com/bitcoin/bitcoin/pull/10742/files Completes T549 Test Plan: make check test_runner.py Reviewers: #bitcoin_abc, deadalnix, Fabien Reviewed By: #bitcoin_abc, Fabien Subscribers: teamcity, schancel Differential Revision: https://reviews.bitcoinabc.org/D2719
…n getrawtransaction Summary: 434526a [test] Add tests for getrawtransaction with block hash. (Karl-Johan Alm) b167951 [rpc] Allow getrawtransaction to take optional blockhash to fetch transaction from a block directly. (Karl-Johan Alm) a5f5a2c [rpc] Fix fVerbose parsing (remove excess if cases). (Karl-Johan Alm) Pull request description: [Reviewer hint: use [?w=1](https://github.com/bitcoin/bitcoin/pull/10275/files?w=1) to avoid seeing a bunch of indentation changes.] Presuming a user knows the block hash of the block containing a given transaction, this PR allows them to fetch the raw transaction, even without `-txindex`. It also enables support for getting transactions that are in orphaned blocks. Note that supplying a block hash will override mempool and txindex support in `GetTransaction`. The rationale behind this is that a transaction may be in multiple places (orphaned blocks) and if the user supplies an explicit block hash it should be adhered to. ```Bash $ # a41.. is a tx inside an orphan block ..3c6f.. -- first try getting it normally $ ./bitcoin-cli getrawtransaction a41e66ee1341aa9fb9475b98cfdc1fe1261faa56c0a49254f33065ec90f7cd79 1 error code: -5 error message: No such mempool transaction. Use -txindex to enable blockchain transaction queries. Use gettransaction for wallet transactions. $ # now try with block hash $ ./bitcoin-cli getrawtransaction a41e66ee1341aa9fb9475b98cfdc1fe1261faa56c0a49254f33065ec90f7cd79 1 0000000000000000003c6fe479122bfa4a9187493937af1734e1e5cd9f198ec7 { "hex": "01000000014e7e81144e42f6d65550e59b715d470c9301fd7ac189[...]90488ac00000000", "inMainChain": false, "txid": "a41e66ee1341aa9fb9475b98cfdc1fe1261faa56c0a49254f33065ec90f7cd79", "hash": "a41e66ee1341aa9fb9475b98cfdc1fe1261faa56c0a49254f33065ec90f7cd79", "size": 225, [...] } $ # another tx 6c66... in block 462000 $ ./bitcoin-cli getrawtransaction 6c66b98191e9d6cc671f6817142152ebf6c5cab2ef008397b5a71ac13255a735 1 00000000000000000217f2c12922e321f6d4aa933ce88005a9a493c503054a40 { "hex": "0200000004d157[...]88acaf0c0700", "inMainChain": true, "txid": "6c66b98191e9d6cc671f6817142152ebf6c5cab2ef008397b5a71ac13255a735", "hash": "6c66b98191e9d6cc671f6817142152ebf6c5cab2ef008397b5a71ac13255a735", "size": 666, [...] } $ ``` Tree-SHA512: 279be3818141edd3cc194a9ee65929331920afb30297ab2d6da07293a2d7311afee5c8b00c6457477d9f1f86e86786a9b56878ea3ee19fa2629b829d042d0cda Backport of Core PR 10275 https://github.com/bitcoin/bitcoin/pull/10275/files Completes T562 Test Plan: make check test_runner.py Reviewers: deadalnix, Fabien, #bitcoin_abc Reviewed By: Fabien, #bitcoin_abc Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2746
Summary: A C-style cast is equivalent to try casting in the following order: 1. const_cast(...) 2. static_cast(...) 3. const_cast(static_cast(...)) 4. reinterpret_cast(...) 5. const_cast(reinterpret_cast(...)) By using static_cast<T>(...) explicitly we avoid the possibility of an unintentional and dangerous reinterpret_cast. Furthermore static_cast<T>(...) allows for easier grepping of casts. Please enter the commit message for your changes. Lines starting Backport of Core PR10498 bitcoin/bitcoin#10498 Completes T555 Test Plan: make check test_runner.py Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc Reviewed By: jasonbcox, O1 Bitcoin ABC, #bitcoin_abc Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2765
Summary: As per title. Depends on D2747. Test Plan: ./bench_sign Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien, jasonbcox Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, Fabien, jasonbcox Subscribers: jasonbcox, Fabien, schancel Differential Revision: https://reviews.bitcoinabc.org/D2748
Summary: As per title. Depends on D2747. Test Plan: ./bench_verify Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix, Fabien, jasonbcox Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, Fabien, jasonbcox Subscribers: jasonbcox, Fabien, schancel Differential Revision: https://reviews.bitcoinabc.org/D2749
Summary: This has been added before D2009 gets landed, it needs to be updated as `signrawtransaction` is going to get deprecated in favor of `signrawtransactionwithwallet` and `signrawtransactionwithkey`. Test Plan: ./test/functional/test_runner.py wallet_listsinceblock Reviewers: #bitcoin_abc, deadalnix, jasonbcox Reviewed By: #bitcoin_abc, jasonbcox Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2763
Summary: Deprecate signrawtransaction (target is v0.19). Backport 3/3 of core PR10579 (part of commit d602348 + deprecation from 1e79c05) Depends on D2763 Completes task T438 Test Plan: make check ./test/functional/test_runner.py --extended Reviewers: #bitcoin_abc, jasonbcox, deadalnix Reviewed By: #bitcoin_abc, jasonbcox, deadalnix Subscribers: deadalnix, teamcity Differential Revision: https://reviews.bitcoinabc.org/D2009
Summary: This commit adds the final block hash of the window to getchaintxstats and documents how reviewers can verify changes to chainTxData. Backport of PR12317: bitcoin/bitcoin#12317 Completes T566. Test Plan: make check test_runner.py rpc_blockchain Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc Reviewed By: jasonbcox, Fabien, O1 Bitcoin ABC, #bitcoin_abc Subscribers: teamcity, schancel Differential Revision: https://reviews.bitcoinabc.org/D2711
Summary: Completes T561. Depends on D2711. Backport of PR12083 https://github.com/bitcoin/bitcoin/pull/12083/files Test Plan: make check test_runner.py Reviewers: Fabien, deadalnix, O1 Bitcoin ABC, #bitcoin_abc, nakihito Reviewed By: Fabien, O1 Bitcoin ABC, #bitcoin_abc Subscribers: teamcity, schancel Differential Revision: https://reviews.bitcoinabc.org/D2702
Summary: See core issue #12386: bitcoin/bitcoin#12386 Backport of core PR12416 Test Plan: make check Build the windows binaries Reviewers: #bitcoin_abc, deadalnix, jasonbcox Reviewed By: #bitcoin_abc, jasonbcox Subscribers: schancel Differential Revision: https://reviews.bitcoinabc.org/D2779
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.
Changes from ABC 19.1 to 19.3 cherry-picked.
After PR 19.2 is merged, this can be rebased and merged separately