Commit graph

9713 commits

Author SHA1 Message Date
Cory Fields
a574899671 chaincodes: abstract away more chaincode behavior
[squashme] replace struct CCainCode with a typedef uint256 ChainCode
2015-05-06 17:22:46 +02:00
Dave Collins
1c54757f86 Add more script edge condition tests.
This commit adds some tests to the script_valid.json and tx_invalid.json
data which exercise more edge conditions that are not currently being
tested.
2015-05-06 10:20:18 -05:00
Wladimir J. van der Laan
1fd2d39529
Merge pull request #5420
6b4feb8 [QA] rest.py RPC test: change setgenerate() to generate() (Jonas Schnelli)
97ee866 [REST] getutxos REST command (based on Bip64) (Jonas Schnelli)
2015-05-06 16:50:05 +02:00
Jonas Schnelli
2a6b844427 [QT] change transaction amount and height in overview page 2015-05-06 16:47:29 +02:00
Jorge Timón
51aa24927e Chainparams: Refactor: Decouple IsSuperMajority from Params() 2015-05-06 16:39:15 +02:00
Wladimir J. van der Laan
12f3488253
Merge pull request #6047
a56054b Update key.cpp to use new libsecp256k1 (Pieter Wuille)
a591d98 Squashed 'src/secp256k1/' changes from 1897b8e..22f60a6 (Pieter Wuille)
2015-05-06 12:29:07 +02:00
Wladimir J. van der Laan
00820f921d
Merge pull request #6055
a8cdaf5 checkpoints: move the checkpoints enable boolean into main (Cory Fields)
11982d3 checkpoints: Decouple checkpoints from Params (Cory Fields)
6996823 checkpoints: make checkpoints a member of CChainParams (Cory Fields)
9f13a10 checkpoints: store mapCheckpoints in CCheckpointData rather than a pointer (Cory Fields)
2015-05-06 11:38:39 +02:00
Wladimir J. van der Laan
40f5e8dc2a
Merge pull request #5937
a71ab10 QA: add RPC tests for error reporting of "signrawtransaction" (dexX7)
8ac2a4e RPC: show script verification errors in "signrawtransaction" result (dexX7)
2015-05-05 19:04:53 +02:00
Wladimir J. van der Laan
31c0bf1c46
Merge pull request #6080
1a0259f add jonasschnellis dns seeder (Jonas Schnelli)
2015-05-05 18:56:48 +02:00
dexX7
a71ab10f99
QA: add RPC tests for error reporting of "signrawtransaction"
Tests error reporting of transaction signing via RPC call "signrawtransaction".

Expected results:

Test 1: create and sign a valid raw transaction with one input:
- 1) The transaction has a complete set of signatures
- 2) No script verification error occurred

Test 2: create and sign a raw transaction with one valid, one invalid and one missing input script:
- 3) The transaction has no complete set of signatures
- 4) Two script verification errors occurred
- 5) Script verification errors have certain properties ("txid", "vout", "scriptSig", "sequence", "error")
- 6) The verification errors refer to the invalid (vin 1) and missing input (vin 2)
2015-05-05 10:09:39 +02:00
dexX7
8ac2a4e178
RPC: show script verification errors in "signrawtransaction" result
If there are any script verification errors, when using "signrawtransaction", they are shown in the RPC result:

```
// ...

Result:
{
  "hex" : "value",           (string) The hex-encoded raw transaction with signature(s)
  "complete" : true|false,   (boolean) If the transaction has a complete set of signatures
  "errors" : [                 (json array of objects) Script verification errors (if there are any)
    {
      "txid" : "hash",           (string) The hash of the referenced, previous transaction
      "vout" : n,                (numeric) The index of the output to spent and used as input
      "scriptSig" : "hex",       (string) The hex-encoded signature script
      "sequence" : n,            (numeric) Script sequence number
      "error" : "text"           (string) Verification or signing error related to the input
    }
    ,...
  ]
}
```
2015-05-05 09:40:55 +02:00
Wladimir J. van der Laan
f0c4281f84
Merge pull request #6105
00ea546 build: quiet the exe-installer output (Cory Fields)
cc602d0 travis: don't spew fixme messages when running wine tests (Cory Fields)
c1149f7 build: if there's no recent git tag, don't spew error messages (Cory Fields)
2015-05-05 08:50:08 +02:00
Wladimir J. van der Laan
12f78ed4f9
qt: update translations from Transifex - first run for 0.11 2015-05-05 08:48:54 +02:00
Wladimir J. van der Laan
fc44231cb7
trivial: Merge pruning help message after Transifex comment
The prune help message was broken in nonsensical parts. Merge it into
one, this is easier for translators.

