Updated to temporary trie

This commit is contained in:
obscuren 2014-01-14 21:48:16 +01:00
parent 578b63e2b8
commit 44900e363c
3 changed files with 34 additions and 10 deletions

View File

@ -116,8 +116,8 @@ func (dag *Dagger) Node(L uint64, i uint64) *big.Int {
} }
func Sum(sha hash.Hash) []byte { func Sum(sha hash.Hash) []byte {
in := make([]byte, 32) //in := make([]byte, 32)
return sha.Sum(in) return sha.Sum(nil)
} }
func (dag *Dagger) Eval(N *big.Int) *big.Int { 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)) return ret.SetBytes(Sum(sha))
} }

View File

@ -37,6 +37,12 @@ func (i *Console) ValidateInput(action string, argumentLength int) error {
case action == "dag" && argumentLength != 2: case action == "dag" && argumentLength != 2:
err = true err = true
expArgCount = 2 expArgCount = 2
case action == "decode" && argumentLength != 1:
err = true
expArgCount = 1
case action == "encode" && argumentLength != 1:
err = true
expArgCount = 1
} }
if err { 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 { func (i *Console) ParseInput(input string) bool {
scanner := bufio.NewScanner(strings.NewReader(input)) scanner := bufio.NewScanner(strings.NewReader(input))
scanner.Split(bufio.ScanWords) scanner.Split(bufio.ScanWords)
@ -70,21 +85,26 @@ func (i *Console) ParseInput(input string) bool {
} else { } else {
switch tokens[0] { switch tokens[0] {
case "update": 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": case "get":
fmt.Println(i.trie.Get(tokens[1])) fmt.Println(i.trie.GetT(tokens[1]))
case "root": case "root":
fmt.Println(hex.EncodeToString([]byte(i.trie.Root))) i.PrintRoot()
case "rawroot": case "rawroot":
fmt.Println(i.trie.Root) fmt.Println(i.trie.RootT)
case "print": case "print":
i.db.Print() i.db.Print()
case "dag": case "dag":
fmt.Println(DaggerVerify(ethutil.Big(tokens[1]), // hash fmt.Println(DaggerVerify(ethutil.Big(tokens[1]), // hash
ethutil.BigPow(2, 36), // diff ethutil.BigPow(2, 36), // diff
ethutil.Big(tokens[2]))) // nonce 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": case "exit", "quit", "q":
return false return false
case "help": case "help":
@ -95,7 +115,11 @@ func (i *Console) ParseInput(input string) bool {
"root - Prints the hex encoded merkle root\n" + "root - Prints the hex encoded merkle root\n" +
"rawroot - Prints the raw merkle root\n" + "rawroot - Prints the raw merkle root\n" +
"\033[1m= Dagger =\033[0m\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: default:
fmt.Println("Unknown command:", tokens[0]) fmt.Println("Unknown command:", tokens[0])
} }

View File

@ -64,7 +64,7 @@ func main() {
go func() { go func() {
for { 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())) server.Broadcast("blockmine", ethutil.Encode(res.String()))
} }
}() }()
@ -72,7 +72,6 @@ func main() {
server.Start() server.Start()
// Wait for shutdown // Wait for shutdown
server.WaitForShutdown() server.WaitForShutdown()
} }