X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=Novacoin%2FCBlock.cs;h=d80e68e81a7ae960e45df09dd72e0a3baec0f361;hb=1dcac5faa2b1477034f82466ffb16170fa2e9bb6;hp=8ac3caded8933593814873fe2fb04ee1bccfcc4d;hpb=886861c2656fd556145c7d46a2002c169dacc2f6;p=NovacoinLibrary.git diff --git a/Novacoin/CBlock.cs b/Novacoin/CBlock.cs index 8ac3cad..d80e68e 100644 --- a/Novacoin/CBlock.cs +++ b/Novacoin/CBlock.cs @@ -52,6 +52,11 @@ namespace Novacoin /// public const uint nMaxBlockSize = 1000000; + /// + /// Sanity threshold for amount of sigops. + /// + public const uint nMaxSigOps = 20000; + /// /// Block header. /// @@ -123,7 +128,7 @@ namespace Novacoin public bool CheckBlock(bool fCheckPOW = true, bool fCheckMerkleRoot = true, bool fCheckSig = true) { - var uniqueTX = new List(); // tx hashes + var uniqueTX = new List(); // tx hashes uint nSigOps = 0; // total sigops // Basic sanity checkings @@ -250,7 +255,7 @@ namespace Novacoin } // Reject block if validation would consume too much resources. - if (nSigOps > 50000) + if (nSigOps > nMaxSigOps) { return false; } @@ -264,7 +269,7 @@ namespace Novacoin return true; } - private bool CheckProofOfWork(ScryptHash256 hash, uint nBits) + private bool CheckProofOfWork(uint256 hash, uint nBits) { // TODO: stub! @@ -400,7 +405,7 @@ namespace Novacoin /// /// Merkle root /// - public Hash256 hashMerkleRoot + public uint256 hashMerkleRoot { get { @@ -408,7 +413,7 @@ namespace Novacoin foreach (var tx in vtx) { - merkleTree.AddRange(Hash256.ComputeRaw256(tx)); + merkleTree.AddRange(CryptoUtils.ComputeHash256(tx)); } int levelOffset = 0; @@ -421,12 +426,12 @@ namespace Novacoin var left = merkleTree.GetRange((levelOffset + nLeft) * 32, 32).ToArray(); var right = merkleTree.GetRange((levelOffset + nRight) * 32, 32).ToArray(); - merkleTree.AddRange(Hash256.ComputeRaw256(ref left, ref right)); + merkleTree.AddRange(CryptoUtils.ComputeHash256(ref left, ref right)); } levelOffset += nLevelSize; } - return (merkleTree.Count == 0) ? new Hash256() : new Hash256(merkleTree.GetRange(merkleTree.Count-32, 32).ToArray()); + return (merkleTree.Count == 0) ? 0 : (uint256)merkleTree.GetRange(merkleTree.Count-32, 32).ToArray(); } }