switching everything over to []byte, abandoning merkletree for now
This commit is contained in:
		
							
								
								
									
										65
									
								
								client/test/test.go.old
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								client/test/test.go.old
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"crypto/sha256"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/cbergoon/merkletree"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//TestContent implements the Content interface provided by merkletree and represents the content stored in the tree.
 | 
			
		||||
type TestContent struct {
 | 
			
		||||
	x string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//CalculateHash hashes the values of a TestContent
 | 
			
		||||
func (t TestContent) CalculateHash() ([]byte, error) {
 | 
			
		||||
	h := sha256.New()
 | 
			
		||||
	if _, err := h.Write([]byte(t.x)); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return h.Sum(nil), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Equals tests for equality of two Contents
 | 
			
		||||
func (t TestContent) Equals(other merkletree.Content) (bool, error) {
 | 
			
		||||
	return t.x == other.(TestContent).x, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	//Build list of Content to build tree
 | 
			
		||||
	var list []merkletree.Content
 | 
			
		||||
	list = append(list, TestContent{x: "Hello"})
 | 
			
		||||
	list = append(list, TestContent{x: "Hi"})
 | 
			
		||||
	list = append(list, TestContent{x: "Hey"})
 | 
			
		||||
	list = append(list, TestContent{x: "Hola"})
 | 
			
		||||
 | 
			
		||||
	//Create a new Merkle Tree from the list of Content
 | 
			
		||||
	t, err := merkletree.NewTree(list)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//Get the Merkle Root of the tree
 | 
			
		||||
	mr := t.MerkleRoot()
 | 
			
		||||
	log.Println(mr)
 | 
			
		||||
 | 
			
		||||
	//Verify the entire tree (hashes for each node) is valid
 | 
			
		||||
	vt, err := t.VerifyTree()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	log.Println("Verify Tree: ", vt)
 | 
			
		||||
 | 
			
		||||
	//Verify a specific content in in the tree
 | 
			
		||||
	vc, err := t.VerifyContent(list[0])
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Println("Verify Content: ", vc)
 | 
			
		||||
 | 
			
		||||
	//String representation
 | 
			
		||||
	log.Println(t)
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user