Commit graph

5213 commits

Author SHA1 Message Date
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 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
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
Glenn Willen 77c38bb5cc Truthier error message when rpcpassword is missing 2014-11-19 15:34:36 -08:00
Cozz Lovan c1c9d5b415 [Qt] Add Smartfee to GUI 2014-11-19 16:04:53 +01:00
Cozz Lovan e7876b2979 [Wallet] Prevent user from paying a non-sense fee 2014-11-19 16:04:53 +01:00
Cozz Lovan ed3e5e468c [Wallet] Add global boolean whether to pay at least the custom fee (default=true) 2014-11-19 16:04:53 +01:00
Cozz Lovan 0ed9675be4 [Wallet] Add global boolean whether to send free transactions (default=true) 2014-11-19 16:04:53 +01:00
Wladimir J. van der Laan 18832ff8e1
Merge pull request #5313
230f7a8 Remove unused ecwrapper code (Pieter Wuille)
2014-11-19 15:24:01 +01:00
Wladimir J. van der Laan e587ecd8a6
Merge pull request #5296
0ceab00 [Qt, OSX] move QProgressBarMac to guiutil.h (Jonas Schnelli)
6093aa1 [Qt, OSX] QProgressBar CPU-Issue workaround (Jonas Schnelli)
2014-11-19 14:58:39 +01:00
Jonas Schnelli 0ceab00d16 [Qt, OSX] move QProgressBarMac to guiutil.h 2014-11-19 14:08:56 +01:00
Pieter Wuille 230f7a833d Remove unused ecwrapper code 2014-11-19 12:29:41 +01:00
Wladimir J. van der Laan 271061242b
Merge pull request #5220
f9e40fb revert part of 9eda1620b (Cory Fields)
4300876 build: secp256k1 as a subdir, since it's required (Cory Fields)
0dc8613 build: fixup configure to not export anything (Cory Fields)
54566de depends: quit exporting in config.site (Cory Fields)
ff1e5ba depends: add gmp package (Cory Fields)
cf61b54 Don't use bashisms in configure (Pieter Wuille)
dffb8f8 Use libsecp256k1 in key.cpp (Pieter Wuille)
4c97c64 Do not use EC code in global constructors (Pieter Wuille)
07a9901 Always build and link libsecp256k1 (Pieter Wuille)
d48555b Squashed 'src/secp256k1/' content from commit ad2028f (Pieter Wuille)
7a7e109 Delete src/secp256k1 before subtree import (Pieter Wuille)
2014-11-19 12:02:29 +01:00
Wladimir J. van der Laan 5716808ca7
Merge pull request #5300
a7f2941 [Qt, OSX] fix usage of osx 10.8+ user notification center (Jonas Schnelli)
2014-11-19 10:51:59 +01:00
HarryWu 60d1ecd378 change nSubsidy's type from int64_t to CAmount 2014-11-19 14:01:18 +08:00
Gavin Andresen fd3777b0b2
Merge pull request #5280
3c30f27 travis: disable rpc tests for windows until they're not so flaky (Cory Fields)
daf03e7 RPC tests: create initial chain with specific timestamps (Gavin Andresen)
a8b2ce5 regression test only setmocktime RPC call (Gavin Andresen)
2014-11-18 14:31:29 -05:00
Luke Dashjr 3dcbb9b6b4 Abstract DecodeHexBlk and BIP22ValidationResult functions out of submitblock 2014-11-18 19:20:10 +00:00
Luke Dashjr 132ea9b48f miner_tests: Disable checkpoints so they don't fail the subsidy-change test 2014-11-18 19:20:10 +00:00
Luke Dashjr df08a626e0 TestBlockValidity function for CBlock proposals (used by CreateNewBlock) 2014-11-18 19:20:10 +00:00
Luke Dashjr 4ea1be7fb8 CreateNewBlock and miner_tests: Also check generated template is valid by CheckBlockHeader, ContextualCheckBlockHeader, CheckBlock, and ContextualCheckBlock 2014-11-18 19:20:10 +00:00
Luke Dashjr a48f2d6ddd Abstract context-dependent block checking from acceptance 2014-11-18 19:20:10 +00:00
Cory Fields 4300876c81 build: secp256k1 as a subdir, since it's required 2014-11-18 18:06:47 +01:00
Pieter Wuille dffb8f81b8 Use libsecp256k1 in key.cpp 2014-11-18 18:06:46 +01:00
Pieter Wuille 4c97c64bf6 Do not use EC code in global constructors 2014-11-18 18:06:46 +01:00
Pieter Wuille 07a9901703 Always build and link libsecp256k1 2014-11-18 18:06:46 +01:00
Pieter Wuille d48555b36a Squashed 'src/secp256k1/' content from commit ad2028f
git-subtree-dir: src/secp256k1
git-subtree-split: ad2028f9890ca40bdd32055aa0fe5c1c9af0e485
2014-11-18 18:06:36 +01:00
Pieter Wuille 2245a95ce8 Merge commit 'd48555b36ac512161b81f9b6bca7bea16a0cd806' as 'src/secp256k1' 2014-11-18 18:06:36 +01:00
Pieter Wuille 7a7e109139 Delete src/secp256k1 before subtree import 2014-11-18 18:06:36 +01:00
Pieter Wuille e2f30d547f Properly lock cs_main in rest_block 2014-11-18 16:32:48 +01:00
Jeff Garzik 7715c84747
HTTP REST: minor fixes
1) const-ify internal helper ParseHashStr()

