good morning!!!!

Skip to content
Snippets Groups Projects
Commit a0e44e32 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

basic glog

parent 60e097a5
Branches
Tags
No related merge requests found
......@@ -132,7 +132,7 @@ func (self *section) addSectionToBlockChain(p *peer) {
}
self.bp.lock.Unlock()
plog.Infof("[%s] insert %v blocks [%v/%v] into blockchain", sectionhex(self), len(blocks), hex(blocks[0].Hash()), hex(blocks[len(blocks)-1].Hash()))
plog.Debugf("[%s] insert %v blocks [%v/%v] into blockchain", sectionhex(self), len(blocks), hex(blocks[0].Hash()), hex(blocks[len(blocks)-1].Hash()))
err := self.bp.insertChain(blocks)
if err != nil {
self.invalid = true
......
......@@ -228,10 +228,6 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config {
// Set the log type
glog.SetToStderr(ctx.GlobalBool(LogToStdErrFlag.Name))
glog.V(2).Infoln("test it")
glog.V(3).Infoln("other stuff")
return &eth.Config{
Name: common.MakeName(clientID, version),
DataDir: ctx.GlobalString(DataDirFlag.Name),
......
......@@ -165,16 +165,10 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big
// Create a new state based on the parent's root (e.g., create copy)
state := state.New(parent.Root(), sm.db)
// track (possible) uncle block
var uncle bool
// Block validation
if err = sm.ValidateHeader(block.Header(), parent.Header()); err != nil {
if err != BlockEqualTSErr {
return
}
err = nil
uncle = true
}
// There can be at most two uncles
if len(block.Uncles()) > 2 {
......@@ -231,23 +225,14 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big
// Sync the current block's state to the database
state.Sync()
if !uncle {
// Remove transactions from the pool
sm.txpool.RemoveSet(block.Transactions())
}
// This puts transactions in a extra db for rpc
for i, tx := range block.Transactions() {
putTx(sm.extraDb, tx, block, uint64(i))
}
if uncle {
chainlogger.Infof("found possible uncle block #%d (%x...)\n", header.Number, block.Hash().Bytes()[0:4])
return td, nil, BlockEqualTSErr
} else {
chainlogger.Infof("processed block #%d (%d TXs %d UNCs) (%x...)\n", header.Number, len(block.Transactions()), len(block.Uncles()), block.Hash().Bytes()[0:4])
}
return td, state.Logs(), nil
}
......@@ -272,7 +257,8 @@ func (sm *BlockProcessor) ValidateHeader(block, parent *types.Header) error {
return fmt.Errorf("GasLimit check failed for block %v (%v > %v)", block.GasLimit, a, b)
}
if int64(block.Time) > time.Now().Unix() {
// Allow future blocks up to 4 seconds
if int64(block.Time)+4 > time.Now().Unix() {
return BlockFutureErr
}
......
......@@ -12,6 +12,7 @@ import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/rlp"
)
......@@ -494,6 +495,10 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
queue[i] = ChainEvent{block, logs}
queueEvent.canonicalCount++
if glog.V(logger.Debug) {
glog.Infof("inserted block #%d (%d TXs %d UNCs) (%x...)\n", block.Number(), len(block.Transactions()), len(block.Uncles()), block.Hash().Bytes()[0:4])
}
} else {
queue[i] = ChainSideEvent{block, logs}
queueEvent.sideCount++
......@@ -503,6 +508,11 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
}
if len(chain) > 0 && glog.V(logger.Info) {
start, end := chain[0], chain[len(chain)-1]
glog.Infof("imported %d blocks [%x / %x] #%v\n", len(chain), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4], end.Number())
}
go self.eventMux.Post(queueEvent)
return nil
......
......@@ -7,6 +7,8 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/trie"
)
......@@ -121,7 +123,10 @@ func NewStateObjectFromBytes(address common.Address, data []byte, db common.Data
func (self *StateObject) MarkForDeletion() {
self.remove = true
self.dirty = true
statelogger.Debugf("%x: #%d %v X\n", self.Address(), self.nonce, self.balance)
if glog.V(logger.Debug) {
glog.Infof("%x: #%d %v X\n", self.Address(), self.nonce, self.balance)
}
}
func (c *StateObject) getAddr(addr common.Hash) *common.Value {
......@@ -185,13 +190,17 @@ func (c *StateObject) GetInstr(pc *big.Int) *common.Value {
func (c *StateObject) AddBalance(amount *big.Int) {
c.SetBalance(new(big.Int).Add(c.balance, amount))
statelogger.Debugf("%x: #%d %v (+ %v)\n", c.Address(), c.nonce, c.balance, amount)
if glog.V(logger.Debug) {
glog.Infof("%x: #%d %v (+ %v)\n", c.Address(), c.nonce, c.balance, amount)
}
}
func (c *StateObject) SubBalance(amount *big.Int) {
c.SetBalance(new(big.Int).Sub(c.balance, amount))
statelogger.Debugf("%x: #%d %v (- %v)\n", c.Address(), c.nonce, c.balance, amount)
if glog.V(logger.Debug) {
glog.Infof("%x: #%d %v (- %v)\n", c.Address(), c.nonce, c.balance, amount)
}
}
func (c *StateObject) SetBalance(amount *big.Int) {
......@@ -225,7 +234,9 @@ func (c *StateObject) ConvertGas(gas, price *big.Int) error {
func (self *StateObject) SetGasPool(gasLimit *big.Int) {
self.gasPool = new(big.Int).Set(gasLimit)
statelogger.Debugf("%x: gas (+ %v)", self.Address(), self.gasPool)
if glog.V(logger.Debug) {
glog.Infof("%x: gas (+ %v)", self.Address(), self.gasPool)
}
}
func (self *StateObject) BuyGas(gas, price *big.Int) error {
......
......@@ -6,12 +6,10 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/trie"
"github.com/golang/glog"
)
var statelogger = logger.NewLogger("STATE")
// StateDBs within the ethereum protocol are used to store anything
// within the merkle trie. StateDBs take care of caching and storing
// nested states. It's the general query interface to retrieve:
......
......@@ -5,11 +5,9 @@ import (
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
)
var vmlogger = logger.NewLogger("VM")
// Global Debug flag indicating Debug VM (full logging)
var Debug bool
......@@ -41,7 +39,7 @@ func NewVm(env Environment) VirtualMachine {
case JitVmTy:
return NewJitVm(env)
default:
vmlogger.Infoln("unsupported vm type %d", env.VmType())
glog.V(0).Infoln("unsupported vm type %d", env.VmType())
fallthrough
case StdVmTy:
return New(env)
......
......@@ -7,6 +7,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/params"
)
......@@ -885,21 +886,17 @@ func (self *Vm) RunPrecompiled(p *PrecompiledAccount, callData []byte, context *
func (self *Vm) Printf(format string, v ...interface{}) VirtualMachine {
if self.debug {
if self.logTy == LogTyPretty {
self.logStr += fmt.Sprintf(format, v...)
}
}
return self
}
func (self *Vm) Endl() VirtualMachine {
if self.debug {
if self.logTy == LogTyPretty {
vmlogger.Infoln(self.logStr)
glog.V(0).Infoln(self.logStr)
self.logStr = ""
}
}
return self
}
......
......@@ -1055,6 +1055,7 @@ func (v Verbose) Infoln(args ...interface{}) {
// Infof is equivalent to the global Infof function, guarded by the value of v.
// See the documentation of V for usage.
func (v Verbose) Infof(format string, args ...interface{}) {
fmt.Println(v)
if v {
logging.printf(infoLog, format, args...)
}
......
......@@ -9,8 +9,10 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/tests/helper"
)
......@@ -80,14 +82,13 @@ func RunVmTest(p string, t *testing.T) {
tests := make(map[string]VmTest)
helper.CreateFileTests(t, p, &tests)
for name, test := range tests {
/*
vm.Debug = true
helper.Logger.SetLogLevel(5)
if name != "Call1MB1024Calldepth" {
glog.SetV(4)
glog.SetToStderr(true)
for name, test := range tests {
if name != "stackLimitPush32_1024" {
continue
}
*/
db, _ := ethdb.NewMemDatabase()
statedb := state.New(common.Hash{}, db)
for addr, account := range test.Pre {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment