Welcome to the Dash Forum!

Please sign up to discuss the most innovative cryptocurrency!

Darksend Liquidity Providers - v0.10.16.1

Discussion in 'Official Announcements' started by eduffield, Oct 23, 2014.

  1. eduffield

    eduffield Core Developer

    Joined:
    Mar 9, 2014
    Messages:
    1,084
    Likes Received:
    5,319
    Trophy Points:
    183
    Some users have been inquiring about the way to make Darksend faster and provide quicker mixing. Some options have been proposed in the forums such as allowing Masternodes to mix their 1000DRK inputs. This isn't really a workable solution due to the sheer complexity of proving the money still exists.

    The easiest way to provide partners for the mixing process is going to be for some users to run the Darkcoin client, in a mixing mode, 24/7. These users, the "liquidity providers", can run Darkcoin in a way that will mix a specific amount of coins up to 100k times. To reduce the amount of fees these users will be charged, I've introduced a feature that will allow the user to specify how many times per day the client will mix, allow the client to add liquidity, but not so much that it costs a lot of money.

    Settings

    Code:
    ./darkcoin-qt --listen=0 --enabledarksend --darksendrounds=99999 --darksend_blocks_between_successes=57 --datadir=/home/user/.darkcoin
    ./darkcoind --listen=0 --enabledarksend --darksendrounds=99999 --darksend_blocks_between_successes=57 --datadir=/home/user/.darkcoin
    This setting means that Darkcoin will anonymize darkcoin up to 100k times, but only up to once every 2.4 hours (144 minutes). After the client has waited that period of time, it will continue to look for new partners, until it finds one, then it will wait again.

    The Liquidity Provider can run on a masternode, but must be setup as a completely separate daemon. To run 2 independant daemons on the same machine you can use the "--datadir" command shown above. Simple copy the .darkcoin directory to .darkcoin2 and run the command with --datadir="/home/user/.darkcoin2". Just remember to disable masternode=1 in the configuration.

    Wallet must be unlocked at all times. Please make sure the environment you're using this in is secure and you can afford to lose the money that you're providing liquidity with.

    Chicken Egg Problem

    The reason why we don't have fast darksend mixing is because we don't have a whole lot of users at this point. Users will come, but we need the process to work efficiently for them, when they begin anonymizing money. The strategy of providing liquidity to the network should help to get us past this stage. Once we have enough users to mix with, the liquidity provides will notice the activity has gone dramatically up and can turn the mixing process down, or eventually completely off.

    Fees - Maximum amount (without possible collateral charges, due to network outages, etc)

    Rounds=12 : Up to 21.90DRK per year
    Rounds=57 : Up to 4.56DRK per year
    Rounds=114 : Up to 2.73DRK per year

    Likely fees will be much lower due to the lack of Darksend mixed transactions currently.

    How much DRK is needed?

    I suggest a few users run darksend with random amounts between 0-100DRK and ask for donations from the community for the amount of fees incurred for the year. Say you choose 23DRK, and to run at 57 minimum-block-spacing, that means you'll require 23+4.56DRK for a year of operation. If just ten users run these nodes (costing less than 100DRK a year), we'll have significantly faster darksend mixing all of the time.

    The mixing process matches users with the same denominations, so it’s important that Liquidity Providers select unique amounts to keep denominated.


    [​IMG]

    Downloads

    https://darkcointalk.org/threads/darksend-liquidity-provider-v0-10-16-4.2904/
     
    #1 eduffield, Oct 23, 2014
    Last edited by a moderator: Nov 5, 2014
    • Like Like x 12
  2. flare

    flare Administrator
    Dash Core Team Moderator

    Joined:
    May 18, 2014
    Messages:
    2,306
    Likes Received:
    2,436
    Trophy Points:
    1,183
    I will run one, too :)
     
    • Like Like x 4
  3. oblox

    oblox Well-known Member

    Joined:
    Aug 6, 2014
    Messages:
    1,032
    Likes Received:
    537
    Trophy Points:
    183
    I'll run a 125er me thinks.
     
    • Like Like x 3
  4. georgem

    georgem Active Member

    Joined:
    Jul 10, 2014
    Messages:
    82
    Likes Received:
    110
    Trophy Points:
    93
    I will too.

    I think it would be great to have a slightly adjusted logo for the liquidity provider qt-wallet...
    maybe a red D instead of a blue D? This way I could keep the two wallets more easily appart.

    Maybe this IS the birth of an additional animal in the darkcoin-kingdom (as I envisaged 3 weeks ago: Development Update - Oct 1, 2014 ):
    node, masternode, miner and now liquidity provider...

    Now if only the liquidity providers were to earn a small profit? :what:
     
    #4 georgem, Oct 23, 2014
    Last edited by a moderator: Oct 23, 2014
    • Like Like x 2
  5. weirdgod

    weirdgod Well-known Member
    Foundation Member

    Joined:
    Jun 4, 2014
    Messages:
    91
    Likes Received:
    51
    Trophy Points:
    168
    I am in too.
    With excess DRKs waiting to total enough for another MN...

    Darksend is our flagship. It is the difference that makes the difference.
    Therefore I am seeing these few dozen DRKs per year in fees, as a tiny investment,that is drastically boosting the possibility of success of darkcoin.


    But since most non-speculative users will want to total 1000drks to setup a MN, I dont think a lot of floating balance will be available in long haul for darksend mixing... I think its vital to include collateral from MNs.. especially once their rewards grow in next months...

    In stock market (options) liquidity providers make a nice profit, as they live off a spread....

    eduffield in the table at 825 line you forgot to include "200"
     
    #5 weirdgod, Oct 23, 2014
    Last edited by a moderator: Oct 23, 2014
  6. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,633
    Likes Received:
    3,533
    Trophy Points:
    1,183
    Cool!
    Few question though:
    1. Will Liquidity Providers recognize each other?
    2. What will happen if there is nobody who wants to use darksend at the moment - will Liquidity Provider wait 1 block or darksend_blocks_between_successes blocks?
    If the answer to 1) is "NO" and to 2) is "1" then there is a non-zero chance that 3 Liquidity Providers will mix with each other only...
     
  7. moli

    moli Grizzled Member

    Joined:
    Aug 5, 2014
    Messages:
    3,262
    Likes Received:
    1,837
    Trophy Points:
    1,183
    What I have suggested is if anyone has access to 3 or more anonymous IPs that do not point to themselves, they can anonymize their own coins. What do you think? (also if each one of us anonymizes more than one wallet with different amounts, wouldn't that help more?)
     
  8. patrolman

    patrolman Member

    Joined:
    Mar 9, 2014
    Messages:
    105
    Likes Received:
    70
    Trophy Points:
    78
    I have to admit that I didn't really consider this when making my proposals. It's great to see some action has been taken already.

    Is it feasible that a few parties could get together with multisig and provide more liquidity for those mixing 500+, and save on fees at the same time? I'd be willing to chip in at least 100 if it's possible.
     
  9. eduffield

    eduffield Core Developer

    Joined:
    Mar 9, 2014
    Messages:
    1,084
    Likes Received:
    5,319
    Trophy Points:
    183
    There is no 200 denomination. 825 uses 500+100(3x)+1(5x). The matching works by just making sure the participants are using the same denominations.
     
  10. weirdgod

    weirdgod Well-known Member
    Foundation Member

    Joined:
    Jun 4, 2014
    Messages:
    91
    Likes Received:
    51
    Trophy Points:
    168
    well the 625 and 825 lines as the same...
    just deducted it wrong :) so its 3x 100. great :)
     
  11. eduffield

    eduffield Core Developer

    Joined:
    Mar 9, 2014
    Messages:
    1,084
    Likes Received:
    5,319
    Trophy Points:
    183
    1.) No, that's not possible
    2.) The liquidity providers will try until someone does.

    It's possible they mix with eachother, but if the min-block-spacing is high enough it shouldn't happen very often. For a mix to be purely liquidity providers we'd need 3 of each denomination (like 3x liquidity providers running 25DRK, they'd find eachother). So that's why we should all run unique amounts.
     
  12. UdjinM6

    UdjinM6 Official Dash Dev
    Dash Core Team Moderator

    Joined:
    May 20, 2014
    Messages:
    3,633
    Likes Received:
    3,533
    Trophy Points:
    1,183
    Thank you for your explanation, I read this changes https://github.com/darkcoin/darkcoin/commit/d6431b357b6ccc9aac3499433d115c1e9390a4e8 and understood it too :)
    Basically to prevent this situation we can also run with different darksend_blocks_between_successes settings so it would be harder for Liquidity Providers to request darsend at the same block every time they've finished waiting. We can use prime numbers for example :) http://en.wikipedia.org/wiki/Prime_number
     
  13. moocowmoo

    moocowmoo Bovine Bit-flipper
    Foundation Member Masternode Owner/Operator

    Joined:
    Jun 15, 2014
    Messages:
    483
    Likes Received:
    603
    Trophy Points:
    263
    Dash Address:
    XmoocowYfrPKUR6p6M5aJZdVntQe71irCX
    I've launched v0.10.16.1-gd6431b3-beta on an existing wallet with 78 DRK (all I have currently) already sent through 8 rounds. It's denominated into:

    7 x 10.00000001 +
    7 x 1.00000001 inputs
    plus some change

    Am I understanding you correctly that this will only attempt to mix with people mixing exactly 7 10 and 7 1 inputs?
    If so, should liquidity provider instances follow different rules and treat each denomination input atomically?

    EDIT: first round on 10.16 occurred, all 14 of 10 and 1 inputs participated.
     
    #13 moocowmoo, Oct 24, 2014
    Last edited by a moderator: Oct 24, 2014
  14. paperThin

    paperThin Member

    Joined:
    Jun 13, 2014
    Messages:
    106
    Likes Received:
    19
    Trophy Points:
    68
    I downloaded v0.10.16.1-gd6431b3-beta (Windows). The command line:
    ./darkcoin-qt --listen=0 --enabledarksend --darksendrounds=99999 --darksend_blocks_between_successes=57 --datadir=/home/user/.darkcoin
    Does that go in the console? I tried to run it as a .bat and with a shortcut w/ the above pasted in... sorry for the newb questions. How do I get this to launch with Liquidity Provider on? [WINDOWS]
    Thanks in advance...
     
  15. moocowmoo

    moocowmoo Bovine Bit-flipper
    Foundation Member Masternode Owner/Operator

    Joined:
    Jun 15, 2014
    Messages:
    483
    Likes Received:
    603
    Trophy Points:
    263
    Dash Address:
    XmoocowYfrPKUR6p6M5aJZdVntQe71irCX
    you can also do this in darkcoin.conf

    Code:
    listen=0
    enabledarksend=1
    darksendrounds=99999
    darksend_blocks_between_successes=57
    and you can set datadir in a shortcut as:

    Code:
    C:\Users\YOURUSER\Downloads\darkcoin-0.10.16.1-win\32\darkcoin-qt.exe -datadir="C:\Users\YOURUSER\AppData\Roaming\Darkcoin_mixed-10.16.1"
    adjust as needed to match your system.
     
    • Like Like x 1
  16. oblox

    oblox Well-known Member

    Joined:
    Aug 6, 2014
    Messages:
    1,032
    Likes Received:
    537
    Trophy Points:
    183
    Create a shortcut to the darkcoin-qt.exe, right click and go to properties. Add "--listen=0 --enabledarksend --darksendrounds=99999 --darksend_blocks_between_successes=57 --datadir=C:/WHEREVER YOUR DATA FOLDER IS" after the exe
     
    • Like Like x 1
  17. paperThin

    paperThin Member

    Joined:
    Jun 13, 2014
    Messages:
    106
    Likes Received:
    19
    Trophy Points:
    68
    oblox and moocowmoo,
    Yes, the conf file is working (after I found the folder my wallet.dat was in).
    I will try the shortcut method which makes sense now. Thanks to both!
     
  18. paperThin

    paperThin Member

    Joined:
    Jun 13, 2014
    Messages:
    106
    Likes Received:
    19
    Trophy Points:
    68
    Getting in the QT client:

    "Submitted to masternode, waiting in queue"
    "Darksend request incomplete. Collateral not valid. Will retry."

    I only have 11+ DRK in this wallet, but I was hoping since other are already running in liquidity mode that this would mix quickly. Later today I will add to this wallet... it will be at 99DRK

    At this point... my settings are:
    11.xxx DRK in wallet
    1000 DRK / 99999 Rounds
    listen=0
    enabledarksend=1
    darksendrounds=99999
    darksend_blocks_between_successes=57

    Should everyone adjust the 57 to a different random number?
     
  19. paperThin

    paperThin Member

    Joined:
    Jun 13, 2014
    Messages:
    106
    Likes Received:
    19
    Trophy Points:
    68
    My question is regarding the reply in the qt "Overview" window: "Darksend request incomplete. Collateral not valid. Will retry."

    Does that mean that I did something wrong, or that there is no one available to mix with me?
     
  20. moocowmoo

    moocowmoo Bovine Bit-flipper
    Foundation Member Masternode Owner/Operator

    Joined:
    Jun 15, 2014
    Messages:
    483
    Likes Received:
    603
    Trophy Points:
    263
    Dash Address:
    XmoocowYfrPKUR6p6M5aJZdVntQe71irCX
    I got that on a fresh wallet (fresh deposits from 0), but went to bed and found stuff mixing when I woke up.

    We need to teach people that darksend isn't something you watch, it's an overnight/daylong process.
     
    • Like Like x 1
  21. paperThin

    paperThin Member

    Joined:
    Jun 13, 2014
    Messages:
    106
    Likes Received:
    19
    Trophy Points:
    68
    I'd like to see a few others weigh in on this. I know it is not instant, but if we had 50 people with "Liquidity" wallets, wouldn't we see about 1 mix per block? That investment by the community would definitely speak volumes for darkcoin and raise it's value (especially to newcomers).

    Moocowmoo, thanks for your help!
     
  22. moocowmoo

    moocowmoo Bovine Bit-flipper
    Foundation Member Masternode Owner/Operator

    Joined:
    Jun 15, 2014
    Messages:
    483
    Likes Received:
    603
    Trophy Points:
    263
    Dash Address:
    XmoocowYfrPKUR6p6M5aJZdVntQe71irCX
    You're welcome. Glad to assist.

    I'd like to see an introduction built into the wallet that covers (in plain english) things like:
    Darksend requires two other participants mixing at the same time: don't watch it, leave it overnight or for a day or more.
    And 'if you're already mixing, your newly deposited funds won't start mixing until your in-progress mix finishes.'
    And whatever other disclaimers others think we might need.
     
  23. eduffield

    eduffield Core Developer

    Joined:
    Mar 9, 2014
    Messages:
    1,084
    Likes Received:
    5,319
    Trophy Points:
    183
    No, it only cares that you have at least one of all of the same denominations. E.g, A user miking 1+1+1+100 can mix with 1+100+100
     
  24. oblox

    oblox Well-known Member

    Joined:
    Aug 6, 2014
    Messages:
    1,032
    Likes Received:
    537
    Trophy Points:
    183
    Got two up and running. A small one around 27 and one around 128.
     
  25. oblox

    oblox Well-known Member

    Joined:
    Aug 6, 2014
    Messages:
    1,032
    Likes Received:
    537
    Trophy Points:
    183
    I wouldn't mind doing a few on some of the masternodes... is it as simple as creating a new user and installing the daemon, then running it with the commands above? Do I just run getadddress to find out the address to send some of the coins to? How about specifying the amount to anon via command line?
     
  26. tungfa

    tungfa Administrator
    Dash Core Team Foundation Member Masternode Owner/Operator Moderator

    Joined:
    Apr 9, 2014
    Messages:
    8,939
    Likes Received:
    6,723
    Trophy Points:
    1,283
    Can i please get a translation how to do this and join on a MAC ?!
    Tx
     
  27. HinnomTX

    HinnomTX Active Member

    Joined:
    Jul 22, 2014
    Messages:
    166
    Likes Received:
    196
    Trophy Points:
    103
    Awesome! I will set one of these up. The blockchain is about to get a lot foggier.
     
    • Like Like x 2
  28. Ignition75

    Ignition75 Active Member

    Joined:
    May 25, 2014
    Messages:
    332
    Likes Received:
    211
    Trophy Points:
    113
    I'm thinking about a notification based app, Dark Pulse... It presents data from the network as it happens, text based push messages, large movements of DRK on the network, large movements in price at exchanges... Can later plug into a decentralised "swarm" of some sort for exchange services...

    Could have a bit of AI in it and report movements of coin that don't follow protocol, just chucking ideas around now...
     
    • Like Like x 1
  29. AjM

    AjM Well-known Member
    Foundation Member

    Joined:
    Jun 23, 2014
    Messages:
    1,326
    Likes Received:
    568
    Trophy Points:
    283
    So this update is not mandatory to normal client and masternode?
     
  30. flare

    flare Administrator
    Dash Core Team Moderator

    Joined:
    May 18, 2014
    Messages:
    2,306
    Likes Received:
    2,436
    Trophy Points:
    1,183
    Correct - it's just for liquidity providers.
     

Share This Page