|
February 13, 2016, 09:58:55 AM |
|
I decided to check some old good coins, started from UCoin. Good, as expected.
CTransaction::FetchInputs Good shrmcoin ProcessMessage Most similar NEBUCHADNEZZAR, diff=10, codehash=7acf425f6f4df6d83c7b; Manually inspected, Good CMerkleTx::GetBlocksToMaturity Good arch SendMessages Good NEBUCHADNEZZAR CheckProofOfWork Good arch GetNextTargetRequired Most similar arch, diff=3, codehash=52923f0e242d7d094946; Manually inspected, Good CBlock::AcceptBlock Most similar NEBUCHADNEZZAR, diff=6, codehash=733005b0dcf1db502dd9; Manually inspected, Good CBlock::SignBlock Good shrmcoin GetTransaction Good shrmcoin ComputeMinStake Good arch CTransaction::DisconnectInputs Good blackcoin arch ProcessBlock Good shrmcoin CBlockIndex::IsSuperMajority Good dash blackcoin arch CTransaction::GetValueIn Good blackcoin arch ComputeMinWork Good arch CTransaction::CheckTransaction Good blackcoin arch CWalletTx::AcceptWalletTransaction Good blackcoin arch CTransaction::ConnectInputs Good arch CBlock::CheckBlock Most similar shrmcoin, diff=2, codehash=c08c017b2233239318a9; Manually inspected, Good CMerkleTx::AcceptToMemoryPool Good shrmcoin CBlock::SetBestChainInner Good blackcoin arch CBlockIndex::GetBlockTrust Good blackcoin arch ProcessMessages Good NEBUCHADNEZZAR CBlock::CheckBlockSignature Good arch CTxOut CTransaction::GetOutputFor Good blackcoin arch CBlock::ConnectBlock Good shrmcoin Not found funcs ['AcceptToMemoryPool', 'GetProofOfStakeLimit'] GetProofOfWorkReward Manually checked Good GetProofOfStakeReward Manually checked Good
What is this? And how to read this info? As you know, most of the coins have very similar code bases. But any little bug could potentialy damage the whole blockchain. To avoid this, people started to check the code both manually and automatically. As I know ocminer automatically checks code for already known bugs, so his checks couldn't find new bugs. Earlz checks code manually, but he also could miss something, because codebase is very huge. I chose different way. I wrote the script which compare code in one coin with code in other already inspected coins. So if you see something like "Good blackcoin arch " it means that i already inspected this code before in blackcoin's and arch's source, and I think that it's safe. When my script finds new code it asks me to check it manually and tells me which codebases is most similar, so 'CBlock::ConnectBlock Most similar blackcoin, diff=5, codehash=1a0a6fb0d9bc6aefff4e' means that most similar code of CBlock::ConnectBlock have seen in blackcoin and there is 5 places where something was changed. Currently i check only most important functions in main.cpp.
|