From 44900e363cbc81b640bc16bcc7e6a50c22352be4 Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 14 Jan 2014 21:48:16 +0100 Subject: [PATCH] Updated to temporary trie --- dagger.go | 5 +++-- dev_console.go | 36 ++++++++++++++++++++++++++++++------ ethereum.go | 3 +-- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/dagger.go b/dagger.go index 0cc63ea941..966bfa4619 100644 --- a/dagger.go +++ b/dagger.go @@ -116,8 +116,8 @@ func (dag *Dagger) Node(L uint64, i uint64) *big.Int { } func Sum(sha hash.Hash) []byte { - in := make([]byte, 32) - return sha.Sum(in) + //in := make([]byte, 32) + return sha.Sum(nil) } func (dag *Dagger) Eval(N *big.Int) *big.Int { @@ -146,3 +146,4 @@ func (dag *Dagger) Eval(N *big.Int) *big.Int { return ret.SetBytes(Sum(sha)) } + diff --git a/dev_console.go b/dev_console.go index 923c483c2f..228cfc47e5 100644 --- a/dev_console.go +++ b/dev_console.go @@ -37,6 +37,12 @@ func (i *Console) ValidateInput(action string, argumentLength int) error { case action == "dag" && argumentLength != 2: err = true expArgCount = 2 + case action == "decode" && argumentLength != 1: + err = true + expArgCount = 1 + case action == "encode" && argumentLength != 1: + err = true + expArgCount = 1 } if err { @@ -46,6 +52,15 @@ func (i *Console) ValidateInput(action string, argumentLength int) error { } } +func (i *Console) PrintRoot() { + root := ethutil.Conv(i.trie.RootT) + if len(root.AsBytes()) != 0 { + fmt.Println(hex.EncodeToString(root.AsBytes())) + } else { + fmt.Println(i.trie.RootT) + } +} + func (i *Console) ParseInput(input string) bool { scanner := bufio.NewScanner(strings.NewReader(input)) scanner.Split(bufio.ScanWords) @@ -70,21 +85,26 @@ func (i *Console) ParseInput(input string) bool { } else { switch tokens[0] { case "update": - i.trie.Update(tokens[1], tokens[2]) + i.trie.UpdateT(tokens[1], tokens[2]) - fmt.Println(hex.EncodeToString([]byte(i.trie.Root))) + i.PrintRoot() case "get": - fmt.Println(i.trie.Get(tokens[1])) + fmt.Println(i.trie.GetT(tokens[1])) case "root": - fmt.Println(hex.EncodeToString([]byte(i.trie.Root))) + i.PrintRoot() case "rawroot": - fmt.Println(i.trie.Root) + fmt.Println(i.trie.RootT) case "print": i.db.Print() case "dag": fmt.Println(DaggerVerify(ethutil.Big(tokens[1]), // hash ethutil.BigPow(2, 36), // diff ethutil.Big(tokens[2]))) // nonce + case "decode": + d, _ := ethutil.Decode([]byte(tokens[1]), 0) + fmt.Printf("%q\n", d) + case "encode": + fmt.Printf("%q\n", ethutil.Encode(tokens[1])) case "exit", "quit", "q": return false case "help": @@ -95,7 +115,11 @@ func (i *Console) ParseInput(input string) bool { "root - Prints the hex encoded merkle root\n" + "rawroot - Prints the raw merkle root\n" + "\033[1m= Dagger =\033[0m\n" + - "dag HASH NONCE - Verifies a nonce with the given hash with dagger\n") + "dag HASH NONCE - Verifies a nonce with the given hash with dagger\n" + + "\033[1m= Enroding =\033[0m\n" + + "decode STR\n" + + "encode STR\n") + default: fmt.Println("Unknown command:", tokens[0]) } diff --git a/ethereum.go b/ethereum.go index 7e13f197a9..83f656fe23 100644 --- a/ethereum.go +++ b/ethereum.go @@ -64,7 +64,7 @@ func main() { go func() { for { - res := dagger.Search(ethutil.Big("01001"), ethutil.BigPow(2, 26)) + res := dagger.Search(ethutil.Big("01001"), ethutil.BigPow(2, 36)) server.Broadcast("blockmine", ethutil.Encode(res.String())) } }() @@ -72,7 +72,6 @@ func main() { server.Start() - // Wait for shutdown server.WaitForShutdown() }