2) use HTTPError() helper when returning HTTP_NOT_FOUND
2014-11-18 10:27:45 -05:00
Jeff Garzik 9445b876bd
Merge pull request #2844 2014-11-18 10:17:22 -05:00
Wladimir J. van der Laan 27b2288f33
Merge pull request #5290
5d60b69 Coin Control: Make list mode default (Luke Dashjr)
4ff81d6 Bugfix: Clarify coin control dialog labels (Luke Dashjr)
2014-11-18 14:41:02 +01:00
Jonas Schnelli a7f2941068 [Qt, OSX] fix usage of osx 10.8+ user notification center
Currently Bitcoin-Qts support for OSX User Notification Center is broken. This pull will fix a known issue of non-official-apple-built apps having problems sending user notifications.
2014-11-18 13:50:25 +01:00
Peter Todd 03914234b3
Discourage NOPs reserved for soft-fork upgrades
NOP1 to NOP10 are reserved for future soft-fork upgrades. In the event
of an upgrade such NOPs have *VERIFY behavior, meaning that if their
arguments are not correct the script fails. Discouraging these NOPs by
rejecting transactions containing them from the mempool ensures that
we'll never accept transactions, nor mine blocks, with scripts that are
now invalid according to the majority of hashing power even if we're not
yet upgraded. Previously this wasn't an issue as the IsStandard() rules
didn't allow upgradable NOPs anyway, but 7f3b4e95 relaxed the
IsStandard() rules for P2SH redemptions allowing any redeemScript to be
spent.

