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

v0.10.16 - Onyx v2

Just wait until flare assigns your reported JIRA issues back to you :tongue:
That's excactly what will happen now :grin:

EDIT:

4tkLjbz.png
 
Last edited by a moderator:
Hmmm... This is going popular...
Code:
darkcoind masternode list | sort | uniq -c | grep -v "1 "
      2     "107.170.242.110:9999" : 1,
      3     "108.61.172.141:9999" : 1,
      2     "188.226.196.182:9999" : 1,

eduffield , what about a quick fix here to get rid of those duplicate entries? https://github.com/darkcoin/darkcoin/blob/master/src/masternode.cpp#L140:
Code:
  if(tx.AcceptableInputs(state, true)){
    LogPrintf("dsee - Accepted masternode entry %i %i\n", count, current);

  if(GetInputAge(vin) < MASTERNODE_MIN_CONFIRMATIONS){
    LogPrintf("dsee - Input must have least %d confirmations\n", MASTERNODE_MIN_CONFIRMATIONS);
    pfrom->Misbehaving(20);
    return;
  }

  addrman.Add(CAddress(addr), pfrom->addr, 2*60*60);
// Fix start
  BOOST_FOREACH(CMasterNode& mn, darkSendMasterNodes) {
    if(mn.addr == addr){
      LogPrintf("Duplicate master node entry - rejected %s \n", mn.addr.ToString().c_str());
      return;
    }
  }
// Fix end
 
Last edited by a moderator:
eduffield , what about a quick fix here to get rid of those duplicate entries? https://github.com/darkcoin/darkcoin/blob/master/src/masternode.cpp#L140:
Code:
  if(tx.AcceptableInputs(state, true)){
    LogPrintf("dsee - Accepted masternode entry %i %i\n", count, current);

  if(GetInputAge(vin) < MASTERNODE_MIN_CONFIRMATIONS){
    LogPrintf("dsee - Input must have least %d confirmations\n", MASTERNODE_MIN_CONFIRMATIONS);
    pfrom->Misbehaving(20);
    return;
  }

  addrman.Add(CAddress(addr), pfrom->addr, 2*60*60);
// Fix start
  BOOST_FOREACH(CMasterNode& mn, darkSendMasterNodes) {
    if(mn.addr == addr){
      LogPrintf("Duplicate master node entry - rejected %s \n", mn.addr.ToString().c_str());
      return;
    }
  }
// Fix end
This needs a protocolversion change, otherwise we'll get into trouble...
 
:tongue:Hey... who flipped the switch ?

darkcoind getcheckpoint
{
"synccheckpoint" : "0000000000026c3cd95dcb540d1f3cc611a6ce798257cffbf4ad10834c0da392",
"height" : 171644,
"timestamp" : 1416304598,
"subscribemode" : "enforce",
"enforcing" : "on"
 
Last edited by a moderator:
There is a cause why its not officially supported yet: Its utterly not ready for production!

Does using it trigger a warning to the user/operator? Anything like this should cause a big impossible-to-miss equivalent of hands coming out of the screen to shake you awake and make sure you know what you're doing because you're stepping off the path and into the scary dark forest to get lost and eaten by wolves.
 
Last edited by a moderator:
Does using it trigger a warning to the user/operator? Anything like this should cause a big impossible-to-miss equivalent of hands coming out of the screen to shake you awake and make sure you know what you're doing because you're stepping off the path and into the scary dark forest to get lost and eaten by wolves.
You are right, there should be a warning IN CAPITAL LETTERS...
 
Does using it trigger a warning to the user/operator? Anything like this should cause a big impossible-to-miss equivalent of hands coming out of the screen to shake you awake and make sure you know what you're doing because you're stepping off the path and into the scary dark forest to get lost and eaten by wolves.

Don't use features you don't know about/havent seen documentation and you'll be grand... aimed at you as well camosoul

As always a relevant http://xkcd.com/293/
 
eduffield , what about a quick fix here to get rid of those duplicate entries? https://github.com/darkcoin/darkcoin/blob/master/src/masternode.cpp#L140:
Code:
  if(tx.AcceptableInputs(state, true)){
    LogPrintf("dsee - Accepted masternode entry %i %i\n", count, current);

  if(GetInputAge(vin) < MASTERNODE_MIN_CONFIRMATIONS){
    LogPrintf("dsee - Input must have least %d confirmations\n", MASTERNODE_MIN_CONFIRMATIONS);
    pfrom->Misbehaving(20);
    return;
  }

  addrman.Add(CAddress(addr), pfrom->addr, 2*60*60);
// Fix start
  BOOST_FOREACH(CMasterNode& mn, darkSendMasterNodes) {
    if(mn.addr == addr){
      LogPrintf("Duplicate master node entry - rejected %s \n", mn.addr.ToString().c_str());
      return;
    }
  }
// Fix end

Making the code only accept unique masternodes is really easy, but it's also exploitable. For example, what if you started a masternode with someone else's address during a protocol change. That would allow you to register and they wouldn't be able to after that. There's really no way to prove you own that ip address beyond my proof-of-service concept.

One of the next versions of the protocol will start to encrypt all messages sent to and from masternodes using their masternodeprivkeys, this means if you don't control that IP, it won't be able to talk to anyone on the network. After that, proof-of-service will kick in and start banning those nodes.
 
Making the code only accept unique masternodes is really easy, but it's also exploitable. For example, what if you started a masternode with someone else's address during a protocol change. That would allow you to register and they wouldn't be able to after that. There's really no way to prove you own that ip address beyond my proof-of-service concept.

Quick idea (right now I'm at work and can't test this):

When the bad node registers let the other nodes ask THAT IP-address for the corresponding vin (or pubkey or whatever else is easy to access).

  1. it's a honest node -> it will give you the correct answer
  2. it's the bad node -> the 'good' node (which owns the physical address) is connected (we don't talk about IP-spoofing here, don't we?) and gives you the wrong answer (it can't return the bad node's vin/pubkey/etc. because it has no idea what's going on).
No correct answer, node not accepted.
 
Hmm, having trouble mixing again with v.15. Lots of the "last Darksend was too recent" errors...
Mine sat about 18 hours with no activity with one remaining 500 denomination. I'm now moving along, but still not finished compared to my 10s, and 1s.
 
Quick idea (right now I'm at work and can't test this):

When the bad node registers let the other nodes ask THAT IP-address for the corresponding vin (or pubkey or whatever else is easy to access).

  1. it's a honest node -> it will give you the correct answer
  2. it's the bad node -> the 'good' node (which owns the physical address) is connected (we don't talk about IP-spoofing here, don't we?) and gives you the wrong answer (it can't return the bad node's vin/pubkey/etc. because it has no idea what's going on).
No correct answer, node not accepted.
Seems like a logical approach... there would be no other way for the fake node to get the key generated from the masternode genkey command unless you were the one generating it (or logged their computer). ;)

But couldn't you use a legit masternode to grab the genkeys from other nodes (from the check) and then use those same keys to claim ownership for future 1000 coin vins? Doesn't that put you back at square one?
 
Hmm, having trouble mixing again with v.15. Lots of the "last Darksend was too recent" errors...
Same here :-(
8 hrs running .16.15 and still sitting at 1% (which I think really means 0%, since that what it started at).
 
Same here :-(
8 hrs running .16.15 and still sitting at 1% (which I think really means 0%, since that what it started at).

Yeah. It is especially odd since the older v12 worked fine except for the high fees. Not sure what is going on.

Anyway will run overnight to see if it mixes.
 
Same here :-(
8 hrs running .16.15 and still sitting at 1% (which I think really means 0%, since that what it started at).
Look at your coin control. Are your coins put into denomations in powers of 2 (1024, 512, 256, 128, 64, 32, 16, 8, 4, 2)? If so, you'll want to select all and send to a fresh address in the wallet. Not sure why it is doing that but it would never start when the coins were broken up like that.

Any idea on why this happens eduffield ? It has happened on multiple occasions for me.
 
Back
Top