aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | | | | | | Chainparams: Translations: DRY: options and error stringsJorge Timón2015-10-209-51/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove SelectBaseParamsFromCommandLine and SelectParamsFromCommandLine
| * | | | | | | | | | | | | Chainparams: Replace CBaseChainParams::Network enum with string constants ↵Jorge Timón2015-10-206-45/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (suggested by Wladimir)
* | | | | | | | | | | | | | Merge pull request #6853Wladimir J. van der Laan2015-10-203-0/+7
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7801f43 Added fPowNoRetargeting field to Consensus::Params that disables nBits recalculation. (Eric Lombrozo)
| * | | | | | | | | | | | | | Added fPowNoRetargeting field to Consensus::Params that disables nBits ↵Eric Lombrozo2015-10-193-0/+7
| | |_|/ / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recalculation.
* | | | | | | | | | | | | | Merge pull request #6829Wladimir J. van der Laan2015-10-201-1/+10
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 53b86d0 doc: add comment explaining initial header request (Daniel Kraft)
| * | | | | | | | | | | | | doc: add comment explaining initial header requestDaniel Kraft2015-10-141-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a comment that explains why the initial "getheader" requests are made starting from the block preceding the currently best one. Thanks to sdaftuar for the explanation!
* | | | | | | | | | | | | | Merge pull request #6820Wladimir J. van der Laan2015-10-151-2/+3
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 60af755 build: univalue subdir build fixups (Cory Fields)
| * | | | | | | | | | | | | | build: univalue subdir build fixupsCory Fields2015-10-131-2/+3
| |/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Force a rebuild if the headers change - Only build the lib target - Clean univalue on 'make clean'
* / / / / / / / / / / / / / trivial: use constants for db keysDaniel Kraft2015-10-131-4/+4
|/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace literal occurances of the key "prefixes" 'c' and 'b' in txdb.cpp by the respective constants.
* | | | | | | | | | | | | Merge pull request #6777Wladimir J. van der Laan2015-10-134-54/+185
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dcd8e27 Refer to obfuscate_key via pointer in peripheral CLevelDB classes (James O'Beirne) 1488506 Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator (James O'Beirne) 0fdf8c8 Handle obfuscation in CLevelDBIterator (James O'Beirne) 3499ce1 Encapsulate CLevelDB iterators cleanly (Pieter Wuille)
| * | | | | | | | | | | | | Refer to obfuscate_key via pointer in peripheral CLevelDB classesJames O'Beirne2015-10-093-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cc @sipa
| * | | | | | | | | | | | | Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIteratorJames O'Beirne2015-10-091-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thanks @dexX7.
| * | | | | | | | | | | | | Handle obfuscation in CLevelDBIteratorJames O'Beirne2015-10-083-8/+15
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | Encapsulate CLevelDB iterators cleanlyPieter Wuille2015-10-083-44/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/leveldb.cpp src/leveldb.h src/txdb.cpp
* | | | | | | | | | | | | | Merge pull request #6798Wladimir J. van der Laan2015-10-131-0/+2
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 700f52e Clarification of unit test build instructions. (Eric Lombrozo)
| * | | | | | | | | | | | | | Clarification of unit test build instructions.Eric Lombrozo2015-10-101-0/+2
| | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | Merge pull request #6788Wladimir J. van der Laan2015-10-137-20/+16
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3b1279f build: match upstream build change (Cory Fields) 313e7f5 Squashed 'src/univalue/' changes from 87d9045..5839ac3 (MarcoFalke)
| * | | | | | | | | | | | | | build: match upstream build changeCory Fields2015-10-091-1/+1
| | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | Merge commit '313e7f5c89d6e72e06efe9255089765b4c5815fe' into HEADMarcoFalke2015-10-096-19/+15
| |/ / / / / / / / / / / / /
* | | | | | | | | | | | | | tests: update transaction_tests for new dust thresholdWladimir J. van der Laan2015-10-101-1/+1
| | | | | | | | | | | | | |
* | | | | | | | | | | | | | Bump minrelaytxfee defaultWladimir J. van der Laan2015-10-091-1/+1
|/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To bridge the time until a dynamic method for determining this fee is merged. This is especially aimed at the stable releases (0.10, 0.11) because full mempool limiting, as will be in 0.12, is too invasive and risky to backport.
* | | | | | | | | | | | | Merge pull request #6779Wladimir J. van der Laan2015-10-091-1/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b22692c build: Make use of ZMQ_CFLAGS (Cory Fields)
| * | | | | | | | | | | | | build: Make use of ZMQ_CFLAGSCory Fields2015-10-081-1/+1
| | |_|_|/ / / / / / / / / | |/| | | | | | | | | | |
* | | | | | | | | | | | | Merge pull request #6770Wladimir J. van der Laan2015-10-091-0/+1
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | b2af29b Ignore bench_bitcoin binary. (Pavel Janík)
| * | | | | | | | | | | | Ignore bench_bitcoin binary.Pavel Janík2015-10-061-0/+1
| | | | | | | | | | | | |
* | | | | | | | | | | | | Merge pull request #6720Wladimir J. van der Laan2015-10-074-6/+199
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1534d9a Creates unittests for addrman, makes addrman testable. Adds several unittests for addrman to verify it works as expected. Makes small modifications to addrman to allow deterministic and targeted tests. (EthanHeilman)
| * | | | | | | | | | | | | Creates unittests for addrman, makes addrman testable.EthanHeilman2015-09-244-6/+199
| | |_|_|_|_|_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds several unittests for addrman to verify it works as expected. Makes small modifications to addrman to allow deterministic and targeted tests.
* | | | | | | | | | | | | Merge pull request #6769Wladimir J. van der Laan2015-10-071-1/+2
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | b196b68 Test LowS in standardness, removes nuisance malleability vector. (Gregory Maxwell)
| * | | | | | | | | | | | Test LowS in standardness, removes nuisance malleability vector.Gregory Maxwell2015-10-061-1/+2
| | |_|_|_|_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds SCRIPT_VERIFY_LOW_S to STANDARD_SCRIPT_VERIFY_FLAGS which will make the node require the canonical 'low-s' encoding for ECDSA signatures when relaying or mining. Consensus behavior is unchanged. The rational is explained in a81cd96805ce6b65cca3a40ebbd3b2eb428abb7b: Absent this kind of test ECDSA is not a strong signature as given a valid signature {r, s} both that value and {r, -s mod n} are valid. These two encodings have different hashes allowing third parties a vector to change users txids. These attacks are avoided by picking a particular form as canonical and rejecting the other form(s); in the of the LOW_S rule, the smaller of the two possible S values is used. If widely deployed this change would eliminate the last remaining known vector for nuisance malleability on boring SIGHASH_ALL p2pkh transactions. On the down-side it will block most transactions made by sufficiently out of date software. Unlike the other avenues to change txids on boring transactions this one was randomly violated by all deployed bitcoin software prior to its discovery. So, while other malleability vectors where made non-standard as soon as they were discovered, this one has remained permitted. Even BIP62 did not propose applying this rule to old version transactions, but conforming implementations have become much more common since BIP62 was initially written. Bitcoin Core has produced compatible signatures since a28fb70e in September 2013, but this didn't make it into a release until 0.9 in March 2014; Bitcoinj has done so for a similar span of time. Bitcoinjs and electrum have been more recently updated. This does not replace the need for BIP62 or similar, as miners can still cooperate to break transactions. Nor does it replace the need for wallet software to handle malleability sanely[1]. This only eliminates the cheap and irritating DOS attack. [1] On the Malleability of Bitcoin Transactions Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
* | | | | | | | | | | | Merge pull request #6650Wladimir J. van der Laan2015-10-067-22/+338
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | 42cb388 Add chainstate obfuscation to avoid spurious antivirus detection (James O'Beirne)
| * | | | | | | | | | | Add chainstate obfuscation to avoid spurious antivirus detectionJames O'Beirne2015-10-067-22/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an `obfuscate` parameter to `CLevelDBWrapper` and makes use of it for all new chainstate stores built via `CCoinsViewDB`. Also adds an `Xor` method to `CDataStream`. Thanks to @sipa @laanwj @pstratem @dexX7 @KyrosKrane @gmaxwell.
* | | | | | | | | | | | Merge pull request #6733Wladimir J. van der Laan2015-10-066-0/+244
|\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7072c54 Support very-fast-running benchmarks (Gavin Andresen) 535ed92 Simple benchmarking framework (Gavin Andresen)
| * | | | | | | | | | | | Support very-fast-running benchmarksGavin Andresen2015-09-304-4/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid calling gettimeofday every time through the benchmarking loop, by keeping track of how long each loop takes and doubling the number of iterations done between time checks when they take less than 1/16'th of the total elapsed time.
| * | | | | | | | | | | | Simple benchmarking frameworkGavin Andresen2015-09-306-0/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmarking framework, loosely based on google's micro-benchmarking library (https://github.com/google/benchmark) Wny not use the Google Benchmark framework? Because adding Even More Dependencies isn't worth it. If we get a dozen or three benchmarks and need nanosecond-accurate timings of threaded code then switching to the full-blown Google Benchmark library should be considered. The benchmark framework is hard-coded to run each benchmark for one wall-clock second, and then spits out .csv-format timing information to stdout. It is left as an exercise for later (or maybe never) to add command-line arguments to specify which benchmark(s) to run, how long to run them for, how to format results, etc etc etc. Again, see the Google Benchmark framework for where that might end up. See src/bench/MilliSleep.cpp for a sanity-test benchmark that just benchmarks 'sleep 100 milliseconds.' To compile and run benchmarks: cd src; make bench Sample output: Benchmark,count,min,max,average Sleep100ms,10,0.101854,0.105059,0.103881
* | | | | | | | | | | | | Merge pull request #6742Wladimir J. van der Laan2015-10-061-3/+4
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | 58981d4 Changed logging to make -logtimestamps to work also for -printtoconsole (Arne Brutschy)
| * | | | | | | | | | | | Changed logging to make -logtimestamps to work also for -printtoconsoleArne Brutschy2015-09-301-3/+4
| | | | | | | | | | | | |
* | | | | | | | | | | | | Accept any sequence of PUSHDATAs in OP_RETURN outputsPeter Todd2015-10-016-17/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously only one PUSHDATA was allowed, needlessly limiting applications such as matching OP_RETURN contents with bloom filters that operate on a per-PUSHDATA level. Now any combination that passes IsPushOnly() is allowed, so long as the total size of the scriptPubKey is less than 42 bytes. (unchanged modulo non-minimal PUSHDATA encodings) Also, this fixes the odd bug where previously the PUSHDATA could be replaced by any single opcode, even sigops consuming opcodes such as CHECKMULTISIG. (20 sigops!)
* | | | | | | | | | | | | Add IsPushOnly(const_iterator pc)Peter Todd2015-10-012-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows IsPushOnly() to be applied to just part of the script for OP_RETURN outputs.
* | | | | | | | | | | | | Make TX_SCRIPTHASH clear vSolutionsRet firstPeter Todd2015-10-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously unlike other transaction types the TX_SCRIPTHASH would not clear vSolutionsRet, which means that unlike other transaction types if it was called twice in a row you would get the result of the previous invocation as well.
* | | | | | | | | | | | | Merge pull request #6637Wladimir J. van der Laan2015-10-0186-47/+631
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 95acf3c remove $(@F) and subdirs from univalue make (Jonas Schnelli) 9623e93 [Univalue] add univalue over subtree (Jonas Schnelli) 2f9f082 Squashed 'src/univalue/' content from commit 87d9045 (Jonas Schnelli) 0917306 remove univalue, prepare for subtree (Jonas Schnelli)
| * | | | | | | | | | | | | remove $(@F) and subdirs from univalue makeJonas Schnelli2015-10-011-2/+2
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | [Univalue] add univalue over subtreeJonas Schnelli2015-10-0129-42/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | similar to secp256k1 include and compile univalue over a subtree
| * | | | | | | | | | | | | Merge commit '2f9f082b5ef3c495c70598ef23383effef675f9a' as 'src/univalue'Jonas Schnelli2015-10-0157-0/+1994
| | | | | | | | | | | | | |
| * | | | | | | | | | | | | remove univalue, prepare for subtreeJonas Schnelli2015-10-016-1406/+0
| |/ / / / / / / / / / / /
* | | | | | | | | | | | | Merge pull request #5987Wladimir J. van der Laan2015-10-013-1/+6
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e761d7a Bugfix: Allow mining on top of old tip blocks for testnet (fixes testnet-in-a-box use case) (Luke Dashjr)
| * | | | | | | | | | | | | Bugfix: Allow mining on top of old tip blocks for testnet (fixes ↵Luke Dashjr2015-09-293-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | testnet-in-a-box use case)
* | | | | | | | | | | | | | Merge pull request #6588Jeff Garzik2015-10-011-7/+7
|\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | In (strCommand == "tx"), return if AlreadyHave()Tom Harding2015-09-031-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main effect is to exit processing for recently-rejected hashes, in case they are pushed to us without prior advertisement. This behavior was seen in the wild. An additional effect is to do early checks for mempool or mapOrphan existence. No logging or nDoS tracking is needed for failures of these checks.
* | | | | | | | | | | | | | | Merge pull request #5924Wladimir J. van der Laan2015-10-011-7/+4
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 835c122 Clean up change computation in CreateTransaction. (Daniel Kraft)
| * | | | | | | | | | | | | | Clean up change computation in CreateTransaction.Daniel Kraft2015-05-031-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compute the change directly as difference between the "requested" and the actual value returned by SelectCoins. This removes a duplication of the fee logic code.