We *do* allow upgradable NOPs in scripts so long as they are not
executed. This is harmless as there is no opportunity for the script to
be invalid post-upgrade.
2014-11-17 22:22:33 -05:00
Wladimir J. van der Laan 8adf457047
Merge pull request #5212
219a147 script: check ScriptError values in script tests (Cory Fields)
ab9edbd script: create sane error return codes for script validation and remove logging (Cory Fields)
2014-11-17 21:15:09 +01:00
Wladimir J. van der Laan 1f0436f8cb
Merge pull request #5293
c63a73d Update comments in util to be doxygen compatible (Michael Ford)
2014-11-17 17:17:46 +01:00
Wladimir J. van der Laan dbbe00f008
Merge pull request #5289
5617267 Fix typo in listreceivedbyaddress and listaccounts  help text (Michael Ford)
2014-11-17 17:14:38 +01:00
Wladimir J. van der Laan 47cb3606a3
Merge pull request #5292
7329fdd Update comments in txmempool to be doxygen compatible (Michael Ford)
2014-11-17 16:36:45 +01:00
Gavin Andresen a8b2ce557d
regression test only setmocktime RPC call 2014-11-17 10:33:49 -05:00
Gavin Andresen d6479ffc6a
Merge pull request #5275
1837987 Optimize -regtest setgenerate block generation (Gavin Andresen)

Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
2014-11-17 10:26:12 -05:00
Jonas Schnelli 6093aa1bb0 [Qt, OSX] QProgressBar CPU-Issue workaround
fixes #5295
2014-11-17 15:59:33 +01:00
Michael Ford c63a73d18a Update comments in util to be doxygen compatible 2014-11-17 11:04:01 +08:00
Michael Ford 7329fdd1ba Update comments in txmempool to be doxygen compatible
Fix typo in Read() error message
2014-11-17 10:29:09 +08:00
Luke Dashjr 5d60b694e9 Coin Control: Make list mode default 2014-11-16 17:27:19 +00:00
Luke Dashjr 4ff81d6092 Bugfix: Clarify coin control dialog labels 2014-11-16 17:16:14 +00:00
Michael Ford 5617267cd5 Fix typo in listreceivedbyaddress and listaccounts help text 2014-11-16 22:14:22 +08:00
Cozz Lovan 7335ca1a05 [Qt] Fix height of BitcoinAmountField 2014-11-16 01:07:09 +01:00
Cory Fields 219a1470c4 script: check ScriptError values in script tests 2014-11-14 16:25:53 -05:00
Cory Fields ab9edbd6b6 script: create sane error return codes for script validation and remove logging
Attempt to codify the possible error statuses associated with script
validation. script/types.h has been created with the expectation that it will
be part of the public lib interface. The other flag enums will be moved here in
a future commit.

Logging has also been removed in order to drop the dependency on core.h. It can
be re-added to bitcoind as-needed. This makes script verification finally free
of application state and boost!
2014-11-14 16:25:53 -05:00
Gavin Andresen 18379875bf
Optimize -regtest setgenerate block generation
Speed up generating blocks in regression test mode, by moving
block-creating and nonce-finding directly into the setgenerate
RPC call (instead of starting up a mining thread and waiting for
it to find a block).

This makes the forknotify RPC test three times quicker, for
example (10 seconds runtime instead of 30 seconds, assuming
the initial blockchain cache is already built).
2014-11-14 13:42:15 -05:00
Wladimir J. van der Laan 3d3ce7421e
Merge pull request #5198
1c0aa91 Update serialize comments to be doxygen compatible (Michael Ford)
2014-11-13 19:41:56 +01:00
Wladimir J. van der Laan 6c5c06eff7
Merge pull request #5252
b9a36b1 Make comments in /src/script doxygen compatible (Michael Ford)
2014-11-13 17:51:57 +01:00
Philip Kaufmann cd4d3f1915 Win32: change buffer size for gethotsname in Discover()
- 256 byte is the maximum, as per
  http://msdn.microsoft.com/en-us/library/windows/desktop/ms738527%28v=vs.85%29.aspx
2014-11-13 15:26:09 +01:00
Philip Kaufmann 8fa0494e92 Win32: log addresses found in Discover() calls 2014-11-13 15:25:44 +01:00
Philip Kaufmann 13f903187c init: minor parameter interaction updates
- use __func__ instead of hard-coded function name for logging
- update -discover help message to reflect newly added parameter
  interaction
- use DEFAULT_LISTEN in a parameter interaction check instead a hard coded
  value
