• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

v0.10.12.x RC4 Testing

Status
Not open for further replies.
I couldn't help myself... just did some research into optimal denominations and came to a few interesting conclusions that should be considered in the design of Darksend+:

1) Given an unlimited number of denominations, the optimal denominations to minimize the number of transactions/denominations for a system in which change is given and each denomination is used only once per transaction is exponents of three (e.g., 1, 3, 9, 27, etc.), however, this is incompatible with Darksend+, because we need a system for exact payments without making change back to the sender

2) The optimal system in which each denomination is only used once and without the use of change is in fact exponents of two (e.g., 1, 2, 4, 8, etc.), so it seems that we are on the right track with our powers of two approach.

3) However, there are some considerable downsides to using this approach
- In order to have even one set of the 21 denominations, it takes 2,097.151 DRK... an amount few are likely to ever hope to have in their wallets let alone the 6,291.453 DRK that it would take to create three full sets of denominations as proposed (thus allowing three consecutive transactions to be sent without having to wait for redenominating coins)
- Using an approach based on powers of three would drastically reduce the amount needed to create a full set (because you would need fewer denominations), but the issue would remain that almost all users will not be able to make three full sets...
- Therefore, we should use powers of two (as Kristov proposed), but this generates some real trade-offs in the way this could work practically... Consider the following scenario:

Let's say that you have a wallet with less than the needed 6,291.453 coins. Since it cannot create three copies of each denomination, the system needs to make some trade-offs. You must either keep fewer copies of the full set of denominations, or you can keep three copies, but only up to a lower figure. Let's say for example you have 2,650 DRK... you could do one of the following. In option 1, the system completes one full set of denominations before creating as much of the second set as possible, and lastly as much of the third set as possible (always starting with the lowest denomination first). In option 2, it creates three sets of coins at each denomination until it can't create the next denomination up.
EDIT: Redid the table so that it is legible.
Option 1 Option 2
Denomination Number Amount Denomination Number Amount
0.001..............3............0.003.....0.001..............3............0.003
0.002..............3............0.006.....0.002..............3............0.006
0.004..............3............0.012.....0.004..............3............0.012
0.008..............3...........0.024......0.008..............3...........0.024
0.016..............3...........0.048......0.016..............3...........0.048
0.032..............3...........0.096......0.032..............3...........0.096
0.064..............3...........0.192......0.064..............3...........0.192
0.128..............3...........0.384......0.128..............3...........0.384
0.256..............3...........0.768......0.256..............3...........0.768
0.512..............3...........1.536......0.512..............3...........1.536
1.024..............3...........3.072......1.024..............3...........3.072
2.048..............3...........6.144......2.048..............3...........6.144
4.096..............3.........12.288......4.096..............3.........12.288
8.192..............3.........24.576......8.192..............3.........24.576
16.384.............2........32.768....16.384..............3.........49.152
32.768.............2........65.536....32.768...............3........98.304
65.536.............2.......131.072...65.536...............3......196.608
131.072...........2.......262.144...131.072.............3.......393.216
262.144............2......524.288..262.144..............3.......786.432
524.288............1......534.288..524.288..............2.....1048.576
1048.576..........1....1048.576..1048.576............0...........0.000
Total......................2,637.821...................................2621.437
Non-denominated.......12.179.......................................28.563
Sending 2500 DRK ..10 coins...................................48 coins

The advantages to Option 1 are a) you can send higher-value transactions using fewer blockchain transactions (as evidenced by the example of sending 2500 DRK), b) it can denominate a higher share of the 2,650 DRK... enabling the capability to send slightly larger amounts (though depending on the exact numbers used, this can become substantial in some circumstances), and c) you can still enable three successive transactions, albeit on a smaller set of possible amounts than Option 2.

The only real advantage I see to Option 2 is that you are guaranteed to be able to send three transactions in quick succession as long as they are all below 524.288 vs. three guaranteed transactions below 16.384 for Option 1.

To me, the advantages of denominating following the approach of Option 1 far outweigh the advantages of Option 2. In fact, the only scenario in this example where option 2 is better is when you are sending three successive transactions that all fall within the range of 16.384 - 524.288.

