Logging, variable rearrangement

This commit is contained in:
obscuren 2014-06-26 11:26:42 +02:00
parent 39cb34850a
commit 0ed19d9f20
5 changed files with 23 additions and 26 deletions

View File

@ -174,18 +174,12 @@ func (bc *BlockChain) ResetTillBlockHash(hash []byte) error {
bc.LastBlockHash = bc.genesisBlock.Hash() bc.LastBlockHash = bc.genesisBlock.Hash()
bc.LastBlockNumber = 1 bc.LastBlockNumber = 1
} else { } else {
// TODO: Somehow this doesn't really give the right numbers, double check.
// TODO: Change logs into debug lines
returnTo = bc.GetBlock(hash) returnTo = bc.GetBlock(hash)
bc.CurrentBlock = returnTo bc.CurrentBlock = returnTo
bc.LastBlockHash = returnTo.Hash() bc.LastBlockHash = returnTo.Hash()
//info := bc.BlockInfo(returnTo)
bc.LastBlockNumber = returnTo.Number.Uint64() bc.LastBlockNumber = returnTo.Number.Uint64()
} }
// XXX Why are we resetting? This is the block chain, it has nothing to do with states
//bc.Ethereum.StateManager().PrepareDefault(returnTo)
// Manually reset the last sync block // Manually reset the last sync block
err := ethutil.Config.Db.Delete(lastBlock.Hash()) err := ethutil.Config.Db.Delete(lastBlock.Hash())
if err != nil { if err != nil {
@ -231,6 +225,11 @@ func (bc *BlockChain) GetChainFromHash(hash []byte, max uint64) []interface{} {
for i := uint64(0); bytes.Compare(currentHash, hash) != 0 && num >= parentNumber && i < count; i++ { for i := uint64(0); bytes.Compare(currentHash, hash) != 0 && num >= parentNumber && i < count; i++ {
// Get the block of the chain // Get the block of the chain
block := bc.GetBlock(currentHash) block := bc.GetBlock(currentHash)
if block == nil {
ethutil.Config.Log.Debugf("Unexpected error during GetChainFromHash: Unable to find %x\n", currentHash)
break
}
currentHash = block.PrevHash currentHash = block.PrevHash
chain = append(chain, block.Value().Val) chain = append(chain, block.Value().Val)

View File

@ -99,22 +99,21 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
ethutil.Config.Log.Debugf("[VM] (~) %x gas: %v (d) %x\n", closure.object.Address(), closure.Gas, closure.Args) ethutil.Config.Log.Debugf("[VM] (~) %x gas: %v (d) %x\n", closure.object.Address(), closure.Gas, closure.Args)
// Memory for the current closure var (
mem := &Memory{} op OpCode
// New stack (should this be shared?)
stack := NewStack()
require := func(m int) {
if stack.Len() < m {
isRequireError = true
panic(fmt.Sprintf("stack err = %d, req = %d", stack.Len(), m))
}
}
// Program counter mem = &Memory{}
pc := big.NewInt(0) stack = NewStack()
// Current step count pc = big.NewInt(0)
step := 0 step = 0
prevStep := 0 prevStep = 0
require = func(m int) {
if stack.Len() < m {
isRequireError = true
panic(fmt.Sprintf("%04v (%v) stack err size = %d, required = %d", pc, op, stack.Len(), m))
}
}
)
for { for {
prevStep = step prevStep = step
@ -125,7 +124,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
// Get the memory location of pc // Get the memory location of pc
val := closure.Get(pc) val := closure.Get(pc)
// Get the opcode (it must be an opcode!) // Get the opcode (it must be an opcode!)
op := OpCode(val.Uint()) op = OpCode(val.Uint())
gas := new(big.Int) gas := new(big.Int)
addStepGasUsage := func(amount *big.Int) { addStepGasUsage := func(amount *big.Int) {

View File

@ -340,7 +340,7 @@ func (s *Ethereum) Start(seed bool) {
// Bind to addr and port // Bind to addr and port
ln, err := net.Listen("tcp", ":"+s.Port) ln, err := net.Listen("tcp", ":"+s.Port)
if err != nil { if err != nil {
log.Println("Connection listening disabled. Acting as client") ethutil.Config.Log.Infof("port=%s in use. Connection listening disabled.")
s.listening = false s.listening = false
} else { } else {
s.listening = true s.listening = true
@ -395,7 +395,7 @@ func (s *Ethereum) Seed() {
peers = append(peers, peer) peers = append(peers, peer)
} }
} else { } else {
ethutil.Config.Log.Debugln("[SERV} Couldn't resolve :", target) ethutil.Config.Log.Debugln("[SERV] Couldn't resolve :", target)
} }
} }
// Connect to Peer list // Connect to Peer list

View File

@ -22,7 +22,6 @@ func Compile(script string) (ret []byte, err error) {
} else { } else {
compiler := mutan.NewCompiler(backend.NewEthereumBackend()) compiler := mutan.NewCompiler(backend.NewEthereumBackend())
byteCode, errors := compiler.Compile(strings.NewReader(script)) byteCode, errors := compiler.Compile(strings.NewReader(script))
//byteCode, errors := mutan.Compile(strings.NewReader(script), false)
if len(errors) > 0 { if len(errors) > 0 {
var errs string var errs string
for _, er := range errors { for _, er := range errors {

View File

@ -47,7 +47,7 @@ func (cache *Cache) Put(v interface{}) interface{} {
value := NewValue(v) value := NewValue(v)
enc := value.Encode() enc := value.Encode()
if len(enc) >= 32 { if len(enc) < 32 {
sha := Sha3Bin(enc) sha := Sha3Bin(enc)
cache.nodes[string(sha)] = NewNode(sha, value, true) cache.nodes[string(sha)] = NewNode(sha, value, true)