2014-11-13 15:15:53 +01:00
Wladimir J. van der Laan ed98a6284b
Merge pull request #5203
0d91ae3 The first thing that SelectParams does is call SelectBaseParams. Therefore, we do not need to call SelectBaseParams immediately prior to calling SelectParams. (mruddy)
2014-11-13 13:14:45 +01:00
Jonas Schnelli 4a8fc152a9 [Qt] the RPC Console should be a QWidget to make window more independent
- fix issue #5254
2014-11-13 12:57:24 +01:00
Pieter Wuille 60672a61ff
Merge pull request #5256
f4e0aef Do signature-s negation inside the tests (Pieter Wuille)
2014-11-12 11:44:25 -08:00
Wladimir J. van der Laan 0c7862e968
Merge pull request #5161
845c86d Do not use third party services for IP detection. (Gregory Maxwell)
2014-11-12 18:35:45 +01:00
21E14 cca48f69b0 Reset setBlockIndexCandidates once block index db loaded 2014-11-12 00:35:24 -05:00
Jeff Garzik e2655e0ab1 Add unauthenticated HTTP REST interface to public blockchain data. 2014-11-11 04:52:43 -05:00
sinetek d52f072605 Don't show wallet options in the preferences menu when running with -disablewallet 2014-11-10 20:50:41 +01:00
Wladimir J. van der Laan af3ec17f67
Merge pull request #5246
a8a5e01 Adding license. (sinetek)
2014-11-10 17:31:54 +01:00
Wladimir J. van der Laan 33d5ee6830
Merge pull request #5239
65e3a1e Make sure that GetRandomBytes never fails (Wladimir J. van der Laan)
2014-11-10 17:30:13 +01:00
Pieter Wuille f4e0aefadc Do signature-s negation inside the tests
To avoid the need for libsecp256k1 to expose such functionality.
2014-11-10 05:03:24 -08:00
Pieter Wuille 5406f61373
Merge pull request #5249
38c62ae Adding const. (sinetek)
2014-11-10 04:29:57 -08:00
Peter Todd 7c041b3b91
Check against MANDATORY flags prior to accepting to mempool
Previously transactions were only tested again the
STANDARD_SCRIPT_VERIFY_FLAGS prior to mempool acceptance, so any bugs in
those flags that allowed actually-invalid transactions to pass would
result in allowing invalid transactions into the mempool. Fortunately
there is a second check in CreateNewBlock() that would prevent those
transactions from being mined, resulting in an invalid block, however
this could still be exploited as a DoS attack.
2014-11-10 02:52:28 -05:00
Michael Ford b9a36b15bf Make comments in /src/script doxygen compatible 2014-11-10 14:51:55 +08:00
sinetek 38c62aec0d Adding const. 2014-11-08 18:09:06 -05:00
sinetek a8a5e0133a Adding license. 2014-11-08 15:46:21 -05:00
Pieter Wuille 7b7c866160
Merge pull request #5210
1f84793 Avoid a bunch of copying/conversion in script/sign (Pieter Wuille)
2014-11-08 08:01:47 -08:00
Gregory Maxwell 845c86d128 Do not use third party services for IP detection.
This is a simplified re-do of closed pull #3088.

This patch eliminates the privacy and reliability problematic use
of centralized web services for discovering the node's addresses
for advertisement.

The Bitcoin protocol already allows your peers to tell you what
IP they think you have, but this data isn't trustworthy since
they could lie. So the challenge is using it without creating a
DOS vector.

To accomplish this we adopt an approach similar to the one used
by P2Pool: If we're announcing and don't have a better address
discovered (e.g. via UPNP) or configured we just announce to
each peer the address that peer told us. Since peers could
already replace, forge, or drop our address messages this cannot
create a new vulnerability... but if even one of our peers is
giving us a good address we'll eventually make a useful
advertisement.

We also may randomly use the peer-provided address for the
daily rebroadcast even if we otherwise have a seemingly routable
address, just in case we've been misconfigured (e.g. by UPNP).

To avoid privacy problems, we only do these things if discovery
is enabled.
2014-11-07 12:13:46 -08:00
Jonas Schnelli 31aac02446 Qt: new icons
- flat and b/w icons seems to be the new trend
- support for HiDPI/retina
- change icon sizes
- fix assets-attribution.md
- removed unused icons
2014-11-07 19:55:25 +01:00
Wladimir J. van der Laan 65e3a1e762
Make sure that GetRandomBytes never fails
We're using GetRandomBytes in several contexts where it's either
unwieldy to return an error, or an error would mean a fatal exception
anyhow.

