升级到 geth 1.4.0 后出现'Invalid sender'错误



我的程序以前能够创建并发送原始事务到geth v1.3.3,但在我升级到geth v4.0后,通过RPC调用sendRawTransaction总是返回invalid sender错误。

事务序列化(即RLP)是否以某种方式从v1.3.3更改为v1.4.0?以下是触发invalid user错误的按原始事务的转储:

0x0000:   F8 CA 80 85 0B A4 3B 74   00 83 01 5F 90 94 08 BE    ......;t..._....
0x0010:   24 CD 8D CF 73 F8 FA 5D   B4 2B 85 5B 43 70 BD 5C    $...s..].+.[Cp.
0x0020:   44 8B 80 B8 64 B0 70 B9   BA 00 00 00 00 00 00 00    D...d.p.........
0x0030:   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    ................
0x0040:   00 00 00 00 00 00 00 00   01 87 44 2E B8 96 6A 07    ..........D...j.
0x0050:   0C 31 C1 E8 AE A3 60 F5   35 32 47 81 13 34 31 D4    .1....`.52G..41.
0x0060:   4B FA 0A 0B 1B 9F 13 C6   F5 00 00 00 00 00 00 00    K...............
0x0070:   00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    ................
0x0080:   00 00 00 00 00 00 00 00   00 1B A0 DE A4 6B 8C E8    .............k..
0x0090:   72 5A 31 49 92 EC 6B 6F   C6 89 8C BB D7 A4 B9 8A    rZ1I..ko........
0x00A0:   10 D2 F7 9E CE 6B D5 0F   C5 19 E9 A0 8F 74 57 C2    .....k.......tW.
0x00B0:   1C DA CB 7D 7A 2B 46 58   98 53 31 C3 4B CF 50 1F    ...}z+FX.S1.K.P.
0x00C0:   17 CE 16 80 95 30 38 9B   98 3C 5B B8                .....08..<[.

我的交易的一个更具机器可读性的版本是:

F8CA80850BA43B740083015F909408BE24CD8DCF73F8FA5DB42B855B4370BD5C448B80B864B070B9BA000000000000000000000000000000000000000000000000000000000000000187442EB8966A070C31C1E8AEA360F535324781133431D44BFA0A0B1B9F13C6F500000000000000000000000000000000000000000000000000000000000000001BA0DEA46B8CE8725A314992EC6B6FC6898CBBD7A4B98A10D2F79ECE6BD50FC519E9A08F7457C21CDACB7D7A2B4658985331C34BCF501F17CE16809530389B983C5BB8

geth的日志给出

I0504 20:22:27.392581    9768 types.go:106] Generated response: *shared.ErrorResponse &{%!s(float64=1) 2.0 %!s(*shared.ErrorObject=&{-32603 Invalid sender})}
I0504 20:22:27.392886    9768 http.go:157] Sending payload: {
        "id": 1,
        "jsonrpc": "2.0",
        "error": {
                "code": -32603,
                "message": "Invalid sender"
        }
}

我相信JSONRPC的内容在geth v1.4.0中发生了变化。如果没有看到您正在调用的完整sendRawTransaction,我无法解释为什么会发生这种情况,但请查看文档:https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction

此外,应该将其迁移到https://ethereum.stackexchange.com/

相关内容

最新更新