Commit graph

6127 commits

Author SHA1 Message Date
Philip Kaufmann
985ec17eee [Qt, Trivial] misc minor string changes
- write "Bitcoins" uppercase
- replace secure/insecure for payment requests with
  authenticated/unauthenticated
- change a translatable string for payment request expiry to match another
  existing string to only get ONE resulting string to translate
2015-04-20 13:29:22 +02:00
Philip Kaufmann
71ad6bd38b [Trivial] format sync.h 2015-04-20 13:29:21 +02:00
Michael Ford
447d37e7d3 Use https link to bitcoin.org in Doxygen intro 2015-04-20 13:29:21 +02:00
Michael Ford
c069234665 Fix typo in init.cpp interpration/interpretation 2015-04-20 13:29:21 +02:00
Nicolas Benoit
52070c87fd Removed '()' where used without contents inside
This additional patch removes '()' from current function name in LogPrintf output.
2015-04-20 13:29:21 +02:00
Nicolas Benoit
30c1db1c61 Replaced current function names with __func__ in LogPrintf() calls. 2015-04-20 13:29:21 +02:00
charlescharles
0b2f93091f Fix docs for 'complete' field in 'signrawtransaction' response 2015-04-20 13:29:20 +02:00
Philip Kaufmann
60c146938e [Qt] header group cleanup
- seperate core from GUI headers where this was missing
- remove an unneeded new-line
2015-04-20 13:29:20 +02:00
Wladimir J. van der Laan
4a884aedcd
Merge pull request #6020
30c43d9 miner.h: fix clang warning because of class/struct mix (Jonas Schnelli)
2015-04-20 12:32:13 +02:00
Gregory Maxwell
a784f90c98 Cap nAttempts penalty at 8 and switch to pow instead of a division loop.
On hosts that had spent some time with a failed internet connection their
 nAttempts penalty was going through the roof (e.g. thousands for all peers)
 and as a result the connect search was pegging the CPU and failing to get
 more than a 4 connections after days of running (because it was taking so
 long per try).
