Esempio n. 1
0
        public void AuditTest()
        {
            // Build a tree, and given the root node and a leaf hash, verify that the we can reconstruct the root hash.
            EventMerkleTree tree = new EventMerkleTree();
            MerkleHash      l1   = MerkleHash.Create("abc");
            MerkleHash      l2   = MerkleHash.Create("def");
            MerkleHash      l3   = MerkleHash.Create("123");
            MerkleHash      l4   = MerkleHash.Create("456");

            tree.AppendLeaves(new MerkleHash[] { l1, l2, l3, l4 });
            MerkleHash rootHash = tree.RootNode.Hash;

            foreach (var leaf in tree.RootNode.Leaves())
            {
                Output.WriteLine(leaf.ToString());
            }

            List <MerkleProofHash> auditTrail = tree.AuditProof(l1);

            Assert.True(MerkleTree.VerifyAudit(rootHash, l1, auditTrail));

            auditTrail = tree.AuditProof(l2);
            Assert.True(MerkleTree.VerifyAudit(rootHash, l2, auditTrail));

            auditTrail = tree.AuditProof(l3);
            Assert.True(MerkleTree.VerifyAudit(rootHash, l3, auditTrail));

            auditTrail = tree.AuditProof(l4);
            Assert.True(MerkleTree.VerifyAudit(rootHash, l4, auditTrail));
        }
Esempio n. 2
0
        public void AppendLeafAndDraw(EventMerkleTree tree, int content)
        {
            Output.WriteLine($"Append {content}");
            var newLeafNode = EventMerkleNode.Create(content.ToString()).SetText(content.AsAlphaChar());

            tree.AppendLeaf(newLeafNode);
            Output.WriteLine($"CP: {tree.CurrentParent}, CL: {tree.CurrentLeaf}");
            DrawNode(tree.RootNode);
            Output.WriteLine("");
        }
Esempio n. 3
0
        public void TreeIncrementalPersistTest2()
        {
            var tree = new EventMerkleTree();

            for (int i = 0; i <= 64; i++)
            {
                AppendLeafAndDraw(tree, i);
            }
            Assert.True(true);
        }
        public void CompareCliftonMerkleToDebugEventMerkle_Test(int leafCount)
        {
            var demo        = new Demo();
            var cliftonTree = new DemoMerkleTree();

            demo.CreateTree(cliftonTree, leafCount);

            var appendTree = new EventMerkleTree();

            for (int i = 0; i < leafCount; i++)
            {
                var newLeafNode = EventMerkleNode.Create(i.ToString()).SetText(i.ToString("X"));
                appendTree.AppendLeaf(newLeafNode);
            }

            Assert.Equal(cliftonTree.RootNode.Hash.ToString(), appendTree.RootNode.Hash.ToString());
            if (leafCount > 1)
            {
                Assert.Equal(((DemoMerkleNode)cliftonTree.RootNode).Text, ((EventMerkleNode)appendTree.RootNode).Text);
            }
        }