RLP Updates

This commit is contained in:
obscuren 2014-02-01 21:51:50 +01:00
parent e28632b997
commit 2067175808
2 changed files with 21 additions and 25 deletions

View File

@ -124,13 +124,13 @@ func (i *Console) ParseInput(input string) bool {
ethutil.BigPow(2, 36), // diff ethutil.BigPow(2, 36), // diff
ethutil.Big(tokens[2]))) // nonce ethutil.Big(tokens[2]))) // nonce
case "decode": case "decode":
value := ethutil.NewRlpDecoder([]byte(tokens[1])) value := ethutil.NewRlpValueFromBytes([]byte(tokens[1]))
fmt.Println(value) fmt.Println(value)
case "getaddr": case "getaddr":
encoded, _ := hex.DecodeString(tokens[1]) encoded, _ := hex.DecodeString(tokens[1])
d := i.ethereum.BlockManager.BlockChain().CurrentBlock.State().Get(string(encoded)) d := i.ethereum.BlockManager.BlockChain().CurrentBlock.State().Get(string(encoded))
if d != "" { if d != "" {
decoder := ethutil.NewRlpDecoder([]byte(d)) decoder := ethutil.NewRlpValueFromBytes([]byte(d))
fmt.Println(decoder) fmt.Println(decoder)
} else { } else {
fmt.Println("getaddr: address unknown") fmt.Println("getaddr: address unknown")
@ -139,27 +139,10 @@ func (i *Console) ParseInput(input string) bool {
i.ethereum.Broadcast(ethwire.MsgTalkTy, tokens[1]) i.ethereum.Broadcast(ethwire.MsgTalkTy, tokens[1])
case "addp": case "addp":
i.ethereum.ConnectToPeer(tokens[1]) i.ethereum.ConnectToPeer(tokens[1])
case "pcount":
fmt.Println("peers:", i.ethereum.Peers().Len())
case "encode": case "encode":
fmt.Printf("%q\n", ethutil.Encode(tokens[1])) 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": case "tx":
tx := ethchain.NewTransaction(tokens[1], ethutil.Big(tokens[2]), []string{""}) tx := ethchain.NewTransaction(tokens[1], ethutil.Big(tokens[2]), []string{""})
fmt.Printf("%x\n", tx.Hash()) fmt.Printf("%x\n", tx.Hash())
@ -169,7 +152,7 @@ func (i *Console) ParseInput(input string) bool {
addr, _ := hex.DecodeString(tokens[1]) addr, _ := hex.DecodeString(tokens[1])
data, _ := ethutil.Config.Db.Get(addr) data, _ := ethutil.Config.Db.Get(addr)
if len(data) != 0 { if len(data) != 0 {
decoder := ethutil.NewRlpDecoder(data) decoder := ethutil.NewRlpValueFromBytes(data)
fmt.Println(decoder) fmt.Println(decoder)
} else { } else {
fmt.Println("gettx: tx not found") fmt.Println("gettx: tx not found")

View File

@ -1,6 +1,7 @@
package main package main
import ( import (
"encoding/hex"
"flag" "flag"
"fmt" "fmt"
"github.com/ethereum/eth-go" "github.com/ethereum/eth-go"
@ -46,6 +47,8 @@ func main() {
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())
Init() Init()
//fmt.Printf("%x\n", ethutil.Encode([]interface{}{ethutil.BigPow(2, 36).Bytes()}))
ethchain.InitFees() ethchain.InitFees()
ethutil.ReadConfig() ethutil.ReadConfig()
@ -89,17 +92,27 @@ func main() {
// Fake block mining. It broadcasts a new block every 5 seconds // Fake block mining. It broadcasts a new block every 5 seconds
go func() { go func() {
pow := &ethchain.EasyPow{} pow := &ethchain.EasyPow{}
addr, _ := hex.DecodeString("82c3b0b72cf62f1a9ce97c64da8072efa28225d8")
for { for {
time.Sleep(blockTime * time.Second)
txs := ethereum.TxPool.Flush() txs := ethereum.TxPool.Flush()
block := ethereum.BlockManager.BlockChain().NewBlock("82c3b0b72cf62f1a9ce97c64da8072efa28225d8", txs) block := ethereum.BlockManager.BlockChain().NewBlock(addr, txs)
nonce := pow.Search(block) nonce := pow.Search(block)
block.Nonce = nonce 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( block := ethchain.CreateBlock(