Commit Graph

788 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
b1d5409eb8 build: python 3 compatibility 2018-01-12 21:31:33 +03:00
Wladimir J. van der Laan
a0bf1386b7 wallet_ismine.h → script/ismine.h 2018-01-10 00:03:31 +03:00
Wladimir J. van der Laan
8a0a14b77b test: Create test fixture for wallet
Removes all the `#ifdef ENABLE_WALLET` from `test_bitcoin` by
making the wallet tests use their own fixture.
2018-01-10 00:02:00 +03:00
Wladimir J. van der Laan
f508e91677 test: move accounting_tests and rpc_wallet_tests to wallet/test 2018-01-10 00:01:44 +03:00
Cory Fields
2579687f83 c++11: don't throw from the reverselock destructor
noexcept is default for destructors as of c++11. By throwing in reverselock's
destructor if it's lock has been tampered with, the likely result is
std::terminate being called. Indeed that happened before this change.

Once reverselock has taken another lock (its ctor didn't throw), it makes no
sense to try to grab or lock the parent lock. That is be broken/undefined
behavior depending on the parent lock's implementation, but it shouldn't cause
the reverselock to fail to re-lock when destroyed.

To avoid those problems, simply swap the parent lock's contents with a dummy
for the duration of the lock. That will ensure that any undefined behavior is
caught at the call-site rather than the reverse lock's destruction.

Barring a failed mutex unlock which would be indicative of a larger problem,
the destructor should now never throw.
2018-01-09 23:32:07 +03:00
Cory Fields
cb9ed6bc39 crypto: add aes cbc tests 2018-01-08 21:56:54 +03:00
Pieter Wuille
46910cb2d5 Add ctaes-based constant time AES implementation 2018-01-08 21:56:36 +03:00
instagibbs
c37ac7db87 Add importprunedfunds rpc call 2018-01-08 21:36:08 +03:00
lateminer
99238ff2c8 Merge remote-tracking branch 'janko33bd/Blackcoin-Lore' into rpc-updates-0.13 2018-01-06 16:41:28 +03:00
Jonas Schnelli
893db80a40 [Bitcoin-Tx] Add tests for sequence number support 2018-01-06 14:38:26 +03:00
Wladimir J. van der Laan
b460adbab0 rpc: Register calls where they are defined 2018-01-06 13:58:48 +03:00
janko33bd
71c4f88bf9 fixing to compile 2018-01-06 00:37:31 +01:00
Daniel Cousens
780775d5bd move rpc* to rpc/ 2018-01-06 01:57:48 +03:00
Jonas Schnelli
6bab17dc2d [RPC, Wallet] Move RPC dispatch table registration to wallet/ code 2018-01-06 01:27:37 +03:00
Wladimir J. van der Laan
350739ab6c txdb: Add Cursor() method to CCoinsView to iterate over UTXO set
Add a method Cursor() to CCoinsView that returns a cursor which can be
used to iterate over the whole UTXO set.

- rpc: Change gettxoutsetinfo to use new Cursor method

- txdb: Remove GetStats method - Now that GetStats is implemented in
  terms of Cursor, remove it.
2018-01-06 00:50:16 +03:00
lateminer
5d55c17441 Code refactoring from Bitcoin Core 0.13.0
72c2651581

fc7c60d699

fa19b18c63

3e2c946cfd

0fd599767d

220f950ab1

fade505e8b

fa9976b853

fa10ce6a6d

...and some more
2018-01-02 17:21:43 +03:00
lateminer
ee8c6daaaf Merge remote-tracking branch 'janko33bd/Blackcoin-Lore' into patch-3 2018-01-02 17:12:24 +03:00
lateminer
09176edb18 add bip32 pub key serialization
90604f16af
2018-01-02 13:01:45 +03:00
lateminer
f536a8126e Replace COINBASE_MATURITY...
...with nCoinbaseMaturity
2017-12-17 15:21:59 +03:00
Wladimir J. van der Laan
effed14ca3 Porting memory fixes 2017-10-15 21:54:49 +01:00
janko33bd
2fdd12b2ea Blackcoin Lore 2017-05-30 21:33:31 +02:00
Chris Kleeschulte
796a2742c1 Merge pull request #27 from braydonf/0.12.1-bitcore-dboptions
Add options to configure block index database
2016-07-22 09:49:18 -04:00
Chethan Krishna
365802634b Remove cpp test for wallet-utility 2016-07-19 18:03:10 -04:00
Braydon Fuller
efb0d557a5 test: wallet utility python test 2016-07-18 18:03:01 -04:00
Chethan Krishna
31f56e2f5d wallet-utility: extract addresses and private keys
usage: ./wallet-utility -datadir=<directory>
help: ./wallet-utility -h
2016-07-18 16:00:20 -04:00
Braydon Fuller
69ea12c689 tests: test dbwrapper options compression and maxopenfiles 2016-07-14 16:30:31 -04:00
Braydon Fuller
73b2d0851b test: added unit tests for CScript.IsPayToPublicKeyHash 2016-06-02 12:15:13 -04:00
Suhas Daftuar
0710b303d6 Test versionbits deployments 2016-03-18 09:14:53 +00:00
Suhas Daftuar
8ebc6f2aac Add testing of ComputeBlockVersion 2016-03-18 09:14:53 +00:00
Pieter Wuille
5f90d4e294 Versionbits tests 2016-03-18 09:14:52 +00:00
Pieter Wuille
6f83cf2adb BIP9 Implementation
Inspired by former implementations by Eric Lombrozo and Rusty Russell, and
based on code by Jorge Timon.
2016-03-18 09:14:52 +00:00
Alex Morcos
ade85e126d Add LockPoints
Obtain LockPoints to store in CTxMemPoolEntry and during a reorg, evaluate whether they are still valid and if not, recalculate them.
2016-03-18 09:14:52 +00:00
Mark Friedenbach
c0c5e09fe2 BIP112: Implement CHECKSEQUENCEVERIFY
- Replace NOP3 with CHECKSEQUENCEVERIFY (BIP112)
  <nSequence> CHECKSEQUENCEVERIFY -> <nSequence>
- Fails if txin.nSequence < nSequence, allowing funds of a txout to be locked for a number of blocks or a duration of time after its inclusion in a block.
- Pull most of CheckLockTime() out into VerifyLockTime(), a local function that will be reused for CheckSequence()
- Add bitwise AND operator to CScriptNum
- Enable CHECKSEQUENCEVERIFY as a standard script verify flag
- Transactions that fail CSV verification will be rejected from the mempool, making it easy to test the feature. However blocks containing "invalid" CSV-using transactions will still be accepted; this is *not* the soft-fork required to actually enable CSV for production use.
2016-03-18 09:14:52 +00:00
Alex Morcos
15ba08c3b5 Implement SequenceLocks functions
SequenceLocks functions are used to evaluate sequence lock times or heights per BIP 68.

The majority of this code is copied from maaku in #6312
Further credit: btcdrak, sipa, NicolasDorier
2016-03-18 09:14:52 +00:00
Pieter Wuille
52b29dca76 Get rid of inaccurate ScriptSigArgsExpected 2016-01-21 13:52:32 +01:00
mb300sd
605de4a88a Rename OP_NOP2 to OP_CHECKLOCKTIMEVERIFY.
Github-Pull: #7213
Rebased-From: 37d271d7cc
2016-01-13 21:25:36 +00:00
MarcoFalke
333e1eaeea Bump copyright headers to 2015
- Bump copyright headers to 2015
- [devtools] Rewrite fix-copyright-headers.py
- [devtools] Use git pretty-format for year parsing

Github-Pull: #7205
Rebased-From: fa6ad855e9 fa24439ff3 fa71669452
2016-01-05 14:13:33 +01:00
Pieter Wuille
10b88be798 Replace trickle nodes with per-node/message Poisson delays
We used to have a trickle node, a node which was chosen in each iteration of
the send loop that was privileged and allowed to send out queued up non-time
critical messages. Since the removal of the fixed sleeps in the network code,
this resulted in fast and attackable treatment of such broadcasts.

This pull request changes the 3 remaining trickle use cases by random delays:
* Local address broadcast (while also removing the the wiping of the seen filter)
* Address relay
* Inv relay (for transactions; blocks are always relayed immediately)

The code is based on older commits by Patrick Strateman.

Github-Pull: #7125
Rebased-From: 5400ef6bcb
2015-12-14 13:43:53 +01:00
Gregory Maxwell
f31955d9da Replace setInventoryKnown with a rolling bloom filter.
Github-Pull: #7133
Rebased-From: ec73ef37ec e20672479e 6b849350ab b6a0da45db d41e44c9ac aa4b0c26b0
2015-12-04 15:01:09 +01:00
Wladimir J. van der Laan
1b0241fcec Merge pull request #7144
8f0d79e test: Disable scheduler test manythreads (Wladimir J. van der Laan)
2015-12-02 10:18:20 +01:00
Alex Morcos
553cad94e2 Rewrite CreateNewBlock
Use the score index on the mempool to only add sorted txs in order.  Remove much of the validation while building the block, relying on mempool to be consistent and only contain txs that can be mined.
The mempool is assumed to be consistent as far as not containing txs which spend non-existent outputs or double spends, and scripts are valid.  Finality of txs is still checked (except not coinbase maturity, assumed in mempool).
Still TestBlockValidity in case mempool consistency breaks and return error state if an invalid block was created.
Unit tests are modified to realize that invalid blocks can now be constructed if the mempool breaks its consistency assumptions and also updated to have the right fees, since the cached value is now used for block construction.

Conflicts:
	src/miner.cpp
2015-12-01 12:09:37 -05:00
Alex Morcos
f3fe83673e Add a score index to the mempool.
The score index is meant to represent the order of priority for being included in a block for miners.  Initially this is set to the transactions modified (by any feeDelta) fee rate.  Index improvements and unit tests by sdaftuar.
2015-12-01 10:10:25 -05:00
Alex Morcos
c49d5bc9e6 Store the total sig op count of a tx.
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.
2015-12-01 10:10:25 -05:00
Wladimir J. van der Laan
8f0d79e3c8 test: Disable scheduler test manythreads
It causes occasional deadlocks, resulting in false negatives in Travis.

Disable the test for now.
Works around #6540.
2015-12-01 14:43:38 +01:00
Wladimir J. van der Laan
2ef5ffa59a Merge pull request #6915
2d8860e Fix removeForReorg to use MedianTimePast (Suhas Daftuar)
b7fa4aa Don't call removeForReorg if DisconnectTip fails (Suhas Daftuar)
7e49f5f Track coinbase spends in CTxMemPoolEntry (Suhas Daftuar)
bb8ea1f removeForReorg calls once-per-disconnect-> once-per-reorg (Matt Corallo)
474b84a Make indentation in ActivateBestChainStep readable (Matt Corallo)
b0a064c Fix comment in removeForReorg (Matt Corallo)
9b060e5 Fix removal of time-locked transactions during reorg (Matt Corallo)
0c9959a Add failing test checking timelocked-txn removal during reorg (Matt Corallo)
2015-12-01 13:17:34 +01:00
Wladimir J. van der Laan
327291af02 Merge pull request #6914
114b581 Prevector type (Pieter Wuille)
2015-12-01 10:22:14 +01:00
Gregory Maxwell
c143c499c8 Merge pull request #7072
996d311 [RPC] Add transaction size to JSON output (Nick)
2015-11-30 22:58:43 -08:00
Suhas Daftuar
7e49f5f8b4 Track coinbase spends in CTxMemPoolEntry
This allows us to optimize CTxMemPool::removeForReorg.
2015-11-30 13:12:53 -05:00
Nick
996d3117c7 [RPC] Add transaction size to JSON output
This may be useful for blockchain explorers.
2015-11-28 17:06:56 +03:00
Alex Morcos
c0353064dd Change GetPriority calculation.
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.
2015-11-19 21:44:35 -05:00