My conclusion is that the example Evan provided, which appears to prioritize denominating 3 sets of each denomination, should be replaced with an approach that prioritizes creating as much of a first set of coins as possible before starting on the next one.

souns great. would love to hear from evan about this!
 
****** PLEASE UPDATE TO 9.12.5 OR 10.12.5 *******

With this version everything seems to be working!?

- Everything should be the same version (pushed tags)
- Masternodes should change every block now
- DoAutomaticDenomination should happen every block now
- DarkSendRounds had a bug that I fixed, should calculate correctly now

Plus...

- New column "Darksend Rounds" in coincontrol to show how secure a given input is
- Fixed a few issues causing darksend to fail. We should see many more darksends occuring now if it's fixed.
- Redid denominations to 1, 10, 100, and 500. Maybe this is too simple, but it seems effective, all change from transactions will de denominated automatically again through darksend for the next transactions. We'll see how it works.
- usemasternode option, will override active masternode (only in RC, just for testing)

Binaries (stable)
http://www.darkcoin.io/downloads/master-rc4/darkcoin-qt
http://www.darkcoin.io/downloads/master-rc4/darkcoind

RC4 Binaries ( masternodes )
http://www.darkcoin.io/downloads/rc4/darkcoin-qt
http://www.darkcoin.io/downloads/rc4/darkcoind
 
Last edited by a moderator:
souns great. would love to hear from evan about this!

I'm currently looking into a much more simplistic model, that doesn't breakdown into these subunits. From the looks of it's so far, my new idea is much more anonymous and it's also lighter on the blockchain and easier to implement. If this doesn't work, I'll start looking into how I'm going to implement something like what's laid out here.
 
12.5 running on MN 54.191.236.39 :)

I really like the radioactive splashscreen BTW. :cool:
 
Last edited by a moderator:
Can a few people just bootup a normal wallet, put some money in it and let it sit there? It should automatically start denominating

Just make sure it's not enabled as a masternode

Just did. Looking at the log is interesting, it has not used darksend yet. Rather it is trying it appears but has not succeeded. I'll give it a little longer and then post the logs

Edit: Alright it actually has connected to a masternode now, "Entries 1/3". I started a wallet on a server and just sent it some coins to increase the number of wallets trying entering the pool.
 
Last edited:
Can a few people just bootup a normal wallet, put some money in it and let it sit there? It should automatically start denominating

Just make sure it's not enabled as a masternode
Stopped my transaction spray script for now, as it is cluttering the blockchain with transactions and manual denominations :)
 
Code:
ubuntu@ip-172-31-18-216:~$ darkcoind getaccountaddress 0
mo2Mp2f55JMYS73urofR5gxsZbRCPoy48h
ubuntu@ip-172-31-18-216:~$ darkcoind getinfo
{
  "version" : 101205,
  "protocolversion" : 70022,
  "walletversion" : 60000,
  "balance" : 18363.45864008,
  "blocks" : 3175,
  "timeoffset" : 0,
  "connections" : 10,
  "proxy" : "",
  "difficulty" : 0.12660441,
  "testnet" : true,
  "keypoololdest" : 1406001326,
  "keypoolsize" : 1001,
  "paytxfee" : 0.00000000,
  "mininput" : 0.00001000,
  "errors" : ""
}
I am a tDRK baller. I should set up 17 more tmasternodes. :)
 
Can a few people just bootup a normal wallet, put some money in it and let it sit there? It should automatically start denominating

Just make sure it's not enabled as a masternode

I'll do that as soon as the latest windows wallet is compiled. I'd love to help out more but too much real work for me right now, but I'll happily let some test dark run on a wallet all day,
 
Cheers flare :)

Running now, latest wallet, fresh chains etc. Used the faucet to send myself 1000 test dark to muk9WKq9AT8rP5ibA5f719xASnCXuLq3Qj . I'll let it sit there and work its magic.

As requested eduffield . I'll let it sit there. Let me know if you need anything from debug logs etc
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top