v0.10.16.x Testing

Status
Not open for further replies.

TanteStefana

Grizzled Member
Foundation Member
Mar 9, 2014
2,861
1,854
1,283
Ok, so I'm not able to follow along, but interesting note (maybe) is that, I just started up my testnet wallet, and set it to denonminate 8 rounds and was immediately charged one 0.001 and one 0.100 DRK. I'll be back in a few hours.
 

TanteStefana

Grizzled Member
Foundation Member
Mar 9, 2014
2,861
1,854
1,283
Hummm, my wallet crashed. Were we supposed to use a fresh wallet? Anyway, I'm saving my debug file in case you want it, Evan. I was only trying to denominate, I wasn't a masternode.
 

Raico

Well-known Member
Foundation Member
Dash Support Group
May 28, 2014
138
142
193
2 tMN on the way~



Edit: Now, Both of my tMN are not showed in the list. Before they disappear from the list, their status showed "0" on the list. logs sent....
 
Last edited by a moderator:

Miner237

Well-known Member
Foundation Member
May 28, 2014
509
223
213
We're going to be testing v16 to see if we can find any issues before launching on mainnet. This branch is the full release of what I had done of InstantX, but with InstantX disabled, so there's a lot of changes:


What we need to launch:

- We need masternodes
2 tMN on the way~
Why does it seem to show a few MNs when I run masternode list and then 5 min later they are gone and now one is showing 0

now I see MN sending to many dsq messages
 
Last edited by a moderator:

oaxaca

Well-known Member
Foundation Member
Jul 8, 2014
573
832
263
My wallet is telling me "not capable masternode". I think it's fully capable....
 

oblox

Well-known Member
Aug 6, 2014
1,032
537
183
Up to 31 PTY, no denominations... coin control has wacky denoms, 1024, 512, 256, 128, 64, 32, 16 unlike the regular 100, 10, 1. After awhile, darksend said disabled and the button still specified stop darksend mixing as if it was still running. Getting some errors about darksend transaction being too recent as well.
 

Attachments

Raico

Well-known Member
Foundation Member
Dash Support Group
May 28, 2014
138
142
193
Why does it seem to show a few MNs when I run masternode list and then 5 min later they are gone and now one is showing 0

now I see MN sending to many dsq messages
Same thing happened here. One of my tMN showed 0 in masternode list but it shows
masternode started remotely in the masternode debug.

And yes, so many dsq -- masternode sending too many dsq messages. xxx.xxx.xxx.xxx:19999

Don't know if it's normal for debuging?
 

Raico

Well-known Member
Foundation Member
Dash Support Group
May 28, 2014
138
142
193
My wallet is telling me "not capable masternode". I think it's fully capable....
It's ok. Just close your remote&local daemon and do it again...
 

Raico

Well-known Member
Foundation Member
Dash Support Group
May 28, 2014
138
142
193
Did that several times. Starting from scratch again.
- Privekey is the same in Local&Remote?
- testnet = 1?
- masternodeaddr is correct?
- restart my Local&Remote
Then, it works....

That's what i did when it happened 2 hourse ago.. Hope may help.

BTW. it need 15 confirms before create a new tMN with a new wallet.
 

innergy

Member
Jun 27, 2014
46
13
48
Hummm, my wallet crashed. Were we supposed to use a fresh wallet? Anyway, I'm saving my debug file in case you want it, Evan. I was only trying to denominate, I wasn't a masternode.
Same here.. after 3rd round completed - 200/8

edit: And again after restart when I press "Start Darksend Mixing"
 

Attachments

Last edited by a moderator:

moli

Grizzled Member
Aug 5, 2014
3,255
1,830
1,183
Windows wallet keeps seeing 0 masternode count.

I guess we need to stop and wait for the wallet update tomorrow?
 

innergy

Member
Jun 27, 2014
46
13
48
How can I start a hot test MN? Is putting a 1000drk and masternode=1 in conf file enough?
 

Aswan

Member
Jun 26, 2014
68
216
73
Thank you for the quick testnet implementation of a fix. I got a few questions and concerns regarding this implementation though.

