aboutsummaryrefslogtreecommitdiff
path: root/src/test/test_bitcoin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix compact block handling to not ban if block is invalidSuhas Daftuar2016-11-031-1/+1
|
* Merge #8865: Decouple peer-processing-logic from block-connection-logicWladimir J. van der Laan2016-10-181-1/+1
|\ | | | | | | | | | | | | | | | | | | | | a9aec5c Use BlockChecked signal to send reject messages from mapBlockSource (Matt Corallo) 7565e03 Remove SyncWithWallets wrapper function (Matt Corallo) 12ee1fe Always call UpdatedBlockTip, even if blocks were only disconnected (Matt Corallo) f5efa28 Remove CConnman parameter from ProcessNewBlock/ActivateBestChain (Matt Corallo) fef1010 Use CValidationInterface from chain logic to notify peer logic (Matt Corallo) aefcb7b Move net-processing logic definitions together in main.h (Matt Corallo) 0278fb5 Remove duplicate nBlocksEstimate cmp (we already checked IsIBD()) (Matt Corallo) 87e7d72 Make validationinterface.UpdatedBlockTip more verbose (Matt Corallo)
| * Remove CConnman parameter from ProcessNewBlock/ActivateBestChainMatt Corallo2016-10-041-1/+1
| |
* | Merge #8223: [c++11] Use std::unique_ptr for block creation.Wladimir J. van der Laan2016-10-181-2/+3
|\ \ | | | | | | | | | 9fce062 [c++11] Use std::unique_ptr for block creation. (Daniel Kraft)
| * | [c++11] Use std::unique_ptr for block creation.Daniel Kraft2016-06-181-2/+3
| | | | | | | | | | | | | | | | | | CreateNewBlock returns a pointer for which the caller takes ownership. Use std::unique_ptr to make this explicit and simplify handling of these objects in getblocktemplate.
* | | Kill insecure_random and associated global stateWladimir J. van der Laan2016-10-171-0/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* | Move static global randomizer seeds into CConnmanPieter Wuille2016-09-191-1/+1
| |
* | net: Pass CConnman around as neededCory Fields2016-09-081-1/+1
| |
* | net: Create CConnman to encapsulate p2p connectionsCory Fields2016-09-081-0/+6
| |
* | Use a signal to continue init after genesis activationPieter Wuille2016-07-301-0/+5
| |
* | BIP141: Other consensus critical limits, and BIP145Pieter Wuille2016-06-221-1/+1
| | | | | | | | Includes changes by Suhas Daftuar, Luke-jr, and mruddy.
* | Merge #8068: Compact BlocksWladimir J. van der Laan2016-06-221-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 48efec8 Fix some minor compact block issues that came up in review (Matt Corallo) ccd06b9 Elaborate bucket size math (Pieter Wuille) 0d4cb48 Use vTxHashes to optimize InitData significantly (Matt Corallo) 8119026 Provide a flat list of txid/terators to txn in CTxMemPool (Matt Corallo) 678ee97 Add BIP 152 to implemented BIPs list (Matt Corallo) 56ba516 Add reconstruction debug logging (Matt Corallo) 2f34a2e Get our "best three" peers to announce blocks using cmpctblocks (Matt Corallo) 927f8ee Add ability to fetch CNode by NodeId (Matt Corallo) d25cd3e Add receiver-side protocol implementation for CMPCTBLOCK stuff (Matt Corallo) 9c837d5 Add sender-side protocol implementation for CMPCTBLOCK stuff (Matt Corallo) 00c4078 Add protocol messages for short-ids blocks (Matt Corallo) e3b2222 Add some blockencodings tests (Matt Corallo) f4f8f14 Add TestMemPoolEntryHelper::FromTx version for CTransaction (Matt Corallo) 85ad31e Add partial-block block encodings API (Matt Corallo) 5249dac Add COMPACTSIZE wrapper similar to VARINT for serialization (Matt Corallo) cbda71c Move context-required checks from CheckBlockHeader to Contextual... (Matt Corallo) 7c29ec9 If AcceptBlockHeader returns true, pindex will be set. (Matt Corallo) 96806c3 Stop trimming when mapTx is empty (Pieter Wuille)
| * | Add TestMemPoolEntryHelper::FromTx version for CTransactionMatt Corallo2016-06-191-1/+5
| |/
* / Enable mempool consistency checks in unit testsPieter Wuille2016-06-181-0/+1
|/
* Refactor CreateNewBlock to be a method of the BlockAssembler classAlex Morcos2016-05-181-1/+1
|
* Merge #7787: [Moveonly] Create ui_interface.cppWladimir J. van der Laan2016-04-191-2/+0
|\ | | | | | | | | fa10ce6 Move ui_interface.cpp to libbitcoin_server_a_SOURCES (MarcoFalke) fabbf80 [ui] Move InitError, InitWarning, AmountErrMsg (MarcoFalke)
| * [ui] Move InitError, InitWarning, AmountErrMsgMarcoFalke2016-04-021-2/+0
| |
* | test: Create test fixture for walletWladimir J. van der Laan2016-04-181-23/+0
|/ | | | | Removes all the `#ifdef ENABLE_WALLET` from `test_bitcoin` by making the wallet tests use their own fixture.
* Merge #7691: [Wallet] refactor wallet/init interactionWladimir J. van der Laan2016-04-021-1/+0
|\ | | | | | | 25340b7 [Wallet] refactor wallet/init interaction (Jonas Schnelli)
| * [Wallet] refactor wallet/init interactionJonas Schnelli2016-03-221-1/+0
| |
* | rpc: Register calls where they are definedWladimir J. van der Laan2016-03-311-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | Split out methods to every module, apart from 'help' and 'stop' which are implemented in rpcserver.cpp itself. - This makes it easier to add or remove RPC commands - no longer everything that includes rpcserver.h has to be rebuilt when there's a change there. - Cleans up `rpc/server.h` by getting rid of the huge cluttered list of function definitions. - Removes most of the bitcoin-specific code from rpcserver.cpp and .h. Continues #7307 for the non-wallet.
* | Merge #7187: Keep reorgs fast for SequenceLocks checksWladimir J. van der Laan2016-03-161-1/+1
|\ \ | |/ |/| | | 982670c Add LockPoints (Alex Morcos)
| * Add LockPointsAlex Morcos2016-03-161-1/+1
| | | | | | | | Obtain LockPoints to store in CTxMemPoolEntry and during a reorg, evaluate whether they are still valid and if not, recalculate them.
* | Move GetTempPath() to testutil.Mustafa2016-03-111-1/+2
|/
* [RPC, Wallet] Move RPC dispatch table registration to wallet/ codeJonas Schnelli2016-01-201-0/+1
| | | | Allow extending the rpc dispatch table by appending commands when server is not running.
* Bump copyright headers to 2015MarcoFalke2015-12-131-1/+1
|
* Store the total sig op count of a tx.Alex Morcos2015-12-011-1/+1
| | | | Store sum of legacy and P2SH sig op counts. This is calculated in AcceptToMemory pool and storing it saves redoing the expensive calculation in block template creation.
* Track coinbase spends in CTxMemPoolEntrySuhas Daftuar2015-11-301-1/+1
| | | | This allows us to optimize CTxMemPool::removeForReorg.
* Change GetPriority calculation.Alex Morcos2015-11-191-2/+7
| | | | Compute the value of inputs that already are in the chain at time of mempool entry and only increase priority due to aging for those inputs. This effectively changes the CTxMemPoolEntry's GetPriority calculation from an upper bound to a lower bound.
* Merge pull request #7053Wladimir J. van der Laan2015-11-271-1/+2
|\ | | | | | | 2e29e7e Globals: Remove a bunch of Params() calls from main.cpp: (Jorge Timón)
| * Globals: Remove a bunch of Params() calls from main.cpp:Jorge Timón2015-11-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Chainparams: Explicit CChainParams arg for main: -AcceptBlock -AcceptBlockHeader -ActivateBestChain -ConnectTip -InitBlockIndex -LoadExternalBlockFile -VerifyDB parametric constructor 2) Also pickup more Params()\. in main.cpp 3) Pass nPruneAfterHeight explicitly to new FindFilesToPrune() in main.cpp
* | Implement helper class for CTxMemPoolEntry constructorAlex Morcos2015-11-161-0/+7
|/ | | | This is only for unit tests.
* Chainparams: Explicit CChainParams arg for miner:Jorge Timón2015-11-111-1/+1
| | | | | | | -BitcoinMiner -CreateNewBlock -GenerateBitcoins -ProcessBlockFound
* Chainparams: Explicit CChainParams arg for main (pre miner):Jorge Timón2015-11-111-2/+3
| | | | | -ProcessNewBlock -TestBlockValidity
* tests: Initialize networking on windowsWladimir J. van der Laan2015-11-011-0/+1
|
* Chainparams: Replace CBaseChainParams::Network enum with string constants ↵Jorge Timón2015-10-201-3/+3
| | | | (suggested by Wladimir)
* Unit test doublespends in new blocksGavin Andresen2015-07-271-3/+54
| | | | | | | As suggested by Greg Maxwell-- unit test to make sure a block with a double-spend in it doesn't pass validation if half of the double-spend is already in the memory pool (so full-blown transaction validation is skipped) when the block is received.
* TRIVIAL: Missing includesJorge Timón2015-07-231-0/+1
|
* Merge pull request #6047Wladimir J. van der Laan2015-05-061-0/+3
|\ | | | | | | | | a56054b Update key.cpp to use new libsecp256k1 (Pieter Wuille) a591d98 Squashed 'src/secp256k1/' changes from 1897b8e..22f60a6 (Pieter Wuille)
| * Update key.cpp to use new libsecp256k1Pieter Wuille2015-05-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libsecp256k1's API changed, so update key.cpp to use it. Libsecp256k1 now has explicit context objects, which makes it completely thread-safe. In turn, keep an explicit context object in key.cpp, which is explicitly initialized destroyed. This is not really pretty now, but it's more efficient than the static initialized object in key.cpp (which made for example bitcoin-tx slow, as for most of its calls, libsecp256k1 wasn't actually needed). This also brings in the new blinding support in libsecp256k1. By passing in a random seed, temporary variables during the elliptic curve computations are altered, in such a way that if an attacker does not know the blind, observing the internal operations leaks less information about the keys used. This was implemented by Greg Maxwell.
* | Separate CTranslationInterface from CClientUIInterfaceJorge Timón2015-04-161-1/+1
|/
* Merge pull request #5900Wladimir J. van der Laan2015-04-011-0/+1
|\ | | | | | | 3fcfbc8 Add a consistency check for the block chain data structures (Pieter Wuille)
| * Add a consistency check for the block chain data structuresPieter Wuille2015-03-271-0/+1
| | | | | | | | | | | | This adds a -checkblockindex (defaulting to true for regtest), which occasionally does a full consistency check for mapBlockIndex, setBlockIndexCandidates, chainActive, and mapBlocksUnlinked.
* | Initialization: setup environment before starting testsdexX72015-03-291-0/+1
|/ | | | The environment is prepared by the main thread to guard against invalid locale settings and to prevent deinitialization issues of Boost path, which can result in app crashes.
* Merge pull request #5745Wladimir J. van der Laan2015-03-201-2/+2
|\ | | | | | | 50c72f2 [Move Only] Move wallet related things to src/wallet/ (Jonas Schnelli)
| * [Move Only] Move wallet related things to src/wallet/Jonas Schnelli2015-03-121-2/+2
| | | | | | | | could once be renamed from /src/wallet to /src/legacywallet.
* | tests: add a BasicTestingSetup and apply to all testsWladimir J. van der Laan2015-03-121-2/+8
|/ | | | | | | | Make sure that chainparams and logging is properly initialized. Doing this for every test may be overkill, but this initialization is so simple that that does not matter. This should fix the travis issues.
* test: Remove UNITTEST paramsWladimir J. van der Laan2015-03-091-1/+1
| | | | | | | | | UNITTEST parameter are not used by any current tests, and the model (modifyable parameters) is inconvenient when unit-testing. As they are stored in a global structure eevery test would have to (re)set up its own parameters. For consistency it is also better to test with MAIN parameters.
* Reinitialize state in between individual unit tests.Pieter Wuille2015-03-031-14/+14
| | | | | This changes the TestingSetup fixture to be per-unit-test rather than global. Most tests don't need it, so it's only invoked in a few.
* Remove references to X11 licenceMichael Ford2014-12-161-1/+1
|