aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1546 from rnicoll/1.17-auxpow1.17-devMax K2019-07-1448-178/+2499
|\ | | | | 1.17 AuxPoW support
| * Handle legacy v2 block at #66064Ross Nicoll2019-07-131-1/+3
| |
| * Correct PoW calculation logic to use locally calculated difficultyRoss Nicoll2019-07-131-3/+3
| |
| * Sync changes from Dogecoin 1.10Ross Nicoll2019-07-135-5/+38
| |
| * Merge AuxPoW support from NamecoreRoss Nicoll2019-07-1342-164/+2292
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes are as below: Wrap CBlockHeader::nVersion into a new class (CBlockVersion). This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID. Update getauxblock.py for new 'generate' RPC call. Add 'auxpow' to block JSON. Accept auxpow as PoW verification. Add unit tests for auxpow verification. Add check for memory-layout of CBlockVersion. Weaken auxpow chain ID checks for the testnet. Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks. Use this to disable the checks on testnet. Introduce CPureBlockHeader. Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two. Differentiate between uint256 and arith_uint256. This change was done upstream, modify the auxpow code. Add missing lock in auxpow_tests. Fix REST header check for auxpow headers. Those can be longer, thus take that into account. Also perform the check actually on an auxpow header. Correctly set the coinbase for getauxblock results. Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be. (BIP30 block height and COINBASE_FLAGS.) Implement getauxblock plus regression test. Turn auxpow test into FIXTURE test. This allows using of the Params() calls. Move CMerkleTx code to auxpow.cpp. Otherwise we get linker errors when building without wallet. Fix rebase with BIP66. Update the code to handle BIP66's nVersion=3. Enforce that auxpow parent blocks have no auxpow block version. This is for compatibility with namecoind. See also https://github.com/namecoin/namecoin/pull/199. Move auxpow-related parameters to Consensus::Params.
| * Update dependency builder and its packages to be ready for Dogecoin specificslangerhans2019-04-284-10/+15
| |
| * Add Dogecoin difficulty calculationsRoss Nicoll2019-04-284-4/+157
|/
* Correct build and test net seedRoss Nicoll2019-04-282-2/+2
| | | | | * Correct the test case from 100 blocks to 240 * Remove incorrect ", true" in testnet seed configuration
* Replace test data with Dogecoin valuesRoss Nicoll2019-04-0316-733/+748
| | | | | | | | | | | | | | | | | | | | Replace test data with Dogecoin equivalents in the folowing tests: * base58 * bip32 * keys * miner * pow * wallet Replace RPC and deterministic signatures in unit tests with Dogecoin values. While conventionally I'd use an alternative implementation for these, as RFC 6979 compliant signature generation isn't terribly common, and there's no reason to suspect we've modified this code, I'm going to assert that it's good enough to test that the code doesn't provide different values. Disabled Bitcoin PoW tests, but left code in place to simplify later merges. These are replaced by the Dogecoin PoW tests.
* Add Dogecoin block subsidy calculations.Ross Nicoll2019-04-037-2/+160
|
* Replace consensus values with Dogecoin equivalentsRoss Nicoll2019-04-0310-103/+120
| | | | | | | * Replace chain parameters with Dogecoin values * Update maximum coins to match Dogecoin * Disable version 2 block requirement * Update coinbase maturity to match Dogecoin
* Update DB version to 5.1Ross Nicoll2019-04-034-17/+100
|
* Litecoin: Fix zeitgeist2 attack thanks to Lolcust and ArtForz. This fixes an ↵coblee2019-04-031-1/+7
| | | | issue where a 51% attack can change difficulty at will. Go back the full period unless it's the first retarget after genesis.
* Scrypt n=1024 PoW hashRoss Nicoll2019-04-0317-8/+517
| | | | | | Scrypt n=1024 PoW hash based upon Colin Percival's Tarnsnap (2009) Modified by Artforz, coblee, pooler, wtogami, Nikolay Belikov, Adrian Gallagher, Ross Nicoll
* doc: Fill in authors and changelog for 0.17.1 release notesWladimir J. van der Laan2018-12-071-20/+81
| | | | Tree-SHA512: dc23ae43e81ad379b48bb8dc6da21cde647a7edc778563b8b8266dfe84d9baa70bf4565915e276ea0e14aa96ce677547494da0aadeebfcc961f53430c7bb84ea
* Merge #14889: [0.17] Backport #14424 (Stop requiring imported pubkey to sign ↵Wladimir J. van der Laan2018-12-071-7/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | non-PKH schemes) 89a9a9d9385bbf291849874adc33a270b28fcac4 Stop requiring imported pubkey to sign non-PKH schemes (Pieter Wuille) Pull request description: Github-Pull: #14424 Rebased-From: 2f6b466aeb6d4c88ab2e0e8b2a402be0743608b5 Tree-SHA512: 1ea10dee66626f04918f197cd7c4949a836fa49c8f676f276b2328f8d79389059db7b30fc04d4c4bf8209f6a8d21f3ea49a017ddc7623eca6b7e6efc2fe0d749
| * Stop requiring imported pubkey to sign non-PKH schemesPieter Wuille2018-12-071-7/+7
| | | | | | | | | | Github-Pull: #14424 Rebased-From: 2f6b466aeb6d4c88ab2e0e8b2a402be0743608b5
* | Merge #14880: 0.17: Backport #14453MarcoFalke2018-12-062-8/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dcb032dcdf qa: Ensure wallet unload during walletpassphrase timeout (João Barbosa) 75b5d8c4ea rpc: Fix wallet unload during walletpassphrase timeout (João Barbosa) Pull request description: Backport #14453 to 0.17 Tree-SHA512: fce0adccbb07b6635bb773a71beb4a9b814bceb77bbe7bbc5bcb7d151aabb1148c791622f58c990afe202012ca1971cd466cb536fc6f37e22cdc58738720b593
| * | qa: Ensure wallet unload during walletpassphrase timeoutJoão Barbosa2018-12-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | 0.17 branch doesn't include #12493 which changed encryptwallet behavior. For that reason the test is adjusted. Github-Pull: #14453 Rebased-From: 8907df9
| * | rpc: Fix wallet unload during walletpassphrase timeoutJoão Barbosa2018-12-051-8/+12
| | | | | | | | | | | | | | | Github-Pull: #14453 Rebased-From: 321decf
* | | Merge #14878: 0.17: Further backportsWladimir J. van der Laan2018-12-062-1/+4
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7a590d8390ef2158509c4fc08b84dac71f59e1fb fix converttopsbt permitsigdata arg, add basic test (Gregory Sanders) Pull request description: Ooff, we missed some backports that were tagged. Checked: * In 7a590d8 (clean cherry-pick): The test changes fail without the code changes Tree-SHA512: 9996886113dfcd8efa91f5436bc0f3507c81579861543611367bc3403868019fb1e45832c3f994f12278edb1c0c850e21f2f88e46a6981f45a11c4d61dcedaf9
| * | fix converttopsbt permitsigdata arg, add basic testGregory Sanders2018-12-052-1/+4
| |/ | | | | | | | | Github-Pull: #14356 Rebased-From: 88a79cb436b30b39d37d139da723f5a31e9d161b
* / build: bump version to 0.17.1Wladimir J. van der Laan2018-12-065-16/+16
|/ | | | | | Also update man pages. Tree-SHA512: 826f3c9ad1e49902ee2f1710a4329388c0a9298a359971f21130bf8f390d4a7b744d010f04eb109666ceb28d0053b9fa7ec088caaa4e4cc38509526457086d40
* Merge #14780: PSBT backports to 0.17MarcoFalke2018-12-058-73/+161
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7bee41452b Add test for conversion from non-witness to witness UTXO (Pieter Wuille) ff56bb9b44 Add regression test for PSBT signing bug #14473 (Glenn Willen) db445d4e5a Refactor PSBTInput signing to enforce invariant (Glenn Willen) ad94165db9 Simplify arguments to SignPSBTInput (Glenn Willen) 39ece4fc28 Add bool PSBTInputSigned (Glenn Willen) 70ee1f8709 New PartiallySignedTransaction constructor from CTransction (Glenn Willen) a9eab081d5 Remove redundant txConst parameter to FillPSBT (Glenn Willen) cfdd6b2f6c More concise conversion of CDataStream to string (Glenn Willen) a3fe125490 check that a separator is found for psbt inputs, outputs, and global map (Andrew Chow) Pull request description: This is a backport of #14588, #14377, and #14197's test to 0.17. Tree-SHA512: 07535ec69a878a63b549e5e463345e233f34662dff805202614cf2ffc896c6d1981363e6d06d02db2e02d815075ad8ebdc5f93f637052cff8c8cbe6c8dfa096a
| * Add test for conversion from non-witness to witness UTXOPieter Wuille2018-12-031-1/+46
| | | | | | | | | | Github-Pull: #14197 Rebased-From: 862d159d635c1de219d94e030b186a745fe28eb9
| * Add regression test for PSBT signing bug #14473Glenn Willen2018-12-031-0/+7
| | | | | | | | | | Github-Pull: #14588 Rebased-From: e13fea975d5e4ae961faba36379a1cdaf9e50c1c
| * Refactor PSBTInput signing to enforce invariantGlenn Willen2018-12-032-25/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the process of PSBTInput signing to enforce the invariant that a PSBTInput always has _either_ a witness_utxo or a non_witness_utxo, never both. This simplifies the logic of SignPSBTInput slightly, since it no longer has to deal with the "both" case. When calling it, we now give it, in order of preference: (1) whichever of the utxo fields was already present in the PSBT we received, or (2) if neither, the non_witness_utxo field, which is just a copy of the input transaction, which we get from the wallet. SignPSBTInput no longer has to remove one of the two fields; instead, it will check if we have a witness signature, and if so, it will replace the non_witness_utxo with the witness_utxo (which is smaller, as it is just a copy of the output being spent.) Add PSBTInput::IsSane checks in two more places, which checks for both utxo fields being present; we will now give an RPC error early on if we are supplied such a malformed PSBT to fill in. Also add a check to FillPSBT, to avoid touching any input that is already signed. (This is now redundant, since we should no longer potentially harm an already-signed input, but it's harmless.) fixes #14473 Github-Pull: #14588
| * Simplify arguments to SignPSBTInputGlenn Willen2018-12-036-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | Remove redundant arguments to SignPSBTInput -- since it needs several bits of the PartiallySignedTransaction, pass in a reference instead of doing it piecemeal. This saves us having to pass in both a PSBTInput and its index, as well as having to pass in the CTransaction. Also avoid redundantly passing the sighash_type, which is contained in the PSBTInput already. Github-Pull: #14588 Rebased-From: 0f5bda2bd941686620ef0eb90bd7ed973cc7ef73
| * Add bool PSBTInputSignedGlenn Willen2018-12-033-4/+14
| | | | | | | | | | | | | | | | | | | | Refactor out a "PSBTInputSigned" function to check if a PSBT is signed, for use in subsequent commits. Also improve a related comment. GitHub-Pull: #14588 Rebased-From: 53e6fffb8f5b10f94708d33d667a67cb91c2d09d
| * New PartiallySignedTransaction constructor from CTransctionGlenn Willen2018-12-033-8/+8
| | | | | | | | | | | | | | | | | | New constructor that creates a PartiallySignedTransaction from a CTransaction, automatically sizing the inputs and outputs vectors for convenience. Github-Pull: #14588 Rebased-From: 65166d4cf828909dc4bc49dd68a58103d015f1fd
| * Remove redundant txConst parameter to FillPSBTGlenn Willen2018-12-033-21/+9
| | | | | | | | | | Github-Pull: #14588 Rebased-From: 4f3f5cb4b142f0fcb36241fa33b52a257901dbee
| * More concise conversion of CDataStream to stringGlenn Willen2018-12-032-4/+4
| | | | | | | | | | | | | | | | Use .str() instead of .data() and .size() when converting CDataStream to a string. Uses std::string, avoiding conversion to a C string. Github-Pull: #14588 Rebased-From: fe5d22bc676f158e8d567d71edb3451118759d62
| * check that a separator is found for psbt inputs, outputs, and global mapAndrew Chow2018-12-032-4/+29
|/ | | | | Github-Pull: #14377 Rebased-From: 4fb3388db95f408566e43ebb9736842cfbff0a7d
* Merge #14196: [0.17][psbt] always drop the unnecessary utxo and convert ↵MarcoFalke2018-12-011-2/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-witness utxo to witness when necessary fcefc6851a Convert non-witness UTXOs to witness if witness sig created (Andrew Chow) fcdea8ad2a Drop the unnecessary UTXO based on the UTXOs present, not on earlier wallet things (Andrew Chow) Pull request description: When we sign an input in a psbt that has a non-witness utxo but a witness signature is produced, we will now replace the non-witness utxo with the corresponding witness utxo. Furthermore, we should make sure that the correct UTXO type is used based on what UTXOs are there, not based on earlier wallet behavior. Note that this is PR'd to the 0.17 branch because the code here no longer exists in master. Tree-SHA512: 882e9e4e9b77d6ac1743c35c0d59023aad6f4f19193398f97f2c6b81f6627d74e5220b1d674a0edba1ff2fc2a7f61afbf838d3faf0a964fccd3dee97c631aa47
| * Convert non-witness UTXOs to witness if witness sig createdAndrew Chow2018-09-111-0/+7
| | | | | | | | | | If a witness signature was created when a non-witness UTXO is used, convert the non-witness UTXO to a witness one.
| * Drop the unnecessary UTXO based on the UTXOs present, not on earlier wallet ↵Andrew Chow2018-09-111-2/+2
| | | | | | | | | | | | | | things Instead of dropping the unnecessary UTXO based on whether the wallet did something, do it based on whether two UTXOs are there.
* | Merge #14851: [backport] fix assert crash when specified change output spend ↵MarcoFalke2018-11-304-3/+59
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | size is unknown 2a5cc40dc4 CreateTransaction: Assume minimum p2sh-p2wpkh spend size for unknown change (Gregory Sanders) 53dcf2b407 Remove stale comment in CalculateMaximumSignedInputSize (Gregory Sanders) Pull request description: backport of #14380 Tree-SHA512: 42e261bd797d1938f8e041ccd10073ecd1d72695e2e4ce322e5a3ce262647e32108b01dde73361b6d2ac36438522ab3c4cd58ca072194f25011132437430cd27
| * | CreateTransaction: Assume minimum p2sh-p2wpkh spend size for unknown changeGregory Sanders2018-11-304-1/+59
| | |
| * | Remove stale comment in CalculateMaximumSignedInputSizeGregory Sanders2018-11-301-2/+0
| | |
* | | Merge #14852: 0.17 backport: [tests] Add wallet_balance.pyMarcoFalke2018-11-303-13/+134
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 67225e2fd7 [tests] Add wallet_balance.py (John Newbery) Pull request description: Tree-SHA512: 5a8707ddc7e11ac0b7b7dc27a73668acc7ff53f832d94a85930a28329ec5271da2b469e2b51d66746fa6ab54aa0221d49d215ec3434ea619352fcbacbb252883
| * | [tests] Add wallet_balance.pyJohn Newbery2018-11-303-13/+134
|/ / | | | | | | | | | | | | | | Adds a test specifically to test the wallet's getbalance and getunconfirmedbalance RPCs. Github-Pull: #14845 Rebased-From: c1825b9d398b31967887c459c0fad9cf56cf95c6
* | Merge #14835: [0.17] Further BackportsMarcoFalke2018-11-3010-10/+59
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f9db08e8ca qa: Avoid race in p2p_invalid_block by waiting for the block request (MarcoFalke) 79358817e5 Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986) (practicalswift) 9666dbaf09 rpc: Make HTTP RPC debug logging more informative (practicalswift) b90157891a add test demonstrating addrLocal UB (Kaz Wesley) 6f04264bbb fix uninitialized read when stringifying an addrLocal (Kaz Wesley) 5782fdcd8c Throw error if CPubKey is invalid during PSBT keypath serialization (Gregory Sanders) de5e48a461 Bugfix: RPC: Add address_type named param for createmultisig (Luke Dashjr) df5131bd41 gui: explicitly disable "Dark Mode" appearance on macOS (fanquake) Pull request description: Backports #14593, #14596, #14618, #14690 and #14728 to the 0.17 branch. Tree-SHA512: fcda4b75fcb71bb80cc8bde2a2b98ff5c0239dfa754ac980b1a91a90409502ac7678326399a4fc03a773074339dbf8b3d11750c91fe4302741a954745acfcca1
| * | qa: Avoid race in p2p_invalid_block by waiting for the block requestMarcoFalke2018-11-301-4/+4
| | | | | | | | | | | | | | | Github-Pull: #14700 Rebased-From: fa2156820877caf70fc09c7e6244b7cde6ebaf29
| * | Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986)practicalswift2018-11-293-1/+3
| | | | | | | | | | | | | | | Github-Pull: #14618 Rebased-From: ab8c6f24d28ea1d1e6258cf316b4b97a0baf2377
| * | rpc: Make HTTP RPC debug logging more informativepracticalswift2018-11-291-3/+7
| | | | | | | | | | | | | | | Github-Pull: #14618 Rebased-From: 991248649b76a5a071e1360a700f3e2ecf3e1e1f
| * | add test demonstrating addrLocal UBKaz Wesley2018-11-291-0/+38
| | | | | | | | | | | | | | | Github-Pull: #14728 Rebased-From: 8ebbef016928811756e46b9086067d1c826797a8
| * | fix uninitialized read when stringifying an addrLocalKaz Wesley2018-11-292-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reachable from either place where SetIP is used when our best-guess addrLocal for a peer is IPv4, but the peer tells us it's reaching us at an IPv6 address. In that case, SetIP turns an IPv4 address into an IPv6 address without setting the scopeId, which is subsequently read in GetSockAddr during CNetAddr::ToStringIP and passed to getnameinfo. Fix by ensuring every constructor initializes the scopeId field with something. Github-Pull: #14728 Rebased-From: b7b36decaf878a8c1dcfdb4a27196c730043474b
| * | Throw error if CPubKey is invalid during PSBT keypath serializationGregory Sanders2018-11-291-0/+3
| | | | | | | | | | | | | | | Github-Pull: #14690 Rebased-From: 4e4de10f69d5d705256cadfb15d76314dff16e77
| * | Bugfix: RPC: Add address_type named param for createmultisigLuke Dashjr2018-11-291-1/+1
| | | | | | | | | | | | | | | Github-Pull: #14596 Rebased-From: d8bf1071cf819fb4e848bb832af8199f084e0434
| * | gui: explicitly disable "Dark Mode" appearance on macOSfanquake2018-11-291-0/+3
|/ / | | | | | | | | Github-Pull: #14593 Rebased-From: cf2f4306fe26305b24bba8833af845ada3a42ec8