- Masternodes can now make a limited number of zero-fee transaction for Darksend. These are special transactions that require a signature that only the masternodes can create.
Interesting. How many zero-tee Txs can they make within what time frame? How is this enforced? What if the network grows and more and more pool adapt a "only Txs with fees policy" (like it's becoming the case in the Bitcoin network)? Is it viable for an attacker to get several Masternodes in order to spam the network? (He can send the 1k DRK to another MN address and keep going).
Also, this might cause masternode pools and private masternodes to arise, which do not require a proof of payment (subscribtion). A group of people could use those nodes without paying or supporting the network (which in turn might lead to a faster adaption of the "only Txs with fees policy", which will make the zero-fee transactions of masternodes useless.
I am not saying it is useless, but when DRK evolves, some of those things might become a problem.

- Darksend now has no fees to track what-so-ever, all that will ever be in Darksend transactions are Darksend denominations.
- I've implemented a subscription based model for darksend, the per-round idea was flawed and could have been attacked. Instead, the subscriptions are the exact amount as a collateral charge, so if you get charged collateral it's actually just buying more time for Darksend.
How exactly do they work? Who is getting the subscription and where is it paid from? How long is a subscription valid for? Is it for a specific amount of time, a specific amount of blocks, or a specific amount of darksend rounds?
How do you proof you have an active subscription to a MN? There has to be some proof of payment, likely a TxID that's been signed. However, in this case the masternode still knows the address paying the fee - it's the address that signed the proof of payment. This address might not be in the blockchain, but a masternode could still get the 3 origin address by looking up the addresses that signed the proof of payment and then go on de-anonymizing the participants. Ofc this only works for the last MN in the darksend chain.
Besides, I don't see paying a fee per round as being a flawed idea. It's just the current implementation that has been flawed. I think it can work great.
- Clients remember which masternodes they've connected to in the past and won't use them against.
I really like this addition. It seems so little but it's actually a really good improvement for anonymity.

Many thanks go to Aswan for finding the security issue with Darksend, donations for the work can be sent here:
DRK: XnNazPB1fPS59P9CfEtZWtqcmDttFWNj7A
BTC: 1FGJjQHesURPnLWFEU1R5fZy8PdP7KBkEY
Thank you eduffield

And thanks to everyone for the kind donations :)
 

flare

Administrator
Dash Core Team
Moderator
May 18, 2014
2,287
2,406
1,183
Germany
How can I start a hot test MN? Is putting a 1000drk and masternode=1 in conf file enough?
It needs an additional masternodeprivkey=xxxx... line in darkcoin.conf (generate the value with 'masternode genkey') and after a restart you'll need a "masternode start" to finish it.
 
  • Like
Reactions: innergy

eduffield

Core Developer
Mar 9, 2014
1,084
5,319
183
****** PLEASE UPDATE TO v10.16.2 *******

- Fixed errors in new matching algorithm (causing collateral charges)
- Removed subscriptions, instead collateral will be charged randomly (0.1DRK, 1 in 10 sessions or so). Collateral is paid directly to the miners, so this should give them enough incentive to mine the free transactions.
- Fixed DoAutomaticDenomination issues, was happening every second
- Added variable session amounts to improve anonymity and matching
- Allow collateral to be created from denominated money (more anon)
- Fixed "masternode sending too many dsq messages" problems, shouldn't see that anymore

----

CI-builds for v0.10.16.2

Source:
https://github.com/darkcoin/darkcoin/tree/ds-zero-fee/src

Windows 32bit:
http://bamboo.darkcoin.qa/artifact/DRKW-DEV/JOB1/build-31/gitian-win-darkcoin-bin/32/darkcoin-qt.exe
http://bamboo.darkcoin.qa/artifact/...tian-win-darkcoin-bin/32/daemon/darkcoind.exe
http://bamboo.darkcoin.qa/artifact/...oin-bin/32/darkcoin-0.10.16.2-win32-setup.exe

Mac OS X:
http://bamboo.darkcoin.qa/artifact/...-osx-darkcoin-dist/darkcoin-0.10.16.2-osx.dmg

Linux 32bit:
http://bamboo.darkcoin.qa/artifact/.../gitian-linux-darkcoin-bin/bin/32/darkcoin-qt
http://bamboo.darkcoin.qa/artifact/DRKL-DEV/JOB1/build-32/gitian-linux-darkcoin-bin/bin/32/darkcoind

Linux 64bit:
http://bamboo.darkcoin.qa/artifact/.../gitian-linux-darkcoin-bin/bin/64/darkcoin-qt
http://bamboo.darkcoin.qa/artifact/DRKL-DEV/JOB1/build-32/gitian-linux-darkcoin-bin/bin/64/darkcoind
 

splawik21

Grizzled Member
Dash Core Team
Moderator
Foundation Member
Dash Support Group
Apr 8, 2014
1,917
1,274
1,283

eduffield

Core Developer
Mar 9, 2014
1,084
5,319
183
Thank you for the quick testnet implementation of a fix. I got a few questions and concerns regarding this implementation though.

Interesting. How many zero-tee Txs can they make within what time frame? How is this enforced? What if the network grows and more and more pool adapt a "only Txs with fees policy" (like it's becoming the case in the Bitcoin network)? Is it viable for an attacker to get several Masternodes in order to spam the network? (He can send the 1k DRK to another MN address and keep going).
Also, this might cause masternode pools and private masternodes to arise, which do not require a proof of payment (subscribtion). A group of people could use those nodes without paying or supporting the network (which in turn might lead to a faster adaption of the "only Txs with fees policy", which will make the zero-fee transactions of masternodes useless.
I am not saying it is useless, but when DRK evolves, some of those things might become a problem.

How exactly do they work? Who is getting the subscription and where is it paid from? How long is a subscription valid for? Is it for a specific amount of time, a specific amount of blocks, or a specific amount of darksend rounds?
How do you proof you have an active subscription to a MN? There has to be some proof of payment, likely a TxID that's been signed. However, in this case the masternode still knows the address paying the fee - it's the address that signed the proof of payment. This address might not be in the blockchain, but a masternode could still get the 3 origin address by looking up the addresses that signed the proof of payment and then go on de-anonymizing the participants. Ofc this only works for the last MN in the darksend chain.
Besides, I don't see paying a fee per round as being a flawed idea. It's just the current implementation that has been flawed. I think it can work great.
The zero-fee throttling is enforced by the queuing system here:

https://github.com/darkcoin/darkcoin/blob/ds-zero-fee/src/darksend.cpp#L159

Basically, what's happening is the masternodes aren't allowed to send queue messages more often than the rest of the network (with a good margin of error in the calc). So when connecting to a masternode, it's best to connect to one that hasn't been used recently, otherwise now it will reject you and tell you to go elsewhere. This serves two purposes, 1.) to stop queue gaming (sending out DSQ's all of the time to collect as many sessions as possible) 2.) To limit the amount of transactions a masternode can make. You'll notice only other masternodes can increment the counter.

After a queue message is accepted, the masternode is flagged as able to send 1 free transaction. Each Darksend session broadcasts a DSQ to the whole network, so this means the whole network knows that masternode is able to send that transaction, including the miners.

What if the network grows and more and more pool adapt a "only Txs with fees policy" (like it's becoming the case in the Bitcoin network)? As in the Bitcoin network, we're aiming at implementing header-first blocks (InstantX benefits from this too). This should allow the network to grow and process these transactions with very little effect on the miners.

I've ditched the subscription concept in favor of randomly charging the collateral as a fee. This is paid directly to the miners, so it'll actually pay for the free blocks they mine. With per-round fees attached to the translation we really can't get the fee's below 0.0125DRK, which is really expensive if you're anonymizing 1DRK. However, with free-transactions and collateral, the system could take different amounts of collateral depending on which denominations are used. E.g. Charge 0.005DRK for 8 rounds of 1DRK., 0.02DRK for 8 rounds of 10DRK, etc.

The other issue with fees, you would mix for example 10 fees at once up front with 3 other people. Now every round in the Darksend transaction you make ,they're all traceable back to that transaction ID (which gives you 9 possible users for 8 rounds, with 3 different mixing TXIDs). Whereas without fees, there's nothing to track, so 8 rounds could be 8^3 users. I think this idea scales and is a huge improvement to the anonymity.
 
Last edited by a moderator:
  • Like
Reactions: Raico and JGCMiner

Miner237

Well-known Member
Foundation Member
May 28, 2014
509
223
213
****** PLEASE UPDATE TO v10.16.2 *******

- Fixed "masternode sending too many dsq messages" problems, shouldn't see that anymore
This is gone but the QT wallet is not showing any MN listed, is that normal?
 

Aswan

Member
Jun 26, 2014
68
216
73
The zero-fee throttling is enforced by the queuing system here:

https://github.com/darkcoin/darkcoin/blob/ds-zero-fee/src/darksend.cpp#L159

Basically, what's happening is the masternodes aren't allowed to send queue messages more often than the rest of the network (with a good margin of error in the calc). So when connecting to a masternode, it's best to connect to one that hasn't been used recently, otherwise now it will reject you and tell you to go elsewhere. This serves two purposes, 1.) to stop queue gaming (some sending out DSQ's all of the time to collect as many sessions as possible) 2.) To limit the amount of transactions a masternode can make. You'll notice only other masternodes can increment the counter.

After a queue message is accepted, the masternode is flagged as able to send 1 free transaction. Each Darksend session broadcasts a DSQ to the whole network, so this means the whole network knows that masternode is able to send that transaction, including the miners.
A brilliant solution! This also allows clients to flock to only a few masternodes at a time making it more likely to find peers for the mixning process. I love it!

I've ditched the subscription concept in favor of randomly charging the collateral as a fee. This is paid directly to the miners, so it'll actually pay for the free blocks they mine. With per-round fees attached to the translation we really can't get the fee's below 0.0125DRK, which is really expensive if you're anonymizing 1DRK. However, with free-transactions and collateral, the system could take different amounts of collateral depending on which denominations are used. E.g. Charge 0.005DRK for 8 rounds of 1DRK., 0.02DRK for 8 rounds of 10DRK, etc.
I really like this solution.
I'd like to hear more about how the "randomly charging" process works. If it's decided only by the masternode, then miners can run masternodes that always charge the collateral in order to increase miners rewards.

The other issue with fee's, you would mix for example 10 fees at once up front with 3 other people. Now every round you would have that same transaction ID, so you know those 8 rounds belong to 1 of 3 people. Whereas without fees, there's nothing to track. I think this idea scales and is a huge improvement to the anonymity.
Thats true if the fees are actually mixed upfront.
I have been thinking about a solution that treats fees as normal darksend denominations until they are to be used, so they will be mixed with each darksend round, preventing this above mentioned issue from occurring. Fees will then be paid by one of the fee denominations each round while the rest of them will be mixed in the transaction.
This way the fee has the exact same level of anonymity as the rest of the funds. I have also thought about a solution to the problem of bloat in case someone wants to go for like 100 rounds, because then he'd have to use 100 fee denominations in each Tx, which makes the Tx way too big in size.
This could be fixed by introducing denomination convertibility. Now I know you are concerned about the bloat that denomination convertibility can cause, but it can also reduce bloat in a lot of circumstances.
 
Last edited by a moderator:

eduffield

Core Developer
Mar 9, 2014
1,084
5,319
183
Looks like the network hasn't updated. I updated the protocol version in order to kick off the old clients.
Deleted peers.dat and retry. Same issue.
The network still isn't updated yet, try:

addnode=188.226.223.5:19999
addnode=darkcoin.io:19999
 

thelonecrouton

Well-known Member
Foundation Member
Apr 15, 2014
1,135
813
283
Ugh, the cheapo VPS I was using cooked itself overnight running a main net and test net MN... I will rent another just for test net.
 

TaoOfSatoshi

Grizzled Member
Jul 15, 2014
2,797
2,614
1,183
Dash Nation
www.dashnation.com
Hi all,

I've used the 2 minutes of Internet time I'm allowed on vacation to update the official Twitter, and to make this post!

My wife is calling me, so I'll make this brief:

Sounds like some good ideas have been thought of for this Darksend issue, good to see it!

Has there been any discussion as to what shade of black this release will be called? The media loves these from what I've been hearing, BTW...

OK, back to vacation!

Cheers.
 
Status
Not open for further replies.