[PoA] Transactions are not propagated when adding a new node to the network #10040
Description
Before filing a new issue, please provide the following information.
- Parity Ethereum version:
Parity-Ethereum/v2.1.8-stable-3eae1d3-20181130/x86_64-linux-gnu/rustc1.30.1
- Operating system: Linux
- Installation: one-line installer
- Fully synchronized: yes
- Network: Private PoA
- Restarted: yes
I'm trying the demo PoA tutorial. All seems to work, but when I add a new node to the network (this node isn't validator), the transactions from this node doesn't propagate to the other nodes in the network.
The initial network is composed of the nodes:
validator-01
validator-02
The updated network is with the node:
regular-02
All transactions related to this issue are from regular-02
node.
The genesis file for my network is:
{
"name":"primer",
"engine":{
"authorityRound":{
"params":{
"stepDuration":"5",
"blockReward":"0xDE0B6B3A7640000",
"validators":{
"list":[
"0x001b3fc96e38936badeb3b43bf8b05e43c6128e3",
"0x009dfd994dfe87af895bd9a6a3e5576182d52d9f"
]
}
}
}
},
"params":{
"gasLimitBoundDivisor":"0x400",
"maximumExtraDataSize":"0x20",
"minGasLimit":"0x1388",
"networkID":"0x3144E",
"eip155Transition":0,
"validateChainIdTransition":0,
"eip140Transition":0,
"eip211Transition":0,
"eip214Transition":0,
"eip658Transition":0
},
"genesis":{
"seal":{
"authorityRound":{
"step":"0x0",
"signature":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"difficulty":"0x20000",
"gasLimit":"0x5B8D80"
},
"accounts":{
"0x0000000000000000000000000000000000000001":{
"balance":"1",
"builtin":{
"name":"ecrecover",
"pricing":{
"linear":{
"base":3000,
"word":0
}
}
}
},
"0x0000000000000000000000000000000000000002":{
"balance":"1",
"builtin":{
"name":"sha256",
"pricing":{
"linear":{
"base":60,
"word":12
}
}
}
},
"0x0000000000000000000000000000000000000003":{
"balance":"1",
"builtin":{
"name":"ripemd160",
"pricing":{
"linear":{
"base":600,
"word":120
}
}
}
},
"0x0000000000000000000000000000000000000004":{
"balance":"1",
"builtin":{
"name":"identity",
"pricing":{
"linear":{
"base":15,
"word":3
}
}
}
},
"0x89f9097168fd14bdf95155f5b268759d8550d43c":{
"balance":"10000000000000000000000000"
}
}
}
The .toml
configuration file from the regular node is:
[parity]
chain = "/parity/primer.json"
base_path = "/parity/regular-02"
identity = "primer-regular-02"
no_persistent_txqueue = true
[network]
port = 30302
[rpc]
interface = "all"
port = 8542
cors = ["*"]
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]
[ui]
port = 8182
[websockets]
port = 8452
[ipc]
disable = true
The .toml
config file from one of the validator nodes is (the other one is the same config but with different identity and base path):
[parity]
chain = "/parity/primer.json"
base_path = "/parity/validator-02"
identity = "primer-validator-02"
no_persistent_txqueue = true
[network]
port = 30300
min_peers = 50
max_peers = 100
[rpc]
port = 8540
cors = ["*"]
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces", "rpc", "parity_accounts"]
[ui]
port = 8180
[websockets]
port = 8450
[account]
password = ["/parity/validator-02/node.pwds"]
[mining]
engine_signer = "0x001b3fc96e38936badeb3b43bf8b05e43c6128e3"
force_sealing = true
reseal_on_txs = "all"
When I send a new transaction from this node, a new transaction is created:
curl --data '{"jsonrpc":"2.0","method":"personal_sendTransaction","params":[{\
"from":"0x00c498303595303a7533c47cf32f632087dc1c0c",\
"to":"0x009dfd994dfe87af895bd9a6a3e5576182d52d9f",\
"value":"0xDE0B6B3A7640000"}, "**************"],"id":0}' \
-H "Content-Type: application/json" -X POST localhost:8542
{"jsonrpc":"2.0","result":"0x3135e61208a47af85e677be1e9f39efbd7a81098212f525f4cbcf6be082e8930","id":0}
When I want to retrieve the transaction info from this node, I obtain this result:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0x3135e61208a47af85e677be1e9f39efbd7a81098212f525f4cbcf6be082e8930"],"id":1}' -H "Content
-Type: application/json" localhost:8542
{
"jsonrpc": "2.0",
"result": {
"blockHash": null,
"blockNumber": null,
"chainId": "0x3144e",
"condition": null,
"creates": null,
"from": "0x00c498303595303a7533c47cf32f632087dc1c0c",
"gas": "0x186a00",
"gasPrice": "0x0",
"hash": "0x3135e61208a47af85e677be1e9f39efbd7a81098212f525f4cbcf6be082e8930",
"input": "0x",
"nonce": "0x16",
"publicKey": "0xa0263cf09db59c38b4c155aa72b059b06db26cb7123ef07a48025960254268e45496890d7aa258f1337ea43d9a0d1bb05ee99410f42205c6dd817276a311e512",
"r": "0xefad4a024b155b4bb83c519ac3f5991184c7579d328f13ce1c0b5c922f7e5b75",
"raw": "0xf86b168083186a0094009dfd994dfe87af895bd9a6a3e5576182d52d9f880de0b6b3a764000080830628bfa0efad4a024b155b4bb83c519ac3f5991184c7579d328f13ce1c0b5c922f7e5b75a06e97cd60d336c666ba702ba52abc49862f6158c2368
5350c89c79e1c6874560c",
"s": "0x6e97cd60d336c666ba702ba52abc49862f6158c23685350c89c79e1c6874560c",
"standardV": "0x0",
"to": "0x009dfd994dfe87af895bd9a6a3e5576182d52d9f",
"transactionIndex": null,
"v": "0x628bf",
"value": "0xde0b6b3a7640000"
},
"id": 1
}
From the Ethereum network status this is what I see:
I expect the transaction sent from the regular-02
node has been mined, but this never occurs.
What I'm missing?
When I use Parity
1.11.7
or1.11.11
, this network config work as expected, and all transactions are mined.