起こったこと
以下のようにtransaction poolがなっていて、これがminer.start()で処理されない。
> txpool.inspect
{
pending: {
0x202A270e7331BE4c87Eb62aFAC778A281E5D5827: {
2: "0x897783EFB774e6053Cb2F48979AaF6f773C885C9: 0 wei + 130000 gas × 20000000000 wei"
},
0x578e81833BA9c2511431e57aEA69386b9D38aCF3: {
0: "0xB70Af06ab6C873bF4D3473f18ACe65558a5E8fd2: 0 wei + 130000 gas × 20000000000 wei"
},
0xFF3867597E3AfA8B4351b5282D3d4BEE56847d92: {
0: "0xe35028848AdC7B68369EC7050D1657f6DB997DEC: 0 wei + 130000 gas × 20000000000 wei",
1: "0xe35028848AdC7B68369EC7050D1657f6DB997DEC: 0 wei + 90000 gas × 1000000000 wei",
2: "0xe35028848AdC7B68369EC7050D1657f6DB997DEC: 0 wei + 90000 gas × 1000000000 wei"
},
0xfEc2C0252225BE2bc214eA718C01bdABB0fb9fe2: {
0: "0xB70Af06ab6C873bF4D3473f18ACe65558a5E8fd2: 0 wei + 130000 gas × 20000000000 wei"
}
},
queued: {}
}
解決策
go-ethereum内のコードを変更する。今回は研究用に動けば良い実装なので、これでmainnetに繋げると問題があるかも。
params/config.go
227 // IsEIP155 returns whether num is either equal to the EIP155 fork block or greater.
228 func (c *ChainConfig) IsEIP155(num *big.Int) bool {
229 // return isForked(c.EIP155Block, num)
230 return true
231 }