Updated LOG to match proper gas in all cases
This commit is contained in:
parent
5ebae82eeb
commit
cb4d168ecc
@ -336,32 +336,6 @@ out:
|
||||
self.Remove(block.Hash())
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
// Test and import
|
||||
bchain := chain.NewChain(blocks)
|
||||
_, err := chainManager.TestChain(bchain)
|
||||
if err != nil && !chain.IsTDError(err) {
|
||||
poollogger.Debugln(err)
|
||||
|
||||
self.Reset()
|
||||
|
||||
if self.peer != nil && self.peer.conn != nil {
|
||||
poollogger.Debugf("Punishing peer for supplying bad chain (%v)\n", self.peer.conn.RemoteAddr())
|
||||
}
|
||||
|
||||
// This peer gave us bad hashes and made us fetch a bad chain, therefor he shall be punished.
|
||||
self.eth.BlacklistPeer(self.peer)
|
||||
self.peer.StopWithReason(DiscBadPeer)
|
||||
self.td = ethutil.Big0
|
||||
self.peer = nil
|
||||
} else {
|
||||
chainManager.InsertChain(bchain)
|
||||
for _, block := range blocks {
|
||||
self.Remove(block.Hash())
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -321,7 +321,6 @@ func NewChain(blocks Blocks) *BlockChain {
|
||||
return chain
|
||||
}
|
||||
|
||||
// This function assumes you've done your checking. No checking is done at this stage anymore
|
||||
func (self *ChainManager) InsertChain(chain Blocks) error {
|
||||
for _, block := range chain {
|
||||
td, messages, err := self.Ethereum.BlockManager().Process(block)
|
||||
@ -330,7 +329,9 @@ func (self *ChainManager) InsertChain(chain Blocks) error {
|
||||
continue
|
||||
}
|
||||
|
||||
chainlogger.Infof("block process failed %v (%x)\n", block.Number, block.Hash()[:4])
|
||||
chainlogger.Infof("block #%v process failed (%x)\n", block.Number, block.Hash()[:4])
|
||||
chainlogger.Infoln(block)
|
||||
chainlogger.Infoln(err)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -81,13 +81,17 @@ func (pow *EasyPow) Verify(hash []byte, diff *big.Int, nonce []byte) bool {
|
||||
d := append(hash, nonce...)
|
||||
sha.Write(d)
|
||||
|
||||
v := ethutil.BigPow(2, 256)
|
||||
ret := new(big.Int).Div(v, diff)
|
||||
verification := new(big.Int).Div(ethutil.BigPow(2, 256), diff)
|
||||
res := ethutil.U256(ethutil.BigD(sha.Sum(nil)))
|
||||
|
||||
res := new(big.Int)
|
||||
res.SetBytes(sha.Sum(nil))
|
||||
/*
|
||||
fmt.Printf("hash w/o nonce %x\n", hash)
|
||||
fmt.Printf("2**256 / %v = %v\n", diff, verification)
|
||||
fmt.Printf("%v <= %v\n", res, verification)
|
||||
fmt.Printf("vlen: %d rlen: %d\n", len(verification.Bytes()), len(res.Bytes()))
|
||||
*/
|
||||
|
||||
return res.Cmp(ret) == -1
|
||||
return res.Cmp(verification) <= 0
|
||||
}
|
||||
|
||||
func (pow *EasyPow) SetHash(hash *big.Int) {
|
||||
|
2
peer.go
2
peer.go
@ -24,7 +24,7 @@ const (
|
||||
// The size of the output buffer for writing messages
|
||||
outputBufferSize = 50
|
||||
// Current protocol version
|
||||
ProtocolVersion = 45
|
||||
ProtocolVersion = 46
|
||||
// Current P2P version
|
||||
P2PVersion = 2
|
||||
// Ethereum network version
|
||||
|
@ -163,8 +163,8 @@ const (
|
||||
// 0xf0 range - closures
|
||||
CREATE OpCode = 0xf0 + iota
|
||||
CALL
|
||||
RETURN
|
||||
CALLCODE
|
||||
RETURN
|
||||
|
||||
// 0x70 range - other
|
||||
SUICIDE = 0xff
|
||||
@ -309,12 +309,6 @@ var opCodeToString = map[OpCode]string{
|
||||
SWAP15: "SWAP15",
|
||||
SWAP16: "SWAP16",
|
||||
|
||||
LOG0: "LOG0",
|
||||
LOG1: "LOG1",
|
||||
LOG2: "LOG2",
|
||||
LOG3: "LOG3",
|
||||
LOG4: "LOG4",
|
||||
|
||||
// 0xf0 range
|
||||
CREATE: "CREATE",
|
||||
CALL: "CALL",
|
||||
|
@ -165,10 +165,11 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
|
||||
n := int(op - LOG0)
|
||||
require(n + 2)
|
||||
|
||||
mSize, mStart := stack.Peekn()
|
||||
gas.Set(GasLog)
|
||||
addStepGasUsage(new(big.Int).Mul(big.NewInt(int64(n)), GasLog))
|
||||
addStepGasUsage(new(big.Int).Add(mSize, mStart))
|
||||
|
||||
mSize, _ := stack.Peekn()
|
||||
addStepGasUsage(mSize)
|
||||
case EXP:
|
||||
require(2)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user