From 20671758084b5f3889659231c6e4c9ef59d1b740 Mon Sep 17 00:00:00 2001 From: obscuren Date: Sat, 1 Feb 2014 21:51:50 +0100 Subject: [PATCH] RLP Updates --- dev_console.go | 27 +++++---------------------- ethereum.go | 19 ++++++++++++++++--- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/dev_console.go b/dev_console.go index 39176eeba4..4153e33bfc 100644 --- a/dev_console.go +++ b/dev_console.go @@ -124,13 +124,13 @@ func (i *Console) ParseInput(input string) bool { ethutil.BigPow(2, 36), // diff ethutil.Big(tokens[2]))) // nonce case "decode": - value := ethutil.NewRlpDecoder([]byte(tokens[1])) + value := ethutil.NewRlpValueFromBytes([]byte(tokens[1])) fmt.Println(value) case "getaddr": encoded, _ := hex.DecodeString(tokens[1]) d := i.ethereum.BlockManager.BlockChain().CurrentBlock.State().Get(string(encoded)) if d != "" { - decoder := ethutil.NewRlpDecoder([]byte(d)) + decoder := ethutil.NewRlpValueFromBytes([]byte(d)) fmt.Println(decoder) } else { fmt.Println("getaddr: address unknown") @@ -139,27 +139,10 @@ func (i *Console) ParseInput(input string) bool { i.ethereum.Broadcast(ethwire.MsgTalkTy, tokens[1]) case "addp": i.ethereum.ConnectToPeer(tokens[1]) + case "pcount": + fmt.Println("peers:", i.ethereum.Peers().Len()) case "encode": fmt.Printf("%q\n", ethutil.Encode(tokens[1])) - /* - case "newblk": - block := ethchain.CreateBlock( - i.ethereum.BlockManager.BlockChain().LastBlock.State().Root, - i.ethereum.BlockManager.LastBlockHash, - "123", - big.NewInt(1), - big.NewInt(1), - "", - i.ethereum.TxPool.Flush(), - ) - err := i.ethereum.BlockManager.ProcessBlock(block) - if err != nil { - fmt.Println(err) - } else { - i.ethereum.Broadcast(ethwire.MsgBlockTy, block.RlpData()) - } - //fmt.Println(ethutil.NewRlpValue(block.RlpData()).Get(0)) - */ case "tx": tx := ethchain.NewTransaction(tokens[1], ethutil.Big(tokens[2]), []string{""}) fmt.Printf("%x\n", tx.Hash()) @@ -169,7 +152,7 @@ func (i *Console) ParseInput(input string) bool { addr, _ := hex.DecodeString(tokens[1]) data, _ := ethutil.Config.Db.Get(addr) if len(data) != 0 { - decoder := ethutil.NewRlpDecoder(data) + decoder := ethutil.NewRlpValueFromBytes(data) fmt.Println(decoder) } else { fmt.Println("gettx: tx not found") diff --git a/ethereum.go b/ethereum.go index 810c30f499..7f55701102 100644 --- a/ethereum.go +++ b/ethereum.go @@ -1,6 +1,7 @@ package main import ( + "encoding/hex" "flag" "fmt" "github.com/ethereum/eth-go" @@ -46,6 +47,8 @@ func main() { runtime.GOMAXPROCS(runtime.NumCPU()) Init() + //fmt.Printf("%x\n", ethutil.Encode([]interface{}{ethutil.BigPow(2, 36).Bytes()})) + ethchain.InitFees() ethutil.ReadConfig() @@ -89,17 +92,27 @@ func main() { // Fake block mining. It broadcasts a new block every 5 seconds go func() { pow := ðchain.EasyPow{} + addr, _ := hex.DecodeString("82c3b0b72cf62f1a9ce97c64da8072efa28225d8") for { + time.Sleep(blockTime * time.Second) + txs := ethereum.TxPool.Flush() - block := ethereum.BlockManager.BlockChain().NewBlock("82c3b0b72cf62f1a9ce97c64da8072efa28225d8", txs) + block := ethereum.BlockManager.BlockChain().NewBlock(addr, txs) nonce := pow.Search(block) block.Nonce = nonce - log.Println("nonce found:", nonce) + err := ethereum.BlockManager.ProcessBlockWithState(block, block.State()) + if err != nil { + log.Println(err) + } else { + //log.Println("nonce found:", nonce) + log.Println("\n+++++++ MINED BLK +++++++\n", block.String()) + } + //os.Exit(1) + /* - time.Sleep(blockTime * time.Second) block := ethchain.CreateBlock(