@gmaxwell checked OpenSSL a while ago and discovered that it never
actually fails, but it can't hurt to be a bit paranoid here.
2014-11-07 13:49:25 +01:00
Ruben Dario Ponticelli 9ec75c5ef4
Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true. 2014-11-07 08:09:31 -03:00
ENikS 5985ba9e61 Fixing warning C4099: 'CExtPubKey' : type name first seen using 'class' now seen using 'struct' 2014-11-06 17:53:25 -05:00
Pieter Wuille bfe029feeb Reduce bitcoin-tx dependencies 2014-11-06 00:24:41 -08:00
Pieter Wuille df0a45503b
Merge pull request #5221
93a6022 Reduce bitcoin-cli dependencies (Pieter Wuille)
2014-11-06 00:06:01 -08:00
Wladimir J. van der Laan f654f0040b
Change -genproclimit default to 1
This is less surprising.

Avoids the overload-the-CPU default of using N threads for script
verification as well as N threads for generation where N is number of cores.
2014-11-06 08:54:39 +01:00
Wladimir J. van der Laan 9bdec76037
Always log number of threads for script verification
Helps for troubleshooting.
2014-11-06 08:54:34 +01:00
Pieter Wuille 93a6022400 Reduce bitcoin-cli dependencies 2014-11-05 12:47:33 -08:00
Wladimir J. van der Laan d064f7f3ee
Merge pull request #5215
93a3f0e Qt: Network-Traffic-Graph: make some distance between line and text (Jonas Schnelli)
2014-11-05 16:04:28 +01:00
Wladimir J. van der Laan 4e0e5e4bc8
Merge pull request #5218
236d96e Qt: Add support for missing scrollbar in peers table (Jonas Schnelli)
2014-11-05 15:58:49 +01:00
Jonas Schnelli 236d96e0a3 Qt: Add support for missing scrollbar in peers table 2014-11-05 11:45:37 +01:00
Jonas Schnelli 93a3f0e7fe Qt: Network-Traffic-Graph: make some distance between line and text
Text directly glued on the graph-line looks not so good.
2014-11-05 11:39:47 +01:00
Wladimir J. van der Laan 0778333b8c
Merge pull request #5173
50b43fd Be a bit more verbose during -loadblock if we already have blocks (Matt Corallo)
8375e22 Fix -loadblock after shutdown during IBD (Matt Corallo)
4ead850 Fix for crash during block download (Matt Corallo)
2014-11-05 09:40:25 +01:00
mruddy 84877904c0 bitcoin-tx: Add the "-txid" option. Also add the hex-encoded transaction to the JSON output as the "hex" property. 2014-11-04 21:43:03 -05:00
Pieter Wuille 1f847936c9 Avoid a bunch of copying/conversion in script/sign 2014-11-04 13:59:41 -08:00
Cozz Lovan 9b1627d13e [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis 2014-11-04 22:29:40 +01:00
Daniel Kraft af82884ab7 Add "warmup mode" for RPC server.
Start the RPC server before doing all the (expensive) startup
initialisations like loading the block index.  Until the node is ready,
return all calls immediately with a new error signalling "in warmup"
with an appropriate status message (similar to the init message).

This is useful for RPC clients to know that the server is there (e. g.,
they don't have to start it) but not yet available.  It is used in
Namecoin and Huntercoin already for some time, and there exists a UI
hooked onto the RPC interface that actively uses this to its advantage.
2014-11-04 16:01:09 +01:00
Philip Kaufmann b4347f6035 minor code style cleanup after recent merges
- add a missing license header
- correct some header orderings etc.
2014-11-04 14:36:46 +01:00
Pieter Wuille 1dbabb6521
Merge pull request #5191
a2cfae8 util.cpp comment correction (21E14)
2014-11-04 04:38:45 -08:00
mruddy 0d91ae308c The first thing that SelectParams does is call SelectBaseParams. Therefore, we do not need to call SelectBaseParams immediately prior to calling SelectParams. 2014-11-04 07:24:47 -05:00
Wladimir J. van der Laan df504e924a
Merge pull request #5196
8473862 Fix all header defines (Pavel Janík)
2014-11-04 09:33:22 +01:00
Wladimir J. van der Laan 73b82a3089
Merge pull request #5162
d2e74c5 boost: moveonly: split CPubKey and friends to new files (Cory Fields)
78c228c boost: moveonly: move BIP32Hash to hash.h (Cory Fields)
900078a boost: moveonly: create eccryptoverify.h|cpp and move helper functions there (Cory Fields)
2014-11-04 09:26:45 +01:00
Wladimir J. van der Laan ff17816abf
Merge pull request #3727
e69a587 RPC: submitblock: Support for returning specific rejection reasons (Luke Dashjr)
2014-11-03 20:55:46 +01:00
Wladimir J. van der Laan 7f7fede0eb
Merge pull request #5157
b4ee0bd Introduce preferred download peers (Pieter Wuille)
2014-11-03 16:40:36 +01:00
Pavel Janík 84738627ce Fix all header defines 2014-11-03 16:16:40 +01:00
Wladimir J. van der Laan 4e852e57b1
Merge pull request #5186
771d500 minor cleanup: include orders, end comments etc. (Philip Kaufmann)
2014-11-03 15:03:28 +01:00
Wladimir J. van der Laan 84d26d3a36
Merge pull request #5106
1bea2bb Rename ProcessBlock to ProcessNewBlock to indicate change of behaviour, and document it (Luke Dashjr)
d29a291 Rename RPC_TRANSACTION_* errors to RPC_VERIFY_* and use RPC_VERIFY_ERROR for submitblock (Luke Dashjr)
f877aaa Bugfix: submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock, now that it no longer does the full block validity check (Luke Dashjr)
24e8896 Add CValidationInterface::BlockChecked notification (Luke Dashjr)
2014-11-03 12:22:45 +01:00
Wladimir J. van der Laan 2a6972133f
Merge pull request #5185
2191eac add tests to travis (Cory Fields)
7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts (Cory Fields)
fa7f8cd tests: remove old pull-tester scripts (Cory Fields)
5122ea7 tests: fix forknotify.py on windows (Cory Fields)
7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment (Cory Fields)
f635269 tests: enable alertnotify test for Windows (Cory Fields)
2014-11-03 09:23:17 +01:00
Wladimir J. van der Laan 7a9356bf16
Merge pull request #5169
20a5f61 Don't relay alerts to peers before version negotiation (Wladimir J. van der Laan)
2014-11-03 08:49:31 +01:00
21E14 a2cfae8e18 util.cpp comment correction 2014-11-01 09:41:48 -04:00
Wladimir J. van der Laan 04e988c6ce
Merge pull request #5145
484e350 Update comments in client version to be doxygen compatible (Michael Ford)
6395ba3 Update comments in version to be doxygen compatible (Michael Ford)
2014-10-31 16:30:55 +01:00
Pieter Wuille 7cd85f431a
Merge pull request #5187
e743678 fix a typo (Yoichi Hirai)
2014-10-31 05:47:08 -07:00
Yoichi Hirai e743678d5a fix a typo 2014-10-31 20:51:05 +09:00
Wladimir J. van der Laan 917b83127d
qt: translations update from Transifex 2014-10-31 11:19:05 +01:00
Wladimir J. van der Laan 96012e83f1
Merge pull request #5077
2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option (Luke Dashjr)
2014-10-31 11:16:09 +01:00
Wladimir J. van der Laan 7bb681d407
Merge pull request #5168
023e63d qt: Move transaction notification to transaction table model (Wladimir J. van der Laan)
2014-10-31 10:46:05 +01:00
Philip Kaufmann 771d500283 minor cleanup: include orders, end comments etc.
- no code changes
2014-10-31 09:41:15 +01:00
Cory Fields d2e74c55bd boost: moveonly: split CPubKey and friends to new files 2014-10-31 01:19:37 -04:00
Cory Fields 78c228c6e5 boost: moveonly: move BIP32Hash to hash.h 2014-10-31 01:13:07 -04:00
Cory Fields 900078aeb4 boost: moveonly: create eccryptoverify.h|cpp and move helper functions there
Eventually (after 0.10) these files will hold the logic for crypto
verification routines, and CKey/CPubKey will call into them.
2014-10-31 01:13:07 -04:00