Reported by yahoe.001 on transifex.
2015-05-04 18:48:38 +02:00
Wladimir J. van der Laan
3e2559c7c7
Merge pull request #6104
0414045 Show an init message while activating best chain (Wladimir J. van der Laan)
2015-05-04 18:42:47 +02:00
Cory Fields
00ea546422 build: quiet the exe-installer output 2015-05-04 12:02:24 -04:00
Wladimir J. van der Laan
04140457f4 Show an init message while activating best chain
Connecting the chain can take quite a while.
All the while it is still showing `Loading wallet...`.
Add an init message to inform the user what is happening.
2015-05-04 17:39:19 +02:00
Cory Fields
cc602d0f83 travis: don't spew fixme messages when running wine tests 2015-05-04 11:05:25 -04:00
Cory Fields
c1149f7371 build: if there's no recent git tag, don't spew error messages 2015-05-04 10:58:21 -04:00
Pieter Wuille
a56054be65 Update key.cpp to use new libsecp256k1
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.
2015-05-04 14:45:34 +02:00
Wladimir J. van der Laan
16341cc15c
Merge pull request #5418
bba2216 RPC test for "#5418 Report missing inputs in sendrawtransaction" (Jonas Schnelli)
de8e801 Report missing inputs in sendrawtransaction (Pieter Wuille)
2015-05-04 12:42:26 +02:00
Wladimir J. van der Laan
59305cebee
qt: fix numerusform in English translation
Ref: transifex issue https://www.transifex.com/projects/p/bitcoin/translate/#da/qt-translation-011x/c/47723791
2015-05-04 12:25:22 +02:00
Wladimir J. van der Laan
7f5d7e9d6d
Merge pull request #6086
d3c09ba Trivial: useless cast (ptime)(I'm ptime) (svost)
2015-05-04 09:30:04 +02:00
Wladimir J. van der Laan
20b3dc85ed
qt: English translation update before enabling translation for 0.11 2015-05-04 08:09:37 +02:00
Wladimir J. van der Laan
00e76db8c2
Merge pull request #6085
b05a89b Non-grammatical language improvements (Luke Dashjr)
7e6d23b Bugfix: Grammar fixes (Corinne Dashjr)
2015-05-04 08:01:58 +02:00
Wladimir J. van der Laan
aa9fa938d9
Merge pull request #6096
3727cbb change AC_PACKAGE_BUGREPORT from info@bitcoin.org to github issue tracker URL (Jonas Schnelli)
2015-05-04 07:55:07 +02:00
Wladimir J. van der Laan
82d06e2338
Merge pull request #6094
2a22d4b Fix comptool send_message call when MAX_INV_SZ reached (Suhas Daftuar)
574db48 Fix potential race conditions in p2p testing framework (Suhas Daftuar)
5487975 Don't run invalidblockrequest.py in travis until race condition is fixed (Suhas Daftuar)
ef32817 Fix mininode disconnections to work with select (Suhas Daftuar)
2015-05-04 07:53:05 +02:00
Daniel Kraft
835c12291e Clean up change computation in CreateTransaction.
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.
2015-05-03 10:56:48 +02:00
Luke Dashjr
b05a89b2de Non-grammatical language improvements 2015-05-02 15:23:59 +00:00
Pieter Wuille
8cf1485f3b Abstract chaincodes into CChainCode
# Conflicts:
#	src/key.cpp
#	src/key.h
2015-05-02 11:17:16 +02:00
Jonas Schnelli
3727cbb0a2 change AC_PACKAGE_BUGREPORT from info@bitcoin.org to github issue tracker URL
Mentioned by wumpus:
http://bitcoinstats.com/irc/bitcoin-dev/logs/2015/05/02#l1430543664

Details here:
http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Initializing-configure.html
2015-05-02 10:17:53 +02:00
Suhas Daftuar
2a22d4be9b Fix comptool send_message call when MAX_INV_SZ reached 2015-05-01 15:32:24 -04:00
Suhas Daftuar
574db4816f Fix potential race conditions in p2p testing framework
Previously, each NodeConnCB had its own lock to synchronize data structures
used by the testing thread and the networking thread, and NodeConn provided a
separate additional lock for synchronizing access to each send buffer.  This
commit replaces those locks with a single global lock (mininode_lock) that we
use to synchronize access to all data structures shared by the two threads.

Updates comptool and maxblocksinflight to use the new synchronization
semantics, eliminating previous race conditions within comptool, and re-enables
invalidblockrequest.py in travis.
2015-05-01 15:32:24 -04:00
Jonas Schnelli
bba2216fc1 RPC test for "#5418 Report missing inputs in sendrawtransaction" 2015-05-01 15:30:10 +02:00
Wladimir J. van der Laan
90c37bc16c
Change transifex slug to translation-011x
Ensure that translations are updated from the right place.
2015-05-01 14:25:02 +02:00
Jonas Schnelli
b3ffcdf916 don't imbue boost::filesystem::path with locale "C" on windows
fixes https://github.com/bitcoin/bitcoin/issues/6078
2015-05-01 13:32:25 +02:00
Corinne Dashjr
7e6d23b171 Bugfix: Grammar fixes 2015-05-01 11:21:27 +00:00
Wladimir J. van der Laan
b46e7c24e5
Merge pull request #6064
f46a680 Better mruset unit test (Pieter Wuille)
d4d5022 Use ring buffer of set iterators instead of deque of copies in mruset (Pieter Wuille)
d81cff3 Replace mruset setAddrKnown with CRollingBloomFilter addrKnown (Gavin Andresen)
69a5f8b Rolling bloom filter class (Gavin Andresen)
2015-05-01 12:52:18 +02:00
Cory Fields
a8cdaf5c96 checkpoints: move the checkpoints enable boolean into main
This pertains to app-state, so it doesn't make sense to handle inside the
checkpoint functions.
2015-04-30 23:14:48 -04:00
Cory Fields
11982d366d checkpoints: Decouple checkpoints from Params
Pass checkpoint data in as necessary
2015-04-30 23:14:48 -04:00
Cory Fields
699682304f checkpoints: make checkpoints a member of CChainParams
This drops the virtual call and simplifies the logic
2015-04-30 23:14:48 -04:00
Cory Fields
9f13a10548 checkpoints: store mapCheckpoints in CCheckpointData rather than a pointer 2015-04-30 23:14:08 -04:00
Suhas Daftuar
5487975ca3 Don't run invalidblockrequest.py in travis until race condition is fixed 2015-04-30 16:40:36 -04:00
Suhas Daftuar
ef3281750d Fix mininode disconnections to work with select 2015-04-30 16:40:22 -04:00
svost
d3c09ba67e Trivial: useless cast (ptime)(I'm ptime) 2015-04-30 23:11:52 +03:00
Pieter Wuille
f46a680f42 Better mruset unit test 2015-04-30 08:16:30 -07:00
Pieter Wuille
d4d5022cfc Use ring buffer of set iterators instead of deque of copies in mruset 2015-04-30 08:16:30 -07:00
Gavin Andresen
d81cff32e5 Replace mruset setAddrKnown with CRollingBloomFilter addrKnown
Use a probabilistic bloom filter to keep track of which addresses
we think we have given our peers, instead of a list.

This uses much less memory, at the cost of sometimes failing to
relay an address to a peer-- worst case if the bloom filter happens
to be as full as it gets, 1-in-1,000.

Measured memory usage of a full mruset setAddrKnown: 650Kbytes
Constant memory usage of CRollingBloomFilter addrKnown: 37Kbytes.

This will also help heap fragmentation, because the 37K of storage
is allocated when a CNode is created (when a connection to a peer
is established) and then there is no per-item-remembered memory
allocation.

I plan on testing by restarting a full node with an empty peers.dat,
running a while with -debug=addrman and -debug=net, and making sure
that the 'addr' message traffic out is reasonable.
(suggestions for better tests welcome)
2015-04-30 08:16:20 -07:00
Gavin Andresen
69a5f8be0a Rolling bloom filter class
For when you need to keep track of the last N items
you've seen, and can tolerate some false-positives.

Rebased-by: Pieter Wuille <pieter.wuille@gmail.com>
2015-04-30 07:58:29 -07:00
Wladimir J. van der Laan
8a10000222
Merge pull request #6022
b74dcb3 Separate CTranslationInterface from CClientUIInterface (Jorge Timón)
2015-04-30 16:37:18 +02:00