I have the following contract deployed on my PoA network with two sealers, node1 and node2.
Let's assume a user, user1, submits a transaction with call to process() method to node1 and another user, user2, submits a similar transaction with call to same contract method to node2.
If node1 seals the block first, What will happen to user2's transaction? It won't be included in the block?
If a user knows which signer will seal a block next, He can submit a transaction to that sealer to win the race. Does PoA/Clique consensus employ some mechanism to overcome this?
pragma solidity ^0.4.7;
contract raceTest {
uint8 x;
constructor () {
x = 1;
}
function process() public {
require(x == 1);
x = 0;
}
}