sd
|
|
October 15, 2011, 03:35:31 PM |
|
Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.
You know that time you were looking for evidence of your own lies? Well look above and you will find a whopper.
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
October 15, 2011, 03:35:45 PM |
|
Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.
The funny thing is that a scam of any kind always includes language like this. The need for immediacy is important. Convince people they have so much to lose by not acting to force an action. So you say ScamCoin 2.0 isn't a scam yet you keep it as closed source and then use scam baiting language in your communications. The use of sock puppets to create a "consensus" among multiple "people" (all yourself) that it can be trusted is just icing on the cake.
|
|
|
|
CoinHunter
|
|
October 15, 2011, 03:38:38 PM |
|
Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.
The funny thing is that a scam of any kind always includes language like this. The need for immediacy is important. Convince people they have so much to lose by not acting to force an action. So you say ScamCoin 2.0 isn't a scam yet you keep it as closed source and then use scam baiting language in your communications. The use of sock puppets to create a "consensus" among multiple "people" (all yourself) that it can be trusted is just icing on the cake. You're a bit jealous aren't you. Have you seen the new client? It has mining built right into it, now everyone can just easily mine SolidCoin's and become part of the network. It's probably why the network is so large now. Let me show you what actual development looks like. Neat eh.
|
|
|
|
sd
|
|
October 15, 2011, 03:42:21 PM |
|
You're a bit jealous aren't you. Have you seen the new client? It has mining built right into it, now everyone can just easily mine SolidCoin's and become part of the network. It's probably why the network is so large now. Let me show you what actual development looks like.
Neat eh.
We are a little more interested in how the thing functions than how pretty the client is. Only that lemon party moron would trust your secret network because of Oh! Look! Shiny!
|
|
|
|
CoinHunter
|
|
October 15, 2011, 03:45:49 PM |
|
We are a little more interested in how the thing functions than how pretty the client is. Only that lemon party moron would trust your secret network because of Oh! Look! Shiny! I understand that, but part of the problem of cryptocurrencies to this point is their complete lack of usability. So it's important to make things easy to use for everyone, combined with like you said, having a secure and fast network protocol. Being able to just install and be 2 clicks from making or sending SolidCoin's is obviously a big deal to a lot of people, don't gloss over it.
|
|
|
|
MaGNeT
Legendary
Offline
Activity: 1526
Merit: 1002
Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na
|
|
October 15, 2011, 03:48:46 PM |
|
People look out, I have heard there is a keylogger/wallet-stealer in the SC2 client!
|
|
|
|
sd
|
|
October 15, 2011, 03:53:27 PM |
|
I understand that, but part of the problem of cryptocurencies to this point is their complete lack of usability.
And you have fixed that by making bigger problems. Wonderful! Now the biggest problem with SolidCoin isn't the lack of usability but the unstable network design, the tax, and the 12 million premined coins. That's real progress! You took a peer to peer network, centralized it, and added tax, broke the transaction fee setup, and got your blockchain dosed in the process. You are a moron and could be easily replaced with the bottom grade of code money from Infosys or Wipro.
|
|
|
|
sd
|
|
October 15, 2011, 03:55:56 PM |
|
People look out, I have heard there is a keylogger/wallet-stealer in the SC2 client!
Hang on, I'll check the source. Oh I can't because I don't have it. Maybe you are right and this whole SolidCoin thing is an excuse to get code on people's machines to steal wallet.dat's.
|
|
|
|
CoinHunter
|
|
October 15, 2011, 03:56:20 PM |
|
I understand that, but part of the problem of cryptocurencies to this point is their complete lack of usability.
And you have fixed that by making bigger problems. Wonderful! Now the biggest problem with SolidCoin isn't the lack of usability but the unstable network design, the tax, and the 12 million premined coins. That's real progress! You took a peer to peer network, centralized it, and added tax, broke the transaction fee setup, and got your blockchain dosed in the process. You are a moron and could be easily replaced with the bottom grade of code money from Infosys or Wipro. The 12 million coins cannot be used on the network, the CPF or tax yes some people won't like it. I didn't centralize SolidCoin much at all, it's 5% economic centralized, the network is still very decentralized because I believe that is the most secure way to protect against large corporations and governments. Unlike you I'm not living in a fantasy land where I don't understand the problems and inefficiencies with this technology. As you can see, the new mining options in SolidCoin show parts of the new block header format and the ability for SolidCoin v2.0 to act as a minipool.
|
|
|
|
sd
|
|
October 15, 2011, 04:05:18 PM |
|
The 12 million coins cannot be used on the network, the CPF or tax yes some people won't like it. I didn't centralize SolidCoin much at all, it's 5% economic centralized, the network is still very decentralized because I believe that is the most secure way to protect against large corporations and governments. Unlike you I'm not living in a fantasy land where I don't understand the problems and inefficiencies with this technology.
You want people to take your word that there are 12 million magic coins that can't be spent in your network? Maybe there are 12 Googolplex coins and maybe they can all be spent by you. We only have your word that they can't be spent because you won't release the source code. And in case you have not got the message we don't trust your word over the facts in the source code. It seems pretty likely there are all kinds of other nasty surprises in there. You don't seem to know what you are doing and posting pretty graphics isn't going to change that.
|
|
|
|
sd
|
|
October 15, 2011, 04:12:07 PM |
|
As you can see, the new mining options in SolidCoin show parts of the new block header format and the ability for SolidCoin v2.0 to act as a minipool.
|
|
|
|
CoinHunter
|
|
October 15, 2011, 05:09:45 PM |
|
This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated. bool CTransaction::ConnectInputs(CTxDB& txdb, std::map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx,CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, bool bTrustedTX) { // Take over previous transactions' spent pointers if (!IsCoinBase()) { int64 nValueIn = 0; for (int i = 0; i < vin.size(); i++) { COutPoint prevout = vin[i].prevout; printf("connect inputs prevout: "); prevout.print();
// Read txindex CTxIndex txindex; bool fFound = true; if ((fBlock || fMiner) && mapTestPool.count(prevout.hash)) { txindex = mapTestPool[prevout.hash]; // Get txindex from current proposed changes } else { fFound = txdb.ReadTxIndex(prevout.hash, txindex); // Read txindex from txdb } if (!fFound && (fBlock || fMiner)) return fMiner ? false : error("ConnectInputs() : %s prev tx %s index entry not found", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str());
// Read txPrev CTransaction txPrev; if (!fFound || txindex.pos == CDiskTxPos(1,1,1)) { // Get prev tx from single transactions in memory { MUTEX_LOCK(cs_mapTransactions); if (!mapTransactions.count(prevout.hash)) return error("ConnectInputs() : %s mapTransactions prev not found %s", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str()); txPrev = mapTransactions[prevout.hash]; } if (!fFound) txindex.vSpent.resize(txPrev.vout.size()); } else { // Get prev tx from disk if (!txPrev.ReadFromDisk(txindex.pos)) return error("ConnectInputs() : %s ReadFromDisk prev tx %s failed", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str()); }
if (prevout.n >= txPrev.vout.size() || prevout.n >= txindex.vSpent.size()) return error("ConnectInputs() : %s prevout.n out of range %d %d %d prev tx %s\n%s", GetHash().ToString().substr(0,10).c_str(), prevout.n, txPrev.vout.size(), txindex.vSpent.size(), prevout.hash.ToString().substr(0,10).c_str(), txPrev.ToString().c_str());
if(bTrustedTX) { if(!::IsStandard(txPrev.vout[prevout.n].scriptPubKey)) return error("ConnectInputs() : trusted tx isnt standard"); if(txPrev.vout[prevout.n].nValue<(TRUST_FUND_AMOUNT*COIN)) return error("ConnectInputs() : not enough SC for a trusted block"); if(txPrev.vout[prevout.n].scriptPubKey != vout[0].scriptPubKey) return error("ConnectInputs() : trusted tx pubkey does not match previous"); int64 valDiff = txPrev.vout[prevout.n].nValue-vout[0].nValue; int64 blockValue = Block_GetCoinBaseValue(pindexBlock->blk.dwBits, pindexBlock->blk.nBlockNum); if(valDiff<blockValue) return error("ConnectInputs() : trusted tx payment less than CPF"); } else { CSolidCoinAddress addr=txPrev.vout[prevout.n].scriptPubKey.GetSolidCoinAddress(); if(addr.IsValid()) { for(int x=0;x<TRUST_FUND_NUM;x++) { if(g_TrustPubKeysHash[x]==addr) { return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",addr.ToString().c_str()); } } } else { std::string txstr = txPrev.vout[prevout.n].scriptPubKey.ToString(); for(int x=0;x<TRUST_FUND_NUM;x++) { if(txstr.find(g_TrustPubKeys[x])!=std::string::npos) { return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",txstr.c_str()); } } } }
// If prev is coinbase, check that it's matured if (txPrev.IsCoinBase()) { bool bTrusted=false;
if(pindexBlock->blk.nBlockNum<=COINBASE_MATURITY) { for(int x=0;x<TRUST_FUND_NUM;x++) { if(txPrev.vout[0].scriptPubKey==g_TrustedScript[x]) { bTrusted=true; break; } } if(txPrev.vout[0].scriptPubKey==g_GenScript) bTrusted=true; } if(!bTrusted) { for (CBlockIndex* pindex = pindexBlock; pindex && pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum < COINBASE_MATURITY; pindex = pindex->pprev) if (pindex->nBlockPos == txindex.pos.nBlockPos && pindex->nFile == txindex.pos.nFile) return error("ConnectInputs() : tried to spend coinbase at depth %"PRI64d"", pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum); } }
if (!VerifySignature(txPrev, *this, i)) return error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str());
// Check for conflicts if (!txindex.vSpent[prevout.n].IsNull()) return fMiner ? false : error("ConnectInputs() : %s prev tx already used at %s", GetHash().ToString().substr(0,10).c_str(), txindex.vSpent[prevout.n].ToString().c_str());
// Check for negative or overflow input values nValueIn += txPrev.vout[prevout.n].nValue; if (txPrev.vout[prevout.n].nValue<=0 || nValueIn<=0) return error("ConnectInputs() : txin values out of range");
txindex.vSpent[prevout.n] = posThisTx; // Mark outpoints as spent
// Write back if (fBlock || fMiner) { mapTestPool[prevout.hash] = txindex; } }
if (nValueIn < GetValueOut()) return error("ConnectInputs() : %s value in < value out", GetHash().ToString().substr(0,10).c_str());
// Tally transaction fees int64 nTxFee = nValueIn - GetValueOut(); if (nTxFee < 0) return error("ConnectInputs() : %s nTxFee < 0", GetHash().ToString().substr(0,10).c_str()); if (nTxFee < GetMinFee()) return false; nFees += nTxFee; if (nFees<=0) return error("ConnectInputs() : nFees out of range"); }
if (fBlock) { // Add transaction to changes mapTestPool[GetHash()] = CTxIndex(posThisTx, vout.size()); } else if (fMiner) { // Add transaction to test pool mapTestPool[GetHash()] = CTxIndex(CDiskTxPos(1,1,1), vout.size()); }
return true; }
|
|
|
|
BitcoinPorn
|
|
October 15, 2011, 05:11:25 PM |
|
The built in GUI miner with pool choices would be huge for any coin that took the time out to ensure they implement that, well done design choice.
|
|
|
|
johnj
|
|
October 15, 2011, 05:11:50 PM |
|
CH, that code means nothing - whos to say you didn't just write that crap up just now?
Secondly, CryptoX already called you out for adding Kens name w/o consultation. And BitcoinMedia.
Fail troll is fail.
|
1AeW7QK59HvEJwiyMztFH1ubWPSLLKx5ym TradeHill Referral TH-R120549
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
October 15, 2011, 05:14:06 PM |
|
This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated. bool CTransaction::ConnectInputs(CTxDB& txdb, std::map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx,CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, bool bTrustedTX) { // Take over previous transactions' spent pointers if (!IsCoinBase()) { int64 nValueIn = 0; for (int i = 0; i < vin.size(); i++) { COutPoint prevout = vin[i].prevout; printf("connect inputs prevout: "); prevout.print();
// Read txindex CTxIndex txindex; bool fFound = true; if ((fBlock || fMiner) && mapTestPool.count(prevout.hash)) { txindex = mapTestPool[prevout.hash]; // Get txindex from current proposed changes } else { fFound = txdb.ReadTxIndex(prevout.hash, txindex); // Read txindex from txdb } if (!fFound && (fBlock || fMiner)) return fMiner ? false : error("ConnectInputs() : %s prev tx %s index entry not found", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str());
// Read txPrev CTransaction txPrev; if (!fFound || txindex.pos == CDiskTxPos(1,1,1)) { // Get prev tx from single transactions in memory { MUTEX_LOCK(cs_mapTransactions); if (!mapTransactions.count(prevout.hash)) return error("ConnectInputs() : %s mapTransactions prev not found %s", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str()); txPrev = mapTransactions[prevout.hash]; } if (!fFound) txindex.vSpent.resize(txPrev.vout.size()); } else { // Get prev tx from disk if (!txPrev.ReadFromDisk(txindex.pos)) return error("ConnectInputs() : %s ReadFromDisk prev tx %s failed", GetHash().ToString().substr(0,10).c_str(), prevout.hash.ToString().substr(0,10).c_str()); }
if (prevout.n >= txPrev.vout.size() || prevout.n >= txindex.vSpent.size()) return error("ConnectInputs() : %s prevout.n out of range %d %d %d prev tx %s\n%s", GetHash().ToString().substr(0,10).c_str(), prevout.n, txPrev.vout.size(), txindex.vSpent.size(), prevout.hash.ToString().substr(0,10).c_str(), txPrev.ToString().c_str());
if(bTrustedTX) { if(!::IsStandard(txPrev.vout[prevout.n].scriptPubKey)) return error("ConnectInputs() : trusted tx isnt standard"); if(txPrev.vout[prevout.n].nValue<(TRUST_FUND_AMOUNT*COIN)) return error("ConnectInputs() : not enough SC for a trusted block"); if(txPrev.vout[prevout.n].scriptPubKey != vout[0].scriptPubKey) return error("ConnectInputs() : trusted tx pubkey does not match previous"); int64 valDiff = txPrev.vout[prevout.n].nValue-vout[0].nValue; int64 blockValue = Block_GetCoinBaseValue(pindexBlock->blk.dwBits, pindexBlock->blk.nBlockNum); if(valDiff<blockValue) return error("ConnectInputs() : trusted tx payment less than CPF"); } else { CSolidCoinAddress addr=txPrev.vout[prevout.n].scriptPubKey.GetSolidCoinAddress(); if(addr.IsValid()) { for(int x=0;x<TRUST_FUND_NUM;x++) { if(g_TrustPubKeysHash[x]==addr) { return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",addr.ToString().c_str()); } } } else { std::string txstr = txPrev.vout[prevout.n].scriptPubKey.ToString(); for(int x=0;x<TRUST_FUND_NUM;x++) { if(txstr.find(g_TrustPubKeys[x])!=std::string::npos) { return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",txstr.c_str()); } } } }
// If prev is coinbase, check that it's matured if (txPrev.IsCoinBase()) { bool bTrusted=false;
if(pindexBlock->blk.nBlockNum<=COINBASE_MATURITY) { for(int x=0;x<TRUST_FUND_NUM;x++) { if(txPrev.vout[0].scriptPubKey==g_TrustedScript[x]) { bTrusted=true; break; } } if(txPrev.vout[0].scriptPubKey==g_GenScript) bTrusted=true; } if(!bTrusted) { for (CBlockIndex* pindex = pindexBlock; pindex && pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum < COINBASE_MATURITY; pindex = pindex->pprev) if (pindex->nBlockPos == txindex.pos.nBlockPos && pindex->nFile == txindex.pos.nFile) return error("ConnectInputs() : tried to spend coinbase at depth %"PRI64d"", pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum); } }
if (!VerifySignature(txPrev, *this, i)) return error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str());
// Check for conflicts if (!txindex.vSpent[prevout.n].IsNull()) return fMiner ? false : error("ConnectInputs() : %s prev tx already used at %s", GetHash().ToString().substr(0,10).c_str(), txindex.vSpent[prevout.n].ToString().c_str());
// Check for negative or overflow input values nValueIn += txPrev.vout[prevout.n].nValue; if (txPrev.vout[prevout.n].nValue<=0 || nValueIn<=0) return error("ConnectInputs() : txin values out of range");
txindex.vSpent[prevout.n] = posThisTx; // Mark outpoints as spent
// Write back if (fBlock || fMiner) { mapTestPool[prevout.hash] = txindex; } }
if (nValueIn < GetValueOut()) return error("ConnectInputs() : %s value in < value out", GetHash().ToString().substr(0,10).c_str());
// Tally transaction fees int64 nTxFee = nValueIn - GetValueOut(); if (nTxFee < 0) return error("ConnectInputs() : %s nTxFee < 0", GetHash().ToString().substr(0,10).c_str()); if (nTxFee < GetMinFee()) return false; nFees += nTxFee; if (nFees<=0) return error("ConnectInputs() : nFees out of range"); }
if (fBlock) { // Add transaction to changes mapTestPool[GetHash()] = CTxIndex(posThisTx, vout.size()); } else if (fMiner) { // Add transaction to test pool mapTestPool[GetHash()] = CTxIndex(CDiskTxPos(1,1,1), vout.size()); }
return true; }
Which means nothing. That may not even be the source code that is running. Still even if we TRUST (once again that implicit trust thing) you it still means nothing, Trust Node -> Spend (this has been blocked) Tust Node -> Coinhunter wealth transfer system (aka "even blocks) -> coinhunter's personal wallet -> Spend (this most certainly is not blocked) 10% of all coins mined end up in your personal wallet where they can be spent as you see fit. You can't obfuscate that away.
|
|
|
|
sd
|
|
October 15, 2011, 05:14:13 PM |
|
This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated.
How do we know that is the same code used in the SolidCoin client? We don't.
|
|
|
|
Clipse
|
|
October 15, 2011, 05:15:31 PM |
|
So then its settled, no point releasing the source if it would mean nothing right?
Cool.
|
...In the land of the stale, the man with one share is king... >> ClipseWe pay miners at 130% PPS | Signup here : Bonus PPS Pool (Please read OP to understand the current process)
|
|
|
sd
|
|
October 15, 2011, 05:19:20 PM |
|
So then its settled, no point releasing the source if it would mean nothing right?
Cool.
That doesn't make sense. If CH releases ALL the code, and we can compile it, and it runs as expected on his network, then we would at least be capable of checking it for nasties. Releasing small bits of code that may or may not be the code from the client doesn't prove a thing.
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
October 15, 2011, 05:22:18 PM |
|
So then its settled, no point releasing the source if it would mean nothing right?
Cool.
Are you brain damaged? Releasing the entire source code would allow someone to COMPILE that source code and be 100% sure what is running on their computer = source code. Releasing a snipet of code and saying "trust me this is what is running on your computer" = worthless.
|
|
|
|
MaGNeT
Legendary
Offline
Activity: 1526
Merit: 1002
Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na
|
|
October 15, 2011, 05:22:25 PM |
|
CoinHunter just released another piece of SC2 code: REFRAIN = ''' %d bottles of beer on the wall, %d bottles of beer, take one down, pass it around, %d bottles of beer on the wall! ''' bottles_of_beer = 99 while bottles_of_beer > 1: print REFRAIN % (bottles_of_beer, bottles_of_beer, bottles_of_beer - 1) bottles_of_beer -= 1
|
|
|
|
|