2015-04-19 11:47:56 -07:00
Pieter Wuille
1d5b47a903 nLastTry is only used for addrman entries
No need to define it for every CAddress, as it's memory only anyway.
2015-04-19 11:10:23 -07:00
Wladimir J. van der Laan
67a7949397 privacy: Stream isolation for Tor
According to Tor's extensions to the SOCKS protocol
(https://gitweb.torproject.org/torspec.git/tree/socks-extensions.txt)
it is possible to perform stream isolation by providing authentication
to the proxy. Each set of credentials will create a new circuit,
which makes it harder to correlate connections.

This patch adds an option, `-proxyrandomize` (on by default) that randomizes
credentials for every outgoing connection, thus creating a new circuit.

    2015-03-16 15:29:59 SOCKS5 Sending proxy authentication 3842137544:3256031132
2015-04-17 13:26:47 +02:00
Jorge Timón
b74dcb3b4a Separate CTranslationInterface from CClientUIInterface 2015-04-16 19:58:48 +02:00
Wladimir J. van der Laan
8f955b9661
Merge pull request #6012
0421c18 Fix CheckBlockIndex for reindex. (mrbandrews)
2015-04-16 10:33:29 +02:00
Jonas Schnelli
30c43d9821 miner.h: fix clang warning because of class/struct mix
- class 'Params' was previously declared as a struct
2015-04-16 10:32:47 +02:00
Wladimir J. van der Laan
bc8535b717
Merge pull request #5467
6171e49 [Qt] Use identical strings for expired payment request message (Philip Kaufmann)
06087bd [Qt] minor comment updates in PaymentServer (Philip Kaufmann)
35d1595 [Qt] constify first parameter of processPaymentRequest() (Philip Kaufmann)
9b14aef [Qt] take care of a missing typecast in PaymentRequestPlus::getMerchant() (Philip Kaufmann)
d19ae3c [Qt] remove unused PaymentRequestPlus::getPKIType function (Philip Kaufmann)
6e17a74 [Qt] paymentserver: better logging of invalid certs (Philip Kaufmann)
5a53d7c [Qt] paymentserver: do not log NULL certificates (Philip Kaufmann)
2015-04-15 16:14:20 +02:00
Suhas Daftuar
8ba7f842e5 Reduce download timeouts as blocks arrive
Compare the block download timeout to what the timeout would be if calculated
based on current time and current value of nQueuedValidatedHeaders, but
ignoring other in-flight blocks from the same peer. If the calculation based on
present conditions is shorter, then set that to be the time after which we
disconnect the peer for not delivering this block.
2015-04-15 09:28:00 -04:00
Philip Kaufmann
6171e494fc [Qt] Use identical strings for expired payment request message
- used in sendcoinsdialog.cpp and paymentserver.cpp
- removes an unneded translation string
2015-04-15 14:31:52 +02:00
Philip Kaufmann
06087bda87 [Qt] minor comment updates in PaymentServer 2015-04-15 14:31:51 +02:00
Philip Kaufmann
35d15959b0 [Qt] constify first parameter of processPaymentRequest() 2015-04-15 14:31:50 +02:00
Philip Kaufmann
9b14aefee3 [Qt] take care of a missing typecast in PaymentRequestPlus::getMerchant() 2015-04-15 14:31:50 +02:00
Philip Kaufmann
d19ae3cf66 [Qt] remove unused PaymentRequestPlus::getPKIType function 2015-04-15 14:31:49 +02:00
Philip Kaufmann
6e17a74766 [Qt] paymentserver: better logging of invalid certs
Before and after was tested in Windows:

before:
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ("Microsoft Authenticode(tm) Root Authority")
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()
GUI: ReportInvalidCertificate : Payment server found
an invalid certificate:  ()

after:
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "01" ("Microsoft Authenticode(tm) Root Authority")
() ()
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "01" () () ("Copyright (c) 1997 Microsoft Corp.",
"Microsoft Time Stamping Service Root", "Microsoft Corporation")
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "4a:19:d2:38:8c:82:59:1c:a5:5d:73:5f:15:5d:dc:a3" ()
() ("NO LIABILITY ACCEPTED, (c)97 VeriSign, Inc.", "VeriSign Time Stamping
Service Root", "VeriSign, Inc.")
GUI: ReportInvalidCertificate: Payment server found an
invalid certificate:  "e4:9e:fd:f3:3a:e8:0e:cf:a5:11:3e:19:a4:24:02:32" ()
() ("Class 3 Public Primary Certification Authority")
2015-04-15 14:31:48 +02:00
Philip Kaufmann
5a53d7cda3 [Qt] paymentserver: do not log NULL certificates
- also add a few more comments in PaymentServer::LoadRootCAs
2015-04-15 14:31:48 +02:00
Jorge Timón
bebe7282ff Chainparams: Refactor: Remove redundant AllowMinDifficultyBlocks() getter 2015-04-15 14:31:44 +02:00
Wladimir J. van der Laan
ea2b425b00
Merge pull request #5997
4e38217 Chainparams: Refactor: Remove redundant HashGenesisBlock() getter (Jorge Timón)
2015-04-15 12:06:55 +02:00
Wladimir J. van der Laan
622e3c9c39
Merge pull request #5999
e8e8904 Chainparams: Cleanup: Delete CChainParams getters to attributes from Consensus::Params (Jorge Timón)
2015-04-15 12:00:09 +02:00
Wladimir J. van der Laan
4c4f1b4721
Merge pull request #5992
ea9e82d [squashme] fix listunspent code indentation (Jonas Schnelli)
b9fb692 Push down RPC reqWallet flag (Jonas Schnelli)
0b9dc9c [move] move listunspent to wallet/rpcwallet.cpp (Jonas Schnelli)
2015-04-15 11:10:23 +02:00
mrbandrews
0421c18f3a Fix CheckBlockIndex for reindex.
Some tests in CheckBlockIndex require chainActive.Tip(), but when reindexing, chainActive has not been set on the first call to CheckBlockIndex.

reindex.py starts a node, mines 3 blocks, stops, and reindexes with CheckBlockIndex enabled.
2015-04-14 14:10:19 -04:00
Suhas Daftuar
c1ecee8f72 Set nSequenceId when a block is fully linked
Also adds a test to CheckBlockIndex
2015-04-14 12:51:20 -04:00
Matt Corallo
eb63bf86cf Fix missing lock in submitblock 2015-04-13 11:29:44 -07:00
Jorge Timón
e8e8904dda Chainparams: Cleanup: Delete CChainParams getters to attributes from Consensus::Params 2015-04-13 18:39:53 +02:00
Jonas Schnelli
ea9e82df73 [squashme] fix listunspent code indentation 2015-04-13 15:04:08 +02:00
Wladimir J. van der Laan
9125c08f34
Merge pull request #6000
fd31199 consensus: don't use arith_uint256 in consensus.h (Cory Fields)
2015-04-13 11:25:01 +02:00
Jorge Timón
4e382177ed Chainparams: Refactor: Remove redundant HashGenesisBlock() getter 2015-04-12 23:01:30 +02:00
Jonas Schnelli
b9fb692d04 Push down RPC reqWallet flag 2015-04-12 19:37:29 +02:00
Jonas Schnelli
0b9dc9c8f5 [move] move listunspent to wallet/rpcwallet.cpp 2015-04-12 17:56:32 +02:00
Jeff Garzik
c2fa084611
Merge pull request #5983 2015-04-12 11:48:12 -04:00
Tom Harding
b2b3619262 Implement CTransaction::IsEquivalentTo(...)
Define CTransaction::IsEquivalentTo(const CTransaction& tx)

True if only scriptSigs are different.  In other words, true if
the two transactions are malleability clones.  In other words,
true if the two transactions have the same effect on the
outside universe.

In the wallet, only SyncMetaData for equivalent transactions.
2015-04-11 19:03:58 -07:00
Cory Fields
fd311996e8 consensus: don't use arith_uint256 in consensus.h
Requiring arith_uint256 at such a base level is not good for modularity.
2015-04-10 15:33:37 -04:00
Wladimir J. van der Laan
48265f3cf4 Revert mining changes in #5957
This reverts commit e2edf95cd3 6b04508e37 0df67f1f7a,
except the changes to the RPC tests.

A `generate` RPC call is introduced based on the old code.
2015-04-10 07:51:27 +02:00
Wladimir J. van der Laan
57026a29bc
Merge pull request #5957
e2edf95 Bugfix: make CreateNewBlock return pindexPrev (Pieter Wuille)
6b04508 Introduce separate 'generate' RPC call (Pieter Wuille)
0df67f1 Simplify hash loop code (Pieter Wuille)
2015-04-09 15:23:09 +02:00
Philip Kaufmann
f702d1c66d move ThreadFlushWalletDB declaration to walletdb.h 2015-04-08 14:31:53 +02:00
Wladimir J. van der Laan
7efc9cf672
Merge pull request #5951
77650cc add -walletbroadcast=0 rpc test (Jonas Schnelli)
6f25262 wallet: make it possible to disable transaction broadcast (Wladimir J. van der Laan)
2015-04-08 12:09:21 +02:00
Wladimir J. van der Laan
eb87f84d18
Merge pull request #5952
437ada3 Switch test case signing to RFC6979 extra entropy (Pieter Wuille)
9d09322 Squashed 'src/secp256k1/' changes from 50cc6ab..1897b8e (Pieter Wuille)
2015-04-08 09:56:54 +02:00
Wladimir J. van der Laan
91cba1aaed
Merge pull request #5969
f14e687 Chainparams: Decouple CAlert from CChainParams (Jorge Timón)
2015-04-08 09:41:14 +02:00
Wladimir J. van der Laan
a0bfc69541
Merge pull request #5959
ede379f Add additional block index consistency checks (Suhas Daftuar)
2015-04-08 08:57:25 +02:00
Wladimir J. van der Laan
64b263cc61
Merge pull request #5973
6c35664 [Qt] Clarify: smartfee button name "Minimize" (MarcoFalke)
2015-04-08 08:48:59 +02:00
Pieter Wuille
b36f1ce87e
Merge pull request #5948
1cc0e96 Trivial optimization: use GetAncestor to compute new target (Pieter Wuille)
2015-04-07 15:13:04 -07:00
MarcoFalke
6c3566443f [Qt] Clarify: smartfee button name "Minimize"
Make clear this button hides the options instead of minimizing the transaction fee.
2015-04-07 13:32:09 +02:00
Wladimir J. van der Laan
27e8d224e9
Merge pull request #5945
ad9e86d Keep mempool consistent during block-reorgs (Gavin Andresen)
2015-04-06 09:48:17 +02:00
Jorge Timón
f14e687feb Chainparams: Decouple CAlert from CChainParams 2015-04-04 12:58:14 +02:00
Suhas Daftuar
00dcaf4beb Change download logic to allow calling getheaders/getdata on inbound peers
SendMessages will now call getheaders on both inbound and outbound peers,
once the headers chain is close to synced.  It will also try downloading
blocks from inbound peers once we're out of initial block download (so
inbound peers will participate in parallel block fetching for the last day
or two of blocks being downloaded).
2015-04-02 13:41:01 -04:00
Suhas Daftuar
ede379f780 Add additional block index consistency checks
This adds more tests to CheckBlockIndex:
- HAVE_DATA is true iff nTx > 0
- BLOCK_VALID_TRANSACTIONS is true iff nTx > 0
- BLOCK_VALID_TRANSACTIONS is true for a block and all parents iff
  nChainTx > 0
2015-04-01 15:11:45 -04:00
Pieter Wuille
e2edf95cd3 Bugfix: make CreateNewBlock return pindexPrev 2015-04-01 11:47:10 -07:00
Pieter Wuille
6b04508e37 Introduce separate 'generate' RPC call 2015-04-01 11:47:10 -07:00
Pieter Wuille
0df67f1f7a Simplify hash loop code 2015-04-01 10:25:51 -07:00
Wladimir J. van der Laan
3e8a1f2725
Merge pull request #5900
3fcfbc8 Add a consistency check for the block chain data structures (Pieter Wuille)
2015-04-01 17:20:38 +02:00
Wladimir J. van der Laan
f7dea1cba7
Merge pull request #5941
1d21ba2 Scale up addrman (Pieter Wuille)
c6a63ce Always use a 50% chance to choose between tried and new entries (Pieter Wuille)
f68ba3f Do not bias outgoing connections towards fresh addresses (Pieter Wuille)
a8ff7c6 Simplify hashing code (Pieter Wuille)
e6b343d Make addrman's bucket placement deterministic. (Pieter Wuille)
b23add5 Switch addrman key from vector to uint256 (Pieter Wuille)
2015-04-01 16:17:13 +02:00
Wladimir J. van der Laan
6f252627b2 wallet: make it possible to disable transaction broadcast
This is an advanced feature which will disable any kind of automatic
transaction broadcasting in the wallet. This gives the user full control
of how the transaction is sent.

For example they can broadcast new transactions through some other
mechanism themselves, after getting the transaction hex through `gettransaction`.

This just adds the option `-walletbroadcast=<0,1>`. Right now these
transactions will get the status

    Status: conflicted, has not been successfully broadcast yet

They shouldn't be shown as conflicted at all (`walletconflicts` is empty). This status
will go away when the transaction is received through the network.
2015-04-01 13:03:39 +02:00
Wladimir J. van der Laan
41113e33ad
Merge pull request #5950
3a3ecc0 Initialization: setup environment before starting QT tests (dexX7)
fc3979a Initialization: setup environment before starting tests (dexX7)
ba0fa0d Initialization: set fallback locale as environment variable (dexX7)
2015-04-01 12:22:29 +02:00
Wladimir J. van der Laan
5ff4065cc6
Merge pull request #5833
721cb55 GUI: Display label rather than address on popups (Luke Dashjr)
e96028c GUI: Clarify terminology; use "Label" heading for labels row, and "Node/Service" rather than [IP] "Address" (Luke Dashjr)
2015-04-01 12:02:01 +02:00
Wladimir J. van der Laan
446bb70fcd
Merge pull request #5940
0f5954c Regression test for ResendWalletTransactions (Gavin Andresen)
2015-03-30 14:28:09 +02:00
Wladimir J. van der Laan
d62fed14ab
Merge pull request #5954
63e4c9c Fix clang compile warnings intriduced in #5681 (Michael Ford)
2015-03-30 13:56:45 +02:00
Wladimir J. van der Laan
bb56781d61
Merge pull request #5898
c816833 [Qt] fix rpc console font size to flexible metrics (Jonas Schnelli)
2015-03-30 10:24:05 +02:00
Michael Ford
63e4c9cd35 Fix clang compile warnings intriduced in #5681 2015-03-29 19:45:05 +08:00
dexX7
3a3ecc02e5
Initialization: setup environment before starting QT tests
The environment is prepared by the main thread to guard against invalid locale settings.
2015-03-29 10:35:35 +02:00
dexX7
fc3979ac69
Initialization: setup environment before starting tests
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.
2015-03-29 10:35:25 +02:00
Pieter Wuille
437ada3e55 Switch test case signing to RFC6979 extra entropy
Instead of manually tweaking the deterministic nonce post-generation,
pass the test case number in as extra entropy to RFC6979.
2015-03-27 15:31:47 -07:00
Pieter Wuille
9d09322b41 Squashed 'src/secp256k1/' changes from 50cc6ab..1897b8e
1897b8e Merge pull request #229
efc571c Add simple testcases for signing with rfc6979 extra entropy.
1573a10 Add ability to pass extra entropy to rfc6979
3087bc4 Merge pull request #228
d9b9f11 Merge pull request #218
0065a8f Eliminate multiple-returns from secp256k1.c.
354ffa3 Make secp256k1_ec_pubkey_create reject oversized secrets.
27bc131 Silence some warnings from pedantic static analysis tools, improve compatibility with C++.
3b7ea63 Merge pull request #221
f789c5b Merge pull request #215
4bc273b Merge pull request #222
137a8ec Merge pull request #216
7c3771d Disable overlength-strings warnings.
8956111 use 128-bit hex seed
02efd06 Use RFC6979 for test PRNGs
ae55e85 Use faster byteswapping and avoid alignment-increasing casts.
443cd4b Get rid of hex format and some binary conversions
0bada0e Merge #214: Improve signing API documentation & specification
8030d7c Improve signing API documentation & specification
7b2fc1c Merge #213: Removed gotos, which are hard to trace and maintain.
11690d3 Removed gotos, which are hard to trace and maintain.
122a1ec Merge pull request #205
035406d Merge pull request #206
2d4cd53 Merge pull request #161
34b898d Additional comments for the testing PRNG and a seeding fix.
6efd6e7 Some comments explaining some of the constants in the code.
ffccfd2 x86_64 assembly optimization for scalar_4x64
67cbdf0 Merge pull request #207
039723d Benchmarks for all internal operations
6cc8425 Include a comment on secp256k1_ecdsa_sign explaining low-s.
f88343f Merge pull request #203
d61e899 Add group operation counts
2473f17 Merge pull request #202
b5bbce6 Some readme updates, e.g. removal of the GMP field.
f0d851e Merge pull request #201
a0ea884 Merge pull request #200
f735446 Convert the rest of the codebase to C89.
bf2e1ac Convert tests to C89. (also fixes a use of bare "inline" in field)
fc8285f Merge pull request #199
fff412e Merge pull request #197
4be8d6f Centralize the definition of uint128_t and use it uniformly.
d9543c9 Switch scalar code to C89.
fcc48c4 Remove the non-storage cmov
55422b6 Switch ecmult_gen to use storage types
41f8455 Use group element storage type in EC multiplications
e68d720 Add group element storage type
ff889f7 Field storage type
7137be8 Merge pull request #196
0768bd5 Get rid of variable-length hex string conversions
e84e761 Merge pull request #195
792bcdb Covert several more files to C89.
45cdf44 Merge pull request #193
17db09e Merge pull request #194
402878a fix ifdef/ifndef
25b35c7 Convert field code to strict C89 (+ long long, +__int128)
3627437 C89 nits and dead code removal.
a9f350d Merge pull request #191
4732d26 Convert the field/group/ecdsa constant initialization to static consts
19f3e76 Remove unused secp256k1_fe_inner_{start, stop} functions
f1ebfe3 Convert the scalar constant initialization to static consts

git-subtree-dir: src/secp256k1
git-subtree-split: 1897b8e90bbbdcd919427c9a8ae35b420e919d8f
2015-03-27 14:03:36 -07:00
Pieter Wuille
223d8630b0 Update libsecp256k1. 2015-03-27 14:03:36 -07:00
Pieter Wuille
3fcfbc8ac5 Add a consistency check for the block chain data structures
This adds a -checkblockindex (defaulting to true for regtest), which occasionally
does a full consistency check for mapBlockIndex, setBlockIndexCandidates, chainActive, and
mapBlocksUnlinked.
2015-03-27 13:38:48 -07:00
Jonas Schnelli
c8168331a2 [Qt] fix rpc console font size to flexible metrics
should fix #5897
2015-03-27 09:48:26 +01:00
dexX7
ba0fa0d9bc
Initialization: set fallback locale as environment variable
The scope of `std::locale::global` appears to be smaller than `setenv("LC_ALL", ...)` and insufficient to fix messed up locale settings for the whole application.
2015-03-27 01:57:00 +01:00
Pieter Wuille
1cc0e96e9c Trivial optimization: use GetAncestor to compute new target 2015-03-26 11:06:27 -07:00
Gavin Andresen
ad9e86dca1
Keep mempool consistent during block-reorgs
This fixes a subtle bug involving block re-orgs and non-standard transactions.

Start with a block containing a non-standard transaction, and
one or more transactions spending it in the memory pool.

Then re-org away from that block to another chain that does
not contain the non-standard transaction.

Result before this fix: the dependent transactions get stuck
in the mempool without their parent, putting the mempool
in an inconsistent state.

Tested with a new unit test.
2015-03-26 11:58:19 -04:00
Wladimir J. van der Laan
8e4fd0cc31
Merge pull request #5876
5983a4e Add a NODE_GETUTXO service bit and document NODE_NETWORK. Stop translating the NODE_* names as they are technical and cannot be translated. (Mike Hearn)
2015-03-26 09:26:57 +01:00
Wladimir J. van der Laan
6a1fbc4921
Merge pull request #5942
fc72020 don't trickle for whitelisted nodes (Ruben de Vries)
2015-03-26 08:33:00 +01:00
Jorge Timón
d698ef690f Consensus: Refactor: Decouple pow.o from chainparams.o 2015-03-26 00:47:51 +01:00
Jorge Timón
bd006110fb Consensus: Refactor: Introduce Consensus::Params class 2015-03-25 20:39:26 +01:00
Wladimir J. van der Laan
cbb2cf5522
Fix --disable-wallet build after merge of #5681 2015-03-24 22:15:04 +01:00
Gavin Andresen
0f5954c434
Regression test for ResendWalletTransactions
Adds a regression test for the wallet's ResendWalletTransactions function, which uses a new, hidden RPC command "resendwallettransactions."

I refactored main's Broadcast signal so it is passed the best-block time, which let me remove a global variable shared between main.cpp and the wallet (nTimeBestReceived).

I also manually tested the "rebroadcast unconfirmed every half hour or so" functionality by:

1. Running bitcoind -connect=0.0.0.0:8333
2. Creating a couple of send-to-self transactions
3. Connect to a peer using -addnode
4. Waited a while, monitoring debug.log, until I see:
```2015-03-23 18:48:10 ResendWalletTransactions: rebroadcast 2 unconfirmed transactions```

One last change: don't bother putting ResendWalletTransactions messages in debug.log unless unconfirmed transactions were actually rebroadcast.
2015-03-24 15:29:20 -04:00
Jorge Timón
8a893c949b Includes: Do not include main.h from any other header 2015-03-24 17:23:32 +01:00
Jorge Timón
eca0b1ea62 Includes: MOVEONLY: move more method definitions out of wallet.h 2015-03-24 17:21:45 +01:00
Jorge Timón
26c16d9de9 Includes: Refactor: Move CValidationInterface and CMainSignals out of main 2015-03-24 17:21:41 +01:00
Ruben de Vries
fc720207e0 don't trickle for whitelisted nodes 2015-03-24 14:53:16 +01:00
Wladimir J. van der Laan
22cfe23196
Merge pull request #5890
cd3d67c Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates (Alex Morcos)
2015-03-24 14:50:54 +01:00
Pieter Wuille
2afd919f21
Merge pull request #5208
18051c7 Abstract out Ctransaction-specific signing into TransactionSignatureCreator (Pieter Wuille)
2015-03-24 05:55:51 -07:00
Pieter Wuille
45d6d0bce5
Merge pull request #5933
341e238 use constant references for strings in functions in wallet/*.* (Philip Kaufmann)
2015-03-24 05:33:31 -07:00
Wladimir J. van der Laan
46ba7a74a5
Merge pull request #5938
a354a59 wallet: move crypter to wallet (Cory Fields)
2015-03-24 08:50:55 +01:00
Wladimir J. van der Laan
28cc24f961
Merge pull request #5877
317e66c Initialization: set Boost path locale in main thread (dexX7)
2015-03-24 08:33:50 +01:00
Pieter Wuille
1d21ba2f5e Scale up addrman
This change was suggested as Countermeasure 6 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.
2015-03-23 17:24:29 -07:00
Pieter Wuille
c6a63ceeb4 Always use a 50% chance to choose between tried and new entries
This change was suggested as Countermeasure 2 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.
2015-03-23 17:24:18 -07:00
Pieter Wuille
f68ba3f67b Do not bias outgoing connections towards fresh addresses
This change was suggested as Countermeasure 2 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.
2015-03-23 17:23:40 -07:00
Pieter Wuille
a8ff7c62ed Simplify hashing code 2015-03-23 17:23:40 -07:00
Pieter Wuille
e6b343d880 Make addrman's bucket placement deterministic.
Give each address a single fixed location in the new and tried tables,
which become simple fixed-size arrays instead of sets and vectors.

This prevents attackers from having an advantages by inserting an
address multiple times.

This change was suggested as Countermeasure 1 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.

It is also more efficient.
2015-03-23 17:19:13 -07:00
Pieter Wuille
b23add5521 Switch addrman key from vector to uint256 2015-03-23 17:00:32 -07:00
Cory Fields
a354a59f1f wallet: move crypter to wallet 2015-03-22 15:18:55 -04:00
Mike Hearn
5983a4e50f Add a NODE_GETUTXO service bit and document NODE_NETWORK.
Stop translating the NODE_* names as they are technical and cannot be translated.
2015-03-21 19:35:02 +01:00
Philip Kaufmann
341e2385d5 use constant references for strings in functions in wallet/*.* 2015-03-21 18:40:51 +01:00
Pieter Wuille
18051c7fbd Abstract out Ctransaction-specific signing into TransactionSignatureCreator 2015-03-21 07:06:18 -07:00
dexX7
e9c3215b77
[Wallet] sort pending wallet transactions before reaccepting
During startup, when adding pending wallet transactions, which spend outputs of
other pending wallet transactions, back to the memory pool, and when they are
added out of order, it appears as if they are orphans with missing inputs.

Those transactions are then rejected and flagged as "conflicting" (= not in the
memory pool, not in the block chain).

To prevent this, transactions are explicitly sorted.
2015-03-21 13:03:23 +01:00
Jonas Schnelli
2bb1c87700 refactor: move bdb (bitdb) interaction from init.cpp to wallet.cpp
this will remove db.h from init.cpp
2015-03-20 16:23:39 +01:00
Wladimir J. van der Laan
05f17d4eaa
Merge pull request #5745
50c72f2 [Move Only] Move wallet related things to src/wallet/ (Jonas Schnelli)
2015-03-20 16:08:35 +01:00
Cory Fields
d7d187e8a4 allocators: split allocators and pagelocker
Pagelocker is only needed for secure (usually wallet) operations, so don't make
the zero-after-free allocator depend on it.
2015-03-20 12:23:44 +01:00
Wladimir J. van der Laan
93a8c46807
Merge pull request #5860
9c27379 Reduce fingerprinting through timestamps in 'addr' messages. (Pieter Wuille)
2015-03-17 16:38:06 +01:00
Pieter Wuille
9c2737901b Reduce fingerprinting through timestamps in 'addr' messages.
Suggested by Jonas Nick.
2015-03-17 03:08:52 -07:00
Wladimir J. van der Laan
226f880498
Merge pull request #5880
8b60808 [QT] some mac specifiy cleanup (memory handling, unnecessary code) (Jonas Schnelli)
89e70e9 [QT] fix OSX dock icon window reopening (Jonas Schnelli)
2015-03-16 13:55:35 +01:00
Wladimir J. van der Laan
df5c246ba3
Merge pull request #5831
1d9b378 qa/rpc-tests/wallet: Tests for sendmany (Luke Dashjr)
40a7573 rpcwallet/sendmany: Just take an array of addresses to subtract fees from, rather than an Object with all values being identical (Luke Dashjr)
292623a Subtract fee from amount (Cozz Lovan)
90a43c1 [Qt] Code-movement-only: Format confirmation message in sendcoinsdialog (Cozz Lovan)
2015-03-16 12:23:14 +01:00
Alex Morcos
cd3d67cf3b Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates 2015-03-13 13:11:11 -04:00
Jonas Schnelli
8b60808c1e [QT] some mac specifiy cleanup (memory handling, unnecessary code) 2015-03-13 15:40:53 +01:00
Luke Dashjr
40a757331a rpcwallet/sendmany: Just take an array of addresses to subtract fees from, rather than an Object with all values being identical 2015-03-13 11:04:25 +01:00
Cozz Lovan
292623adf5 Subtract fee from amount
Fixes #2724 and #1570.

Adds the
automatically-subtract-the-fee-from-the-amount-and-send-whats-left
feature to the GUI and RPC (sendtoaddress,sendmany).
2015-03-13 11:04:18 +01:00
Wladimir J. van der Laan
7077fe6dd4
Merge pull request #5884
e96c518 BUGFIX: Stack around the variable 'rv' was corrupted (fsb4000)
2015-03-12 18:16:24 +01:00
fsb4000
e96c5184e7 BUGFIX: Stack around the variable 'rv' was corrupted 2015-03-12 22:17:22 +06:00
Alex Morcos
a9af415887 fix InvalidateBlock to repopulate setBlockIndexCandidates 2015-03-12 10:15:33 -04:00
Jonas Schnelli
50c72f23ad [Move Only] Move wallet related things to src/wallet/
could once be renamed from /src/wallet to /src/legacywallet.
2015-03-12 14:13:02 +01:00
Wladimir J. van der Laan
dd4ffcec0e
Merge pull request #5859
9519a9a Add correct bool combiner for net signals (Pieter Wuille)
2015-03-12 11:14:03 +01:00
Wladimir J. van der Laan
92fd887fd4 tests: add a BasicTestingSetup and apply to all tests
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.
2015-03-12 09:45:22 +01:00
Jonas Schnelli
89e70e931d [QT] fix OSX dock icon window reopening
fixes #5878
2015-03-12 00:16:23 +01:00
Wladimir J. van der Laan
e564e63ef0
Merge pull request #5871
3aa0130 test: remove fSkipProofOfWork (Wladimir J. van der Laan)
59bd89f test: Remove UNITTEST params (Wladimir J. van der Laan)
2015-03-11 15:13:05 +01:00
dexX7
317e66c741
Initialization: set Boost path locale in main thread
The path locale is lazy initialized and to avoid deinitialization errors
in multithreading environments, it is set explicitly by the main thread.
2015-03-11 14:33:29 +01:00
Wladimir J. van der Laan
d734d87b28
Merge pull request #5749
f754707 Fix - bitcoin-qt usage message (Luca Venturini)
1fdb9fa Help messages correctly formatted (79 chars) (Luca Venturini)
2015-03-11 10:20:59 +01:00
Wladimir J. van der Laan
45b7dc2c25
Merge pull request #5864
bb6acff fix possible block db breakage during re-index (Cory Fields)
2015-03-11 08:33:52 +01:00
Luca Venturini
f75470794b Fix - bitcoin-qt usage message
. Closes the bug from commit e179eb3d9b
("bitcoin-qt -help" did not show any message)
. Move all the options in init.cpp (there were already some
options related to bitcoin-qt)
2015-03-10 22:07:17 -07:00
Luca Venturini
1fdb9fa3f9 Help messages correctly formatted (79 chars)
Help messages are formatted programmatically with FormatParagraph
in order not to break existing strings in Transifex.

The new format works even if the translation of the strings
modifies the lenght of the message.

Sqashed 6 commits in a single one.
Help messages correctly formatted for SVGA text mode (132 chars)

Help messages are formatted programmatically with FormatParagraph
in order not to break existing strings in Transifex.

The new format should work even if the translation of the strings
modifies the lenght of the message.

Fix - syntax error

Correct formatting for 79 chars

Correctly based on C++ functions

Removed spare spaces from option strings

Fix - syntax error
2015-03-10 22:07:17 -07:00
Cory Fields
bb6acff079 fix possible block db breakage during re-index
When re-indexing, there are a few cases where garbage data may be skipped in
the block files. In these cases, the indices are correctly written to the index
db, however the pointer to the next position for writing in the current block
file is calculated by adding the sizes of the valid blocks found.

As a result, when the re-index is finished, the index db is correct for all
existing blocks, but the next block will be written to an incorrect offset,
likely overwriting existing blocks.

Rather than using the sum of all valid blocks to determine the next write
position, use the end of the last block written to the file. Don't assume that
the current block is the last one in the file, since they may be read
out-of-order.
2015-03-10 13:59:46 -04:00
Wladimir J. van der Laan
3aa0130b96 test: remove fSkipProofOfWork
Not used, and REGTEST already allows creating blocks at
the lowerst possible difficulty.
2015-03-09 16:09:54 +01:00
Wladimir J. van der Laan
59bd89f116 test: Remove UNITTEST params
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.
2015-03-09 16:06:14 +01:00
Wladimir J. van der Laan
8cbe1f4f58
tests: change main and wallet tests to BOOST_FIXTURE_TEST_SUITE
Avoid this travis error:

    test_bitcoin: chainparams.cpp:330: const CChainParams& Params():
    Assertion `pCurrentParams' failed.
    unknown location(0): fatal error in "subsidy_limit_test": signal:
    SIGABRT (application abort requested)
    test/allocator_tests.cpp(116): last checkpoint
2015-03-09 15:04:59 +01:00
Wladimir J. van der Laan
cdae53e456
Merge pull request #5852
51598b2 Reinitialize state in between individual unit tests. (Pieter Wuille)
2015-03-09 12:51:07 +01:00
Wladimir J. van der Laan
c1b723c30a
Merge pull request #5442
dca799e Ignore getaddr messages on Outbound connections. (Ivan Pustogarov)
2015-03-09 12:24:53 +01:00
Philip Kaufmann
8517e9709e [Qt] rework setNumBlocks to have blockDate as parameter
- reduces some functional overhead and simplifies the code
2015-03-09 10:58:17 +01:00
Wladimir J. van der Laan
513e025239
Merge pull request #5858
9bbb880 [Qt] fix a issue where "command line options"-action overwrite "Preference"-action (on OSX) (Jonas Schnelli)
2015-03-09 10:45:12 +01:00
Wladimir J. van der Laan
d26f0b263c
Merge pull request #5793
6cb4a52 [Qt, Linux] honor current network when creating autostart link (Philip Kaufmann)
9673c35 [Qt, Win] honor current network when creating autostart link (Philip Kaufmann)
2015-03-09 09:55:49 +01:00
Pieter Wuille
2f10aa0fa1
Merge pull request #5151
eec3713 make CMessageHeader a dumb storage class (Cory Fields)
2015-03-07 05:38:34 -08:00
Wladimir J. van der Laan
a0ae79d775 Replace CBlockHeader::GetHash with call to SerializeHash
Removes variability between LE and BE.
As suggested by @sipa.
2015-03-06 17:21:59 +01:00
Wladimir J. van der Laan
62b30f09ac Add serialize float/double tests 2015-03-06 17:21:59 +01:00
Wladimir J. van der Laan
9f4fac98c4 src/txmempool.cpp: make numEntries a uint32_t
Don't ever serialize a size_t or long, their sizes are platform
dependent.
2015-03-06 17:21:59 +01:00
Wladimir J. van der Laan
f4e6487219 src/arith_256.cpp: bigendian compatibility 2015-03-06 17:21:59 +01:00
Wladimir J. van der Laan
aac3205375 src/netbase.h: Fix endian in CNetAddr serialization
We've chosen to htons/ntohs explicitly on reading and writing
(I do not know why). But as READWRITE already does an endian swap
on big endian, this means the port number gets switched around,
which was what we were trying to avoid in the first place. So
to make this compatible, serialize it as FLATDATA.
2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
01f9c3449a src/serialize.h: base serialization level endianness neutrality
Serialization type-safety and endianness compatibility.
2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
4e853aa163 src/script/script.h: endian compatibility for PUSHDATA sizes 2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
4f92773f92 src/primitives/transaction.h: endian compatibility in serialization 2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
81aeb28436 src/primitives/block.cpp: endian compatibility in GetHash 2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
dec84cae2a src/net.cpp: endian compatibility in EndMessage 2015-03-06 17:21:58 +01:00
Wladimir J. van der Laan
556814ec4e src/main.cpp: endian compatibility in packet checksum check 2015-03-06 17:21:55 +01:00
Luke Dashjr
721cb557aa GUI: Display label rather than address on popups 2015-03-06 15:07:43 +00:00
Wladimir J. van der Laan
3ca5852dc2 src/hash.cpp: endian compatibility 2015-03-06 15:54:53 +01:00
Wladimir J. van der Laan
4414f5ffe1 build: Endian compatibility
- Detect endian instead of stopping configure on big-endian
- Add `byteswap.h` and `endian.h` header for compatibility with
  Windows and other operating systems that don't come with them
- Update `crypto/common.h` functions to use compat
  endian header
2015-03-06 15:54:53 +01:00
Wladimir J. van der Laan
51377c2dbe
Merge pull request #5843
ba04c4a Limit message sizes before transfer (Pieter Wuille)
2015-03-06 15:31:31 +01:00
Wladimir J. van der Laan
ee9f2bfa7b
Merge pull request #5813
34e5015 Add unit tests for next difficulty calculations (Ross Nicoll)
2015-03-06 15:27:00 +01:00
Pieter Wuille
ba04c4a780 Limit message sizes before transfer
This introduces a fixed limit for the size of p2p messages, and enforces it
before download.
2015-03-06 04:03:17 -08:00
Pieter Wuille
9519a9a420 Add correct bool combiner for net signals 2015-03-06 03:45:26 -08:00
Jonas Schnelli
9bbb880be4 [Qt] fix a issue where "command line options"-action overwrite "Preference"-action (on OSX)
- fixes #5800
2015-03-06 09:33:23 +01:00
Rob Van Mieghem
84a05b843b
QT: remove unused parameter 2015-03-05 12:20:49 -05:00
Wladimir J. van der Laan
215475aa00
Merge pull request #5830
6f1274c qt: Don't save geometry for options and about/help window (Wladimir J. van der Laan)
2015-03-05 14:42:20 +01:00
Cozz Lovan
90a43c1e93 [Qt] Code-movement-only: Format confirmation message in sendcoinsdialog 2015-03-05 13:25:12 +01:00
Pieter Wuille
51598b2631 Reinitialize state in between individual unit tests.
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.
2015-03-03 09:01:46 -08:00
Wladimir J. van der Laan
3dfcdf46c2
Merge pull request #5775
deda3e1 [Qt] remove unused getNumBlocksAtStartup() from ClientModel (Philip Kaufmann)
47ee8cf [Qt] use qint64 in BitcoinGUI::setNumBlocks (Philip Kaufmann)
2015-03-03 16:57:30 +01:00
Wladimir J. van der Laan
f8e68f7bfb
Merge pull request #5819
d23b0a2 depends: always use static qt5 for linux (Cory Fields)
3448b13 build: fix typo in configure help (Cory Fields)
c95ac83 gitian: fix x86_64 build with static libstdc++ (Cory Fields)
0671516 build: change reduce exports/static libstdc++ options for gitian and travis (Cory Fields)
aa36730 build: remove libstdc++ backwards-compat (Cory Fields)
3ee028f build: disable reduced exports by default (Cory Fields)
2015-03-03 16:27:50 +01:00
Pieter Wuille
86eb461c5b
Merge pull request #5839
16a58a8 keys: remove libsecp256k1 verification until it's actually supported (Cory Fields)
2015-03-03 04:08:15 -08:00
Cory Fields
16a58a8644 keys: remove libsecp256k1 verification until it's actually supported
This was added a while ago for testing purposes, but was never intended to be
used. Remove it until upstream libsecp256k1 decides that verification is
stable/ready.
2015-03-02 11:31:43 -05:00
Pieter Wuille
10a3ff07f5
Merge pull request #5832
9abbeea Remove obsolete pubsub method definitions (Pieter Wuille)
2015-03-01 03:13:09 -08:00
Luke Dashjr
e96028c78e GUI: Clarify terminology; use "Label" heading for labels row, and "Node/Service" rather than [IP] "Address" 2015-02-26 20:56:42 +00:00
Wladimir J. van der Laan
db4a1d598c
Merge pull request #5694
25cf6f3 minor rework of SendMoney in rpcwallet (Philip Kaufmann)
2015-02-26 17:20:29 +01:00
Wladimir J. van der Laan
59310f1c02
Merge pull request #5820
85da07a Better fingerprinting protection for non-main-chain getdatas. (Pieter Wuille)
2015-02-26 17:13:13 +01:00
Pieter Wuille
9abbeeabd7 Remove obsolete pubsub method definitions 2015-02-26 05:30:59 -08:00
Wladimir J. van der Laan
482783b341
Merge pull request #5801
de5403f [GUI] Move fee dialog minimise button away from "Transaction Fee" (Michael Ford)
2015-02-26 11:26:32 +01:00
Wladimir J. van der Laan
6f1274c8c9
qt: Don't save geometry for options and about/help window
These dialogs will be something that people occasionally open, not keep
open during their session, so just popping it up in a sensible place
is good enough. Remembering only creates potential issues, like spawning
it outside the current screen area.

On Ubuntu this causes the dialogs to be positioned in the
middle of the main dialog, so I didn't add code for that. YMMV.

Inspired by github pull #5777 by @L-Cranston-Shadow
2015-02-26 10:23:42 +01:00
Cory Fields
eec37136fd make CMessageHeader a dumb storage class
It shouldn't know or care about bitcoind's chain param selection
2015-02-25 18:44:49 -05:00
21E14
32eaf8a3de WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef.
Code to avoid calling Perfmon too often is only needed when perfmon is actually going to get called.
This is not intended to make any functional difference in the addition of entropy to the random pool.
2015-02-25 18:37:06 -05:00
Pieter Wuille
85da07a5a0 Better fingerprinting protection for non-main-chain getdatas.
With headers-first we can compare against the best header timestamp, rather
than using checkpoints which require code updates to maintain.
2015-02-24 04:35:13 -08:00
Cory Fields
aa3673064c build: remove libstdc++ backwards-compat
Backwards-compatibility for libstdc++ is not limited to straightforward abi
changes. Symbol visibility also needs to be taken into consideration, and
that really can't be addressed simply.

Instead, just static-link libstdc++ for backwards-compat.
2015-02-23 17:56:15 -05:00
Ross Nicoll
34e5015cd2
Add unit tests for next difficulty calculations
Split GetNextWorkRequired() into two functions to allow the difficulty calculations to
be tested without requiring a full blockchain.
Add unit tests to cover basic difficulty calculation, plus each of the min/max actual
time, and maximum difficulty target conditions.
2015-02-21 13:14:19 +00:00
Michael Ford
de5403f878 [GUI] Move fee dialog minimise button away from "Transaction Fee"
Its original placement was causing confusion among some users.
2015-02-21 09:11:33 +08:00
Wladimir J. van der Laan
a026a56c4e
Merge #5706: fix crash: RPC \
e5d9d77 fix crash: createmultisig and addmultisigaddress (fsb4000)
2015-02-20 09:51:38 +01:00
Wladimir J. van der Laan
07f4386b38
Merge #5689: openssl: abstract out OPENSSL_cleanse
1630219 openssl: abstract out OPENSSL_cleanse (Cory Fields)
2015-02-19 12:09:26 +01:00
Philip Kaufmann
6cb4a52535 [Qt, Linux] honor current network when creating autostart link 2015-02-19 12:08:47 +01:00
Philip Kaufmann
9673c35daf [Qt, Win] honor current network when creating autostart link
- creates a "Bitcoin (testnet).lnk" when on testnet or a "Bitcoin
  (regtest).lnk, when on regtest
- fixes #5778
2015-02-19 12:06:49 +01:00
Wladimir J. van der Laan
47a79bb880
Merge #5366: No longer check osx compatibility in RenameThread
850c570 No longer check osx compatibility in RenameThread (Michael Ford)
2015-02-18 17:36:39 +01:00
Wladimir J. van der Laan
8d0418720c
Merge #5799: Rename Interval() to DifficultyAdjustmentInterval()
e5ece05 Rename Interval() to DifficultyAdjustmentInterval() (Shaul Kfir)
2015-02-18 17:29:28 +01:00
Wladimir J. van der Laan
e3a3cd7a28
Merge #5784: Fix usage of NegateSignatureS in script_tests
78c6bed Add test for DER-encoding edge case (Suhas Daftuar)
6f50dbd Fix NegateSignatureS to not duplicate last byte of S (Suhas Daftuar)
2015-02-18 09:52:59 +01:00
Shaul Kfir
e5ece053da Rename Interval() to DifficultyAdjustmentInterval() 2015-02-17 08:46:51 -05:00
Pieter Wuille
175d86e633
Merge #5710: Add more information to errors in ReadBlockFromDisk
f5791c6 Add more information to errors in ReadBlockFromDisk (Wladimir J. van der Laan)
2015-02-16 11:58:35 -08:00
Cory Fields
1630219d90 openssl: abstract out OPENSSL_cleanse
This makes it easier for us to replace it if desired, since it's now only in
one spot. Also, it avoids the openssl include from allocators.h, which
essentially forced openssl to be included from every compilation unit.
2015-02-15 11:34:02 -05:00
Suhas Daftuar
78c6bedb9c Add test for DER-encoding edge case
The fix to NegateSignatureS caused a test which had been failing
in IsValidSignatureEncoding to then fail in IsLowDERSignature.
Add new test so the original check remains exercised.
2015-02-10 13:25:41 -05:00
Suhas Daftuar
6f50dbd2fd Fix NegateSignatureS to not duplicate last byte of S
NegateSignatureS is called with a signature without a hashtype, so
do not save the last byte and append it after S negation.

Updates the two tests which were affected by this bug.
2015-02-10 13:23:57 -05:00
Wladimir J. van der Laan
d48ce48093
Merge #5548: [REST] add /rest/chaininfos
2c0f901 [REST] rest/chaininfos add documentation (Jonas Schnelli)
59582c8 [REST] add /rest/chaininfos (Jonas Schnelli)
2015-02-10 12:08:07 +01:00
Wladimir J. van der Laan
a9565863e0
Merge #5629: [Qt] prevent amount overflow problem with payment requests
a651668 [Qt] prevent amount overflow problem with payment requests (Philip Kaufmann)
2015-02-09 13:50:56 +01:00
Wladimir J. van der Laan
183ca292bd
Merge #5699: Split logic to undo txin's off DisconnectBlock.
eb1c2cd Split logic to undo txin's off DisconnectBlock. (Daniel Kraft)
2015-02-09 13:22:35 +01:00
Wladimir J. van der Laan
beff11a3a1
Merge #5679: Get rid of DetectShutdownThread
28ee7e8 Get rid of DetectShutdownThread (Wladimir J. van der Laan)
2015-02-09 12:57:09 +01:00
Wladimir J. van der Laan
7225577f6b
Merge pull request #5739
f4b2078 Replace difficulty readjustment blocks with Interval() (Shaul Kfir)
2015-02-09 12:48:38 +01:00
Wladimir J. van der Laan
0f44672437
Merge pull request #5753
d67a642 [Qt] add bitcoin logo to about screen (Jonas Schnelli)
2015-02-09 11:34:01 +01:00
Philip Kaufmann
deda3e156d [Qt] remove unused getNumBlocksAtStartup() from ClientModel 2015-02-09 11:28:03 +01:00
Philip Kaufmann
47ee8cf091 [Qt] use qint64 in BitcoinGUI::setNumBlocks
- as QDateTime.secsTo() returns a qint64 also store in a qint64 and not in
  an integer
2015-02-09 11:21:26 +01:00
Gregory Maxwell
28d4cff0ed Sanitize command strings before logging them.
Normally bitcoin core does not display any network originated strings without
 sanitizing or hex encoding.  This wasn't done for strcommand in many places.

This could be used to play havoc with a terminal displaying the logs,
 especially with printtoconsole in use.

Thanks to Evil-Knievel for reporting this issue.
2015-02-08 19:58:59 +00:00
Ivan Pustogarov
dca799e1db Ignore getaddr messages on Outbound connections.
The only time when a client sends a "getaddr" message is when he
esatblishes an Outbound connection (see ProcessMessage() in
src/main.cpp).  Another bitcoin client is expected to receive a
"getaddr" message only on Inbound connection. Ignoring "gettaddr"
requests on Outbound connections can resolve potential privacy issues
(and as was said such request normally do not happen anyway).
2015-02-06 22:03:42 +01:00
Wladimir J. van der Laan
fb6140b54b
Merge pull request #5721
cf008ac Acquire CCheckQueue's lock to avoid race condition (Suhas Daftuar)
2015-02-06 16:51:39 +01:00
Wladimir J. van der Laan
f5791c6ae3 Add more information to errors in ReadBlockFromDisk
A lot of times, disk corruption problems appear here.
To facilitate debugging and troubleshooting, add position information
to the error messages.
2015-02-05 14:21:25 +01:00
Jonas Schnelli
d67a642392 [Qt] add bitcoin logo to about screen 2015-02-04 20:52:18 +01:00
Jonas Schnelli
17115d0a34 fix getblocktemplate lock issue
getblocktemplate didn't have a wallet lock before #5711 and IMO there is no need for LEAVE/ENTER critical section.
2015-02-04 16:34:34 +01:00
Philip Kaufmann
25cf6f3d41 minor rework of SendMoney in rpcwallet
- rework the function to not log errors but use throw JSONRPCError
- remove a check for IsLocked() that is done in sendtoaddress and
  sendfrom RPC calls already
- cache GetBalance() return value, because it's possibly used twice
2015-02-04 15:11:54 +01:00
Wladimir J. van der Laan
93b7544501
Merge pull request #5319
35f7227 Clean up wallet encryption code. (Daniel Kraft)
2015-02-04 13:56:57 +01:00
Philip Kaufmann
a6516686dc [Qt] prevent amount overflow problem with payment requests
Bitcoin amounts are stored as uint64 in the protobuf messages (see
paymentrequest.proto), but CAmount is defined as int64_t. Because
of that we need to verify that single and accumulated amounts are
in a valid range and no variable overflow has happened.

- fixes #5624 (#5622)

Thanks @SergioDemianLerner for reporting that issue and also supplying us
with a possible solution.

- add static verifyAmount() function to PaymentServer and move the logging
  on error into the function
- also add a unit test to paymentservertests.cpp
2015-02-04 13:47:32 +01:00
Wladimir J. van der Laan
31dedb463b
Merge pull request #5509
7f991e3 c++11: These look like user-defined literals. (Cory Fields)
5a6155c c++11: don't forward-declare types used in maps (Cory Fields)
3447cf8 c++11: MOVEONLY: break circular dependency in wallet (Cory Fields)
bbacd88 c++11: MOVEONLY: move function definitions out of the header (Cory Fields)
a2b04dd build: fix newer boost build with c++11 (Cory Fields)
2015-02-04 13:06:16 +01:00
Wladimir J. van der Laan
87ecfb0f96
Merge pull request #5711
5ebe095 Trim RPC command table (Wladimir J. van der Laan)
4401b2d Removed main.h dependency from rpcserver.cpp (Eric Lombrozo)
2015-02-04 10:23:09 +01:00
Cory Fields
7f991e364e c++11: These look like user-defined literals.
Add a space to keep the compiler happy
2015-02-03 23:31:00 -05:00
Cory Fields
5a6155ccfa c++11: don't forward-declare types used in maps 2015-02-03 23:30:59 -05:00
Cory Fields
3447cf87e2 c++11: MOVEONLY: break circular dependency in wallet
c++11 (libc++'s stdlib implementation anyway) doesn't allow for map types to be
forward-declared. for example:

class foo;
std::map<int, foo> bar; // error, foo has not been defined.
class foo{};

Since CWallet and CWalletTx are inter-dependent, but only std::map<*,CWalletTx>
is used, forward-declare CWallet instead and define CWalletTx first.

Despite the mangled git diff, this change only amounts to moving ~320 lines in
a single chunk.
2015-02-03 23:30:59 -05:00
Cory Fields
bbacd88204 c++11: MOVEONLY: move function definitions out of the header
These need to be moved out of the header in order to resolve a circular
dependency between CWallet and CTxWallet. See next commit.
2015-02-03 22:41:33 -05:00
Cory Fields
a2b04ddfe6 build: fix newer boost build with c++11 2015-02-03 22:41:01 -05:00
Daniel Kraft
eb1c2cd37f Split logic to undo txin's off DisconnectBlock.
Instead, create a separate function that applies the undo operation of a
CTxInUndo object onto a CCoinsViewCache.  This method is used from
DisconnectBlock.
2015-02-03 15:44:39 +01:00
Suhas Daftuar
cf008ac8c3 Acquire CCheckQueue's lock to avoid race condition
This fixes a potential race condition in the CCheckQueueControl constructor,
which was looking directly at data in CCheckQueue without acquiring its lock.

Remove the now-unnecessary friendship for CCheckQueueControl
2015-02-03 08:53:08 -05:00
Wladimir J. van der Laan
fcf646c9b0
Merge pull request #5286
44e9a6b Update the 'test_IsStandard' unit test (Flavien Charlon)
a930658 Change the default maximum OP_RETURN size to 80 bytes (Flavien Charlon)
2015-02-03 13:12:44 +01:00
Wladimir J. van der Laan
e5f1f5a263
Merge pull request #5732
1371e6f Change "insane" to "absurd" (referring to high fees) in text strings and identifiers. (Daira Hopwood)
2015-02-03 13:12:12 +01:00
Wladimir J. van der Laan
6ee87f9bc5
Merge pull request #5647
3ff735c Increase block download timeout base from 10 to 20 minutes. (Gregory Maxwell)
2015-02-03 10:36:44 +01:00
Wladimir J. van der Laan
4e2b1fff98
Merge pull request #5675
2d9b0b7 Fix priority calculation in CreateTransaction (Alex Morcos)
2015-02-03 10:36:01 +01:00
Wladimir J. van der Laan
41e6e4caba
Merge pull request #5713
bf6cdeb Increase coverage of DERSIG edge cases (Pieter Wuille)
819bcf9 Add RPC test for DERSIG BIP switchover logic (Pieter Wuille)
5a47811 BIP66 changeover logic (Pieter Wuille)
092e9fe Example unit tests from BIP66 (Pieter Wuille)
80ad135 Change IsDERSignature to BIP66 implementation (Pieter Wuille)
2015-02-03 10:34:53 +01:00
Wladimir J. van der Laan
9c4a5a5067
Merge pull request #5729
fdf80ea [Qt] allow unit changes for read-only BitcoinAmountField (Philip Kaufmann)
2015-02-03 09:49:26 +01:00
Pieter Wuille
9fddceda44 Avoid storing a reference passed to SignatureChecker constructors 2015-02-02 20:19:46 -08:00
Pieter Wuille
858809a33e Use separate SignatureChecker for CMutableTransaction 2015-02-02 20:19:12 -08:00
Shaul Kfir
f4b2078f72 Replace difficulty readjustment blocks with Interval() 2015-02-02 14:36:00 -05:00
Pieter Wuille
bf6cdebdc5 Increase coverage of DERSIG edge cases 2015-02-01 17:51:25 -04:00
Pieter Wuille
5a47811da5 BIP66 changeover logic 2015-02-01 17:51:24 -04:00
Pieter Wuille
092e9fe5fb Example unit tests from BIP66 2015-02-01 17:47:21 -04:00
Pieter Wuille
80ad135a5e Change IsDERSignature to BIP66 implementation 2015-02-01 17:47:21 -04:00
Daira Hopwood
1371e6f5db Change "insane" to "absurd" (referring to high fees) in text strings and identifiers.
Note that this will also require translation changes in Transifex for the key
"A fee higher than %1 is considered an insanely high fee." which is now
"A fee higher than %1 is considered an absurdly high fee."

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2015-01-31 23:23:20 +00:00
bikinibabe
ee932025c1 Changed pronouns for correctness and inclusivity 2015-01-31 17:38:28 -05:00
Vitalii Demianets
bd2b73bb9b TRIVIAL: fix misleading comment 2015-01-31 17:38:28 -05:00
Pavel Janík
5262fde0ec Remove whitespaces before double colon in errors and logs 2015-01-31 17:38:28 -05:00
Pavel Janík
91a9fe094b Fix typo - sentence starts with capital letter 2015-01-31 17:37:01 -05:00
Manuel Araoz
d6bed1514c remove sig_canonical.json and sig_noncanonical.json 2015-01-31 17:36:44 -05:00
Philip Kaufmann
fdf80ea7b1 [Qt] allow unit changes for read-only BitcoinAmountField
- fixes #5725
2015-01-31 17:39:22 +01:00
Wladimir J. van der Laan
6af674ecdc
Merge pull request #5707
14d023f change hardcoded character constants to a set of descriptive named constants for database keys (Earlz)
2015-01-31 14:31:12 +01:00
randy-waterhouse
72ac792b4a Format build flags in src/Makefile.am. 2015-01-30 10:43:30 +13:00
Wladimir J. van der Laan
5f04d1d0d7
Merge pull request #5477
6bbca99 LSSharedFileListItemResolve() was deprecated in Mac OS X 10.10, use LSSharedFileListItemCopyResolvedURL() instead (Cory Fields)
2015-01-29 13:27:23 +01:00
Wladimir J. van der Laan
7823598fa4
Merge pull request #5620
6715efb [Qt] Payment request expiration bug fix (re-done) (Philip Kaufmann)
2015-01-29 12:48:27 +01:00
fsb4000
55eade9d46 Change Coin Control first column label 2015-01-29 15:07:08 +06:00
Wladimir J. van der Laan
5ebe0956b3 Trim RPC command table
- invalidateblock and reconsiderblock were defined doubly
- remove no-longer-used threadSafe, as locks have been pushed down
2015-01-28 07:41:54 +01:00
Eric Lombrozo
4401b2d7c5 Removed main.h dependency from rpcserver.cpp
Rebased by @laanwj:

- update for RPC methods added since 84d13ee: setmocktime,
  invalidateblock, reconsiderblock. Only the first, setmocktime, required a change,
  the other two are thread safe.
2015-01-28 07:41:54 +01:00
Wladimir J. van der Laan
6b5f5294bb
Merge pull request #5506
7873633 Squashed 'src/secp256k1/' changes from bccaf86..50cc6ab (Pieter Wuille)
1a9576d Use libsecp256k1's RFC6979 implementation (Pieter Wuille)
2015-01-26 13:04:29 +01:00
Wladimir J. van der Laan
2511a39cca
Merge pull request #5575
7b782f5 RPCWallet: Notate all account stuff as deprecated (Luke Dashjr)
2015-01-26 12:38:22 +01:00
Wladimir J. van der Laan
ab0d7987c0
Merge pull request #5626
652eb90 [Qt] change transaction table column width (Jonas Schnelli)
af95b17 [Qt] resize oversized icons (Jonas Schnelli)
2015-01-26 12:36:41 +01:00
Wladimir J. van der Laan
ca7880358c
Merge pull request #5628
785bb81 [Qt] remove size grip to get rid of the right margin (Jonas Schnelli)
2015-01-26 12:35:32 +01:00
Wladimir J. van der Laan
2fae1875ea
Merge pull request #5243
ff09e31 sleep-wait on genesis block during init with -reindex (Matt Corallo)
2015-01-26 12:29:15 +01:00
Wladimir J. van der Laan
8204e19abe
Merge pull request #4805
44bc988 [Wallet] Do not flush the wallet in AddToWalletIfInvolvingMe(..) (Cozz Lovan)
2015-01-26 12:19:12 +01:00
Wladimir J. van der Laan
b01a435c34
Merge pull request #5627
2fa9a8e Make empty byte arrays pass CheckSignatureEncoding() (Peter Todd)
2015-01-26 12:09:11 +01:00
Earlz
14d023f1ae change hardcoded character constants to a set of descriptive named constants for database keys 2015-01-25 10:56:30 -05:00
fsb4000
e5d9d77df2 fix crash: createmultisig and addmultisigaddress 2015-01-25 18:11:57 +06:00
Wladimir J. van der Laan
40e96a3016
Merge pull request #5599
0cc0d8d Get rid of the internal miner's hashmeter (jtimon)
2015-01-24 16:00:40 +01:00
fsb4000
0eade74c78 fix crash: CoinControl "space" bug
Just like baf80c26a2
2015-01-23 20:01:07 +06:00
Cory Fields
6bbca99baa LSSharedFileListItemResolve() was deprecated in Mac OS X 10.10, use LSSharedFileListItemCopyResolvedURL() instead 2015-01-21 19:07:28 +01:00
Wladimir J. van der Laan
66b473457b
Delete RecvLine function
No longer necessary since #5161 / 845c86d128.
2015-01-20 18:03:20 +01:00
Wladimir J. van der Laan
7810a0a1e6
Merge pull request #5648
2ce63d3 MOVEONLY: Move struct CBlockTemplate to miner.h (from main.h) (Luke Dashjr)
2015-01-20 17:34:43 +01:00
Wladimir J. van der Laan
848f55d52f
Merge pull request #5651
1d84aea Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde (which may be mistaken for a negative sign) (Luke Dashjr)
2015-01-20 16:28:10 +01:00
Wladimir J. van der Laan
28ee7e8b8c Get rid of DetectShutdownThread
The main thread spends time waiting for the DetectShutdownThread.
So why not just run this waiting loop function in the main thread?

One thread-stack less saves 4MB of virtual memory on 32-bit, and 8MB on
64-bit.
2015-01-19 15:37:48 +01:00
Wladimir J. van der Laan
e1aecae33a
Merge pull request #5671
73cd4ed qt: avoid hard-coding font names (Cory Fields)
52954e6 qt: fix broken unicode chars on osx 10.10 (Cory Fields)
f5ad78b qt: fonts: allow SubstituteFonts to filter based on user's language (Cory Fields)
2015-01-19 12:31:54 +01:00
Cory Fields
73cd4edb4f qt: avoid hard-coding font names
They may not contain all necessary characters for a language
2015-01-17 03:31:27 -05:00
Cory Fields
52954e6efd qt: fix broken unicode chars on osx 10.10
The default font changed again.

The real fix is to compile qt against a >= 10.8 sdk, but this is simple enough
to backport to 0.10 to avoid having to do that there.

Note: NSAppKitVersionNumber is a double and there's no official value for
NSAppKitVersionNumber10_10. Since == isn't reliable for doubles, use Apple's
guidelines for testing versions here:
https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

Chinese and Japanese fonts have been hard-coded as well, otherwise they fail to
show up at all.
2015-01-17 03:31:27 -05:00
Cory Fields
f5ad78b34a qt: fonts: allow SubstituteFonts to filter based on user's language
SubstituteFonts() has been moved to after app identification so that QSettings
are accessible.
2015-01-16 16:11:01 -05:00
Alex Morcos
2d9b0b7f03 Fix priority calculation in CreateTransaction
Make this projection of priority in 1 block match the calculation in the low priority reject code.
2015-01-16 12:17:57 -05:00
Gregory Maxwell
7d2cb48511 Restore RPC HTTP keepalives to default.
This avoids a regression for issues like #334 where high speed
 repeated connections eventually run the HTTP client out of
 sockets because all of theirs end up in time_wait.

Maybe the trade-off here is suboptimal, but if both choices will
 fail then we prefer fewer changes until the root cause is solved.
2015-01-16 05:59:36 -08:00
Wladimir J. van der Laan
9fe53a85e0
Merge pull request #5632
98c222b [Qt] optimize helpmessage dialog (Jonas Schnelli)
2015-01-16 11:53:45 +01:00
Jonas Schnelli
652eb904df [Qt] change transaction table column width
make enought space for the new icons
2015-01-16 11:47:41 +01:00
Jonas Schnelli
af95b17d0d [Qt] resize oversized icons 2015-01-16 11:47:41 +01:00
Wladimir J. van der Laan
a353ad4cdb
Merge pull request #5636
851296a [Qt] add option to allow self signed root certs (for testing) (Philip Kaufmann)
2015-01-16 11:19:07 +01:00
Wladimir J. van der Laan
c29568a686
Merge pull request #5666
0c03a93 [Qt] add debug logging for -rootcertificates option (Philip Kaufmann)
2015-01-16 10:53:31 +01:00
Philip Kaufmann
0c03a93e70 [Qt] add debug logging for -rootcertificates option
- now logs if -rootcertificates="" was used to disable payment request
  authentication via X.509 certificates
- also logs which file is used as trusted root cert, if -rootcertificates
  is set
2015-01-15 14:30:44 +01:00
Wladimir J. van der Laan
9ca6e04790
Merge pull request #5655
1dd8ee7 improve tests for #5655 (Jonas Schnelli)
56c1093 fix tests for #5655 (Wladimir J. van der Laan)
16a5c18 Add a -rpckeepalive and disable RPC use of HTTP persistent connections. (Gregory Maxwell)
2015-01-15 09:27:21 +01:00
Philip Kaufmann
6715efb9ca [Qt] Payment request expiration bug fix (re-done)
- this is based on #4122 (which can be closed)

Currently a payment request is only checked for expiration upon receipt.
It should be checked again immediately before sending coins to prevent
the user from paying to an expired invoice which would then require a
customer service interaction.

- add static verifyExpired() function to PaymentServer to be able to use
  the same validation code in GUI and unit-testing code
- extend unit tests to use that function and also add an unit test which
  overflows, because payment requests allow expires as uint64, whereas we
  use int64_t for verification of expired payment requests
2015-01-15 09:08:22 +01:00
Gregory Maxwell
16a5c18cea Add a -rpckeepalive and disable RPC use of HTTP persistent connections.
It turns out that some miners have been staying with old versions of
 Bitcoin Core because their software  behaves poorly with persistent
 connections and the Bitcoin Core thread and connection limits.

What happens is that underlying  HTTP libraries leave connections open
 invisibly to their users and then the user runs into the default four
 thread limit.  This looks like Bitcoin Core is unresponsive to RPC.

There are many things that should be improved in Bitcoin Core's behavior
 here, e.g. supporting more concurrent connections, not tying up threads
 for idle connections, disconnecting kept-alive  connections when limits
 are reached, etc. All are fairly big, risky changes.

Disabling keep-alive is a simple workaround. It's often not easy to turn
 off the keep-alive support in the client where it may be buried in some
 platform library.

If you are one of the few who really needs persistent connections you
 probably know that you want them and can find a switch; while if you
 don't and the misbehavior is hitting you it is hard to discover the
 source of your problems is keepalive related.  Given that it is best
 to default to off until they're handled better.
2015-01-14 09:49:57 -08:00
Wladimir J. van der Laan
e0cd2f5523
Merge pull request #5649
301cd2a Use text-color icons for system tray Send/Receive menu entries (Luke Dashjr)
2015-01-14 18:11:11 +01:00
Luke Dashjr
301cd2a3a9 Use text-color icons for system tray Send/Receive menu entries 2015-01-14 17:01:00 +00:00
Wladimir J. van der Laan
d1aa3c67f0
Merge pull request #5489
905711f contrib: improve optimize-pngs.py (Wladimir J. van der Laan)
42f6a0c [Qt] optimize PNG files (Jonas Schnelli)
2015-01-14 17:22:37 +01:00
Jonas Schnelli
42f6a0c2b9 [Qt] optimize PNG files
- provide a python script
- add optimized png files
2015-01-14 17:18:48 +01:00
Wladimir J. van der Laan
eec81cbb80
Merge pull request #5637
80dd50c [Qt] group variables below initial if-clauses in AmountSpinBox::stepEnabled (Philip Kaufmann)
0fd9e2b [Qt] don't allow amount changes when AmountSpinBox is read-only (Philip Kaufmann)
2015-01-14 16:54:28 +01:00
Philip Kaufmann
17005bc0fc [Qt] add payment request unit test for non matching networks
- verify that payment request network matches client network
- add static verifyNetwork() function to PaymentServer to be able to use
  the same validation code in GUI and unit-testing code
2015-01-14 13:15:26 +01:00
Philip Kaufmann
080da96c7c [Qt] prepare paymentservertests for new unit tests
- add a second PaymentRequest Test CA certificate to paymentrequestdata.h
  (serial number f0:da:97:e4:38:d7:64:16) as caCert2_BASE64
- rename existing Test CA certificate to caCert1_BASE64
- rename existing payment request data to know they belong to
  caCert1_BASE64
- update comments to reflect the changes and add a missing comment to one
  of the payment requests
2015-01-13 15:46:27 +01:00
Philip Kaufmann
80dd50ccba [Qt] group variables below initial if-clauses in AmountSpinBox::stepEnabled 2015-01-13 11:51:45 +01:00
Wladimir J. van der Laan
c5380a9045
Merge pull request #5144
b468e81 Qt: Clarify sign/verify dialog text to specifically state that these messages only prove one receives with the address in question, and makes no claim to sender of transactions (Luke Dashjr)
2015-01-13 10:02:35 +01:00
Jonas Schnelli
785bb81c6b [Qt] remove size grip to get rid of the right margin
IMO nobody needs a size grip and it looks bad
2015-01-13 08:38:57 +01:00
Luke Dashjr
1d84aead21 Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde (which may be mistaken for a negative sign) 2015-01-12 22:26:29 +00:00
Gregory Maxwell
3ff735c99a Increase block download timeout base from 10 to 20 minutes.
This harmonizes the block fetch timeout with the existing ping timeout
 and eliminates a guaranteed eventual failure from congestion collapse
 for a network operating right at its limit.

It's unlikely that we wouldn't suffer other failures if we were really
 anywhere near the network's limit, and a complete avoidance of congestion
 collapse risk requires (I think) an exponential back-off. So this isn't
 a major concern, but I think it's also useful for reducing the complexity
 of understanding out timeouts.
2015-01-12 11:58:17 -08:00
Luke Dashjr
2ce63d395f MOVEONLY: Move struct CBlockTemplate to miner.h (from main.h) 2015-01-12 20:47:44 +01:00
Wladimir J. van der Laan
868da0f40a
Merge pull request #5619
13cdce4 Catch UTXO set read errors and shutdown (Pieter Wuille)
2015-01-12 11:26:41 +01:00
Wladimir J. van der Laan
de8b9ab757
Merge pull request #5608
9161303 Introduce 10 minute block download timeout (Pieter Wuille)
2015-01-12 11:24:47 +01:00
Wladimir J. van der Laan
c6b7b29f23 Improve robustness of DER recoding code
Add some defensive programming on top of #5634.

This copies the respective OpenSSL code in ECDSA_verify in
OpenSSL pre-1.0.1k (e.g. https://github.com/openssl/openssl/blob/OpenSSL_1_0_1j/crypto/ecdsa/ecs_vrf.c#L89)
more closely.

As reported by @sergiodemianlerner.
2015-01-12 08:59:03 +01:00
Philip Kaufmann
851296a72f [Qt] add option to allow self signed root certs (for testing)
- it is helpful to be able to test and verify payment request processing
  by allowing self signed root certificates (e.g. generated by Gavins
  "certificate authority in a box")
- This option is just shown in the UI options, if -help-debug is enabled.
2015-01-11 19:16:57 +01:00
Philip Kaufmann
0fd9e2bf43 [Qt] don't allow amount changes when AmountSpinBox is read-only
- before it was possible to use the steps to change e.g. amouns of
  authenticated or unauthenticated payment requests (AmountSpinBox is
  already set to read-only here) - this is now fixed
- also move the reimplemented stepEnabled() function to the
  protected section of our class, where it belongs (see Qt doc)
2015-01-10 15:02:12 +01:00
Cory Fields
8dccba6a45 fail immediately on an empty signature 2015-01-09 22:06:55 -05:00
Cory Fields
488ed32f2a consensus: guard against openssl's new strict DER checks
New versions of OpenSSL will reject non-canonical DER signatures. However,
it'll happily decode them. Decode then re-encode before verification in order
to ensure that it is properly consumed.
2015-01-09 21:31:31 -05:00
Jonas Schnelli
98c222b5aa [Qt] optimize helpmessage dialog
- enlarge standard size
- remove fixed 10px font
- remove left mood image
- ensure that table has no ugly line-breaks on OSX, Linux
2015-01-09 21:11:47 +01:00
Peter Todd
2fa9a8ec86
Make empty byte arrays pass CheckSignatureEncoding()
Makes it possible to compactly provide a delibrately invalid signature
for use with CHECK(MULTI)SIG. For instance with BIP19 if m != n invalid
signatures need to be provided in the scriptSig; prior to this change
those invalid signatures would need to be large DER-encoded signatures.

Note that we may want to further expand on this change in the future by
saying that only OP_0 is a "valid" invalid signature; BIP19 even with
this change is inherently malleable as the invalid signatures can be any
validly encoded DER signature.
2015-01-09 06:03:22 -05:00
Pieter Wuille
13cdce4336 Catch UTXO set read errors and shutdown 2015-01-08 15:51:15 +01:00
Wladimir J. van der Laan
c6a5ad4819
Fix tests after #5413
Pull #5413 was not rebased after deterministic signing was merged
(#5227), so the testcases had to be regenerated using UPDATE_JSON_TESTS.
2015-01-08 12:53:05 +01:00
Wladimir J. van der Laan
c8183bf8ea
Merge pull request #5589
23f3435 Rename MAX_TX_SIGOPS to MAX_STANDARD_TX_SIGOPS to match similar policy constant MAX_STANDARD_TX_SIZE (Luke Dashjr)
2015-01-08 12:38:10 +01:00
Wladimir J. van der Laan
c5e0aef5c4
Merge pull request #5604
d58c5d6 tests: run sanity checks in tests too (Cory Fields)
2015-01-08 12:07:06 +01:00
Wladimir J. van der Laan
48e1765e27
Merge pull request #5143
da918ac Make SCRIPT_VERIFY_CLEANSTACK a standardness requirement (Pieter Wuille)
b6e03cc Add SCRIPT_VERIFY_CLEANSTACK (BIP62 rule 6) (Pieter Wuille)
ae4151b No semantic change: reuse stack variable in P2SH evaluation (Pieter Wuille)
2015-01-08 12:01:22 +01:00
Wladimir J. van der Laan
83be8fda6d
Merge pull request #5559
e179eb3 Make the command-line-args dialog better (Thomas Zander)
2015-01-08 10:04:15 +01:00
Wladimir J. van der Laan
204d41a821
Merge pull request #5542
2ecd294 Bugfix: configure: Correctly detect "nothing to build" condition (Luke Dashjr)
b7a4ecc Bugfix: Only check for boost when building code that requires it (Luke Dashjr)
a19eeac Bugfix: configure: Check for openssl/ec.h (Luke Dashjr)
fe925e2 Use EXTRA_LIBRARIES instead of noinst_LIBRARIES so we can avoid building unused code (Cory Fields)
2015-01-08 09:32:36 +01:00
Pieter Wuille
916130348c Introduce 10 minute block download timeout
This will disconnect peers that do not transfer a block in 10 minutes, plus
5 minutes for every previously queued block with validated headers
(accomodating downstream bandwidth down to a few kilobytes per second - below
that the node would have trouble staying synchronized anyway).
2015-01-07 17:09:24 +01:00
Wladimir J. van der Laan
8e4578af0f
Merge pull request #5521
0ea28ba Reject non-final txs even in testnet/regtest (Peter Todd)
2015-01-07 16:27:33 +01:00
Wladimir J. van der Laan
37b185c4af
Merge pull request #5611
f0b8afc tests: fix spurious windows test failures after 012598880c (Cory Fields)
2015-01-07 15:02:52 +01:00
Wladimir J. van der Laan
7625f7ff94
Merge pull request #5597
e413457 Catch LevelDB errors during flush (Pieter Wuille)
02bced1 Bugfix: only track UTXO modification after lookup (Pieter Wuille)
2015-01-07 13:03:41 +01:00
Wladimir J. van der Laan
d79adc1ab1
Merge pull request #5535
1c52aad Require sufficent priority for relay of free transactions (Pieter Wuille)
2015-01-07 13:01:56 +01:00
Cory Fields
f0b8afc88b tests: fix spurious windows test failures after 012598880c
on rare occasions, rand() was returning duped values, causing duplicate
transactions.

BuildMerkleTree happily used these, but CPartialMerkleTree caught them and
returned a null merkle root.

Rather than taking changes with rand(), use the loop counter to guarantee
unique values.

At sipa's request, also remove the remaining uses of rand().
2015-01-06 20:18:12 -05:00
Cory Fields
fe925e221f Use EXTRA_LIBRARIES instead of noinst_LIBRARIES so we can avoid building unused code 2015-01-06 20:00:25 +00:00
Wladimir J. van der Laan
729ba31749
Merge pull request #5513
856e862 namespace: drop most boost namespaces and a few header cleanups (Cory Fields)
9b1ab86 namespace: drop boost::assign altogether here (Cory Fields)
a324199 namespace: remove boost namespace pollution (Cory Fields)
2015-01-06 20:32:45 +01:00
Wladimir J. van der Laan
3b95808428
Merge pull request #5520
bdb6a71 IsNull doesn't change CBlockLocator, add const hint (Pavel Janík)
1b37333 Remove no longer needed declaration of CBlockLocator (Pavel Janík)
2015-01-06 20:01:00 +01:00
Wladimir J. van der Laan
de70dd4904
Merge pull request #5598
eb0d34b Remove unused chainparam networkID (jtimon)
2015-01-06 18:12:58 +01:00
Wladimir J. van der Laan
a89b8371d6
Merge pull request #5564
de236f5 clarify obscure uses of EvalScript() (Pavel Vasin)
2015-01-06 11:51:18 +01:00
Wladimir J. van der Laan
7b879d3493
Merge pull request #5532
be22b3d Update seed IPs, based on bitcoin.sipa.be crawler data (Pieter Wuille)
2015-01-06 11:00:02 +01:00
Cory Fields
d58c5d6f21 tests: run sanity checks in tests too
If these are going to fail in bitcoind, they should fail in the tests as well.
2015-01-05 22:34:47 -05:00
Pieter Wuille
7268f7b120 Move arith_uint256 out of consensus and util 2015-01-06 00:42:27 +01:00
Pieter Wuille
7873633b57 Squashed 'src/secp256k1/' changes from bccaf86..50cc6ab
50cc6ab Merge pull request #178
941e221 Add tests for handling of the nonce function in signing.
10c81ff Merge pull request #177
7688e34 Add magnitude limits to secp256k1_fe_verify to ensure that it's own tests function correctly.
4ee4f7a Merge pull request #176
70ae0d2 Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var.
7767b4d Merge pull request #175
9ab9335 Add a reference consistency test to ge_tests.
60571c6 Rework group tests
d26e26f Avoid constructing an invalid signature with probability 1:2^256.
b450c34 Merge pull request #163
d57cae9 Merge pull request #154
49ee0db Add _normalizes_to_zero_var variant
eed599d Add _fe_normalizes_to_zero method
d7174ed Weak normalization for secp256k1_fe_equal
0295f0a weak normalization
bbd5ba7 Use rfc6979 as default nonce generation function
b37fbc2 Implement SHA256 / HMAC-SHA256 / RFC6979.
c6e7f4e [API BREAK] Use a nonce-generation function instead of a nonce
cf0c48b Merge pull request #169
603c33b Make signing fail if a too small buffer is passed.
6d16606 Merge pull request #168
7277fd7 Remove GMP field implementation
e99c4c4 Merge pull request #123
13278f6 Add explanation about how inversion can be avoided
ce7eb6f Optimize verification: avoid field inverse
a098f78 Merge pull request #160
38acd01 Merge pull request #165
6a59012 Make git ignore bench_recover when configured with benchmark enabled
1ba4a60 Configure options reorganization
3c0f246 Merge pull request #157
808dd9b Merge pull request #156
8dc75e9 Merge pull request #158
28ade27 build: nuke bashisms
5190079 build: use subdir-objects for automake
8336040 build: disable benchmark by default

git-subtree-dir: src/secp256k1
git-subtree-split: 50cc6ab0625efda6dddf1dc86c1e2671f069b0d8
2015-01-06 00:28:47 +01:00
Pieter Wuille
602ebf5279 Update libsecp256k1 2015-01-06 00:28:47 +01:00
Pieter Wuille
1a9576de9d Use libsecp256k1's RFC6979 implementation 2015-01-06 00:28:44 +01:00
Thomas Zander
e179eb3d9b Make the command-line-args dialog better
Instead of using a fixed-width font in a label, which virtually
guarentees a horizontal scrollbar, use a proper text-document
that can re-layout based on user input.
2015-01-05 21:17:45 +01:00
Pieter Wuille
be22b3da1d Update seed IPs, based on bitcoin.sipa.be crawler data 2015-01-05 17:23:23 +01:00
Wladimir J. van der Laan
6bd0dc2a84 arith_uint256: remove initialization from byte vector
Remove initialization from vector (as this is only used in the tests).

Also implement SetHex and GetHex in terms of uint256, to avoid
duplicate code as well as avoid endianness issues (as they
work in term of bytes).
2015-01-05 15:45:36 +01:00
Wladimir J. van der Laan
30007fda76 Remove now-unused methods from arith_uint256 and base_uint
- Methods that access the guts of arith_uint256 are removed,
as these are incompatible between endians. Use uint256 instead

- Serialization is no longer needed as arith_uint256's are never
read or written

- GetHash is never used on arith_uint256
2015-01-05 15:45:36 +01:00
Wladimir J. van der Laan
edc720479d Remove arith_uint160
We never do 160-bit arithmetic.
2015-01-05 15:45:36 +01:00
Wladimir J. van der Laan
dba2e9141a Add tests for new uint256 2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
92cdb1aace Add conversion functions arith_uint256<->uint_256 2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
bfc6070342 uint256->arith_uint256 blob256->uint256
Introduce new opaque implementation of `uint256`, move old
"arithmetic" implementation to `arith_uint256.
2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
734f85c4f0 Use arith_uint256 where necessary
Also add conversion from/to uint256 where needed.
2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
34cdc41128 String conversions uint256 -> uint256S
If uint256() constructor takes a string, uint256(0) will become
dangerous when uint256 does not take integers anymore (it will go
through std::string(const char*) making a NULL string, and the explicit
keyword is no help).
2015-01-05 15:45:35 +01:00
Wladimir J. van der Laan
2eae3157f6 Replace uint256(1) with static constant
SignatureHash and its test function SignatureHashOld
return uint256(1) as a special error signaling value.
Return a local static constant with the same value instead.
2015-01-05 15:45:34 +01:00
Wladimir J. van der Laan
807658549c Replace GetLow64 with GetCheapHash 2015-01-05 15:45:34 +01:00
Wladimir J. van der Laan
4f1524966a Replace direct use of 0 with SetNull and IsNull
Replace x=0 with .SetNull(),
x==0 with IsNull(), x!=0 with !IsNull().
Replace uses of uint256(0) with uint256().
2015-01-05 15:45:34 +01:00
Wladimir J. van der Laan
5d3064bc44 Temporarily add SetNull/IsNull/GetCheapHash to base_uint
Also add a stub for arith_uint256 and its conversion functions,
for now completely based on uint256.

Eases step-by-step migration to blob.
2015-01-05 15:14:47 +01:00
Wladimir J. van der Laan
a043facf5a
Merge pull request #5594
7eeeac0 Remove dead BitcoinUnits::id code and update assets-attribution for non-image unit selector (Luke Dashjr)
2015-01-05 08:57:04 +01:00
jtimon
0cc0d8d60b Get rid of the internal miner's hashmeter 2015-01-04 21:04:55 +01:00
Peter Todd
0ea28baeb8
Reject non-final txs even in testnet/regtest
Previous behavior with IsFinalTx() being an IsStandard() rule was rather
confusing and interferred with testing of protocols that depended on
nLockTime.
2015-01-04 14:17:39 -05:00
Pieter Wuille
e41345790f Catch LevelDB errors during flush 2015-01-04 19:12:00 +01:00
Pieter Wuille
02bced1661 Bugfix: only track UTXO modification after lookup
Otherwise, if CCoinsViewCache::ModifyCoins throws an exception in between
setting hasModifier and constructing the CCoinsModifier, the cache ends up
in an inconsistent state, resulting in an assert failure in the next
modification.

Bug discovered by Wladimir J. van der Laan.
2015-01-04 17:16:43 +01:00
Pieter Wuille
84eba479a1
Merge pull request #5540
12d927a RPC test for immature balance (Jonas Schnelli)
8024d67 Add immature balances to getwalletinfo. (Gregory Maxwell)
d44c545 Add unconfirmedbalance field to getwalletinfo (azeteki)
2015-01-04 17:06:17 +01:00
Pieter Wuille
9a5cabf3da
Merge pull request #5508
146c0a7 Add RandAddSeedPerfmon to MakeNewKey (21E14)
2015-01-04 16:37:24 +01:00
Luke Dashjr
7eeeac0ff5 Remove dead BitcoinUnits::id code and update assets-attribution for non-image unit selector 2015-01-03 15:43:04 +00:00
Thomas Zander
70477a0bdf
On close of splashscreen interrupt verifyDB
With the splashscreen being able to be closed it is possible to
shutdown during the lengthy verifyDB method. (Takes about a minute
on my machine). This change allows us to shutdown much sooner.

Github-Pull: #5557
2015-01-03 10:22:02 +01:00
Cory Fields
856e862f4a namespace: drop most boost namespaces and a few header cleanups
A few boost::asio were left around because they're very wordy otherwise.
2015-01-02 15:12:03 -05:00
Cory Fields
9b1ab860ff namespace: drop boost::assign altogether here
Standard functions are even simpler
2015-01-02 15:12:03 -05:00
Cory Fields
a3241998e1 namespace: remove boost namespace pollution 2015-01-02 15:12:03 -05:00
Wladimir J. van der Laan
f55c5e9749
Merge pull request #5349
0125988 Implement test for merkle tree malleability in CPartialMerkleTree (Pieter Wuille)
2015-01-02 18:06:52 +01:00
Wladimir J. van der Laan
c986972ad7
Merge pull request #5476
73caf47 Display time offset in the debug window's Peers tab (Pavel Janík)
26a6bae Add time offset to getpeerinfo output (Pavel Janík)
2015-01-02 17:54:21 +01:00
Wladimir J. van der Laan
40d65eb66d
Merge pull request #5580
1b178a7 Bugfix: ConnectBlock: In case the genesis block gets in with fJustCheck, behave correctly (Luke Dashjr)
228d238 Make CCoinsViewCache's copy constructor private (Luke Dashjr)
2015-01-02 17:35:45 +01:00
Wladimir J. van der Laan
269d8ba0d2
Remove declaration of no longer existent CheckWork
Also make ProcessBlockFound static as it is not used outside
miner.cpp.

Alternative implementation of #5549.
2015-01-02 17:30:00 +01:00
Wladimir J. van der Laan
fe39ce6b23
Merge pull request #5583
643415a [Qt] update a translation string and argument counts (Philip Kaufmann)
2015-01-02 11:18:28 +01:00
Wladimir J. van der Laan
edbc9045cb
Bump project-wide COPYRIGHT_YEAR to 2015
There is still a redundancy here between configure.ac and
clientversion.h.
2015-01-02 10:53:13 +01:00
Wladimir J. van der Laan
e6df2bb48f Remove redundant copyright notices from README files
The normative place for these for the entire project is COPYING,
and the main README already has a MIT license section.
2015-01-02 10:46:23 +01:00
Wladimir J. van der Laan
9adfacdb8b
Merge pull request #5551
dd3f697 Use real text rather than image-rendered text for unit selector (Luke Dashjr)
2015-01-02 10:04:48 +01:00
Luke Dashjr
23f3435962 Rename MAX_TX_SIGOPS to MAX_STANDARD_TX_SIGOPS to match similar policy constant MAX_STANDARD_TX_SIZE 2015-01-01 11:35:51 +00:00
Jeff Garzik
39d6b5fd42
Merge #5528 from
branch 'bitcoin-tx-copy-paste' of git://github.com/ers35/bitcoin into merge-5528
2014-12-31 08:57:55 -05:00
Jeff Garzik
664999eb87
Merge #5578 from
branch 'error_typos' of git://github.com/paveljanik/bitcoin into merge-5578
2014-12-31 08:00:37 -05:00
Jeff Garzik
95ecc0a857
Merge #4964 from
branch 'validateaddress-return-scriptpubkey' of git://github.com/petertodd/bitcoin into merge-4964
2014-12-31 07:05:14 -05:00
Jeff Garzik
aa5c0d34b7
Merge #5111 from
branch 'core2' of git://github.com/jtimon/bitcoin into merge-5111
2014-12-31 06:48:42 -05:00
Philip Kaufmann
643415aade [Qt] update a translation string and argument counts 2014-12-31 12:03:00 +01:00
Wladimir J. van der Laan
a5eb61d9ef
Merge pull request #5499
7f71813 Bugfix: prioritisetransaction: Do some basic sanity checking on txid (Luke Dashjr)
2014-12-31 10:50:06 +01:00
Wladimir J. van der Laan
639c79a41f
Merge pull request #5545
a094b3d Remove bitnodes.io from dnsseeds. (Gregory Maxwell)
2014-12-31 10:42:58 +01:00
Wladimir J. van der Laan
6e557c2b9d
Merge pull request #5571
06206bb Correct tooltip on address book page (Michael Ford)
2014-12-31 10:35:52 +01:00
Wladimir J. van der Laan
0a42036ded
Merge pull request #5576
8f6860a Bugfix: RPCWallet: Docs: Booleans aren't quoted (Luke Dashjr)
2014-12-31 09:46:00 +01:00
Luke Dashjr
1b178a7f96 Bugfix: ConnectBlock: In case the genesis block gets in with fJustCheck, behave correctly 2014-12-31 03:28:05 +00:00
Luke Dashjr
228d238525 Make CCoinsViewCache's copy constructor private
It is easily confused with CCoinsViewCache(CCoinsView*), which creates a sub-cache, but instead of creating a sub-cache, the copy constructor would copy the original and use that original's base, defeating the intended isolation.
2014-12-31 03:19:24 +00:00
Pavel Janík
4f1ee565b5 Clean AcceptToMemoryPool error messages 2014-12-30 23:02:46 +01:00
Luke Dashjr
8f6860a083 Bugfix: RPCWallet: Docs: Booleans aren't quoted 2014-12-30 15:15:40 +00:00
Luke Dashjr
7b782f5b01 RPCWallet: Notate all account stuff as deprecated 2014-12-30 14:46:57 +00:00
Michael Ford
06206bb3b7 Correct tooltip on address book page 2014-12-30 17:46:57 +08:00
Pavel Vasin
de236f57c6 clarify obscure uses of EvalScript()
The 3rd argument of EvalScript() is the unsigned int flags, not a bool.
2014-12-30 10:01:16 +03:00
Pieter Wuille
1c52aad540 Require sufficent priority for relay of free transactions 2014-12-30 02:03:29 +01:00
Cory Fields
8db1760751 rpcserver: attempt to fix uncaught exception. 2014-12-29 15:20:09 -05:00
Jonas Schnelli
59582c8b8d [REST] add /rest/chaininfos 2014-12-29 20:19:48 +01:00
Wladimir J. van der Laan
a99ef7d353
Merge pull request #5505
469d564 Build winshutdownmonitor.cpp on Windows only. (Pavel Janík)
2014-12-29 13:44:02 +01:00
Luke Dashjr
dd3f69736a Use real text rather than image-rendered text for unit selector
The width of each unit is measured to set a fixed width for the widget, and the color is set to match the other status widgets.
2014-12-29 09:59:54 +00:00
Wladimir J. van der Laan
ed11d53077
Merge pull request #5514
be43492 build: fix 'make distcheck' (Cory Fields)
2014-12-29 10:05:02 +01:00
Wladimir J. van der Laan
565b3008ec
Merge pull request #5530
7c5dd60 Adding RPC tests for the following wallet related calls: getbalance, listsinceblock, listtransactions, listlockunspent, listaccounts listaddressgroupings (Everett Forth)
2014-12-29 09:53:01 +01:00
Thomas Zander
99913f0f70 Fix reference.
The text talked about "Quit" while Bitcoin uses "Exit" in its menu.
2014-12-28 22:57:39 +01:00
Luke Dashjr
9b7d3fb165 Adopt style colour for button icons 2014-12-27 19:04:49 +01:00
jtimon
87fb31086d Move UndoWriteToDisk() and UndoReadFromDisk() to anon namespace 2014-12-27 16:01:31 +01:00
jtimon
937ba572d0 MOVEONLY: CBlockUndo from main.h to undo.h 2014-12-27 16:01:31 +01:00
jtimon
e035c6a737 Decouple CBlockUndo from CDiskBlockPos 2014-12-27 16:01:31 +01:00
jtimon
d7621ccf9d Decouple miner.o and txmempool.o from CTxUndo 2014-12-27 16:01:12 +01:00
jtimon
c444c620c6 Decouple CCoins from CTxInUndo 2014-12-27 15:46:09 +01:00
Jonas Schnelli
de779b307b [Qt] new icon for the debug window 2014-12-27 12:35:38 +01:00
Gregory Maxwell
a094b3d973 Remove bitnodes.io from dnsseeds.
I'm not comfortable with retaining this entry.
2014-12-27 01:38:47 -08:00
Wladimir J. van der Laan
0f2308cf7c
Merge pull request #5272
13f9031 init: minor parameter interaction updates (Philip Kaufmann)
2014-12-27 05:41:13 +01:00
Wladimir J. van der Laan
a3bd5d7d82
Merge pull request #5533
a15dba5 en: Avoid ambiguous language regarding when transactions confirm (Luke Dashjr)
2014-12-27 05:01:09 +01:00
Gregory Maxwell
8024d67dae Add immature balances to getwalletinfo. 2014-12-25 20:14:29 -08:00
azeteki
d44c545673 Add unconfirmedbalance field to getwalletinfo 2014-12-25 20:12:23 -08:00
Peter Todd
d78f0dafd5
Fix CScriptID(const CScript& in) in empty script case
Previously an empty script wouldn't be hashed, and CScriptID would be
assigned the incorrect value of 0 instead. This bug can be seen in the
RPC decodescript command:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "31h1vYVSYuKP6AhS86fbRdMw9XHieotbST"
    }

Correct output:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy"
    }
2014-12-25 03:18:40 -05:00
Eric R. Schulz
2c14d1532f bitcoin-tx: Add test case for signing a tx 2014-12-24 01:56:28 +00:00
Luke Dashjr
a15dba5dff en: Avoid ambiguous language regarding when transactions confirm 2014-12-23 22:07:10 +00:00
Wladimir J. van der Laan
844ace95de
Merge pull request #5507
c907704 DOS: Respect max per-peer blocks in flight limit (Adam Weiss)
2014-12-23 12:32:47 +01:00
Wladimir J. van der Laan
055f3ae9aa
Merge pull request #5481
6484930 Apply AreSane() checks to the fees from the network. (Gregory Maxwell)
2014-12-23 12:29:33 +01:00
Wladimir J. van der Laan
d01bcc446e
Merge pull request #5485
aa279d6 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option. (Gregory Maxwell)
2014-12-23 12:12:05 +01:00
Wladimir J. van der Laan
4406c3e0f4
Merge pull request #5459
3497022 Reject headers that build on an invalid parent (Pieter Wuille)
2014-12-23 11:54:07 +01:00
Everett Forth
7c5dd60306 Adding RPC tests for the following wallet related calls: getbalance,
listsinceblock, listtransactions, listlockunspent, listaccounts
listaddressgroupings
2014-12-23 02:27:17 -08:00
Adam Weiss
c90770430d DOS: Respect max per-peer blocks in flight limit
Don't allow immediate inv driven block downloads if
a peer already has MAX_BLOCKS_IN_TRANSIT_PER_PEER
active downloads.  Prevents bogus inv spam from
blowing up block transfer tracking data structures.
2014-12-23 02:19:34 -05:00
Eric R. Schulz
a089c50981 bitcoin-tx: Refer to the JSON fields rather than the whole object 2014-12-23 02:59:00 +00:00
Eric R. Schulz
2a3d988b80 bitcoin-tx: Fix JSON validation of prevtxs 2014-12-22 21:04:53 -05:00
Pieter Wuille
3497022347 Reject headers that build on an invalid parent 2014-12-22 15:10:56 +01:00
Wladimir J. van der Laan
fcbc8bfa6d
Merge pull request #5523
4bc95c4 remove max orphan blocks config parameter since it is no longer functional (Jameson Lopp)
2014-12-22 15:02:42 +01:00
Wladimir J. van der Laan
203632d20b
Merge pull request #5253
7c041b3 Check against MANDATORY flags prior to accepting to mempool (Peter Todd)
2014-12-22 12:41:40 +01:00
Jameson Lopp
4bc95c4387 remove max orphan blocks config parameter since it is no longer functional 2014-12-21 09:10:43 -05:00
Matt Corallo
ff09e31a51 sleep-wait on genesis block during init with -reindex 2014-12-20 22:11:51 -05:00
Pavel Janík
bdb6a71d3d IsNull doesn't change CBlockLocator, add const hint 2014-12-20 16:58:40 +01:00
Pavel Janík
1b37333a7f Remove no longer needed declaration of CBlockLocator 2014-12-20 16:57:46 +01:00
Cory Fields
be43492945 build: fix 'make distcheck'
Rather than treating the .py as a regular built test, run it from check-local
so that we can better control the paths used.
2014-12-19 18:04:12 -05:00
Gregory Maxwell
aa279d6131 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option.
Previously the minRelayTxFee was only enforced on user specified values.

It was possible for smartfee to produce a fee below minRelayTxFee which
 would just result in the transaction getting stuck because it can't be
 relayed.

This also introduces a maxtxfee option which sets an absolute maximum
 for any fee created by the wallet, with an intention of increasing
 user confidence that the automatic fees won't burn them. This was
 frequently a concern even before smartfees.

If the configured fee policy won't even allow the wallet to meet the relay
 fee the transaction creation may be aborted.
2014-12-19 12:05:10 -08:00
sandakersmann
f914f1a746
Added "Core" to copyright headers
Github-Pull: #5494
Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
2014-12-19 19:55:32 +01:00
Wladimir J. van der Laan
111a7d45f1
Merge pull request #5470
78253fc Remove references to X11 licence (Michael Ford)
2014-12-19 19:23:23 +01:00
Wladimir J. van der Laan
811c71d287
Merge pull request #2340
ba7fcc8 Discourage fee sniping with nLockTime (Peter Todd)
2014-12-19 18:54:51 +01:00
Philip Kaufmann
84857e87e4
add missing CAutoFile::IsNull() check in main
Rebased-From: ccd056a30db0ba5e04b858a682907b378e464d34
Github-Pull: #5437
2014-12-19 18:47:00 +01:00
Wladimir J. van der Laan
c63b47df11
Merge pull request #5341
4709160 [Qt] fix a translation that occurs 2 times but was a little different (Philip Kaufmann)
50db7d9 [Qt] change some strings to reflect name change to Bitcoin Core (Philip Kaufmann)
2747f7c [Qt] fix missing plural form for a string in sendcoinsdialog (Philip Kaufmann)
2014-12-19 18:02:24 +01:00
Wladimir J. van der Laan
886eb57507
Merge pull request #5421
cac15be Test unexecuted OP_CODESEPARATOR (Peter Todd)
2014-12-19 17:54:21 +01:00
Wladimir J. van der Laan
6e718f9435
Remove outdated comment about NTP
The comment has been around since 0.1, but NTP inside the client
isn't deemed necessary so remove the comment to avoid confusion.
2014-12-19 16:26:27 +01:00
21E14
146c0a7c5a Add RandAddSeedPerfmon to MakeNewKey 2014-12-18 20:25:04 -05:00
Pavel Janík
469d564951 Build winshutdownmonitor.cpp on Windows only. 2014-12-18 13:34:16 +01:00
Wladimir J. van der Laan
4444b879bc
Merge pull request #5484
7c8e4c5 Make pass-by-ref arguments const. (Daniel Kraft)
2014-12-17 19:21:48 +01:00
Luke Dashjr
7f71813919 Bugfix: prioritisetransaction: Do some basic sanity checking on txid
Besides giving a nicer error, this also prevents logging arbitrary data (which could have been used to exploit log readers) into debug.log
2014-12-17 09:37:58 +00:00
Philip Kaufmann
27df4123c4 make all catch() arguments const
- I saw this on http://en.cppreference.com/w/cpp/language/try_catch and
  thought it would be a good idea
- also unify used format to better be able to search for exception
  uses in our codebase
2014-12-17 09:39:24 +01:00
Daniel Kraft
7c8e4c5cfb Make pass-by-ref arguments const.
Make some of the arguments in rest.cpp, that are passed by
reference but never modified, const to emphasise that.
2014-12-16 13:45:27 +01:00
Jonas Schnelli
ff63801bc0 [Qt] light blue icon color for regtest
Changing the icons color for regtest in now lightweight.
2014-12-16 13:37:44 +01:00
Jonas Schnelli
270f42d39f [Qt] fix a <Qt4.7 compatibility issue raised in #5228 2014-12-16 13:21:36 +01:00
Wladimir J. van der Laan
73cbf0a527
Merge pull request #5258
4a8fc15 [Qt] the RPC Console should be a QWidget to make window more independent (Jonas Schnelli)
2014-12-16 11:30:27 +01:00
Pavel Janík
bf7835c271
Fix small typos in comments and error messages
Rebased-From: 67b2d819cdf6181e7f016e5366ce7479830893bd
Github-Pull: #5404
2014-12-16 11:24:43 +01:00
Jonas Schnelli
ac23394ea8 resize tray icon because a 1024x1024 icon won't show in ubuntu (bug) 2014-12-16 11:15:08 +01:00
Wladimir J. van der Laan
8e76ca0429 Qt: Go back to using QIcon functionality for scaling 2014-12-16 11:15:08 +01:00
Jonas Schnelli
54f2571a00 Qt: HiDPI (retina) support for splash screen
- remove splash screen images (reduce binary size)
- dynamicly draw splash screen with available icon.
- remove testnet icon
- dynamicly colorize testnet icon
2014-12-16 11:15:05 +01:00
Wladimir J. van der Laan
f3af0c898f
Merge pull request #5219
31aac02 Qt: new icons (Jonas Schnelli)
2014-12-16 11:04:24 +01:00
Wladimir J. van der Laan
103f66bf82
Merge pull request #5444
f676c80 Add /rest/headers (Pieter Wuille)
2014-12-16 10:40:16 +01:00
Michael Ford
78253fcbad Remove references to X11 licence 2014-12-16 15:56:50 +08:00
Manuel Araoz
87e8e1ca8b minor fix on script test data docs 2014-12-16 00:55:21 -03:00
Gregory Maxwell
6484930690 Apply AreSane() checks to the fees from the network.
'Sane' was already defined by this code as:
 fee.GetFeePerK() > minRelayFee.GetFeePerK() * 10000
 But sanity was only enforced for data loaded from disk.

Note that this is a pretty expansive definition of 'sane': A 10 BTC
 fee is still passes the test if its on a 100kb transaction.

This prevents a single insane fee on the network from making us reject
 our stored fee data at start.  We still may reject valid saved fee
 state if minRelayFee is changed between executions.

This also reduces the risk and limits the damage from a cascading
 failure where one party pays a bunch of insane fees which cases
 others to pay insane fees.
2014-12-15 14:50:24 -08:00
Pavel Janík
73caf47dfe Display time offset in the debug window's Peers tab 2014-12-15 19:56:45 +01:00
Pavel Janík
26a6bae753 Add time offset to getpeerinfo output 2014-12-15 11:06:15 +01:00
Pieter Wuille
c789b761d5
Merge pull request #5357
5ea3bc0 Move remaining CBlockIndex methods to chain.cpp (Pieter Wuille)
9dcd524 Make IsSuperMajority a standalone function (Pieter Wuille)
2014-12-14 12:13:21 +01:00
Pieter Wuille
f676c80f43 Add /rest/headers 2014-12-12 16:37:00 +01:00
Wladimir J. van der Laan
5f7279ac70
Merge pull request #5461
aa768f1 signrawtransaction: validate private key. (Pavel Janík)
2014-12-12 11:52:07 +01:00
Wladimir J. van der Laan
6f2ee04f75
Merge pull request #5457
830ee48 Update Bitcoin for libsecp256k1 API change (Pieter Wuille)
ecae2ac Squashed 'src/secp256k1/' changes from b0210a9..bccaf86 (Pieter Wuille)
2014-12-12 11:17:23 +01:00
jtimon
eb0d34b494 Remove unused chainparam networkID 2014-12-11 23:32:30 +01:00
Pieter Wuille
5ea3bc06d5 Move remaining CBlockIndex methods to chain.cpp 2014-12-11 17:39:10 +01:00
Pieter Wuille
9dcd524f32 Make IsSuperMajority a standalone function 2014-12-11 17:39:09 +01:00
Pieter Wuille
012598880c Implement test for merkle tree malleability in CPartialMerkleTree
This is a check that is mentioned in BIP 37, but never implemented in the
reference code. As Bitcoin Core so far never decodes partial merkle trees,
this is not a problem. But perhaps others use the code as a reference.
2014-12-11 17:22:15 +01:00
Wladimir J. van der Laan
dcc1304426
Merge pull request #5367
63d1ae5 Do all block index writes in a batch (Pieter Wuille)
2014-12-11 16:15:34 +01:00
Pavel Janík
aa768f1848 signrawtransaction: validate private key. 2014-12-11 16:06:23 +01:00
Wladimir J. van der Laan
d7492304e9
Now that 0.10 has been branched, master is 0.10.99 2014-12-11 16:03:46 +01:00
Wladimir J. van der Laan
41cced2106
Merge pull request #5267
34318d7 RPC-test based on invalidateblock for mempool coinbase spends (Gavin Andresen)
7fd6219 Make CTxMemPool::remove more effecient by avoiding recursion (Matt Corallo)
b7b4318 Make CTxMemPool::check more thourough by using CheckInputs (Matt Corallo)
723d12c Remove txn which are invalidated by coinbase maturity during reorg (Matt Corallo)
868d041 Remove coinbase-dependant transactions during reorg. (Matt Corallo)
2014-12-11 15:24:00 +01:00
Wladimir J. van der Laan
7c001bb49c
qt: translations pull from transifex 2014-12-11 11:10:23 +01:00
Wladimir J. van der Laan
5e521d3e4e
Merge pull request #5391
932ef50 [REST] JSON output: remove block infos from tx details if it is nested in block (Jonas Schnelli)
cae5486 [REST] added /rest/block/notxdetails/<hash> into REST-interface.md documentation (Jonas Schnelli)
73351c3 [REST] /rest/block response with full tx details (Jonas Schnelli)
2014-12-11 10:33:11 +01:00
Pieter Wuille
830ee48b59 Update Bitcoin for libsecp256k1 API change 2014-12-11 02:06:28 +01:00
Pieter Wuille
ecae2acb06 Squashed 'src/secp256k1/' changes from b0210a9..bccaf86
bccaf86 Merge pull request #150
2a53a47 Merge pull request #151
5f5a31f Merge pull request #149
3907277 Merge pull request #142
a3e0611 Enable tests in x86 travis builds
45da235 x86 builder
8bb0e93 Merge pull request #155
971fe81 build: fix openssl detection for cross builds
f22d73e Explicitly access %0..%2 as 64-bit so we use the right registers for x32 ABI
e66d4d6 Avoid the stack in assembly and use explicit registers
cf7b2b4 Fix ECDSA message hashes to 32 bytes
056ad31 Really compile with -O3 by default
74ad63a Merge pull request #146
9000458 Merge pull request #145
1f46b00 build: fix __builtin_expect detection for clang
aaba2e0 Merge pull request #136
8a0775c Merge pull request #144
ee1eaa7 Merge pull request #141
c88e2b8 Compile with -O3 by default
6558a26 Make the benchmarks print out stats
000bdf6 Rename bench_verify to bench_recovery
7c6fed2 Add a few more additional tests.
992e03b travis: add clang to the test matrix
b43b79a Merge pull request #143
e06a924 Include time.h header for time().
8d11164 Add some additional tests.
3545627 Merge pull request #118
6a9901e Merge pull request #137
376b28b Merge pull request #128
1728806 Merge pull request #138
a5759c5 Check return value of malloc
39bd94d Variable time normalize
ad86bdf Merge pull request #140
54b768c Another redundant secp256k1_fe_normalize
69dcaab Merge pull request #139
1c29f2e Remove redundant secp256k1_fe_normalize from secp256k1_gej_add_ge_var.
2b9388b Remove unused secp256k1_fe_inv_all
f461b76 Allocate precomputation arrays on the heap
b2c9681 Make {mul,sqr}_inner use the same argument order as {mul,sqr}
6793505 Convert YASM code into inline assembly
f048615 Rewrite field assembly to match the C version
3ce74b1 Tweak precomputed table size for G

git-subtree-dir: src/secp256k1
git-subtree-split: bccaf86caa9c44166e5a66600b742c516e03c3f0
2014-12-11 01:58:25 +01:00
Pieter Wuille
253e207132 Update libsecp256k1 2014-12-11 01:58:25 +01:00
Wladimir J. van der Laan
34468066ff
Merge pull request #5399
4be639e Use RPC_INVALID_PARAMETER instead of RPC_WALLET_ERROR for invalid amount. No return at the end of void function. (Pavel Janík)
b93173d Move SendMoney() to rpcwallet.cpp. (Pavel Janík)
2014-12-10 08:22:20 +01:00
Jonas Schnelli
932ef50f77 [REST] JSON output: remove block infos from tx details if it is nested in block 2014-12-09 16:05:51 +01:00
Jonas Schnelli
73351c3686 [REST] /rest/block response with full tx details
- rest block request returns full unfolded tx details
- /rest/block/notxdetails/<HASH> returns block where transactions are only represented by its hash
2014-12-09 16:05:50 +01:00
Wladimir J. van der Laan
7f76dda903
Merge pull request #5216
5ec654b [Qt] update paymentserver license and cleanup ordering (Philip Kaufmann)
4333e26 [Qt] add BIP70 DoS protection test (Philip Kaufmann)
31f8494 [Qt] add BIP70 payment request size DoS protection for URIs (Philip Kaufmann)
2284ccb [Qt] remove dup lock that is done in SetAddressBook() (Philip Kaufmann)
1ec753f [Qt] ensure socket is set to NULL in PaymentServer::ipcSendCommandLine (Philip Kaufmann)
814429d [Qt] add BIP70/BIP71 constants for all messages and mime types (Philip Kaufmann)
b82695b [Qt] make PaymentServer::ipcParseCommandLine void (Philip Kaufmann)
2014-12-09 10:16:16 +01:00
Wladimir J. van der Laan
4f85383cb3
Merge pull request #5409
65b0328 newlines in strings are invalid JSON (Ryan X. Charles)
2014-12-09 10:07:35 +01:00
Matt Corallo
7fd6219af7 Make CTxMemPool::remove more effecient by avoiding recursion 2014-12-08 14:09:58 -08:00
Matt Corallo
b7b4318f3a Make CTxMemPool::check more thourough by using CheckInputs 2014-12-08 14:05:42 -08:00
Matt Corallo
723d12c098 Remove txn which are invalidated by coinbase maturity during reorg 2014-12-08 14:05:42 -08:00
Matt Corallo
868d041622 Remove coinbase-dependant transactions during reorg.
This still leaves transactions in mempool that are potentially
invalid if the maturity period has been reorged out of, but at
least they're not missing inputs entirely.
2014-12-08 14:05:42 -08:00
Philip Kaufmann
5ec654b8ce [Qt] update paymentserver license and cleanup ordering 2014-12-08 16:09:02 +01:00
Philip Kaufmann
4333e26c8e [Qt] add BIP70 DoS protection test
- this test required to make readPaymentRequestFromFile() public in order
  to be able to is it in paymentservertests.cpp
2014-12-08 16:09:01 +01:00
Philip Kaufmann
31f84944a5 [Qt] add BIP70 payment request size DoS protection for URIs
- current code only does this for payment request files, which are
  used on Mac
- also rename readPaymentRequest to readPaymentRequestFromFile, so it's
  obvious that function only handles payment request files and not URIs
- small logging changes in readPaymentRequestFromFile
2014-12-08 16:08:59 +01:00
Philip Kaufmann
2284ccbd13 [Qt] remove dup lock that is done in SetAddressBook() 2014-12-08 16:08:59 +01:00
Philip Kaufmann
1ec753f734 [Qt] ensure socket is set to NULL in PaymentServer::ipcSendCommandLine 2014-12-08 16:08:58 +01:00
Philip Kaufmann
814429dc72 [Qt] add BIP70/BIP71 constants for all messages and mime types
- also rename current ones to match the new ones
- remove constant from guiconstant.h and add it to paymentserver.cpp
2014-12-08 16:08:58 +01:00
Philip Kaufmann
b82695b89f [Qt] make PaymentServer::ipcParseCommandLine void
- the function only returned true, so make it void
- add a comment about payment request network detection
2014-12-08 16:08:57 +01:00
Wladimir J. van der Laan
4b5b263ac0
Merge pull request #5434
683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server. (Gregory Maxwell)
2014-12-08 13:31:13 +01:00
Pavel Janík
a26bf478ea Add a new test for FormatParagraph (string longer than the default width). 2014-12-06 22:49:07 +01:00
Pavel Janík
83b81f6c8a Format paragraphs properly - count the space between words. 2014-12-06 21:26:52 +01:00
Gregory Maxwell
683dc4009b Disable SSLv3 (in favor of TLS) for the RPC client and server.
TLS is subject to downgrade attacks when SSLv3 is available, and
 SSLv3 has vulnerabilities.

The popular solution is to disable SSLv3. On the web this breaks
 some tiny number of very old clients. While Bitcoin RPC shouldn't
 be exposed to the open Internet, it also shouldn't be exposed to
 really old SSL implementations, so it shouldn't be a major issue
 for us to disable SSLv3.

There is more information on the downgrade attacks and disabling
 SSLv3 at https://disablessl3.com/ .
2014-12-06 07:08:02 -08:00
Pavel Janík
4be639eaec Use RPC_INVALID_PARAMETER instead of RPC_WALLET_ERROR for invalid amount.
No return at the end of void function.
2014-12-05 17:22:06 +01:00
Wladimir J. van der Laan
b5fa132329
Merge pull request #5181
afd4b94 Move CMerkleBlock and CPartialMerkleTree to their own file (Matt Corallo)
2014-12-05 16:50:48 +01:00
Pavel Janík
4c83c0e7c8
Normalize header guard of script_error.h 2014-12-05 12:01:13 +01:00
Wladimir J. van der Laan
dbf1dc239e
Merge pull request #5398
8a20cd3 prioritisetransaction RPC: Restore compatibility with existing implementations by using satoshis for fee offset rather than BTC (Luke Dashjr)
2014-12-05 11:41:06 +01:00
Wladimir J. van der Laan
800458eddd
Merge pull request #5408
35e408f Regard connection failures as attempt for addrman (Wladimir J. van der Laan)
2014-12-05 11:39:18 +01:00
Wladimir J. van der Laan
7a88e3b0fc
Merge pull request #5425
87bddb7 Squashed 'src/secp256k1/' changes from ad2028f..b0210a9 (Pieter Wuille)
ffe3291 Remove gmp dependency and doc mentions (Pieter Wuille)
2014-12-05 11:30:26 +01:00
Wladimir J. van der Laan
7d42644dda
Merge pull request #5207
8487790 bitcoin-tx: Add the "-txid" option. Also add the hex-encoded transaction to the JSON output as the "hex" property. (mruddy)
2014-12-05 11:24:39 +01:00
Wladimir J. van der Laan
c78a18087f
Merge pull request #5308
60d1ecd change nSubsidy's type from int64_t to CAmount (HarryWu)
2014-12-05 11:11:24 +01:00
Wladimir J. van der Laan
68705996a9
Merge pull request #5419
12a49ca Limit the number of new addressses to accumulate (Pieter Wuille)
2014-12-05 11:01:19 +01:00
Matt Corallo
afd4b94b6d Move CMerkleBlock and CPartialMerkleTree to their own file 2014-12-05 01:57:40 -08:00
Daniel Kraft
35f7227a86 Clean up wallet encryption code.
Add a new method DecryptKey in crypter.cpp, that combines the logic for
decrypting, initialising and validating a CKey object.  This was
previously duplicated.
2014-12-04 21:37:26 +01:00
Pieter Wuille
87bddb7a3a Squashed 'src/secp256k1/' changes from ad2028f..b0210a9
b0210a9 Merge pull request #135
ee3eb4b Fix a memory leak and add a number of small tests.
4d879a3 Merge pull request #134
d5e8362 Merge pull request #127
7b92cf6 Merge pull request #132
0bf70a5 Merge pull request #133
29ae131 Make scalar_add_bit test's overflow detection exact
9048def Avoid undefined shift behaviour
efb7d4b Use constant-time conditional moves instead of byte slicing
d220062 Merge pull request #131
82f9254 Fix typo
601ca04 Merge pull request #129
35399e0 Bugfix: b is restricted, not r
c35ff1e Convert lambda splitter to pure scalar code.
cc604e9 Avoid division when decomposing scalars
ff8746d Add secp256k1_scalar_mul_shift_var
bd313f7 Merge pull request #119
276f987 Merge pull request #124
25d125e Merge pull request #126
24b3c65 Add a test case for ECDSA recomputing infinity
32600e5 Add a test for r >= order signature handling
4d4eeea Make secp256k1_fe_mul_inner use the r != property
be82e92 Require that r and b are different for field multiplication.
597128d Make num optional
659b554 Make constant initializers independent from num
0af5b47 Merge pull request #120
e2e8a36 Merge pull request #117
c76be9e Remove unused num functions
4285a98 Move lambda-splitting code to scalar.
f24041d Switch all EC/ECDSA logic from num to scalar
6794be6 Add scalar splitting functions
d1502eb Add secp256k1_scalar_inverse_var which delegates to GMP
b5c9ee7 Make test_point_times_order test meaningful again
0b73059 Switch wnaf splitting from num-based to scalar-based
1e6c77c Generalize secp256k1_scalar_get_bits
5213207 Add secp256k1_scalar_add_bit
3c0ae43 Merge pull request #122
6e05287 Do signature recovery/verification with 4 possible recid case
e3d692f Explain why no y=0 check is necessary for doubling
f7dc1c6 Optimize doubling: secp256k1 has no y=0 point
666d3b5 Merge pull request #121
2a54f9b Correct typo in comment
9d64145 Merge pull request #114
99f0728 Fix secp256k1_num_set_bin handling of 0
d907ebc Add bounds checking to field element setters
bb2cd94 Merge pull request #116
665775b Don't split the g factor when not using endomorphism
9431d6b Merge pull request #115
e2274c5 build: osx: attempt to work with homebrew keg-only packages

git-subtree-dir: src/secp256k1
git-subtree-split: b0210a95da433e048a11d298efbcc14eb423c95f
2014-12-04 19:17:07 +01:00
Pieter Wuille
0dcfb91d56 Update libsecp256k1 2014-12-04 19:17:07 +01:00
Wladimir J. van der Laan
9ddc8c63ab
Merge pull request #5394
307f7d4 Report script evaluation failures in log and reject messages (Pieter Wuille)
2014-12-04 16:43:35 +01:00
Pieter Wuille
12a49cac0a Limit the number of new addressses to accumulate 2014-12-04 13:19:16 +01:00
Peter Todd
cac15bedb1
Test unexecuted OP_CODESEPARATOR
OP_CODESEPARATOR is an actual executed instruction, not a declarative
thing, so if it's wrapped in an OP_IF it can be turned off.

Using this to implement Rivest's Paywords is left as an exercise for the
reader.
2014-12-04 00:53:16 -05:00
Wladimir J. van der Laan
a0417b8cc8 Merge pull request #5306
d227011 MOVEONLY: core/ -> primitives/ (Luke Dashjr)
2014-12-03 12:05:43 +01:00
Luke Dashjr
d227011184 MOVEONLY: core/ -> primitives/ 2014-12-03 10:52:58 +00:00
Wladimir J. van der Laan
7eb0667384
Merge pull request #5403
c5b390b Make comments in main an init doxygen compatible (Michael Ford)
2014-12-03 10:48:53 +01:00
Wladimir J. van der Laan
133344208c
Merge pull request #5400
32b93a1 Extra explanation for getchaintips (Pieter Wuille)
2014-12-03 10:17:13 +01:00
Pieter Wuille
307f7d48d4 Report script evaluation failures in log and reject messages 2014-12-02 22:05:03 +01:00
Ryan X. Charles
65b03282c9
newlines in strings are invalid JSON
Although script_valid.json and script_invalid.json are loaded correctly by the
JSON interpreter used by bitcoin core, these same files are often used by other
libraries and do not necessarily load correctly due to the fact that newlines
contained inside strings are not valid and must instead use the escape
character \n. The files tx_valid.json and tx_invalid.json handle this
correctly, so I've changed the formatting in script_valid.json and
script_invalid.json to mirror those files.
2014-12-02 10:02:44 -08:00
Pieter Wuille
0286fe5b3b
Merge pull request #5401
362001c Move CHECKMULTISIG order tests out of automatically generated block (Pieter Wuille)
f67a9ce Use deterministically generated script tests (Pieter Wuille)
2014-12-02 18:55:51 +01:00
Gavin Andresen
1c7e09f0b9
Merge pull request #5369
b2d0162 Test resurrecting memory pool transactions during chain re-org (Gavin Andresen)
3dd8ed7 Delay writing block indexes in invalidate/reconsider (Pieter Wuille)
798faec Add 'invalidateblock' and 'reconsiderblock' RPC commands. (Pieter Wuille)
2014-12-02 11:59:41 -05:00
Wladimir J. van der Laan
35e408f8a4 Regard connection failures as attempt for addrman
This avoids connecting to them again too soon in ThreadOpenConnections.

Make an exception for connection failures to the proxy as these
shouldn't affect the status of specific nodes.
2014-12-02 17:54:16 +01:00
Wladimir J. van der Laan
fec0d100d5
Merge pull request #5376
8a5c951 [REST] make selection of output-format mandatory, support dot url syntax (Jonas Schnelli)
2014-12-02 15:34:43 +01:00
Philip Kaufmann
4709160b50 [Qt] fix a translation that occurs 2 times but was a little different 2014-12-02 15:06:55 +01:00
Philip Kaufmann
50db7d9f09 [Qt] change some strings to reflect name change to Bitcoin Core 2014-12-02 15:06:15 +01:00
Philip Kaufmann
2747f7cf77 [Qt] fix missing plural form for a string in sendcoinsdialog
- this was reported on Transifex by pryds (Thank you!)
2014-12-02 15:06:15 +01:00
Michael Ford
c5b390b6b9 Make comments in main an init doxygen compatible
Fix typos where appropriate
Update license/copyright
2014-12-02 15:50:58 +08:00
Pavel Janík
b93173dee9 Move SendMoney() to rpcwallet.cpp. 2014-12-02 08:32:10 +01:00
Pieter Wuille
362001c19f Move CHECKMULTISIG order tests out of automatically generated block 2014-12-01 21:37:20 +01:00
Pieter Wuille
f67a9ce0dc Use deterministically generated script tests
Now that signing is deterministic, we can require exact correspondence between the
automatically generated tests and the ones read from JSON. Do this, and update
the tests to those deterministic versions. Note that some flag changes weren't
correctly applied before.
2014-12-01 21:29:02 +01:00
Pieter Wuille
32b93a1bc2 Extra explanation for getchaintips 2014-12-01 20:48:50 +01:00
Luke Dashjr
8a20cd3c51 prioritisetransaction RPC: Restore compatibility with existing implementations by using satoshis for fee offset rather than BTC 2014-12-01 14:18:07 +00:00
Wladimir J. van der Laan
f0877f8b62
Merge pull request #5227
4cdaa95 Resize after succesful result (Pieter Wuille)
9d8604f Header define style cleanups (Pieter Wuille)
a53fd41 Deterministic signing (Pieter Wuille)
3060e36 Add the RFC6979 PRNG (Pieter Wuille)
a8f5087 Add HMAC-SHA256 (Pieter Wuille)
36fa4a7 Split up crypto/sha2 (Pieter Wuille)
2014-12-01 14:57:58 +01:00
Wladimir J. van der Laan
89151d9f29
Merge pull request #5390
43422a0 [Qt] Fix wallet-lock in CWallet::GetAccountAddresses(..) (Cozz Lovan)
2014-12-01 12:44:26 +01:00
Wladimir J. van der Laan
0ddf4416cc
Merge pull request #5386
1b91be4 Report status of chain tips (Pieter Wuille)
2014-12-01 11:49:35 +01:00
Wladimir J. van der Laan
b248a38aa5
Merge pull request #5388
1cf23f6 Update the intent on SI-style separators. (21E14)
2014-12-01 10:17:58 +01:00
Cozz Lovan
43422a0121 [Qt] Fix wallet-lock in CWallet::GetAccountAddresses(..) 2014-11-29 12:51:36 +01:00
Pieter Wuille
4cdaa95a20 Resize after succesful result 2014-11-28 21:16:51 +01:00
21E14
1cf23f6c50 Update the intent on SI-style separators. 2014-11-28 10:34:25 -05:00
Pieter Wuille
5270817180
Merge pull request #5365
3a05ba1 Fix typo in doxygen comment. (Pavel Janík)
2014-11-28 16:22:25 +01:00
Wladimir J. van der Laan
d7c8a830c4
Merge pull request #5316
f86a24b Move `setmocktime` to hidden category (Wladimir J. van der Laan)
bd9aebf Introduce a hidden category (Pieter Wuille)
0dd06b2 Delay writing block indexes in invalidate/reconsider (Pieter Wuille)
9b0a8d3 Add 'invalidateblock' and 'reconsiderblock' RPC commands. (Pieter Wuille)
2014-11-28 11:19:15 +01:00
Wladimir J. van der Laan
f86a24b368
Move setmocktime to hidden category
Another testing-only potential footgun command.
2014-11-28 10:57:14 +01:00
Wladimir J. van der Laan
631e698bb7
Merge pull request #5374
a53d16a Use complete path to include bitcoin-config.h. (Pavel Janík)
2014-11-28 09:46:39 +01:00
Jonas Schnelli
8a5c9513ba [REST] make selection of output-format mandatory, support dot url syntax
1. Remove the default format (binary) because `rest/block/<hash>/Hex` would end up delivering binary data.
2. List available formats when chosen format was not found (reduces need for documentation)
3. Change url syntax to dot extension like format chosing (like `rest/tx/<hash>.json`
2014-11-27 14:06:45 +01:00
Pieter Wuille
1b91be49f5 Report status of chain tips 2014-11-27 11:50:14 +01:00
Pieter Wuille
57be955ba0 Remove -printblock, -printblocktree, and -printblockindex 2014-11-27 09:50:20 +01:00
Pieter Wuille
bd9aebf19d Introduce a hidden category 2014-11-26 16:36:26 +01:00
Pieter Wuille
0dd06b2515 Delay writing block indexes in invalidate/reconsider 2014-11-26 16:36:26 +01:00
Pieter Wuille
9b0a8d3152 Add 'invalidateblock' and 'reconsiderblock' RPC commands.
These can be used for testing reorganizations or for manual intervention in case of
chain forks.
2014-11-26 16:36:25 +01:00
Wladimir J. van der Laan
9ff0bc9beb
Merge pull request #5158
9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true. (Ruben Dario Ponticelli)
a2d0fc6 Fix IsInitialBlockDownload which was broken by headers first. (Ruben Dario Ponticelli)
2014-11-26 15:09:03 +01:00
Wladimir J. van der Laan
b031137977
Merge pull request #5273
cd4d3f1 Win32: change buffer size for gethotsname in Discover() (Philip Kaufmann)
8fa0494 Win32: log addresses found in Discover() calls (Philip Kaufmann)
2014-11-26 14:36:50 +01:00
Wladimir J. van der Laan
108b19f7ef
Merge pull request #5326
5dc713b [REST] set REST API behind "-rest" option (Jonas Schnelli)
78bdc81 [REST] give an appropriate response in warmup phase (Jonas Schnelli)
210eba9 [REST] fix headersonly flag for BINARY responses (Jonas Schnelli)
2014-11-26 14:30:11 +01:00
Jonas Schnelli
5dc713bfc7 [REST] set REST API behind "-rest" option 2014-11-26 13:53:27 +01:00
Jonas Schnelli
78bdc8103f [REST] give an appropriate response in warmup phase 2014-11-26 13:51:02 +01:00
Wladimir J. van der Laan
8ba38aba42
qt: Update translations from transifex 2014-11-26 13:47:49 +01:00
Jonas Schnelli
210eba9fdb [REST] fix headersonly flag for BINARY responses 2014-11-26 13:42:58 +01:00
Wladimir J. van der Laan
53a87c0355
Merge pull request #5321
34559c7 Make PruneBlockIndexCandidates safer (Pieter Wuille)
cca48f6 Reset setBlockIndexCandidates once block index db loaded (21E14)
2014-11-26 13:31:03 +01:00
Wladimir J. van der Laan
4baa9f0c9b
Merge pull request #5323
a328dd6 [Qt] small changes to sendcoinsdialog (Philip Kaufmann)
2014-11-26 13:00:50 +01:00
Wladimir J. van der Laan
124b4895b8
Merge pull request #5209
9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis (Cozz Lovan)
2014-11-26 10:58:20 +01:00
Wladimir J. van der Laan
e6751ca68a
Merge pull request #5361
3223179 libbitcoinconsensus: don't require any global constructors (Cory Fields)
2014-11-26 10:44:42 +01:00
Pavel Janík
a53d16ac0c Use complete path to include bitcoin-config.h. 2014-11-26 10:37:49 +01:00
Wladimir J. van der Laan
70f9e33fa0
Merge pull request #5340
c8ed613 Include missing config/bitcoin-config.h. (Pavel Janík)
494f6e7 Check for strnlen and provide it if it is not found. (Pavel Janík)
2014-11-26 09:51:05 +01:00
Pavel Janík
c8ed6130a4 Include missing config/bitcoin-config.h. 2014-11-26 08:19:07 +01:00
Philip Kaufmann
a328dd60a7 [Qt] small changes to sendcoinsdialog
- add newly added variables to the constructor init
- move an already existing bool also to constructor init
- move a connect call to setClientModel and add a NULL pointer check
2014-11-25 17:00:02 +01:00
Pieter Wuille
63d1ae5556 Do all block index writes in a batch 2014-11-25 16:26:35 +01:00
Wladimir J. van der Laan
ac0b2393a4
Merge pull request #5351
3d0a1ce Process help and version arguments before datadir. (Pavel Janík)
2014-11-25 14:44:30 +01:00
Pieter Wuille
da918ac06e Make SCRIPT_VERIFY_CLEANSTACK a standardness requirement 2014-11-25 12:38:01 +01:00
Pieter Wuille
b6e03cc592 Add SCRIPT_VERIFY_CLEANSTACK (BIP62 rule 6)
Based on an earlier patch by Peter Todd, though the rules here are different
(P2SH scripts should not have a CLEANSTACK check before the P2SH evaluation).
2014-11-25 12:38:01 +01:00
Pieter Wuille
ae4151bbad No semantic change: reuse stack variable in P2SH evaluation 2014-11-25 12:35:32 +01:00
Pieter Wuille
3dd8ed72e5 Delay writing block indexes in invalidate/reconsider 2014-11-25 12:33:43 +01:00
Pieter Wuille
798faec3ea Add 'invalidateblock' and 'reconsiderblock' RPC commands.
These can be used for testing reorganizations or for manual intervention in case of
chain forks.
2014-11-25 12:32:51 +01:00
Wladimir J. van der Laan
397b9011c9
Merge pull request #5241
a206950 Introduce separate flushing modes (Pieter Wuille)
51ce901 Improve chainstate/blockindex disk writing policy (Pieter Wuille)
2014-11-25 12:18:00 +01:00
Michael Ford
850c570d68 No longer check osx compatibility in RenameThread
10.5 support has been dropped for some time now.
2014-11-25 16:12:55 +08:00
Pavel Janík
3a05ba1bfc Fix typo in doxygen comment. 2014-11-25 08:18:33 +01:00
Cory Fields
322317951f libbitcoinconsensus: don't require any global constructors
These static objects are only used in once place, so declare them there instead.
2014-11-24 15:23:29 -05:00
Wladimir J. van der Laan
6f9e67aca7
Merge pull request #5358
3c77714 Make -proxy set all network types, avoiding a connect leak. (Gregory Maxwell)
2014-11-24 15:30:31 +01:00
Wladimir J. van der Laan
1ee685f984
Merge pull request #5154
730b1ed Check pindexBestForkBase for null (21E14)
2014-11-24 15:29:52 +01:00
Jonas Schnelli
c5a2282855
[Qt, OSX] fix Qt4.8 compatibility with QProgressBar issue
Rebased-From: 7f33d2cebfde99ded12c711ef6bd77c91725cfb8
Github-Issue: #5344
2014-11-24 15:26:58 +01:00
Pieter Wuille
a206950016 Introduce separate flushing modes 2014-11-24 15:15:41 +01:00
Pieter Wuille
51ce901aa3 Improve chainstate/blockindex disk writing policy
There are 3 pieces of data that are maintained on disk. The actual block
and undo data, the block index (which can refer to positions on disk),
and the chainstate (which refers to the best block hash).

Earlier, there was no guarantee that blocks were written to disk before
block index entries referring to them were written. This commit introduces
dirty flags for block index data, and delays writing entries until the actual
block data is flushed.

With this stricter ordering in writes, it is now safe to not always flush
after every block, so there is no need for the IsInitialBlockDownload()
check there - instead we just write whenever enough time has passed or
the cache size grows too large. Also updating the wallet's best known block
is delayed until this is done, otherwise the wallet may end up referring to an
unknown block.

In addition, only do a write inside the block processing loop if necessary
(because of cache size exceeded). Otherwise, move the writing to a point
after processing is done, after relaying.
2014-11-24 15:15:40 +01:00
Wladimir J. van der Laan
f24bcce2ac
Merge pull request #1816
b867e40 CreateNewBlock: Stick height in coinbase so we pass template sanity check (Luke Dashjr)
60755db submitblock: Check for duplicate submissions explicitly (Luke Dashjr)
bc6cb41 QA RPC tests: Add tests block block proposals (Luke Dashjr)
9765a50 Implement BIP 23 Block Proposal (Luke Dashjr)
3dcbb9b Abstract DecodeHexBlk and BIP22ValidationResult functions out of submitblock (Luke Dashjr)
132ea9b miner_tests: Disable checkpoints so they don't fail the subsidy-change test (Luke Dashjr)
df08a62 TestBlockValidity function for CBlock proposals (used by CreateNewBlock) (Luke Dashjr)
4ea1be7 CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock (Luke Dashjr)
a48f2d6 Abstract context-dependent block checking from acceptance (Luke Dashjr)
2014-11-24 14:43:10 +01:00
Wladimir J. van der Laan
6582f323f0
Merge pull request #5224
f321d6b Add key generation/verification to ECC sanity check (Pieter Wuille)
d0c41a7 Add sanity check after key generation (Pieter Wuille)
2014-11-24 14:39:25 +01:00
Wladimir J. van der Laan
dfc8e1432a
Merge pull request #5309
4574248 [Qt] minor ordering cleanup after new fee selection (Philip Kaufmann)
a01fa30 minor style cleanup after HTTP rest interface merge (Philip Kaufmann)
2014-11-24 14:35:50 +01:00
Pavel Janík
494f6e7d35 Check for strnlen and provide it if it is not found. 2014-11-24 10:28:24 +01:00
Gregory Maxwell
3c77714134 Make -proxy set all network types, avoiding a connect leak.
Previously -proxy was not setting the proxy for IsLimited networks, so
 if you set your configuration to be onlynet=tor you wouldn't get an
 IPv4 proxy set.

The payment protocol gets its proxy configuration from the IPv4 proxy,
 and so it would experience a connection leak.

This addresses issue #5355 and also clears up a cosmetic bug where
 getinfo proxy output shows nothing when onlynet=tor is set.
2014-11-23 15:17:11 -08:00
dexX7
7357893396
Prioritize and display -testsafemode status in UI
Like in a real world situation, a safe mode test should also be visible in the
UI. A test of safe mode is furthermore mostly relevant for developers, so it
should not be overwritten by a warning about a pre-release test build.
2014-11-23 13:10:31 +01:00
Pieter Wuille
f321d6bfff Add key generation/verification to ECC sanity check 2014-11-23 10:47:39 +01:00
Pieter Wuille
d0c41a7350 Add sanity check after key generation
Add a sanity check to prevent cosmic rays from flipping a bit in the
generated public key, or bugs in the elliptic curve code. This is
simply done by signing a (randomized) message, and verifying the
result.
2014-11-23 10:47:39 +01:00
Pavel Janík
e0535e15ab Remove misleading comment about testnet's message string. 2014-11-22 22:22:12 +01:00
Pavel Janík
3d0a1ce193 Process help and version arguments before datadir. 2014-11-22 20:46:11 +01:00
21E14
730b1ed1a0 Check pindexBestForkBase for null 2014-11-22 00:12:41 -05:00
Philip Kaufmann
1b2600a13a
Change MIT/X11 to MIT in license displayed in the program 2014-11-21 17:03:59 +01:00
Michael Ford
fa94b9d562
Convert remaining comments in /src to doxygen format
- Update comments in checkpoints to be doxygen compatible
- Update comments in checkqueue to be doxygen compatible
- Update coins to be doxygen compatible
- Fix comment typo in crypter.h
- Update licenses/copyright dates

Closes #5325 #5184 #5183 #5182
2014-11-21 14:44:21 +01:00
Wladimir J. van der Laan
f2ada138c2
Merge pull request #5170
092b58d CBlockIndex::GetBlockWork() + GetProofIncrement(nBits) -> GetBlockProof(CBlockIndex) (jtimon)
22c4272 MOVEONLY: Move void UpdateTime() from pow.o to miner.o (plus fix include main.h -> chain.h) (jtimon)
2014-11-21 14:33:22 +01:00
Wladimir J. van der Laan
ca6fb4e885
Merge pull request #5247
ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation (Peter Todd)
98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode. (Pieter Wuille)
2014-11-21 14:21:56 +01:00
Wladimir J. van der Laan
cb83af9937
Merge pull request #5318
77c38bb Truthier error message when rpcpassword is missing (Glenn Willen)
2014-11-21 13:53:57 +01:00
Wladimir J. van der Laan
4a106eeb33
qt: English translation update 2014-11-21 10:24:30 +01:00
Wladimir J. van der Laan
db5308f447
Merge pull request #5322
aabe61c [Qt] explicitly call proxy in GUI settings SOCKS5 proxy (Philip Kaufmann)
2014-11-21 10:21:56 +01:00
Cory Fields
f618577029 build: fix link error on some platforms. Fixes #5235
Some users may have libtool libs (.la) installed in their linker search paths.
In this case, using -static-libtool-libs would try to link in .a's instead of
shared libs. That would be harmless unless the .a was built in a way that
would break linking, like non-fpic.

What we really want is "-static" here. Despite its name, it's actually less
aggressive than -static-libtool-libs. It causes only internal libs to be linked
statically (libbitcoinconsensus is the one were'a after).
2014-11-20 13:45:14 -05:00
Pieter Wuille
9d8604f36a Header define style cleanups 2014-11-20 17:22:06 +01:00
Pieter Wuille
a53fd41485 Deterministic signing 2014-11-20 17:22:06 +01:00
Pieter Wuille
3060e36098 Add the RFC6979 PRNG 2014-11-20 17:22:06 +01:00
Pieter Wuille
a8f5087e53 Add HMAC-SHA256 2014-11-20 17:22:06 +01:00
Pieter Wuille
36fa4a78ac Split up crypto/sha2 2014-11-20 17:22:02 +01:00
Luke Dashjr
b867e409e5 CreateNewBlock: Stick height in coinbase so we pass template sanity check 2014-11-20 15:32:49 +00:00
Wladimir J. van der Laan
5c4dffd188
Merge pull request #5270
57425a2 Check block header before accepting it. (Daniel Kraft)
2014-11-20 15:41:58 +01:00
Peter Todd
ca8158719b Test the exact order of CHECKMULTISIG sig/pubkey evaluation
Possible with STRICTENC
2014-11-20 15:29:28 +01:00
Pieter Wuille
98b135f97f Make STRICTENC invalid pubkeys fail the script rather than the opcode.
This turns STRICTENC turn into a softforking-safe change (even though it
is not intended as a consensus rule), and as a result guarantee that using
it for mempool validation only results in consensus-valid transactions in
the mempool.
2014-11-20 15:29:26 +01:00
Pieter Wuille
3ba5ebc065
Merge pull request #5000
0391423 Discourage NOPs reserved for soft-fork upgrades (Peter Todd)
2014-11-20 15:27:39 +01:00
Wladimir J. van der Laan
cf9c4887f1
Merge pull request #5324
72fb3d2 Update comments in src/rpc* to be doxygen compatible (Michael Ford)
2014-11-20 14:40:42 +01:00
Wladimir J. van der Laan
5c6b384502
Merge pull request #5320
e0a25c5 qt: Make askpassphrase dialog behave more sanely (Wladimir J. van der Laan)
2014-11-20 13:48:38 +01:00
Philip Kaufmann
aabe61cb37 [Qt] explicitly call proxy in GUI settings SOCKS5 proxy
- to ensure a consistent wording between core and GUI
2014-11-20 12:45:38 +01:00
Pieter Wuille
34559c7c73 Make PruneBlockIndexCandidates safer 2014-11-20 12:43:50 +01:00
Philip Kaufmann
4574248f9f [Qt] minor ordering cleanup after new fee selection 2014-11-20 12:29:52 +01:00
Philip Kaufmann
a01fa3035f minor style cleanup after HTTP rest interface merge
- no code changes
2014-11-20 12:29:19 +01:00
Wladimir J. van der Laan
e0a25c54eb qt: Make askpassphrase dialog behave more sanely
Set minimum sizes appropriately, and make sure that they
are enforced. Replaces #5226.
2014-11-20 12:28:34 +01:00
Daniel Kraft
57425a2425 Check block header before accepting it.
Previously, AcceptBlockHeader did not check the header (in particular
PoW).  This made the client accept invalid-PoW-headers from peers in
headers-first sync.
2014-11-20 08:28:19 +01:00
Cory Fields
269efa30ed build: add quick consensus lib tests
They should be hooked up in other places as well, but this is a start.
2014-11-19 22:31:10 -05:00
Cory Fields
cdd36c6c5c build: add --with-libs so that libs are optional 2014-11-19 22:31:10 -05:00
Cory Fields
2cf5f16c25 build: add libbitcoinconsensus files and hook up the lib build
Credit BlueMatt for libbitcoinsonsensus.h/cpp
2014-11-19 22:31:10 -05:00
Cory Fields
e0077de5de build: make a distinction between static app ldflags and static lib ldflags
For windows builds, exe's are always static, but libs should still conform to
--enabled-shared and --enable-static.
2014-11-19 22:08:27 -05:00
Michael Ford
72fb3d295a Update comments in src/rpc* to be doxygen compatible 2014-11-20 10:19:39 +08:00
Luke Dashjr
60755dbf76 submitblock: Check for duplicate submissions explicitly 2014-11-20 00:15:17 +00:00
Luke Dashjr
9765a50cbd Implement BIP 23 Block Proposal 2014-11-20 00:15:16 +00:00