Commit Graph

294 Commits

Author SHA1 Message Date
Evan Duffield
2992907d91 Better DOS protection, fixed min confirmations 2015-02-02 10:33:52 -07:00
Evan Duffield
5b0d0146b0 only update when tx is found 2015-02-02 05:06:43 -07:00
Evan Duffield
1377b71347 ignore IX confirmations when forming new tx 2015-02-01 10:21:43 -07:00
Evan Duffield
b1d701275a only use inputs with 5 confirmations for IX 2015-02-01 09:30:58 -07:00
evan82
2158023d4c Merge pull request #139 from UdjinM6/fix_more_usage_of_IsDenominatedAmount
use IsDenominatedAmount instead of loops and GetInputDarksendRounds where applicable
2015-01-30 07:41:59 -07:00
evan82
366435253f Merge pull request #138 from UdjinM6/fix_AvailableCoins
always get only confirmed coins by AvailableCoins for every DS relative action
2015-01-30 07:40:13 -07:00
UdjinM6
52dabd1166 always get only confirmed coins by AvailableCoins 2015-01-30 01:15:04 +03:00
UdjinM6
84b0e6f587 use IsDenominatedAmount instead of loops and GetInputDarksendRounds where applicable 2015-01-29 13:36:18 +03:00
UdjinM6
6f7f19fdcc fix updateDarksendProgress / add isDenominatedAmount and GetNormalizedAnonymizedBalance 2015-01-28 10:35:17 +03:00
evan82
1598d8e7a6 Merge pull request #134 from UdjinM6/fix_creating_denominated
fixing pre-mix process of creation denominated amounts
2015-01-27 10:57:35 -07:00
Evan Duffield
de8a436363 fix overpaying for DSTX 2015-01-27 07:29:25 -07:00
UdjinM6
a07d637a48 don't use collateral amounts on CreateDenominated / make collateral inputs from all available coins and not only from non-denominated / IsCollateralAmount function 2015-01-27 07:13:34 +03:00
UdjinM6
144b24bee5 more fixes/cleanup/debug output to DS mixing 2015-01-26 00:18:26 +03:00
UdjinM6
9a4fac6bb6 fixing pre-mix process of creation denominated amounts 2015-01-25 02:57:55 +03:00
Evan Duffield
78fe35f06d Implemented DarkSend convertability
Darksend defaults to a new mode which enables inputs/outputs
of each session to be different. For example 10DRK can be input
and 1DRKx10 can be output. This strengthens the anonymity of
Darksend greatly, which also increasing the usability (Users who
run out of .1DRK denominations can simply turn on Darksend to
split up larger inputs).
2015-01-21 07:55:21 -07:00
Evan Duffield
bbd869589c Collateral issues / Exact denoms / Disabled denoms
- When attempting to connect to a masternode for submission into the pool a recursive call to DoAutoDenominate was used. This could possibly take more than 1 minute to complete if it found a string of bad masternodes, in which case the correct masternode was overwritten and replaced with an invalid one. Upon submission, the DS TX was given to the incorrect node causing collateral to be charged.
- To fix this I've removed the recursion and added a critical section to DoAutoDenominate.
- Exact input denominations are matched in PrepareDarksendDenominate to remove the possibility of having change in the pool
- Removed disabled denominations, not needed anymore
2015-01-20 10:33:52 -07:00
Evan Duffield
b40bfacb55 improved anonymity for smaller wallets 2015-01-20 02:42:15 -07:00
Evan Duffield
2737edbbf3 Removed non-denomational inputs (UdjinM6)
Exact amounts are now allocated directly to denominated
funds then submitted to the pool. This improves anonymity
by never having non-denomination inputs enter or exit the pool.
Randomness has also been added to the amount of each session to
improve anonymity.
2015-01-19 20:12:10 -07:00
Darkcoin
daab1083cf Merge pull request #116 from UdjinM6/110x_ds_fix2
110x ds fix2
2015-01-18 07:40:45 -07:00
UdjinM6
33a7c539ba another attempt to simplify ds and fix some issues 2015-01-15 17:41:56 +03:00
vertoe
b8e53a337c merge devel-0.9 2015-01-15 12:40:25 +01:00
vertoe
e6ce27defd Update copyright year 2015 2015-01-15 11:31:35 +01:00
Darkcoin
3dcdfc6ff2 Merge pull request #96 from freynder/keepass
Implemented KeePass Integration
2015-01-12 10:52:07 -07: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
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
a290bc06f2 Further improvements to the matching engine 2014-12-30 15:42:50 -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
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
31ca8ad5f9 reducing lower limit to 1.5DRK 2014-12-25 20:58:58 -07:00
UdjinM6
f77b2d5943 when Darksend is unchecked select nondenom inputs first - for v11 2014-12-23 06:06:47 +03: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
vertoe
6e208f6625 Merge strings. 2014-12-12 13:00:21 +01:00
vertoe
adbd2274e0 Update strings. 2014-12-12 12:44:25 +01:00
Evan Duffield
2a33377fc8 Merged: Typo in log output (crowning) 2014-12-11 08:58:38 -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
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
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
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
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
Philip Kaufmann
3e1cf9b6f6 add DEFAULT_TRANSACTION_FEE constant in wallet
- as this is a shared Core/GUI setting, this makes it easier to keep them
  in sync (also no new includes are needed)
2014-05-05 20:54:00 +02:00
Wladimir J. van der Laan
2bbecc84e2
Merge pull request #4058
55a1db4 Solve chainActive-related locking issues (Wladimir J. van der Laan)
e07c943 Add AssertLockHeld for cs_main to ChainActive-using functions (Wladimir J. van der Laan)
2014-04-22 13:35:37 +02:00
Wladimir J. van der Laan
913e90db9a
Merge pull request #3701
09ec3af AddToWallet implies BindWallet (Wladimir J. van der Laan)
2014-04-19 08:51:40 +02:00
Wladimir J. van der Laan
55a1db4fa2 Solve chainActive-related locking issues
- In wallet and GUI code LOCK cs_main as well as cs_wallet when
  necessary
- In main.cpp SendMessages move the TRY_LOCK(cs_main) up, to encompass the call
  to IsInitialBlockDownload.
- Make ActivateBestChain, AddToBlockIndex, IsInitialBlockDownload,
  InitBlockIndex acquire the cs_main lock

Fixes #3997
2014-04-18 12:49:41 +02:00
Cozz Lovan
392783697c [Qt] rescan progress 2014-04-02 03:48:07 +02:00