We're running two versions of geth on Ropsten. One is pre-london (legacy) and the other one includes the london activation block (london). The versions we're running are:
legacy: Geth/v1.10.2-stable-97d11b01/linux-amd64/go1.15.11
london: Geth/v1.10.4-stable-aa637fd3/linux-amd64/go1.15.11
After the London hard fork was activated on Ropsten, we created a new transaction using the eth_sendTransaction
RPC call. You can see this transaction here: https://ropsten.etherscan.io/tx/0x4551cee61076ef813876d400ecea64d071f31c665b15f3b5091624c00bc86dc5
Our understanding is that because geth is an EIP-155 signer then the transactions it signs after london activated should not be valid in the legacy (pre-london) Ropsten chain. However, this transaction somehow was propagated to our legacy node as well (and landed on a different block height).
Legacy node (geth v1.10.2):
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0xef4a5a559cb842df4072b4f5040349a66f8dd81f57ffa5dde3659d0157660c51",
"blockNumber": "0xa0ea16",
"from": "0x7e6af75b56b7ecbd090d9b600676a28a836afea1",
"gas": "0xa410",
"gasPrice": "0x28fa6ae00",
"hash": "0x4551cee61076ef813876d400ecea64d071f31c665b15f3b5091624c00bc86dc5",
"input": "0x",
"nonce": "0x16e",
"to": "0x16066311b3f7b8a75a55dbc6dff692018db24239",
"transactionIndex": "0x0",
"value": "0x11c37937e08000",
"type": "0x0",
"v": "0x29",
"r": "0xff144d1fc4e76e91549e768a9e45b09f1a8b7c5f908eae60152c7bf7cc6f7000",
"s": "0x650e90d4920506f5f3dc205321c8d846cc4ec6e332e02443ba881386bd5b3d17"
}
}
London node (v1.10.4):
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockHash": "0x8feda4804fba95cc709b1fe7daf0fdde9edc1a87cb3b0cef6a0dfe918ea7b4d6",
"blockNumber": "0xa10aa3",
"from": "0x7e6af75b56b7ecbd090d9b600676a28a836afea1",
"gas": "0xa410",
"gasPrice": "0x28fa6ae00",
"hash": "0x4551cee61076ef813876d400ecea64d071f31c665b15f3b5091624c00bc86dc5",
"input": "0x",
"nonce": "0x16e",
"to": "0x16066311b3f7b8a75a55dbc6dff692018db24239",
"transactionIndex": "0x5",
"value": "0x11c37937e08000",
"type": "0x0",
"v": "0x29",
"r": "0xff144d1fc4e76e91549e768a9e45b09f1a8b7c5f908eae60152c7bf7cc6f7000",
"s": "0x650e90d4920506f5f3dc205321c8d846cc4ec6e332e02443ba881386bd5b3d17"
}
}
How is this possible? What are we getting wrong here?
Some additional context here: https://discord.com/channels/595666850260713488/745077610685661265/865583423438848020