aboutsummaryrefslogtreecommitdiff
path: root/src/test
AgeCommit message (Collapse)Author
2016-10-18Merge #8223: [c++11] Use std::unique_ptr for block creation.Wladimir J. van der Laan
9fce062 [c++11] Use std::unique_ptr for block creation. (Daniel Kraft)
2016-10-18Merge #8914: Kill insecure_random and associated global stateWladimir J. van der Laan
5eaaa83 Kill insecure_random and associated global state (Wladimir J. van der Laan)
2016-10-17Kill insecure_random and associated global stateWladimir J. van der Laan
There are only a few uses of `insecure_random` outside the tests. This PR replaces uses of insecure_random (and its accompanying global state) in the core code with an FastRandomContext that is automatically seeded on creation. This is meant to be used for inner loops. The FastRandomContext can be in the outer scope, or the class itself, then rand32() is used inside the loop. Useful e.g. for pushing addresses in CNode or the fee rounding, or randomization for coin selection. As a context is created per purpose, thus it gets rid of cross-thread unprotected shared usage of a single set of globals, this should also get rid of the potential race conditions. - I'd say TxMempool::check is not called enough to warrant using a special fast random context, this is switched to GetRand() (open for discussion...) - The use of `insecure_rand` in ConnectThroughProxy has been replaced by an atomic integer counter. The only goal here is to have a different credentials pair for each connection to go on a different Tor circuit, it does not need to be random nor unpredictable. - To avoid having a FastRandomContext on every CNode, the context is passed into PushAddress as appropriate. There remains an insecure_random for test usage in `test_random.h`.
2016-10-17test segwit uncompressed key fixesJohnson Lau
2016-10-16Require compressed keys in segwit as policy and disable signing with ↵Johnson Lau
uncompressed keys for segwit scripts
2016-10-13Merge #8817: update bitcoin-tx to output witness dataWladimir J. van der Laan
4408558 Update bitcoin-tx to output witness data. (jonnynewbs)
2016-10-10Merge #8393: Support for compact blocks together with segwitPieter Wuille
27acfc1 [qa] Update p2p-compactblocks.py for compactblocks v2 (Suhas Daftuar) 422fac6 [qa] Add support for compactblocks v2 to mininode (Suhas Daftuar) f5b9b8f [qa] Fix bug in mininode witness deserialization (Suhas Daftuar) 6aa28ab Use cmpctblock type 2 for segwit-enabled transfer (Pieter Wuille) be7555f Fix overly-prescriptive p2p-segwit test for new fetch logic (Matt Corallo) 06128da Make GetFetchFlags always request witness objects from witness peers (Matt Corallo)
2016-10-05add verbose mode to bitcoin-util-test.pyjnewbery
2016-10-05Update bitcoin-tx to output witness data.jonnynewbs
2016-10-04Use cmpctblock type 2 for segwit-enabled transferPieter Wuille
Contains version negotiation logic by Matt Corallo and bugfixes by Suhas Daftuar.
2016-09-30Merge #8830: [test] Add option to run bitcoin-util-test.py manuallyWladimir J. van der Laan
b82f493 Add option to run bitcoin-util-test.py manually (jnewbery)
2016-09-29bitcoin-util-test.py should fail if the output file is emptyjnewbery
2016-09-29Add option to run bitcoin-util-test.py manuallyjnewbery
2016-09-29Merge #8829: Add bitcoin-tx JSON testsMarcoFalke
54e5d7c Add bitcoin-tx JSON tests (jnewbery)
2016-09-28Add bitcoin-tx JSON testsjnewbery
2016-09-27Add policy: null signature for failed CHECK(MULTI)SIGJohnson Lau
2016-09-27Merge #8526: Make non-minimal OP_IF/NOTIF argument non-standard for P2WSHWladimir J. van der Laan
c72c5b1 Make non-minimal OP_IF/NOTIF argument non-standard for P2WSH (Johnson Lau)
2016-09-27Do not shadow variablesPavel Janík
2016-09-23Make non-minimal OP_IF/NOTIF argument non-standard for P2WSHJohnson Lau
2016-09-22[test] Remove redundant print in addrman_testsMarcoFalke
2016-09-19Move static global randomizer seeds into CConnmanPieter Wuille
2016-09-08net: Pass best block known height into CConnmanCory Fields
CConnman then passes the current best height into CNode at creation time. This way CConnman/CNode have no dependency on main for height, and the signals only move in one direction. This also helps to prevent identity leakage a tiny bit. Before this change, an attacker could theoretically make 2 connections on different interfaces. They would connect fully on one, and only establish the initial connection on the other. Once they receive a new block, they would relay it to your first connection, and immediately commence the version handshake on the second. Since the new block height is reflected immediately, they could attempt to learn whether the two connections were correlated. This is, of course, incredibly unlikely to work due to the small timings involved and receipt from other senders. But it doesn't hurt to lock-in nBestHeight at the time of connection, rather than letting the remote choose the time.
2016-09-08net: move nLocalServices/nRelevantServices to CConnmanCory Fields
These are in-turn passed to CNode at connection time. This allows us to offer different services to different peers (or test the effects of doing so).
2016-09-08net: move nLastNodeId to CConnmanCory Fields
2016-09-08net: move ban and addrman functions into CConnmanCory Fields
2016-09-08net: handle nodesignals in CConnmanCory Fields
2016-09-08net: Pass CConnman around as neededCory Fields
2016-09-08net: Create CConnman to encapsulate p2p connectionsCory Fields
2016-09-08Merge #8671: Minimal fix to slow prevector tests as stopgap measureMarcoFalke
f71d4a3 Minimal fix to slow prevector tests as stopgap measure (Jeremy Rubin)
2016-09-06Fix obvious assignment/equality error in testJeremy Rubin
2016-09-06Minimal fix to slow prevector tests as stopgap measureJeremy Rubin
2016-09-02Merge #8449: [Trivial] Do not shadow local variable, cleanupWladimir J. van der Laan
a159f25 Remove redundand (and shadowing) declaration (Pavel Janík) cce3024 Do not shadow local variable, cleanup (Pavel Janík)
2016-09-02Merge #8629: C++11: s/boost::scoped_ptr/std::unique_ptr/Wladimir J. van der Laan
cdd79eb C++11: s/boost::scoped_ptr/std::unique_ptr/ (Jorge Timón)
2016-09-01C++11: s/boost::scoped_ptr/std::unique_ptr/Jorge Timón
2016-09-01Merge #8524: Precompute sighashesPieter Wuille
35fe039 Rename to PrecomputedTransactionData (Pieter Wuille) ab48c5e Unit test for sighash caching (Nicolas DORIER) d2c5d04 Precompute sighashes (Pieter Wuille)
2016-08-26Rename to PrecomputedTransactionDataPieter Wuille
2016-08-25Merge #8578: [test] Remove unused codeMarcoFalke
fa1cf9e [test] Remove unused code (MarcoFalke)
2016-08-24[test] Remove unused codeMarcoFalke
2016-08-23Added feeler connections increasing good addrs in the tried table.Ethan Heilman
Tests if addresses are online or offline by briefly connecting to them. These short lived connections are referred to as feeler connections. Feeler connections are designed to increase the number of fresh online addresses in tried by selecting and connecting to addresses in new. One feeler connection is attempted on average once every two minutes. This change was suggested as Countermeasure 4 in Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report 2015/263. March 2015.
2016-08-16Unit test for sighash cachingNicolas DORIER
2016-08-16Precompute sighashesPieter Wuille
Original version by Nicolas Dorier. Precomputing version by Pieter Wuille.
2016-08-15Merge #8270: Tests: Use portable #! in python scripts (/usr/bin/env)MarcoFalke
7b01ce2 Favour python over python2 as per PR #7723 (Matthew King) 873e81f Use portable #! in python scripts (/usr/bin/env) (Matthew King)
2016-08-15Merge #8128: Net: Turn net structures into dumb storage classesWladimir J. van der Laan
9e9d644 net: fixup nits (Cory Fields) 8945384 net: Have LookupNumeric return a CService directly (Cory Fields) 21ba407 net: narrow include scope after moving to netaddress (Cory Fields) 21e5b96 net: move CNetAddr/CService/CSubNet out of netbase (Cory Fields) 1017b8a net: Add direct tests for new CSubNet constructors (Cory Fields) b6c3ff3 net: Split resolving out of CSubNet (Cory Fields) f96c7c4 net: Split resolving out of CService (Cory Fields) 31d6b1d net: Split resolving out of CNetAddr (Cory Fields)
2016-08-05Remove redundand (and shadowing) declarationPavel Janík
2016-08-04net: Have LookupNumeric return a CService directlyCory Fields
Also fix up a few small issues: - Lookup with "badip:port" now sets the port to 0 - Don't allow assert to have side-effects
2016-08-04Merge #8392: Fix several node initialization issuesWladimir J. van der Laan
9d4eb9a Do diskspace check before import thread is started (Pieter Wuille) aa59f2e Add extra message to avoid a long 'Loading banlist' (Pieter Wuille) 0fd2a33 Use a signal to continue init after genesis activation (Pieter Wuille)
2016-08-03Merge #8428: Update README.md inside of src/test/Wladimir J. van der Laan
b8db185 Update README.md (Chris Stewart)
2016-08-02Merge #8418: Add tests for compact blocksWladimir J. van der Laan
45c7ddd Add p2p test for BIP 152 (compact blocks) (Suhas Daftuar) 9a22a6c Add support for compactblocks to mininode (Suhas Daftuar) a8689fd Tests: refactor compact size serialization in mininode (Suhas Daftuar) 9c8593d Implement SipHash in Python (Pieter Wuille) 56c87e9 Allow changing BIP9 parameters on regtest (Suhas Daftuar)
2016-07-31net: narrow include scope after moving to netaddressCory Fields
Net functionality is no longer needed for CAddress/CAddrman/etc. now that CNetAddr/CService/CSubNet are dumb storage classes.
2016-07-31net: Add direct tests for new CSubNet constructorsCory Fields