forked from cerc-io/plugeth
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())
|
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
|
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 {
|
func (self *ChainManager) InsertChain(chain Blocks) error {
|
||||||
for _, block := range chain {
|
for _, block := range chain {
|
||||||
td, messages, err := self.Ethereum.BlockManager().Process(block)
|
td, messages, err := self.Ethereum.BlockManager().Process(block)
|
||||||
@ -330,7 +329,9 @@ func (self *ChainManager) InsertChain(chain Blocks) error {
|
|||||||
continue
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,13 +81,17 @@ func (pow *EasyPow) Verify(hash []byte, diff *big.Int, nonce []byte) bool {
|
|||||||
d := append(hash, nonce...)
|
d := append(hash, nonce...)
|
||||||
sha.Write(d)
|
sha.Write(d)
|
||||||
|
|
||||||
v := ethutil.BigPow(2, 256)
|
verification := new(big.Int).Div(ethutil.BigPow(2, 256), diff)
|
||||||
ret := new(big.Int).Div(v, 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) {
|
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
|
// The size of the output buffer for writing messages
|
||||||
outputBufferSize = 50
|
outputBufferSize = 50
|
||||||
// Current protocol version
|
// Current protocol version
|
||||||
ProtocolVersion = 45
|
ProtocolVersion = 46
|
||||||
// Current P2P version
|
// Current P2P version
|
||||||
P2PVersion = 2
|
P2PVersion = 2
|
||||||
// Ethereum network version
|
// Ethereum network version
|
||||||
|
@ -163,8 +163,8 @@ const (
|
|||||||
// 0xf0 range - closures
|
// 0xf0 range - closures
|
||||||
CREATE OpCode = 0xf0 + iota
|
CREATE OpCode = 0xf0 + iota
|
||||||
CALL
|
CALL
|
||||||
RETURN
|
|
||||||
CALLCODE
|
CALLCODE
|
||||||
|
RETURN
|
||||||
|
|
||||||
// 0x70 range - other
|
// 0x70 range - other
|
||||||
SUICIDE = 0xff
|
SUICIDE = 0xff
|
||||||
@ -309,12 +309,6 @@ var opCodeToString = map[OpCode]string{
|
|||||||
SWAP15: "SWAP15",
|
SWAP15: "SWAP15",
|
||||||
SWAP16: "SWAP16",
|
SWAP16: "SWAP16",
|
||||||
|
|
||||||
LOG0: "LOG0",
|
|
||||||
LOG1: "LOG1",
|
|
||||||
LOG2: "LOG2",
|
|
||||||
LOG3: "LOG3",
|
|
||||||
LOG4: "LOG4",
|
|
||||||
|
|
||||||
// 0xf0 range
|
// 0xf0 range
|
||||||
CREATE: "CREATE",
|
CREATE: "CREATE",
|
||||||
CALL: "CALL",
|
CALL: "CALL",
|
||||||
|
@ -165,10 +165,11 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
|
|||||||
n := int(op - LOG0)
|
n := int(op - LOG0)
|
||||||
require(n + 2)
|
require(n + 2)
|
||||||
|
|
||||||
mSize, mStart := stack.Peekn()
|
|
||||||
gas.Set(GasLog)
|
gas.Set(GasLog)
|
||||||
addStepGasUsage(new(big.Int).Mul(big.NewInt(int64(n)), 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:
|
case EXP:
|
||||||
require(2)
|
require(2)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user