565 Commits

Author SHA1 Message Date
Adrian Gallagher
72ece8bf54 Merge remote-tracking branch 'bitcoin/0.10' into master-0.10
Conflicts:
	src/main.h
2015-06-15 18:51:30 +10:00
Wladimir J. van der Laan
be6420407b
Add option -alerts to opt out of alert system
Make it possible to opt-out of the centralized alert system by providing
an option `-noalerts` or `-alerts=0`. The default remains unchanged.

This is a gentler form of #6260, in which I went a bit overboard by
removing the alert system completely.

I intend to add this to the GUI options in another pull after this.

Conflicts:
	src/init.cpp
	src/main.cpp

Github-Pull: #6274
Rebased-From: 02a6702a82a5b00e0e0351041dd3267308b7f319
2015-06-15 10:17:56 +02:00
Adrian Gallagher
2f2d3f6ea2 Merge remote-tracking branch 'bitcoin/0.10' into master-0.10 2015-06-11 16:57:45 +10:00
Luke Dashjr
ecc96f5ba9
Remove P2SH coinbase flag, no longer interesting
Github-Pull: #6203
Rebased-From: d449772cf69c01932fc5d72c46054815d6300b3c
2015-06-02 09:14:13 +02:00
Wladimir J. van der Laan
ebd7d8d78c
Parameter interaction: disable upnp if -proxy set
To protect privacy, do not use UPNP when a proxy is set. The user may
still specify -listen=1 to listen locally (for a hidden service), so
don't rely on this happening through -listen.

Fixes #2927.

Conflicts:
	src/init.cpp

Rebased-From: 8c35b6f3be218101630101806300cfd75be23f58
Github-Pull: #6153
2015-05-27 09:35:40 +02:00
Warren Togami
1cfb09639d Merge remote-tracking branch 'bitcoin/0.10' into exp-0.10-mark17
Conflicts:
	configure.ac
	doc/release-process.md
	src/clientversion.h
	src/qt/bitcoingui.cpp
2015-04-11 20:51:04 -10:00
Pieter Wuille
a1f425b48b 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 17:24:07 -07:00
coblee
9b62fe55c0 Litecoin: Add mininput to deal with dust spam.
By default mininput is set to DUST_THRESHOLD / 100 which is currently 0.00001 LTC.

Historically this patch allowed wallets to perform without delay after the dust spam attack during November 2011.

Your wallet and transaction creation will ignore and hide values below this threshold.
You can override the default by passing in -mininput on startup.
If you wish to unhide previous transactions in your wallet you must also -rescan.

Rebased from 2db43142bc9d4febd7946488489fd3fa0e1590f2 for Litecoin Core 0.10
20150126: removed setmininput RPC command as nobody has good reason to use it.
2015-02-06 11:48:56 -10:00
Adrian Gallagher
3b9a330483 Litecoin: Litecoin GUI strings. 2015-02-06 11:48:48 -10:00
Adrian Gallagher
ff0aed48ad Litecoin: Rename to Litecoin in non-Qt strings. 2015-02-05 15:01:34 -10:00
Adrian Gallagher
7383ef5364 Litecoin: Set path location to Litecoin directories. 2015-02-05 15:01:33 -10:00
Adrian Gallagher
9a98061200 Litecoin: Protocol. 2015-02-05 15:01:33 -10:00
Warren Togami
7a6894158b Litecoin: Scrypt n=1024 Pow hash based upon Colin Percival's Tarnsnap (2009)
Modified by Artforz, coblee, pooler, wtogami, Nikolay Belikov, Adrian Gallagher
2015-02-05 15:01:33 -10:00
Matt Corallo
c5044bc169
sleep-wait on genesis block during init with -reindex
Rebased-From: ff09e31a51dcee404c9c037c7c5f50c522e67ea8
Github-Pull: #5243
2015-01-26 12:29:56 +01:00
Gregory Maxwell
186a517692
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.

Rebased-From: 1a25a7edf82706c3152e2d978d320ec465a34de1 7d2cb485116636595250fce4ea4eab16a877479b
Github-Pull: #5674
2015-01-19 12:16:17 +01:00
Gregory Maxwell
aaf55d25c6
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.

Github-Merge: #5655
Rebased-From: 16a5c18cea7330bd68dc9d2f768eb518af88795b 56c1093dae0c523f9f643f00c67414691272a983 1dd8ee72afc26191da51d8d3a5590eab7c9368f6
2015-01-15 09:38:24 +01:00
Pieter Wuille
4e7c219122
Catch UTXO set read errors and shutdown
Github-Pull: #5619
Rebased-From: 13cdce4336818d0f6cefe6b3e61c45762d97d7c6
2015-01-12 11:28:39 +01:00
Pieter Wuille
3022e7df2a
Require sufficent priority for relay of free transactions
Rebased-From: 1c52aad540ec1370db60fd68fc3485413e3cb8e1
Github-Pull: #5535
2015-01-07 13:11:49 +01:00
Luke Dashjr
52e57055cc en: Avoid ambiguous language regarding when transactions confirm
Rebased-From: a15dba5dff1229b67ff44bf16ff14063e885f376
Github-Pull: #5533
2014-12-27 05:03:39 +01:00
Gregory Maxwell
11855c1f99
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.

