예제 #1
0
        static void PlayWithProofOfWork()
        {
            string text = "Marry had a little lamb";

            ProofOfWork.CalculateProofOfWork(text, 0);
            ProofOfWork.CalculateProofOfWork(text, 1);
            ProofOfWork.CalculateProofOfWork(text, 2);
            ProofOfWork.CalculateProofOfWork(text, 3);
            ProofOfWork.CalculateProofOfWork(text, 4);
            ProofOfWork.CalculateProofOfWork(text, 5);
        }
예제 #2
0
        static void Main(string[] args)
        {
            ProofOfWork pow0 = new ProofOfWork("Mary had a little lamb", 0);
            ProofOfWork pow1 = new ProofOfWork("Mary had a little lamb", 1);
            ProofOfWork pow2 = new ProofOfWork("Mary had a little lamb", 2);
            ProofOfWork pow3 = new ProofOfWork("Mary had a little lamb", 3);
            ProofOfWork pow4 = new ProofOfWork("Mary had a little lamb", 4);
            ProofOfWork pow5 = new ProofOfWork("Mary had a little lamb", 5);
            ProofOfWork pow6 = new ProofOfWork("Mary had a little lamb", 6);

            pow0.CalculateProofOfWork();
            pow1.CalculateProofOfWork();
            pow2.CalculateProofOfWork();
            pow3.CalculateProofOfWork();
            pow4.CalculateProofOfWork();
            pow5.CalculateProofOfWork();
            pow6.CalculateProofOfWork();
        }
예제 #3
0
        public void SetBlockHash(IMBlock parent)
        {
            if (parent != null)
            {
                PreviousBlockHash = parent.BlockHash;
                parent.NextBlock  = this;
            }
            else
            {
                PreviousBlockHash = null;
            }

            BuildMerkleTree();
            (Nonce, BlockHash) = ProofOfWork.CalculateProofOfWork(CalculateBlockHash(PreviousBlockHash), Difficulty);

            if (KeyStore != null)
            {
                BlockSignature = KeyStore.SignBlock(BlockHash);
            }
        }