aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-07-17qa: Temporarily disable test that reads the default datadir locationMarcoFalke
2018-07-17Merge #13638: tests: Use MAX_SCRIPT_ELEMENT_SIZE from script.pyWladimir J. van der Laan
b9f4b211df24fed85dddbe69355648b57fd331ac tests: Use MAX_SCRIPT_ELEMENT_SIZE from script.py (Daniel Kraft) Pull request description: `p2p_segwit.py` and `test_framework/script.py` both define a constant for `MAX_SCRIPT_ELEMENT_SIZE` (=520 bytes), which is redundant. This change uses the constant defined in the `script.py` module for `p2p_segwit.py`. Tree-SHA512: 2bc295ff26d9b052d4e05b85c27e748175884d6689a92c19337fc4db8bf439e3abe3edc91af1aaf46d8dc42ed96a85ad17110546d2274a0d9cda3abd6b878a31
2018-07-17Merge #13680: [doc] Remove outdated comment about miner ignoring CPFPWladimir J. van der Laan
db6eb90094bb4462b6cde2e9a927df03ee788f22 [doc] Remove outdated comment about mining code ignoring CPFP (James O'Beirne) Pull request description: BlockAssembler chooses transactions on the basis of packages (which incorporate unconfirmed ancestors into feerate), so the specified RBF comment about mining code ignoring CPFP is out of date. Tree-SHA512: a4c1e60fee0a8f450526d565951187f869d000febce0eea8a8d2e18bb140c3c1b8602953d9dcab2d1e8d0c4fc8d392c67eb0773d67e52080d48e6b9bf13f9ee2
2018-07-17Merge #13647: Scripts and tools: Fix BIND_NOW check in security-check.pyWladimir J. van der Laan
37d363dd4acf7d41196d44b295593019add241c3 Tools: fix BIND_NOW check in security-check.py (Conrado Gouvea) Pull request description: Previously, the BIND_NOW check would work only if it was the first value in FLAGS. Tree-SHA512: 39cd83f673a6b521803be5585ada516f2db4eede718f0c5aea3377825ed1adcefed5bbb41dd9a5f24a26f7d27116cfc81bde7e26283232593b72768c5ae3d321
2018-07-17Merge #12196: Add scantxoutset RPC methodWladimir J. van der Laan
be98b2d9a8fcb5f0e29ea88f026d604442fe984c [QA] Add scantxoutset test (Jonas Schnelli) eec7cf7b33cafac6a969bce38905cbacda56b1a5 scantxoutset: mention that scanning by address will miss P2PK txouts (Jonas Schnelli) 94d73d32abe927e74271a7b3eac7ba56658a535e scantxoutset: support legacy P2PK script type (Jonas Schnelli) 892de1dfea283a5d6ac18b8c74b57f61a920c762 scantxoutset: add support for scripts (Jonas Schnelli) 78304941f771b8bd918deddd37d01bc8f21873e1 Blockchain/RPC: Add scantxoutset method to scan UTXO set (Jonas Schnelli) 90485755115424ed9ea70206f54da2b13777fa6c Add FindScriptPubKey() to search the UTXO set (Jonas Schnelli) Pull request description: Alternative to #9152. This takes `<n>` pubkeys and optionally `<n>` xpubs (together with a definable lookup windows where the default is 0-1000) and looks up common scripts in the UTXO set of all given or derived keys. The output will be an array similar to `listunspent`. That array is compatible with `createrawtransaction` as well as with `signrawtransaction`. This makes it possible to prepare sweeps and have them signed in a secure (cold) space. Tree-SHA512: a2b22a117cf6e27febeb97e5d6fe30184926d50c0c7cbc77bb4121f490fed65560c52f8eac67a9720d7bf8f420efa42459768685c7e7cc03722859f51a5e1e3b
2018-07-17Merge #13682: bench: Remove unused variableMarcoFalke
fa39f674ae bench: Remove unused variable (practicalswift) Pull request description: Remove unused variable `vch`. Tree-SHA512: 624d206d27453ec071d20ca52d7f9e142710ebe7529fc793beb98a61c6a74ad481f4433d14401b7761070746d99e0aa35dd67568a017b18617d6be88de6f3105
2018-07-17travis: Check that ~/.bitcoin is never createdMarcoFalke
2018-07-17Merge #13663: tests: Avoid read/write to default datadirMarcoFalke
fa43a4138b bench_bitcoin: Avoid read/write to default datadir (MarcoFalke) ea80b81e2e test_bitcoin: Avoid read/write to default datadir (MarcoFalke) Pull request description: tests should never read or write and potentially corrupt the default datadir, so try to avoid it. Tree-SHA512: ee446ff4bf59da2aed38c2e4758581d6103e9d4c35a118497e9ec21d566ba33d913e160c2d7ba2ea6f937f000343ecea3816154bd87ee47f64f5b0cf9e88f6e0
2018-07-17Merge #13604: Add depends 32-bit arm support for bitcoin-qtWladimir J. van der Laan
4b6998455776ed3e1b7c996c14f15f0c304c9269 Add depends 32-bit arm support for bitcoin-qt (Sebastian Kung) Pull request description: Some hobbyists are used to using the desktop for interfacing with their raspberry pi. This commits adds qt to the arm-linux-gnueabihf target. Tree-SHA512: cb03387267eb8f68dfd79735c2c01c5a119c406e5578805e60b377934da42d46cb34d35e45c8843979dfb4070859c553d09ae348b468d9731523f33307132fa8
2018-07-17wallet: Avoid potential null pointer dereference in ↵practicalswift
CWalletTx::GetAvailableCredit(...)
2018-07-17bench: Remove unused variablepracticalswift
2018-07-16Tests for PSBTAndrew Chow
Added functional tests for PSBT that test the RPCs. Also added all of the BIP 174 test vectors (except for the updater tests) in the functional tests. Added a Unit test for the BIP 174 updater test vector.
2018-07-16Create wallet RPCs for PSBTAndrew Chow
walletprocesspsbt takes a PSBT format transaction, updates the PSBT with any inputs related to this wallet, signs, and finalizes the transaction. There is also an option to not sign and just update. walletcreatefundedpsbt creates a PSBT from user provided data in the same form as createrawtransaction. It also funds the transaction and takes an options argument in the same form as fundrawtransaction. The resulting PSBT is blank with no input or output data filled in.
2018-07-16Create utility RPCs for PSBTAndrew Chow
decodepsbt takes a PSBT and decodes it to JSON combinepsbt takes multiple PSBTs for the same tx and combines them. finalizepsbt takes a PSBT and finalizes the inputs. If all inputs are final, it extracts the network serialized transaction and returns that instead of a PSBT unless instructed otherwise. createpsbt is like createrawtransaction but for PSBTs instead of raw transactions. convertpsbt takes a network serialized transaction and converts it into a psbt. The resulting psbt will lose all signature data and an explicit flag must be set to allow transactions with signature data to be converted.
2018-07-16[doc] Remove outdated comment about mining code ignoring CPFPJames O'Beirne
BlockAssembler chooses transactions on the basis of packages (which incorporate unconfirmed ancestors into feerate), so the specified RBF comment about mining code ignoring CPFP is out of date.
2018-07-16Merge #13679: Initialize m_next_send_inv_to_incomingMarcoFalke
347b4ff825 Initialize m_next_send_inv_to_incoming (Pieter Wuille) Pull request description: This fixes an uninitialized variable introduced in #13298. Tree-SHA512: 0c6fb164164141036fbbc955475650724bffdb3593c22946f55ac715fa162183bf9377a8390ee9d13f104be22bc417445e2c7fb3d4acf5e6236ac802e50f3e77
2018-07-16Initialize m_next_send_inv_to_incomingPieter Wuille
2018-07-16Merge #13298: Net: Bucketing INV delays (1 bucket) for incoming connections ↵Pieter Wuille
to hide tx time d45b344ffd Bucket for inbound when scheduling invs to hide tx time (Gleb) Pull request description: It has been brought up to my attention that current random delays mechanism (originally intended to obfuscate transaction metadata) allows to easily estimate the time a transaction was received by a node. It may be done by connecting multiple observer nodes to the same node. Each of those nodes will generate its own schedule of delays. Combined metadata regarding those events from different sources allows an observer to estimate transaction time. After this patch a spy won't gain additional information by just creating multiple connections to a target. Tree-SHA512: c71dae5ff350b614cb40a8e201fd0562d3e03e3e72a5099718cd451f0d84c66d5e52bbaf0d5b4b75137514c8efdedcc6ef4df90142b360153f04ad0721545ab1
2018-07-16Migrate gitian-build.sh to pythonChun Kuan Lee
2018-07-16Merge #13652: rpc: Fix that CWallet::AbandonTransaction would leave the ↵Wladimir J. van der Laan
grandchildren, etc. active 89e70f9d7fe384ef9de4fa3828d4c80523290186 Fix that CWallet::AbandonTransaction would only traverse one level (Ben Woosley) Pull request description: Prior to this change, it would mark only the first layer of child transactions abandoned, due to always following the input `hashTx` rather than the current `now` tx. Tree-SHA512: df068b49637d299ad73237c7244005fe5aa966d6beae57aff12e6948f173d9381e1b5d08533f7e3a1416991ed57f9f1f7b834057141d85c07dc60bb1f0872cea
2018-07-16Merge #13664: Trivial: fix references to share/rpcuser (now share/rpcauth)MarcoFalke
c64cc1bd94 scripted-diff: Fix references to share/rpcuser (now share/rpcauth) (Mason Simon) Pull request description: Commit 3fdb297 renamed share/rpcuser to share/rpcauth but left references to the old path in code; this commit fixes the old references. ``` -BEGIN VERIFY SCRIPT- git grep --files-with-matches 'share/rpcuser' src/*.cpp | xargs sed -i -E 's:share/rpcuser:share/rpcauth:g' git grep --files-with-matches 'share/rpcuser' test/functional/*.py | xargs sed -i -E 's:share/rpcuser:share/rpcauth:g' -END VERIFY SCRIPT- ``` Tree-SHA512: 0ae5c746cfbaf38683e636382a9d518bbce123d308b1c8d47c1b089cc2e64dd6a7098cdfb6606ed5a9abc867d948a14022c3f3065f64076086ded429a7fa3cc7
2018-07-16Merge #13171: Change gitian-descriptors to use bionic insteadWladimir J. van der Laan
c1afe3232fa10e290fb355cf37ea4c7bc1084065 Change gitian-descriptors to use bionic instead (Chun Kuan Lee) Pull request description: I have tested this with Ubuntu Bionic host with lxc 3.0.0, the gitian-build for Windows and MacOSX work fine, but there is an issue about it for Linux. Failed at check-symbol: ``` test/test_bitcoin: symbol __divmoddi4 from unsupported version GCC_7.0.0 test/test_bitcoin: symbol log2f from unsupported version GLIBC_2.27 qt/bitcoin-qt: symbol __divmoddi4 from unsupported version GCC_7.0.0 qt/bitcoin-qt: symbol log2f from unsupported version GLIBC_2.27 ``` I think this should be fixed in `./configure --enable-glibc-back-compat` Should not be merged before #13177 devrandom/gitian-builder#178 Close #12511 Tree-SHA512: 257d75d5b6864e105279f7a7b992fbbd7903cdbe3300b66dacec0a783d267707d9dbbfe0e64a36983ca1eca50a2a5e1cdb222b6d3745ccc3e5fc5636c88b581f
2018-07-16Change gitian-descriptors to use bionic insteadChun Kuan Lee
2018-07-16Modified in_addr6 cast in CConman class to work with msvc.Aaron Clauson
2018-07-15scripted-diff: Fix references to share/rpcuser (now share/rpcauth)Mason Simon
Commit 3fdb29778a0b598d4ddf05ec5ed4593641d0da6e renamed share/rpcuser to share/rpcauth but left references to the old path in code; this commit fixes the old references. Performed update using https://github.com/facebook/codemod with command: `codemod --extensions cpp,py,md 'share/rpcuser' 'share/rpcauth'` -BEGIN VERIFY SCRIPT- git grep --files-with-matches 'share/rpcuser' src/*.cpp | xargs sed -i -E 's:share/rpcuser:share/rpcauth:g' git grep --files-with-matches 'share/rpcuser' test/functional/*.py | xargs sed -i -E 's:share/rpcuser:share/rpcauth:g' -END VERIFY SCRIPT-
2018-07-15Merge #13368: Update gitian-build.sh for dockerMarcoFalke
86967b2e35 Add option to use docker for gitian-build.sh (Andrew Chow) Pull request description: Updates gitian-build.sh script for the docker virtualization method recently added to gitian-builder. Second commit depends on https://github.com/devrandom/gitian-builder/pull/185 Tree-SHA512: 0fa50b6c1be35a7a39f4a82816369637d3d0082922ac9876b80ae8156c795dec0ff34ad384b5348777042df8ddb6a72bbaeddd7002ef80557b10e2acf46632aa
2018-07-15[QA] Add scantxoutset testJonas Schnelli
2018-07-15scantxoutset: mention that scanning by address will miss P2PK txoutsJonas Schnelli
2018-07-15scantxoutset: support legacy P2PK script typeJonas Schnelli
2018-07-15scantxoutset: add support for scriptsJonas Schnelli
2018-07-15Blockchain/RPC: Add scantxoutset method to scan UTXO setJonas Schnelli
2018-07-15wallet: Fix backupwallet for multiwalletsDaniel Kraft
backupwallet was broken for multiwallets in their own directories (i.e. something like DATADIR/wallets/mywallet/wallet.dat). In this case, the backup would use DATADIR/wallets/wallet.dat as source file and not take the specific wallet's directory into account. This led to either an error during the backup (if the wrong source file was not present) or would silently back up the wrong wallet; especially the latter behaviour can be quite bad for users.
2018-07-14Merge #13138: [tests] Remove accounts from wallet_importprunedfunds.pyMarcoFalke
38040c34e1 [tests] Remove accounts from wallet_importprunedfunds.py (John Newbery) Pull request description: This was split from #13075 to not block review/merge of that PR. Tree-SHA512: 631d7139ed2bda5222ec395cc75720261e2e1f741dba04723d09fe04ef6cf92222a3679d886026ec33e2db2d1e2fa1a0f36c2451581d0f733a9939a98c7118ab
2018-07-14[moveonly] Extract RescanWallet to handle a simple rescanBen Woosley
Where the outcome does not depend on the result, apart from a simple success check.
2018-07-14bench_bitcoin: Avoid read/write to default datadirMarcoFalke
2018-07-14test_bitcoin: Avoid read/write to default datadirMarcoFalke
2018-07-13Bucket for inbound when scheduling invs to hide tx timeGleb
2018-07-13Merge #13072: Update createmultisig RPC to support segwitPieter Wuille
f40b3b82df [tests] functional test for createmultisig RPC (Anthony Towns) b9024fdda3 segwit support for createmultisig RPC (Anthony Towns) d58055d25f Move AddAndGetDestinationForScript from wallet to outputype module (Anthony Towns) 9a44db2e46 Add outputtype module (Anthony Towns) Pull request description: Adds an "address_type" parameter that accepts "legacy", "p2sh-segwit", and "bech32" to choose the type of address created. Defaults to "legacy" rather than the value of the `-address-type` option for backwards compatibility. As part of implementing this, OutputType is moved from wallet into its own module, and `AddAndGetDestinationForScript` is changed to apply to a `CKeyStore` rather than a wallet, and to invoke `keystore.AddCScript(script)` itself rather than expecting the caller to have done that. Fixes #12502 Tree-SHA512: a08c1cfa89976e4fd7d29caa90919ebd34a446354d17abb862e99f2ee60ed9bc19d8a21a18547c51dc3812cb9fbed86af0bef2f1e971f62bf95cade4a7d86237
2018-07-13Merge #13651: [moveonly] Extract CWallet::MarkInputsDirty, and privatize ↵Pieter Wuille
AddToWalletIfInvolvingMe 17e6aa8e33 Privatize CWallet::AddToWalletIfInvolvingMe (Ben Woosley) b7f5650942 Extract CWallet::MarkInputsDirty (Ben Woosley) Pull request description: Thus reducing code and surface area of CWallet. Tree-SHA512: 31a99acc77ef3438ef9b95d60030972b707bd69d6e7b1498a5f776b219d9aabc83464f75bfec7bad5cb635d0b2d686c389914e5cc57a4bb0b93c47bd82ca608c
2018-07-13Merge #11658: During IBD, when doing pruning, prune 10% extra to avoid ↵Pieter Wuille
pruning again soon after ac51a26bdc During IBD, when doing pruning, prune 10% extra to avoid pruning again soon after (Luke Dashjr) Pull request description: Pruning forces a chainstate flush, which can defeat the dbcache and harm performance significantly. Alternative to #11359 Tree-SHA512: 631e4e8f94f5699e98a2eff07204aa2b3b2325b2d92e8236b8c8d6a6730737a346e0ad86024e705f5a665b25e873ab0970ce7396740328a437c060f99e9ba4d9
2018-07-13Merge #13417: [net] Tighten scope in net_processingPieter Wuille
3339ba28e9 Make g_enable_bip61 a member variable of PeerLogicValidation (Jesse Cohen) 6690a28606 Restrict as much as possible in net_processing to translation unit (Jesse Cohen) 1d4df02b7e [move-only] Move things only referenced in net_processing out of header file (Jesse Cohen) 02bbc05310 Rescope g_enable_bip61 to net_processing (Jesse Cohen) Pull request description: As part of a larger effort to decouple net_processing and validation a bit, these are a bunch of simple scope cleanups. I've moved things out of the header file that are only referenced in net_processing and added static (or anonymous namespace) modifiers to everything possible in net_processing. There are a handful of functions which could be static except that they are exposed for the sake of unit testing - these are explicitly commented. There has been some discussion of a compile time annotation, but no conclusion has been reached on that yet. This is somewhat related to other prs #12934 #13413 #13407 and will be followed by prs that reduce reliance on cs_main to synchronize data structures which are translation unit local to net_processing Tree-SHA512: 46c9660ee4e06653feb42ba92189565b0aea17aac2375c20747c0d091054c63829cbf66d2daddf65682b58ce1d6922e23aefea051a7f2c8abbb6db253a609082
2018-07-13Merge #13566: Fix get balancePieter Wuille
702ae1e21a [RPC] [wallet] allow getbalance to use min_conf and watch_only without accounts. (John Newbery) cf15761f6d [wallet] GetBalance can take a min_depth argument. (John Newbery) 0f3d6e9ab7 [wallet] factor out GetAvailableWatchOnlyBalance() (John Newbery) 7110c830f8 [wallet] deduplicate GetAvailableCredit logic (John Newbery) ef7bc8893c [wallet] Factor out GetWatchOnlyBalance() (John Newbery) 4279da4785 [wallet] GetBalance can take an isminefilter filter. (John Newbery) Pull request description: #12953 inadvertently removed the functionality to call `getbalance "*" <int> <bool>` to get the wallet's balance with either minconfs or include_watchonly. This restores that functionality (when `-deprecatedrpc=accounts`), and also makes it possible to call ``getbalance minconf=<int> include_watchonly=<bool>` when accounts are not being used. Tree-SHA512: 67e84de9291ed6d34b23c626f4dc5988ba0ae6c99708d02b87dd3aaad3f4b6baa6202a66cc2dadd30dd993a39de8036ee920fcaa8cbb1c5dfe606e6fac183344
2018-07-13Merge #13659: build: add missing leveldb definesPieter Wuille
768981c93d build: add missing leveldb defines (Cory Fields) Pull request description: Fixes #13585. src/leveldb/build_detect_platform shows how upstream defines them. These platform may not be able to fully build or run Bitcoin Core, but defining all known to leveldb saves future hassle. Now that all possible platforms are enumerated, specifying an unknown one is an error. Tree-SHA512: 89adfb8867248e50d713cb84485c72a398df8b2af467599cf292132342b5b47f01be3a298ca33e382e210004123aa72a6338bc911d38d40d8ceaef5083e0b025
2018-07-13Merge #13630: Drop unused pindexRet arg to CMerkleTx::GetDepthInMainChainPieter Wuille
d6f39b6c64 Drop unused pindexRet arg to CMerkleTx::GetDepthInMainChain (Ben Woosley) Pull request description: Tree-SHA512: 5f064a47e71113f90f296ab36dae92173ff3fc632ab4e1e85dc71d556cb9239d15939b1e542f4292dab93d336795b7f2e4ae64f6984303c852df8d24f54ccebe
2018-07-13SignPSBTInput wrapper functionAndrew Chow
The SignPSBTInput function takes a PSBTInput, SignatureData, SigningProvider, and other data necessary for signing. It fills the SignatureData with data from the PSBTInput, retrieves the UTXO from the PSBTInput, signs and finalizes the input if possible, and then extracts the results from the SignatureData and puts them back into the PSBTInput.
2018-07-13Refactor transaction creation and transaction funding logicAndrew Chow
In preparation for more create transaction and fund transcation RPCs, refactor the transaction creation and funding logic into separate functions.
2018-07-13Methods for interacting with PSBT structsAndrew Chow
Added methods which move data to/from SignaturData objects to PSBTInput and PSBTOutput objects. Added sanity checks for PSBTs as a whole which are done immediately after deserialization. Added Merge methods to merge a PSBT into another one.
2018-07-13Add pubkeys and whether input was witness to SignatureDataAndrew Chow
Stores pubkeys in SignatureData and retrieves them when using GetPubKey(). Stores whether the signatures in a SignatureData are for a witness input.
2018-07-13Implement PSBT Structures and un/serialization methods per BIP 174Andrew Chow
2018-07-13bitcoinconsensus: invalid flags should be set to bitcoinconsensus_error ↵Thomas Kerin
type, add test cases covering bitcoinconsensus error codes