Show Posts
|
Pages: [1]
|
No they are stil ban any crypt adv , if its not exhangers adv...
|
|
|
I try make altcoin bassed on old Litecoin sources, end i try to convert it for latest available sources. How i can do this ? What need for this ? I try simple download it on old wallet, then run new. But mine new or download them from other wallet no possible. I try find info how do this. But find noting. I have this error when trying download block's from peer's ERROR: AcceptBlockHeader: Consensus::ContextualCheckBlockHeader: 90e718e6878f4b7ae4de4ae83db75881d00ca017f5a117c2054798bcb76c4178, bad-version(0x00000002), rejected nVersion=0x00000002 block (code 17) 2017-07-28 04:12:10 ERROR: invalid header received 2017-07-28 04:12:10 ProcessMessages(headers, 162003 bytes) FAILED peer=0 2017-07-28 04:12:10 receive version message: /Satoshi:1.0.0/: version 70002, blocks=3293, us=x.x.x.x:12815, peer=1
in validator i have this settings // Check proof of work if (block.nBits != GetNextWorkRequired(pindexPrev, &block, consensusParams)) return state.DoS(100, false, REJECT_INVALID, "bad-diffbits", false, "incorrect proof of work"); // Check timestamp against prev if (block.GetBlockTime() <= pindexPrev->GetMedianTimePast()) return state.Invalid(false, REJECT_INVALID, "time-too-old", "block's timestamp is too early"); // Check timestamp if (block.GetBlockTime() > nAdjustedTime + 2 * 60 * 60) return state.Invalid(false, REJECT_INVALID, "time-too-new", "block timestamp too far in the future"); // Reject outdated version blocks when 95% (75% on testnet) of the network has upgraded: // check for version 2, 3 and 4 upgrades if((block.nVersion < 2 && nHeight >= consensusParams.BIP34Height) || (block.nVersion < 3 && nHeight >= consensusParams.BIP66Height) || (block.nVersion < 4 && nHeight >= consensusParams.BIP65Height)) return state.Invalid(false, REJECT_OBSOLETE, strprintf("bad-version(0x%08x)", block.nVersion), strprintf("rejected nVersion=0x%08x block", block.nVersion)); if (block.nVersion < VERSIONBITS_TOP_BITS && IsWitnessEnabled(pindexPrev, consensusParams)) return state.Invalid(false, REJECT_OBSOLETE, strprintf("bad-version(0x%08x)", block.nVersion), strprintf("rejected nVersion=0x%08x block", block.nVersion)); return true; }
in genesis block settings i have genesis = CreateGenesisBlock(1498204210, 215446, 0x1e0ffff0, 1, 500 * COIN);
but i have in old sources this setting // Check that the block chain matches the known block chain up to a checkpoint if (!Checkpoints::CheckBlock(nHeight, hash)) return state.DoS(100, error("AcceptBlock() : rejected by checkpoint lock-in at %d", nHeight)); // Don't accept any forks from the main chain prior to last checkpoint CBlockIndex* pcheckpoint = Checkpoints::GetLastCheckpoint(mapBlockIndex); if (pcheckpoint && nHeight < pcheckpoint->nHeight) return state.DoS(100, error("AcceptBlock() : forked chain older than last checkpoint (height %d)", nHeight)); // Reject block.nVersion=1 blocks (mainnet >= 710000, testnet >= 400000) if (nVersion < 2) { if ((!fTestNet && nHeight >= 710000) || (fTestNet && nHeight >= 400000)) { return state.Invalid(error("AcceptBlock() : rejected nVersion=1 block")); } } // Enforce block.nVersion=2 rule that the coinbase starts with serialized block height if (nVersion >= 2) { if ((!fTestNet && nHeight >= 710000) || (fTestNet && nHeight >= 400000)) { CScript expect = CScript() << nHeight; if (vtx[0].vin[0].scriptSig.size() < expect.size() || !std::equal(expect.begin(), expect.end(), vtx[0].vin[0].scriptSig.begin())) return state.DoS(100, error("AcceptBlock() : block height mismatch in coinbase")); } } }
|
|
|
list of base58prefixes , not hv this value end what is "1," what this meen ?
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,176);
|
|
|
consensus.powLimit = uint256S("00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); consensus.nRuleChangeActivationThreshold = 6048; // 75% of 8064 consensus.nMinerConfirmationWindow = 8064; // nPowTargetTimespan / nPowTargetSpacing * 4 consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008 consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
// Deployment of BIP68, BIP112, and BIP113. consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0; consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nStartTime = 1485561600; // January 28, 2017 consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nTimeout = 1517356801; // January 31st, 2018
// Deployment of SegWit (BIP141, BIP143, and BIP147) consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].bit = 1; consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nStartTime = 1485561600; // January 28, 2017 consensus.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nTimeout = 1517356801; // January 31st, 2018
// The best chain should have at least this much work. consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000006805c7318ce2736c0");
// By default assume that the signatures in ancestors of this block are valid. consensus.defaultAssumeValid = uint256S("0x1673fa904a93848eca83d5ca82c7af974511a7e640e22edc2976420744f2e56a"); //1155631
What do these parameters and what put in there. I try find any info about this parameter's but dint find. I update the altcoin from old sources to new, but stuck on this segwit params.
|
|
|
How possible fix adjustment atack ? the sample of pow code used on altcoin ( scrypt coin based on old sources of litecoin) main.cpp int64 static GetBlockValue(int nHeight, int64 nFees) { int64 nSubsidy = 500 * COIN;
if(nHeight == 1) { nSubsidy = 160000000 * COIN; }
// Subsidy is cut in half every 840000 blocks nSubsidy >>= (nHeight / 840000);
return nSubsidy + nFees; }
static const int64 nTargetTimespan = 10 * 60; static const int64 nTargetSpacing = 5 * 60; static const int64 nInterval = nTargetTimespan / nTargetSpacing;
// // minimum amount of work that could possibly be required nTime after // minimum work required was nBase // unsigned int ComputeMinWork(unsigned int nBase, int64 nTime) { // Testnet has min-difficulty blocks // after nTargetSpacing*2 time between blocks: if (fTestNet && nTime > nTargetSpacing*2) return bnProofOfWorkLimit.GetCompact();
CBigNum bnResult; bnResult.SetCompact(nBase); while (nTime > 0 && bnResult < bnProofOfWorkLimit) { // Maximum 400% adjustment... bnResult *= 4; // ... in best-case exactly 4-times-normal target time nTime -= nTargetTimespan*4; } if (bnResult > bnProofOfWorkLimit) bnResult = bnProofOfWorkLimit; return bnResult.GetCompact(); }
unsigned int static GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock) { unsigned int nProofOfWorkLimit = bnProofOfWorkLimit.GetCompact();
// Genesis block if (pindexLast == NULL) return nProofOfWorkLimit;
// Only change once per interval if ((pindexLast->nHeight+1) % nInterval != 0) { // Special difficulty rule for testnet: if (fTestNet) { // If the new block's timestamp is more than 2* 10 minutes // then allow mining of a min-difficulty block. if (pblock->nTime > pindexLast->nTime + nTargetSpacing*2) return nProofOfWorkLimit; else { // Return the last non-special-min-difficulty-rules-block const CBlockIndex* pindex = pindexLast; while (pindex->pprev && pindex->nHeight % nInterval != 0 && pindex->nBits == nProofOfWorkLimit) pindex = pindex->pprev; return pindex->nBits; } }
return pindexLast->nBits; }
// LiteBitcoin: This fixes an issue where a 51% attack can change difficulty at will. // Go back the full period unless it's the first retarget after genesis. Code courtesy of Art Forz int blockstogoback = nInterval-1; if ((pindexLast->nHeight+1) != nInterval) blockstogoback = nInterval;
// Go back by what we want to be 14 days worth of blocks const CBlockIndex* pindexFirst = pindexLast; for (int i = 0; pindexFirst && i < blockstogoback; i++) pindexFirst = pindexFirst->pprev; assert(pindexFirst);
// Limit adjustment step int64 nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); printf(" nActualTimespan = %"PRI64d" before bounds\n", nActualTimespan); if (nActualTimespan < nTargetTimespan/4) nActualTimespan = nTargetTimespan/4; if (nActualTimespan > nTargetTimespan*4) nActualTimespan = nTargetTimespan*4;
// Retarget CBigNum bnNew; bnNew.SetCompact(pindexLast->nBits); bnNew *= nActualTimespan; bnNew /= nTargetTimespan;
if (bnNew > bnProofOfWorkLimit) bnNew = bnProofOfWorkLimit;
/// debug print printf("GetNextWorkRequired RETARGET\n"); printf("nTargetTimespan = %"PRI64d" nActualTimespan = %"PRI64d"\n", nTargetTimespan, nActualTimespan); printf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString().c_str()); printf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString().c_str());
return bnNew.GetCompact(); }
bool CheckProofOfWork(uint256 hash, unsigned int nBits) { CBigNum bnTarget; bnTarget.SetCompact(nBits);
// Check range if (bnTarget <= 0 || bnTarget > bnProofOfWorkLimit) return error("CheckProofOfWork() : nBits below minimum work");
// Check proof of work matches claimed amount if (hash > bnTarget.getuint256()) return error("CheckProofOfWork() : hash doesn't match nBits");
return true; }
// Return maximum amount of blocks that other nodes claim to have int GetNumBlocksOfPeers() { return std::max(cPeerBlockCounts.median(), Checkpoints::GetTotalBlocksEstimate()); }
|
|
|
одним словом без годного гчс не 1 крипто алг не может называется стойким. Щас все коины работают на принципе предсказуемости , а тут замена на хаотичность. Устройства созданные для майнинга применимы в любой криптографии для получения случайности. Майнить можно на всем что шумит случайностью (белым шумом) ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) Так то фактически пользы тут больше выходит чем от щелканья хешей и нагревания. + не нужно превращать квартиру в духовку при майнинге. В любом случае это пока что всего лишь идея , что с этого получится я не знаю. Но в теории возможно сделать крипту на основе рандома даже стойкой к квантовым вычислениям.
|
|
|
Возникла у меня идея так ради эксперимента реализовать альт коин но не простой а на основе рандома и его энтропии.
Идея из черновика как это должно выглядеть. У нас есть рандомные данные с высокой энтропией на основе них мы генерируем хеш блока и проверяем этот же хеш на энтропию и снова проверяем самим уже блокчейном энтропию хеша , если она попадает под наши нормы - майнер получает награду. Сложность же заключает в количестве рандомной даты с хорошей энтропией на вход ( её нужно будет больше когда сложность будет расти ) как её майнить ? Берем dev/random , звуковую, радио, все что шумит рнд и майним + устройства в отличии от тех же асиков при высокой сложности применимы для криптографии.
Вероятно такое уже было и я не нашел .
Прошу советов, критики , и идей.
|
|
|
имеются паблик кеи spork.h class CSporkManager { private: std::vector<unsigned char> vchSig;
std::string strMasterPrivKey; std::string strTestPubKey; std::string strMainPubKey;
public:
CSporkManager() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; }
std::string GetSporkNameByID(int id); int GetSporkIDByName(std::string strName); bool UpdateSpork(int nSporkID, int64_t nValue); bool SetPrivKey(std::string strPrivKey); bool CheckSignature(CSporkMessage& spork); bool Sign(CSporkMessage& spork); void Relay(CSporkMessage& msg);
};
вопрос в том куда импортировать секретные ключи . Что бы менеджер spork заработал . И вобщем то как вызвать спорк менджер . Также вопрос на что влияет этот параметр #define SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT 1424217600 //2015-2-18 #define SPORK_2_INSTANTX_DEFAULT 978307200 //2001-1-1 #define SPORK_3_INSTANTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18 #define SPORK_5_MAX_VALUE_DEFAULT 1000 //1000 DASH #define SPORK_7_MASTERNODE_SCANNING_DEFAULT 978307200 //2001-1-1 и еще вопрос по мастернодам . как я заметил в мастер нодах есть такая вот строчка в masternode.h public:
CMasternodePayments() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; enabled = false; }
bool SetPrivKey(std::string strPrivKey); bool CheckSignature(CMasternodePaymentWinner& winner); bool Sign(CMasternodePaymentWinner& winner); и паблик ключи совпадают , есть мысль что для работы spork , нужно подымать мастер ноду с секретным ключем на котором будет основан данный паблик кей. Прошу помощи разобраться .
|
|
|
имеются паблик кеи class CSporkManager { private: std::vector<unsigned char> vchSig;
std::string strMasterPrivKey; std::string strTestPubKey; std::string strMainPubKey;
public:
CSporkManager() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; }
std::string GetSporkNameByID(int id); int GetSporkIDByName(std::string strName); bool UpdateSpork(int nSporkID, int64_t nValue); bool SetPrivKey(std::string strPrivKey); bool CheckSignature(CSporkMessage& spork); bool Sign(CSporkMessage& spork); void Relay(CSporkMessage& msg);
};
вопрос в том куда импортировать секретные ключи . Что бы менеджер spork заработал . И вобщем то как вызвать спорк менджер . Также вопрос на что влияет этот параметр #define SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT 1424217600 //2015-2-18 #define SPORK_2_INSTANTX_DEFAULT 978307200 //2001-1-1 #define SPORK_3_INSTANTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18 #define SPORK_5_MAX_VALUE_DEFAULT 1000 //1000 DASH #define SPORK_7_MASTERNODE_SCANNING_DEFAULT 978307200 //2001-1-1 и еще вопрос по мастернодам . как я заметил в мастер нодах есть такая вот строчка в masternode.h public:
CMasternodePayments() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; enabled = false; }
bool SetPrivKey(std::string strPrivKey); bool CheckSignature(CMasternodePaymentWinner& winner); bool Sign(CMasternodePaymentWinner& winner); и паблик ключи совпадают , есть мысль что для работы spork , нужно подымать мастер ноду с секретным ключем на котором будет основан данный паблик кей. Прошу помощи разобраться .
|
|
|
I see the pubkey class CSporkManager { private: std::vector<unsigned char> vchSig;
std::string strMasterPrivKey; std::string strTestPubKey; std::string strMainPubKey;
public:
CSporkManager() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e"; }
std::string GetSporkNameByID(int id); int GetSporkIDByName(std::string strName); bool UpdateSpork(int nSporkID, int64_t nValue); bool SetPrivKey(std::string strPrivKey); bool CheckSignature(CSporkMessage& spork); bool Sign(CSporkMessage& spork); void Relay(CSporkMessage& msg);
}; but where import the privkey, end how call sporkmanager . 13:55:00  spork
13:55:00  spork <name> [<value>] <name> is the corresponding spork name, or 'show' to show all current spork settings<value> is a epoch datetime to enable or disable spork (code -1)
13:56:18  spork SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT
13:56:18  spork <name> [<value>] <name> is the corresponding spork name, or 'show' to show all current spork settings<value> is a epoch datetime to enable or disable spork (code -1)
13:56:24  spork SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT 1
13:56:24  Invalid spork name
13:56:53  spork SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT [1]
13:56:53  Error: value is type array, expected int
13:57:01  spork SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT 1
13:57:01  Invalid spork name
13:57:21  spork SPORK_7_MASTERNODE_SCANNING 1
13:57:21  failure
13:57:26  spork SPORK_7_MASTERNODE_SCANNING [1]
13:57:26  Error: value is type array, expected int
13:57:36  spork SPORK_7_MASTERNODE_SCANNING [2]
13:57:36  Error: value is type array, expected int
13:57:39  spork SPORK_7_MASTERNODE_SCANNING [24242141]
13:57:39  Error: value is type array, expected int
13:58:49  spork settings 1
13:58:49  Invalid spork name
13:59:04  spork settings <1>
13:59:04  Error: Error parsing JSON:<1>
13:59:08  spork settings <2>
13:59:08  Error: Error parsing JSON:<2>
13:59:21  spork SPORK_7_MASTERNODE_SCANNING [<24242141>]
13:59:21  Error: Error parsing JSON:[<24242141>]
13:59:26  spork SPORK_7_MASTERNODE_SCANNING [<1>]
13:59:26  Error: Error parsing JSON:[<1>]
13:59:28  spork SPORK_7_MASTERNODE_SCANNING [<2>]
13:59:28  Error: Error parsing JSON:[<2>]
13:59:37  spork SPORK_7_MASTERNODE_SCANNING [<key>]
13:59:37  Error: Error parsing JSON:[<key>]
13:59:40  spork SPORK_7_MASTERNODE_SCANNING [key]
13:59:40  Error: Error parsing JSON:[key]
13:59:46  spork SPORK_7_MASTERNODE_SCANNING [5435234545345234534534534534]
13:59:46  Error: Error parsing JSON:[5435234545345234534534534534]
end what is this ? what this do ? #define SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT 1424217600 //2015-2-18 #define SPORK_2_INSTANTX_DEFAULT 978307200 //2001-1-1 #define SPORK_3_INSTANTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18 #define SPORK_5_MAX_VALUE_DEFAULT 1000 //1000 DASH #define SPORK_7_MASTERNODE_SCANNING_DEFAULT 978307200 //2001-1-1
|
|
|
help me about hash key's whit what gen them ? end say me what i forgot to change for make success worked alt coin of Dash. Spork.h CSporkManager() { strMainPubKey = "04549ac134f694c0243f503e8c8a9a986f5de6610049c40b07816809b0d1d06a21b07be27b9bb555931773f62ba6cf35a25fd52f694d4e1106ccd237a7bb899fdd"; strTestPubKey = "046f78dcf911fbd61910136f7f0f8d90578f68d0b3ac973b5040fb7afb501b5939f39b108b0569dca71488f5bbf498d92e4d1194f6f941307ffd95f75e76869f0e";
maim.cpp // Do not allow blocks that contain transactions which 'overwrite' older transactions, // unless those are already completely spent. // If such overwrites are allowed, coinbases and transactions depending upon those // can be duplicated to remove the ability to spend the first instance -- even after // being sent to another address. // See BIP30 and http://r6.ca/blog/20120206T005236Z.html for more information. // This logic is not necessary for memory pool transactions, as AcceptToMemoryPool // already refuses previously-known transaction ids entirely. // This rule was originally applied all blocks whose timestamp was after March 15, 2012, 0:00 UTC. // Now that the whole chain is irreversibly beyond that time it is applied to all blocks except the // two in the chain that violate it. This prevents exploiting the issue against nodes in their // initial block download. bool fEnforceBIP30 = (!pindex->phashBlock) || // Enforce on CreateNewBlock invocations which don't have a hash. !((pindex->nHeight==91842 && pindex->GetBlockHash() == uint256("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) || (pindex->nHeight==91880 && pindex->GetBlockHash() == uint256("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721"))); if (fEnforceBIP30) { for (unsigned int i = 0; i < block.vtx.size(); i++) { uint256 hash = block.GetTxHash(i); if (view.HaveCoins(hash) && !view.GetCoins(hash).IsPruned()) return state.DoS(100, error("ConnectBlock() : tried to overwrite transaction"), REJECT_INVALID, "bad-txns-BIP30"); chainparams.ccp vAlertPubKey = ParseHex("04517d8a699cb43d3938d7b24faaff7cda448ca4ea267723ba614784de661949bf632d6304316b244646dea079735b9a6fc4af804efb4752075b9fe2245e14e412"); nDefaultPort = 19999; nRPCPort = 19998; strDataDir = "testnet3";
// Modify the testnet genesis block so the timestamp is valid for a later start. genesis.nTime = 1390666206; genesis.nNonce = 3861367235;
hashGenesisBlock = genesis.GetHash(); assert(hashGenesisBlock == uint256("0x00000bafbc94add76cb75e2ec92894837288a481e5c005f6563d91623bf8bc2c"));
class CRegTestParams : public CTestNetParams {
public: CRegTestParams() { pchMessageStart[0] = 0xfc; pchMessageStart[1] = 0xc1; pchMessageStart[2] = 0xb7; pchMessageStart[3] = 0xdc; nSubsidyHalvingInterval = 150; bnProofOfWorkLimit = CBigNum(~uint256(0) >> 1); genesis.nTime = 1417713337; genesis.nBits = 0x207fffff; genesis.nNonce = 1096447; nDefaultPort = 19994; strDataDir = "regtest";
hashGenesisBlock = genesis.GetHash(); assert(hashGenesisBlock == uint256("0x000008ca1832a4baf228eb1553c03d3a2c8e02399550dd6ea8d65cec3ef23d2e"));
i try find info but find only about scrypt coin's http://devtome.com/doku.php?id=scrypt_altcoin_cloning_guide , end they hv diff about changing params on source.
|
|
|
Help please how to compile any coin on windows or on linux cross compule to win i try find info , but all indo is not correct end i hv error on compile. Pleasr help with working method ![Sad](https://bitcointalk.org/Smileys/default/sad.gif) End please do not say anyting if tou do not try what you say !
|
|
|
|