Commit Graph

4076 Commits

Author SHA1 Message Date
Evan Duffield
e73403b5ac Merge branch 'v-1.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2015-01-08 14:11:41 -07:00
Evan Duffield
9ad42576e9 schedule masternode payments to turn on 1/9/2015 2015-01-08 14:11:05 -07:00
UdjinM6
eb7abd8ba7 add darksend balance to getinfo 2015-01-08 21:19:39 +01:00
Darkcoin
4a6d17ef18 Merge pull request #103 from crowning-/patch-3
Non-void function should always return something.
2015-01-08 11:12:37 -07:00
Evan Duffield
caa4fc37af Updated getblocktemplate for mining support 2015-01-08 11:02:10 -07:00
Evan Duffield
3c553cc4a7 Fixed start-many issue with multiple output tx
masternode.conf was broken when any index other than 0 was
used. This fixes it and allows the correct input to be selected
and the masternode to be started successfully.
2015-01-08 09:05:59 -07:00
crowning-
371a16a924 Non-void function should always return something. 2015-01-06 22:05:39 +01:00
Evan Duffield
6df70d30b1 Fixed progress bar / Improve GetDenominatedBalance
- Fixed a few issues when calculating progress including some variables that should be limited to 1 (a and b). GetDenominatedBalance also seemed to be giving bad results so I rewrote it to be cleaner, not sure if that was a part of the problem.
- Progress bar is only recalculated when all inputs in wallet have been confirmed (will stop the progress from jumping around)
2015-01-02 15:20:30 -07:00
Evan Duffield
8ab351a594 configure.ac version bump and documentation 2015-01-02 11:45:40 -07:00
Evan Duffield
12bac4a862 gitian changes, tooltips and version bump 2015-01-02 09:54:13 -07:00
Evan Duffield
58b8f19d2d updated to v2 2015-01-02 08:35:31 -07:00
Darkcoin
ec6877bd18 Merge pull request #98 from vertoe/devel-0.9
Update pixmaps
2015-01-02 08:31:44 -07:00
Evan Duffield
899063acf8 Fixed windows crashing issues
Crash was caused by Params() usage in CDarkSendPool::CDarkSendPool upon wallet start. I've moved init of the collateral address outside of the class to CDarkSendPool.InitCollateralAddress() instead.
2015-01-02 07:49:44 -07:00
vertoe
295b7294e6 Update wallet name to Darkcoin 2015-01-02 14:58:25 +01:00
crowning-
6a93a7c47b Exclude localnet addresses
127.0.0.* addresses shouldn't show up in "masternode list"
2015-01-01 20:18:23 +01:00
Francis Reynders
bdb50539de Implemented KeePass Integration
More info regarding KeePass: http://keepass.info/