Rebased-From: aa279d613152e87ea25edfdf76c86779c0632f18
Github-Pull: #5485
2014-12-23 12:12:40 +01:00
Jameson Lopp
ad3d208fb9
remove max orphan blocks config parameter since it is no longer functional
Rebased-From: 4bc95c43871645c1d69a0d719c13b38151a3a13f
2014-12-22 15:03:50 +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
Pieter Wuille
57be955ba0 Remove -printblock, -printblocktree, and -printblockindex 2014-11-27 09:50:20 +01:00
Jonas Schnelli
5dc713bfc7 [REST] set REST API behind "-rest" option 2014-11-26 13:53:27 +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
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
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
Philip Kaufmann
1b2600a13a
Change MIT/X11 to MIT in license displayed in the program 2014-11-21 17:03:59 +01:00
Cozz Lovan
c1c9d5b415 [Qt] Add Smartfee to GUI 2014-11-19 16:04:53 +01: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
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
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
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
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
Matt Corallo
eadcd0c802 Print parameter interactions to console, too 2014-10-29 19:10:00 -07:00
jtimon
eda3733091 MOVEONLY: Move CFeeRate and Amount constants to amount.o 2014-10-27 13:54:37 +01:00
Luke Dashjr
2aa632921e Enable customising node policy for datacarrier data size with a -datacarriersize option 2014-10-27 09:41:57 +00:00
Wladimir J. van der Laan
f984c7d7ad
Merge pull request #5108
a873823 CAutoFile: Explicit Get() and remove unused methods (Wladimir J. van der Laan)
fef24ca Add IsNull() to class CAutoFile and remove operator ! (Ruben Dario Ponticeli)
2014-10-22 10:47:14 +02:00
Wladimir J. van der Laan
a873823864
CAutoFile: Explicit Get() and remove unused methods
Also add documentation to some methods.
2014-10-22 10:18:19 +02:00
Wladimir J. van der Laan
9acbb4180a
qt: small English language updates from translators
More friendly language, use placeholders where possible
2014-10-21 15:40:43 +02:00
Wladimir J. van der Laan
5f3ea3362a
Merge pull request #5076
c0195b1 Bugfix: Remove default from -zapwallettxes description (inaccurate) (Luke Dashjr)
0a08aa8 Parameterise command line option defaults, so translations are independent of them (Luke Dashjr)
2014-10-21 14:53:55 +02:00
Pieter Wuille
a96d113962 Rename CWalletInterface to CValidationInterface
It's useful for much more than wallets.
2014-10-20 10:59:12 -07:00
Pieter Wuille
afc32c5eea Fix rebuild-chainstate feature and improve its performance
Previous refactorings broke the ability to rebuild the chainstate by deleting the chainstate
directory, resulting in an incorrect "Incorrect or no genesis block found" error message. Fix
that.

Also, improve the performance of ActivateBestBlockStep by using the skiplist to only discover
a few potential blocks to connect at a time, instead of all blocks forever - as we likely bail
out after connecting a single one anyway.
2014-10-14 15:42:01 -07:00
Luke Dashjr
c0195b1c31 Bugfix: Remove default from -zapwallettxes description (inaccurate) 2014-10-14 20:13:44 +00:00
Wladimir J. van der Laan
992ab87114
Merge pull request #4942
9406471 Write fee estimate and peers files only when initialized (Wladimir J. van der Laan)
2014-10-14 11:35:17 +02:00
Luke Dashjr
0a08aa8f2a Parameterise command line option defaults, so translations are independent of them 2014-10-11 08:22:26 +00:00
Pieter Wuille
d4a42334d4
Merge pull request #4834
7c70438 Get rid of the dummy CCoinsViewCache constructor arg (Pieter Wuille)
ed27e53 Add coins_tests with a large randomized CCoinViewCache test. (Pieter Wuille)
058b08c Do not keep fully spent but unwritten CCoins entries cached. (Pieter Wuille)
c9d1a81 Get rid of CCoinsView's SetCoins and SetBestBlock. (Pieter Wuille)
f28aec0 Use ModifyCoins instead of mutable GetCoins. (Pieter Wuille)
2014-10-08 14:58:16 -07:00
Wladimir J. van der Laan
6860a55ea0
Merge pull request #4979
de10efd add -timeout default as constant and use them (Philip Kaufmann)
2014-10-08 09:16:19 +02:00
Cozz Lovan
3e61eb9c51 minor txindex documentation improvement 2014-10-06 18:52:51 +02:00