KeePass integration will use KeePassHttp (https://github.com/pfn/keepasshttp/) to facilitate communications between the client and KeePass. KeePassHttp is a plugin for KeePass 2.x and provides a secure means of exposing KeePass entries via HTTP for clients to consume.

The implementation is dependent on the following:
- crypter.h for AES encryption helper functions.
- rpcprotocol.h for handling RPC communications. Could only be used partially however due some static values in the code.
- OpenSSL for base64 encoding. regular util.h libraries were not used for base64 encoding/decoding since they do not use secure allocation.
- JSON Spirit for reading / writing RPC communications

The following changes were made:
- Added CLI options in help
- Added RPC commands: keepass <genkey|init|setpassphrase>
- Added keepass.h and keepass.cpp which hold the integration routines
- Modified rpcwallet.cpp to support RPC commands

The following new options are available for darkcoind and darkcoin-qt:
  -keepass               Use KeePass 2 integration using KeePassHttp plugin (default: 0)
  -keepassport=<port>    Connect to KeePassHttp on port <port> (default: 19455)
  -keepasskey=<key>      KeePassHttp key for AES encrypted communication with KeePass
  -keepassid=<name>      KeePassHttp id for the established association
  -keepassname=<name>    Name to construct url for KeePass entry that stores the wallet passphrase

The following rpc commands are available:
- keepass genkey: generates a base64 encoded 256 bit AES key that can be used for the communication with KeePassHttp. Only necessary for manual configuration. Use init for automatic configuration.
- keepass init: sets up the association between darkcoind and keepass by generating an AES key and sending an association message to KeePassHttp. This will trigger KeePass to ask for an Id for the association. Returns the association and the base64 encoded string for the AES key.
- keepass setpassphrase <passphrase>: updates the passphrase in KeePassHttp to a new value. This should match the passphrase you intend to use for the wallet. Please note that the standard RPC commands walletpassphrasechange and the wallet encrption from the QT GUI already send the updates to KeePassHttp, so this is only necessary for manual manipulation of the password.

Sample initialization flow from darkcoin-qt console (this needs to be done only once to set up the association):
- Have KeePass running with an open database
- Start darkcoin-qt
- Open console
- type: "keepass init" in darkcoin-qt console
- (keepass pops up and asks for an association id, fill that in). Example: mydrkwallet
- response: Association successful. Id: mydrkwalletdarkcoin - Key: AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=
- Edit darkcoin.conf and fill in these values
    keepass=1
    keepasskey=AgQkcs6cI7v9tlSYKjG/+s8wJrGALHl3jLosJpPLzUE=
    keepassid=mydrkwallet
    keepassname=testwallet
- Restart darkcoin-qt

At this point, the association is made. The next action depends on your particular situation:
- current wallet is not yet encrypted. Encrypting the wallet will trigger the integration and stores the password in KeePass (Under the 'KeePassHttp Passwords' group, named after keepassname.
- current wallet is already encrypted: use "keepass setpassphrase <passphrase>" to store the passphrase in KeePass.

At this point, the passphrase is stored in KeePassHttp. When Unlocking the wallet, one can use keepass as the passphrase to trigger retrieval of the password. This works from the RPC commands as well as the GUI.
2015-01-01 20:06:24 +01:00
Evan Duffield
4eb14d271b Change minversion to 70046 2015-01-01 11:15:24 -07:00
vertoe
9cc07aec1c Hotfix for version.h 2015-01-01 19:03:25 +01:00
Evan Duffield
f46ec0db80 Change minversion to 70046 2015-01-01 10:46:18 -07:00
Evan Duffield
447ae896c0 Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2015-01-01 09:12:53 -07:00
Evan Duffield
b87c2fe9dc Fix for gitian windows compiling 2015-01-01 09:12:28 -07:00
Darkcoin
c1269e7850 Merge pull request #92 from vertoe/devel-0.9
Update darkcoin units to tDRK if TestNet().
2015-01-01 07:49:58 -07:00
Darkcoin
a29b991091 Merge pull request #93 from vertoe/devel-0.9-bip0032
Update BIP32 base58 address prefixes to darkcoin uniques.
2015-01-01 07:49:12 -07:00
vertoe
024e255a5b Update BIP32 base58 address prefixes to darkcoin uniques. 2014-12-31 13:50:14 +01:00
vertoe
54f54f4a67 Update darkcoin units to tDRK if TestNet(). 2014-12-31 13:27:32 +01:00
Evan Duffield
d219a6c51a randomly sort masternodes before picking next winner 2014-12-30 22:45:45 -07:00
Evan Duffield
bc20787fec Added perfectly balanced masternode payments
- Implemented using a simple round robin algorithm instead of the deterministic round robin approach (was slightly unbalanced)
2014-12-30 22:40:53 -07:00
Evan Duffield
826b18c41f Regtest+Darksend / Dsee update / vecMasternodes
- Made masternodes/darksend compatible with regression testing mode (a local-only blockchain that doesn't require mining). Developers can now test multiple rounds in a few minutes without waiting on mining (much faster).
- Added dsee security verification to v11
- darkSendMasternodes -> vecMasternodes (must clearer)
2014-12-30 19:54:00 -07:00
Evan Duffield
a290bc06f2 Further improvements to the matching engine 2014-12-30 15:42:50 -07:00
Evan Duffield
80144a47ab Disable local addresses 2014-12-30 14:41:28 -07:00
Evan Duffield
75b169e2aa Simplified CWallet::PrepareDarksendDenominate 2014-12-30 14:00:19 -07:00
Evan Duffield
141f833a00 Matching engine improvements
Fixed issues with matching from rounds 0 to 2
2014-12-30 12:42:34 -07:00
Evan Duffield
aa63a99162 Percision matching engine / masternode regtest
- Fixed matching engine issue causing false positive non-denominational matches
- Basic masternode support for regtest (still not working)
2014-12-30 11:14:58 -07:00
Evan Duffield
b20581125d Added Darksend high precision matching engine
Darksend is now capable of taking queue objects (which show who wants to mix what)
and looking at it's own inputs to see if it's at all possible to join their mixing
session. This plus other improvements should make Darksend much faster for mixing
coins.
2014-12-29 17:09:34 -07:00
Evan Duffield
762080140b Various Darksend Improvements
- Denomination label shows n/a after reset now
- Fixed collateral checking bug introduced by updating to Bitcoin v9 codebase
2014-12-29 08:50:40 -07:00
Evan Duffield
139f14a1a4 Enabled Darksend NewBlock checks 2014-12-28 17:33:56 -07:00
Evan Duffield
afcc015cf4 Report errors delivered via dssu to gui 2014-12-28 07:46:39 -07:00
Evan Duffield
34a60fb7de Much improved feedback for Darksend
DoAutoDenomination just wrote to the debug.log and because of that users commonly would have a hard time seeing what was happening. This fixes that by setting a status and displaying that status in the overview.
2014-12-27 18:08:45 -07:00
Evan Duffield
3acb5c6388 added denomination information to overview, reset/try again buttons 2014-12-27 16:45:07 -07:00
Evan Duffield
ff8285060d Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-27 08:28:47 -07:00
Evan Duffield
36aa6bd675 fixed message magic, should be DarkCoin 2014-12-27 08:28:23 -07:00
UdjinM6
142ff7a3ab restrict start if masternode.conf has incorrect format / move error message out of debug.log to stderr/qt-dialog 2014-12-27 15:47:08 +03:00
vertoe
ab52409f0e Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into devel-0.9 2014-12-27 00:55:52 +01:00
vertoe
86cc5d35cc Update client name 2014-12-27 00:54:59 +01:00
vertoe
2a4e872364 Change orange to blue 2014-12-27 00:54:25 +01:00
vertoe
d2d798c9b0 Merge branch 'devel-0.9-keys' into devel-0.9 2014-12-27 00:33:22 +01:00
vertoe
bdaa900bbe Update strings in UI. 2014-12-27 00:16:50 +01:00
Darkcoin
dc71c6df25 Merge pull request #85 from vertoe/devel-0.9-keys
Change pubkey addresses for multisig addresses and testnet.
2014-12-26 16:00:14 -07:00
Evan Duffield
13e49d5470 Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-26 15:30:20 -07:00
Evan Duffield
c94600a2c8 Added coincontrol darksend rounds colunm from v10 2014-12-26 15:30:00 -07:00
vertoe
fd3de20a88 Change pubkey addresses for multisig addresses and testnet 2014-12-26 23:28:08 +01:00
Darkcoin
cbf7339deb Merge pull request #84 from vertoe/devel-0.9-dns
Add seednode by @coingun (branch v11)
2014-12-26 14:11:41 -07:00
Darkcoin
04ab85a591 Merge pull request #83 from vertoe/devel-0.9
Clean testnet reset to v3. (branch v11)
2014-12-26 14:10:12 -07:00
Darkcoin
766e654e42 Merge pull request #81 from UdjinM6/110_fix_regtesterror_testnetdetect
fix crash on regtest block generation / slightly simplify _if_ for testnet detection
2014-12-26 14:05:46 -07:00
Evan Duffield
12e8fd0461 Improved support for adding DRK after anon has completed 2014-12-26 14:04:36 -07:00
vertoe
c7bbff80ba Add masternode.io dnsseed operated by @coingun 2014-12-26 21:32:11 +01:00
vertoe
b0f06bf4a8 Merge upstream commits of branch 'v0.11.0.x' of darkcoin/darkcoin into devel-0.9 2014-12-26 21:26:05 +01:00
vertoe
71f3d6eb06 revert 4f95ea2: testnet v4 2014-12-26 21:23:25 +01:00
Evan Duffield
f2c21fd1e7 Better support for non-specific masternode payments 2014-12-26 13:14:45 -07:00
Evan Duffield
0718f75a84 Fixed possible masternode payments exploit 2014-12-26 13:12:58 -07:00
Evan Duffield
3117b7d5f9 Merge branch 'v0.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-26 13:02:49 -07:00
Evan Duffield
7fad12f623 Various Improved Darksend
- Progress bar is far more accurate now. It only takes into account the inputs that could possibly go into Darksend and ignores the rest.
- Darksend can support down to 1.5DRK now.
- New "masternode outputs" command for start-many
2014-12-26 13:00:56 -07:00
Darkcoin
9b710d2a86 Merge pull request #82 from UdjinM6/110_select_nondenom_first
when Darksend is unchecked select nondenom inputs first - for v0.11.0.x
2014-12-26 12:51:47 -07:00
Evan Duffield
80d2e3d067 Fixed progress bar calculation
division for amounts smaller than 1DRK were having issues.
fixed by dividing by CENT instead.
2014-12-26 08:39:47 -07:00
Evan Duffield
31ca8ad5f9 reducing lower limit to 1.5DRK 2014-12-25 20:58:58 -07:00
Evan Duffield
5eb3bcdcc0 Fixed darksend issues 2014-12-25 12:21:35 -07:00
Evan Duffield
039023d9c9 fixed Darksend settings 2014-12-25 11:20:18 -07:00
Evan Duffield
7604ace9be Updated testnet configuration 2014-12-23 18:41:13 -07:00
Evan Duffield
8bc9cd7f48 fix testnet v3 2014-12-23 08:32:55 -07:00
UdjinM6
ae627a2109 fix crash(error thrown) on regtest block generation / slightly simplify _if_ for testnet detection 2014-12-23 06:17:20 +03:00
UdjinM6
f77b2d5943 when Darksend is unchecked select nondenom inputs first - for v11 2014-12-23 06:06:47 +03:00
Evan Duffield
67330fbb51 Added Darksend to v11 2014-12-22 19:30:19 -07:00
Evan Duffield
692ec7c328 Fix mn spam - UdjinM6 2014-12-22 18:23:04 -07:00
Evan Duffield
560bf9bc0b Fix status update (darksend mixing stuck - UdjinM6) 2014-12-22 18:17:47 -07:00
Francis Reynders
b57bfe0b1e Fixed lookup for correct vin in GetMasterNodeVin when txHash is available. 2014-12-16 18:45:43 +01:00
evan82
3a7f3f8dba Merge pull request #72 from UdjinM6/110x_fix_sending_locking
fix wallet locking after sending coins
2014-12-14 07:49:38 -07:00
Francis Reynders
55cae78c3b Improve support for start-many:
- refactored CActiveMasternode
- added masternodeconfig to handle remote masternode configuration
- read masternodeconfig upon init
- new masternode rpc commands: stop-many, start-alias, stop-alias, list-conf
- added notCapableReason field for better handling not capable issues
2014-12-14 06:06:39 +01:00
Evan Duffield
d3a5569807 Merge branch 'v-1.11.0.x' of https://github.com/darkcoin/darkcoin into v0.11.0.x 2014-12-13 08:18:20 -07:00
Evan Duffield
64de16ed10 prevent testnet from rejecting blocks missing masternode payments 2014-12-13 08:17:32 -07:00
crowning-
6b8fb97182 On client shutdown write directly into "peers.dat"...
...and not into a temporary file which gets renamed to "peers.dat" later.
This prevents softlinks from being replaced by a "real" file, see http://jira.darkcoin.qa/browse/DRK-122

Update of https://github.com/darkcoin/darkcoin/pull/63 to the new Bitcoin codebase.
2014-12-13 15:52:57 +01:00
Evan Duffield
5d14e8c6b3 Fixed testnet syncing issues 2014-12-12 15:19:02 -07:00
Evan Duffield
d87e4e6b55 Fixed testnet segfault issue causes by null pointer 2014-12-12 11:45:05 -07:00
UdjinM6
9db0eaa9b3 fix wallet locking after sending coins 2014-12-12 21:10:38 +03:00
vertoe
6e208f6625 Merge strings. 2014-12-12 13:00:21 +01:00
vertoe
adbd2274e0 Update strings. 2014-12-12 12:44:25 +01:00
donSchoe
c2cf2fb44c Align with branch v0.11.0.x of darkcoin/darkcoin. 2014-12-11 22:46:43 +01:00
Evan Duffield
0184cf744d Merged: fix CDarksendQueue::CheckSignature() failure by preventing COutPoint::ToString() to cut hash to 10 symbols only (UdjinM6) 2014-12-11 12:27:55 -07:00
Evan Duffield
56bf9fdb75 Fixed attribution and a few Bitcoin references 2014-12-11 12:10:05 -07:00
UdjinM6
43b2576253 fix walletpassphrase logic/params/description 2014-12-11 21:43:21 +03:00
Evan Duffield
9aac2038f1 Merged: Error message changed (crowning) 2014-12-11 09:01:39 -07:00
Evan Duffield
2a33377fc8 Merged: Typo in log output (crowning) 2014-12-11 08:58:38 -07:00
Evan Duffield
eb87b05ddf Brought over 10.18 changes from old branch 2014-12-11 08:36:02 -07:00
Evan Duffield
78c5ca53f6 Merged in Darksend/InstantX/Masternodes
This doesn't include any of the changes in the darkcoin/v0.10.18.x branch. Those will be brought over into this commit history.
2014-12-11 08:10:35 -07:00
vertoe
c1aae9e3bd Change init resource to darkcoin 2014-12-11 14:29:22 +01:00
UdjinM6
80c4636840 fix test_bitcoin -> test_darkcoin 2014-12-11 14:20:10 +01:00
UdjinM6
91795c25b1 fix broken build (UdjinM6) 2014-12-11 14:07:31 +01:00
vertoe
6662300900 Change sources to darkcoin*. 2014-12-10 00:35:43 +01:00
vertoe
8fbde6cfeb Update rpc strings. 2014-12-10 00:22:01 +01:00
vertoe
6089696ade Merge bitcoin core upstream commits 2014-12-09 23:42:56 +01:00
vertoe
e449d7b4e7 Change binaries to darkcoin*. 2014-12-09 23:38:13 +01:00
vertoe
828b6d38a1 Update strings. 2014-12-09 23:19:26 +01:00
Gregory Maxwell
0a94661e8d
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/ .

Rebased-From: 683dc4009b
2014-12-09 15:22:28 +01:00
Pieter Wuille
bb424e4447
Limit the number of new addressses to accumulate
Rebased-From: 12a49cac0a
2014-12-09 15:17:21 +01:00
vertoe
8003eb484e Fix internal wallet miner. 2014-12-06 22:56:38 +01:00
vertoe
6723c9ea10 Update private key versions. 2014-12-06 16:42:40 +01:00
vertoe
601457c2fe Change Darkcoin units to DRK and added duffs. 2014-12-05 10:09:38 +01:00
vertoe
4f95ea2ada Reset testnet (v4). 2014-12-05 09:25:30 +01:00
vertoe
4fca7b4677 Update branding to reflect this is a Darkcoin client. 2014-12-04 23:32:21 +01:00
vertoe
dcf8cb6cb5 Define regression test genesis. 2014-12-04 22:24:59 +01:00
vertoe
f8105535fe Fix DGW v1 and v2 architecture issues. 2014-12-04 14:33:48 +01:00
vertoe
5a77c79d24 Fix testnet checkpoint. 2014-12-04 13:21:33 +01:00
vertoe
3d65ce730c Update difficulty retarget to KGW and DGWv3. 2014-12-04 12:47:48 +01:00
vertoe
a63a38bed1 Update strings. 2014-12-04 12:47:16 +01:00
vertoe
311ee3ee74 Prepare KGW and DGWv3 implementation. 2014-12-02 12:43:06 +01:00
vertoe
41f1535135 Bump client and wallet version. 2014-12-02 09:48:47 +01:00
vertoe
e992aee09d Update subsidity function. 2014-12-02 09:16:52 +01:00
vertoe
0e82f2f91c Add full X11 implementation and block hashing 2014-11-29 12:29:14 +01:00
vertoe
f164aeaadc Add sph sources to prepare X11 integration 2014-11-29 11:07:09 +01:00
vertoe
eb2afb2630 Add sph type definition to prepare X11 integration 2014-11-29 10:42:42 +01:00
vertoe
d5b70d0da9 Update checkpoints 2014-11-28 11:53:08 +01:00
vertoe
9279744a64 Update address versions and genesis block 2014-11-28 10:56:02 +01:00
vertoe
b0ad85593f Update dns seeds 2014-11-27 18:56:59 +01:00
vertoe
dcdbfbcfe4 Update protocol versions 2014-11-27 18:29:18 +01:00
vertoe
aedda3b379 Change port to 9999 and rpcport to 9998 2014-11-27 18:09:11 +01:00
vertoe
5ba6751be7 Change , .conf and .pid files to darkcoin 2014-11-27 17:26:22 +01:00
Gregory Maxwell
cd5164aba2
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.

Conflicts:
	src/init.cpp

Rebased-From: 3c77714134
Github-Issue: #5358
2014-11-24 15:33:46 +01:00
Gavin Andresen
25b49b5b45 Refactor -alertnotify code
Refactor common -alertnotify code into static CAlert::Notify method.
2014-10-08 12:17:57 +02:00
Cory Fields
5b9f78d69c build: Fix OSX build when using Homebrew and qt5
Qt5 is bottled, so configure won't find it without some help. Use
brew to find out its prefix.

Also, qt5 added the host_bins variable to pkg-config, use it.
2014-10-03 15:33:24 -04:00
Gavin Andresen
ea3c1b0806 Store fewer orphan tx by default, add -maxorphantx option
There is no reason to store thousands of orphan transactions;
normally an orphan's parents will either be broadcast or
mined reasonably quickly.

This pull drops the maximum number of orphans from 10,000 down
to 100, and adds a command-line option (-maxorphantx) that is
just like -maxorphanblocks to override the default.
2014-09-11 15:06:46 +02:00
shshshsh
af252082ef Make max number of orphan blocks kept in memory a startup parameter (fixes #4253)
Rebased-From: 7b45d943b2
2014-09-11 15:06:46 +02:00
Gavin Andresen
6d911ada83
Stricter handling of orphan transactions
Prevent denial-of-service attacks by banning
peers that send us invalid orphan transactions
and only storing orphan transactions given to
us by a peer while the peer is connected.

Rebased-From: c74332c678
2014-09-11 15:06:42 +02:00
phantomcircuit
306a93b79e
remove useless millisleep
reduces time to service requests improving performance

Rebased-From: 9189f5fe4d
2014-09-11 11:20:48 +02:00
Jeff Garzik
6eb5410d8f
Avoid returning many "inv" orphans
Rebased-From: 540ac45
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-09-10 17:05:31 +02:00
Wladimir J. van der Laan
d030936da2
Limit CNode::mapAskFor
Tighten resource constraints on CNode.

Rebased-From: d4168c8
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-09-10 17:00:37 +02:00
Gavin Andresen
12927dd315 Fix crashing bug caused by orphan(s) with duplicate prevout.hash
Rebased-From: def2fdb
Rebased-By: Wladimir J. van der Laan
2014-09-10 16:56:54 +02:00
Wladimir J. van der Laan
c6727f34d1 Avoid repeated lookups in mapOrphanTransactions and mapOrphanTransactionsByPrev
Rebased-From: 89d91f6
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-09-09 09:20:54 +02:00
Wladimir J. van der Laan
ea55881c3e Filter translations through new update-translations script
This does not add any new messages from transifex, it just filters the
current ones.
2014-09-01 11:00:16 +02:00
Wladimir J. van der Laan
e6abbce8cd
qt: Language update for 0.9.3 2014-08-22 12:02:24 +02:00
Cory Fields
47c78c2966 libc-compat: add new symbol that's now needed
Rebased-From: 565e569
2014-08-21 18:07:05 +02:00
Cory Fields
0991401cdd
build: Fix boost build on some platforms
When the libpath doesn't line up with the value from config.sub, we don't find
the correct path to boost's libs. This adds a hack to try another path before
giving up.

Should close #3219.

Rebased-From: 54c7df81
2014-08-21 17:54:09 +02:00
Cory Fields
f62031b895
qt: fix unicode character display on osx when building with 10.7 sdk
Conflicts:
	src/qt/bitcoin.cpp

Rebased-From: 292cc072
2014-08-21 17:35:31 +02:00
Jeff Garzik
026b9dfd6e
Avoid querying DNS seeds, if we have open connections.
The goal is to increase independence and privacy.

Rebased-From: 2e7009d
2014-08-19 17:37:07 +02:00
Peter Todd
84fe0ffd68 Increase IsStandard() scriptSig length
Removes the limits on number of pubkeys for P2SH CHECKMULTISIG outputs.
Previously with the 500 byte scriptSig limit there were odd restrictions
where even a 1-of-12 P2SH could be spent in a standard transaction(1),
yet multisig scriptPubKey's requiring more signatures quickly ran out of
scriptSig space.

From a "stuff-data-in-the-blockchain" point of view not much has changed
as with the prior commit now only allowing the dummy value to be null
the newly allowed scriptSig space can only be used for signatures. In
any case, just using more outputs is trivial and doesn't cost much.

1) See 779b519480d8c5346de6e635119c7ee772e97ec872240c45e558f582a37b4b73
   Mined by BTC Guild.
2014-08-18 15:34:29 +02:00
Peter Todd
fd0c4606bc Check redeemScript size does not exceed 520 byte limit
redeemScripts >520bytes can't be spent due to the
MAX_SCRIPT_ELEMENT_SIZE limit; previously the addmultisigaddress and
createmultisig RPC calls would let you violate that limit unknowingly.

Also made the wallet code itself check the redeemScript prior to adding
it to the wallet, which in the (rare) instance that a user has added an
invalid oversized redeemScript to their wallet causes an error on
startup. The affected key isn't added to the wallet; other keys are
unaffected.
2014-08-18 15:34:29 +02:00
Wladimir J. van der Laan
4b57c5b3c7 Ignore too-long redeemScripts while loading wallet
This avoids that long redeemScripts that were grandfathered in
prevent the wallet from loading.

Fixes #4313.

Rebased-From: 18116b0
2014-08-18 15:34:29 +02:00
Jeff Garzik
f8cdf4f937 base58: add paranoid return value checks
Rebased-From: 88df548
2014-08-18 15:34:29 +02:00
Andrew Poelstra
f6f4c83382 key.cpp: fail with a friendlier message on missing ssl EC support
Previously if bitcoind is linked with an OpenSSL which is compiled
without EC support, this is seen as an assertion failure "pKey !=
NULL" at key.cpp:134, which occurs after several seconds. It is an
esoteric piece of knowledge to interpret this as "oops, I linked
with the wrong OpenSSL", and because of the delay it may not even
be noticed.

The new output is

: OpenSSL appears to lack support for elliptic curve cryptography. For
more information, visit
https://en.bitcoin.it/wiki/OpenSSL_and_EC_Libraries
: Initialization sanity check failed. Bitcoin Core is shutting down.

which occurs immediately after attempted startup.

This also blocks in an InitSanityCheck() function which currently only
checks for EC support but should eventually do more. See #4081.

Rebased-From: 4a09e1d
2014-08-18 15:34:29 +02:00
Trevin Hofmann
23826316d4 Add a new checkpoint at block 295,000
Block 295,000 seems to meet the criteria of a reasonable timestamp and
no strange transactions. 295,000 is the current block height in the
bootstrap.dat torrent provided by jgarzik.

Rebased-From: 125fba1
2014-08-18 15:34:29 +02:00
Pieter Wuille
a78996503f Add a way to limit deserialized string lengths
and use it for most strings being serialized.

Rebased-From: 216e9a4
2014-08-18 15:34:29 +02:00
Pavel Vasin
0a6dcae508 AvailableCoins: acquire cs_main mutex
It's required when called from WalletModel

Rebased-From: ea3acaf
2014-08-18 15:34:28 +02:00
Ruben Dario Ponticelli
44d8e093ca Avoid a segfault on getblock if it can't read a block from disk.
Rebased-From: 954d2e7
2014-08-18 15:34:28 +02:00
Julian Haight
bf75a3d3fd qt: fix 'opens in testnet mode when presented with a BIP-72 link with no fallback'
Passes tests:

```
$ ./bitcoin-qt 'bitcoin:?r=http://www.example.com/'
.. fixed the original problem - this launches mainnet.

$ ./bitcoin-qt 'bitcoin:mngeNQbTKnmaMbx8EXCYdwUbnt9JJD52cC'
.. launches testnet

$ ./bitcoin-qt -testnet 'bitcoin:1NXXeQRyMFFFRfyUix2o7mk1vhvk2Nxp78'
.. sanity check - launches mainnet.
```

Fixes #4355. Closes #4411.

Rebased-From: dd49e92
2014-08-18 15:34:28 +02:00
Zak Wilcox
221684c7ef Clarify that redeemScript is often optional
Rebased-From: 6265ecc
2014-08-18 15:34:28 +02:00
Cory Fields
84efe0ec22 Remove bignum dependency for scripts
Rebased-From: 48d8eb1 27bff74 4f497cd 05e3ecf 90320d6 b1fdd54
2014-08-18 15:34:28 +02:00
Zak Wilcox
5baa4a90e3 In -? output: -keypool, -gen, -genproclimit depend on ENABLE_WALLET
Rebased-From: a7e1d50
2014-08-18 15:34:28 +02:00
Wladimir J. van der Laan
5332b0a429 Don't poll showmyip.com, it doesn't exist anymore
Fixes #4679.

This leaves us with only one candidate, checkip.dyndns.org.
GetMyExternalIP should be phased out as soon as possible.

Rebased-From: c33b983
2014-08-18 15:11:15 +02:00
Wladimir J. van der Laan
6862c8ba99 Version bump for 0.9.3 2014-08-18 15:05:38 +02:00
Wladimir J. van der Laan
752ecec5cc Remove NumBlocksOfPeers
Generally useless information. Only updates on connect time, not after
that. Peers can easily lie and the median filter is not effective in
preventing that.

In the past it was used for progress display in the GUI but
`CheckPoints::guessVerificationProgress` provides a better way that is now used.
It was too easy to mislead it. Peers do lie about it in practice, see issue #4065.

From the RPC, `getpeerinfo` gives the peer raw values, which are more
useful.
2014-07-04 06:58:45 +02:00
Wladimir J. van der Laan
354c0f382b
Bump version to 0.9.2.1 2014-06-19 09:51:15 +02:00
Wladimir J. van der Laan
b64b1c6e9f
rpc: Add acceptors only when listening succeeded
Rebased-From: 6afa493
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-06-19 09:41:25 +02:00
Wladimir J. van der Laan
a3788527a2 rpc: Ignore and log errors during cancel
Cancelling the RPC acceptors can sometimes result in an error about
a bad file descriptor.

As this is the shutdown sequence we need to continue nevertheless,
ignore these errors, log a warning and proceed.

Fixes #4352.
2014-06-19 09:38:04 +02:00
Cory Fields
9d5b5c3a2d Qt: Fix monospace font in osx 10.9
The "Monospace" hint was added in Qt 4.8, and it works as intended as opposed
to "TypeWriter" which fails to load a font.

Rebased-From: e9df7f8
Rebased-By: Wladimir J. van der Laan
2014-06-18 19:53:55 +02:00
Wladimir J. van der Laan
e39a3f2c69
qt: Periodic translation update
Rebased-From: db41541
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-06-06 19:29:47 +02:00
Jeff Garzik
7ccadd4199
CWallet: fix nTimeFirstKey init, by making constructor init common code
Don't repeat yourself etc.

Rebased-From: d04fd3e
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-06-06 19:26:15 +02:00
tm314159
eac2cdcab2
Properly initialize CWallet::nTimeFirstKey
Rebased-From: 91855f2
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
2014-06-03 08:54:45 +02:00
Huang Le
acb5356087
Use pnode->nLastRecv as sync score directly
NodeSyncScore() should find the node which we recv data most recently, so put a negative sign to pnode->nLastRecv is indeed wrong.

Also change the return value type to int64_t.

Signed-off-by: Huang Le <4tarhl@gmail.com>
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 09a54a6
2014-06-02 14:26:24 +02:00
Wladimir J. van der Laan
41b96da264
Periodic language update
Pull updated translations from Transifex before 0.9.2

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 11ef78f
2014-06-01 16:32:04 +02:00
Wladimir J. van der Laan
64e1082d7a Set client version to release
No longer show the "Do not use..." banner.
2014-06-01 16:31:54 +02:00
Pieter Wuille
d6377e6a4a
Limit number of known addresses per peer
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 5823449
2014-06-01 09:54:00 +02:00
Cory Fields
3a4a66f47e
osx: Fix missing dock menu with qt5
Qt5 Removed the qt_mac_set_dock_menu function and left no replacement. It was
later re-added and deprecated for backwards-compatibility.

Qt5.2 adds the non-deprecated QMenu::setAsDockMenu(). Use that when possible.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: c21c74b
2014-05-30 10:20:50 +02:00
Pieter Wuille
2f89f4b35d
No references to centralized databases in help text.
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: b5ef85c
2014-05-29 19:11:05 +02:00
Cozz Lovan
6fb75919de
[Qt] Fix Start bitcoin on system login
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 066d9a5
2014-05-29 08:25:36 +02:00
Wladimir J. van der Laan
48115f5313 qt: Periodic language update
Last-minute language update before release 0.9.2.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: a8a0db6
2014-05-23 17:59:26 +02:00
Wladimir J. van der Laan
a62649723b
Replace non-threadsafe gmtime and setlocale
Make DateTimeStrFormat use boost::posix_time.

Also re-enable the util_DateTimeStrFormat tests, as they are no
longer platform specific.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 3e8ac6a
2014-05-23 16:04:02 +02:00
Wladimir J. van der Laan
e0036e9f0e
Replace non-threadsafe strerror
Log the name of the error as well as the error code if a network problem
happens. This makes network troubleshooting more convenient.

Use thread-safe strerror_r and the WIN32 equivalent FormatMessage.

Conflicts:
	src/netbase.cpp

Rebased-By: Wladimir van der Laan <laanwj@gmail.com>
Rebased-From: a60838d
2014-05-23 16:03:43 +02:00
Pieter Wuille
2585310a22
Add missing LOCK(cs_main)
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 305ccaa
2014-05-21 14:15:42 +02:00
Wladimir J. van der Laan
ac1dd87f33
qt: Periodic language update
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 6fcdad7
2014-05-21 12:42:10 +02:00
Kamil Domanski
e917bdb563
remove ParseString(...) which is never used
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: be54b87
2014-05-21 11:25:28 +02:00
Kamil Domanski
79144ac17d
switch from boost int types to <stdint.h>
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 4b61a6a, 3e74ac2, d56e30c
Github-Pull: #4129
2014-05-21 11:25:18 +02:00
Stuart Cardall
337459b96b
SetupEnvironment() - clean commit
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 5248ff4
2014-05-19 15:16:33 +02:00
Wladimir J. van der Laan
4b8a3ab877
qt: periodic language update
Pull updated translations from Transifex.

Add mn (Mongolian) language.

Do not update English translation for now as we want to keep
compatibility with 0.9.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 795b921
2014-05-13 07:08:59 +02:00
Wladimir J. van der Laan
9f535d4104
rpc: keep track of acceptors, and cancel them in StopRPCThreads
Fixes #4156.

The problem is that the boost::asio::io_service destructor
waits for the acceptors to finish (on windows, and boost 1.55).

Fix this by keeping track of the acceptors and cancelling them before
stopping the event loops.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: cef4494
2014-05-12 17:59:28 +02:00
Wladimir J. van der Laan
203a0cfa7c rpc: Make sure conn object is always cleaned up
Make sure conn object always gets cleaned up by using a
`boost::shared_ptr`.

This makes valgrind happy - before this commit, one connection object
always leaked at shutdown, as well as can avoid other leaks, when
for example an exception happens.

Also add an explicit Close() to the !ClientAllowed path to make it similar
to the normal path (I'm not sure whether it is needed, but it
can't hurt).

Rebased-By: Wladimir J. van der Laan
Rebased-From: 1a44522
2014-05-12 17:56:55 +02:00
Wladimir J. van der Laan
1ed6d499b6 rpc: pass errors from async_accept
According to the [boost::asio documentation](http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/basic_socket_acceptor/async_accept/overload2.html),
the function signature of the handler must be:

    void handler(
      const boost::system::error_code& error // Result of operation.
    );

We were binding *all* the arguments, instead of all but the error,
resulting in nullary function that never got the error. Fix this
by adding an input argument substitution.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 0a0cd34
2014-05-12 17:55:58 +02:00
Pieter Wuille
010e66188e
Move base58.h implementation code to base58.cpp
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: f6b7c64
2014-05-12 14:57:02 +02:00
Wladimir J. van der Laan
72ae546dd4
Remove dummy PRIszX macros for formatting
Size specifiers are no longer needed now that we use typesafe tinyformat
for string formatting, instead of the system's sprintf.

No functional changes.

This continues the work in #3735.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 783b182
2014-05-12 14:02:43 +02:00
Pieter Wuille
26ceac4acf Squashed 'src/leveldb/' changes from 9094c7f..7924331
42dcc7e Merge upstream LevelDB 1.17.
e353fbc Release LevelDB 1.17
269fc6c Release LevelDB 1.16
REVERT: 9094c7f Temporarily revert to writing .sst files instead of .ldb

git-subtree-dir: src/leveldb
git-subtree-split: 79243314e40ac31d79c68e5658a1d6a64800d50b
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 938b689
2014-05-12 11:30:33 +02:00
shshshsh
a39d4e3771 Switch stdout to line buffering
Use line buffering (instead of block buffering) so that messages arrive
immediately in systemd-journald, tail -f debug.log, and the like.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 283e405
2014-05-12 08:27:37 +02:00
Matthew Bogosian
78363dc991 fixes #4163
Rebased-by: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-from: 90fd873
2014-05-12 08:26:52 +02:00
Wladimir J. van der Laan
c11c72cd5b Bump version numbers for 0.9.2 branch split-off
Show version as 0.9.1.99 until rc1.
2014-05-09 15:52:48 +02:00
Wladimir J. van der Laan
da257a7b36
Merge pull request #4136
01ce711 [Qt] fix Qt slot problem in receivecoinsdialog (Philip Kaufmann)
2014-05-09 12:31:57 +02:00
Wladimir J. van der Laan
9b4b3cf9cf
qt: fix compile issue in Qt GUI
This was introduced in 3e1cf9b. Needs a cast to qint64.
2014-05-08 12:23:56 +02:00
David A. Harding
e0c06d2c49
Typo Fix In decoderawtransaction Help: s/txid/hex/
Help text appears to have been copy/pasted from getrawtransaction,
so it erroneously asked for a txid where rawtransaction hex should appear.

Remove lines which were copy/pasted from getrawtransaction but which
aren't displayed by decoderawtransaction.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 5cc0133 80c521e
Github-Pull: #4106
2014-05-08 11:49:02 +02:00
Wladimir J. van der Laan
0ecd8aae20
Merge pull request #4131
3e1cf9b add DEFAULT_TRANSACTION_FEE constant in wallet (Philip Kaufmann)
2014-05-08 10:48:07 +02:00
Wladimir J. van der Laan
69e264b6f8
Merge pull request #4141
9d558e1 ui: Check for !pixmap() before trying to export QR code (Wladimir J. van der Laan)
2014-05-08 10:32:14 +02:00
Philip Kaufmann
4629f95b22
[Qt] fix ugly typo in bitcoin.cpp
Closes #4145.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 1e4b083
2014-05-07 15:48:17 +02:00
Wladimir J. van der Laan
a475285a53
Add missing cs_main lock to VerifyDB
Fixes issue #4139.
2014-05-07 15:15:28 +02:00
Wladimir J. van der Laan
9d558e1c18 ui: Check for !pixmap() before trying to export QR code
Adds null pointer checks as well as prevents the Save/Copy context
menu from appearing at all if no image is shown.

Fixes issue #4140
2014-05-07 08:42:12 +02:00
Wladimir J. van der Laan
acc2d2ca5f
Merge pull request #4127
d387b8e rpc: add `getblockchaininfo` and `getnetworkinfo` (Wladimir J. van der Laan)
2014-05-06 16:36:55 +02:00
Philip Kaufmann
01ce711798 [Qt] fix Qt slot problem in receivecoinsdialog
- fixes error from debug.log:
  QMetaObject::connectSlotsByName: No matching signal for
  on_recentRequestsView_selectionChanged(QItemSelection,QItemSelection)
- small style fixes (e.g. alphabetical ordering if includes etc.)
- fixes #3992
2014-05-06 12:52:21 +02:00