Closed kikoncuo closed 5 years ago
Is there a specific contract you are using to cause this issue? I assume you can reproduce it quite easily. I've just tried with some basic contracts and using subsets of participants worked, so knowing what contract was deployed is helpful.
Also, I assume that system information you provided is a copy paste error? Quorum hasn't caught up to that version of geth
yet, and doesn't contain that commit.
You are right, I put there the geth version of my system not of the docker container, we were using an old container with an old docker version 1.7.2-stable and quorum 2.0.0, fixing now.
I tried with a contract as simple as possible, just changing one global value:
pragma solidity ^0.4.24;
contract Test{
uint256 private number = 1;
constructor() public{
}
function setNumber(uint _number) public{
number = _number;
}
function getNumber() public view returns(uint256){
return number;
}
}
Thanks for the contract. I compiled the contract and deployed it between 3 keys. I then sent a transaction calling setNumber, for just 2 of the keys, and no error was thrown in the node that was left out. I see you performed this with 4 keys (including the originator), so there is no big difference there.
Some extra questions: You upgraded to Quorum v2.2.0? Does this error happen on a fresh chain, or only occurred on your existing chain that was running v2.0.0? Are you able to share your genesis file? Lastly, what is the network setup? (how many nodes, deployed in a cloud provider)
We've noticed that newer versions have fixed many problems we are currently encountering.
Answers: We have not, but will upgrade, try again and get back to this issue Fresh chain
'{"config":{"chainId":2017,"homesteadBlock":1,"eip150Block":2,"eip150Hash":"0x0000000000000000000000000000000000000000000000000000000000000000","eip155Block":3,"eip158Block":3,"istanbul":{"epoch":30000,"policy":0},"isQuorum":true},"nonce":"0x0","timestamp":"0x5beb2518","extraData":"0x0000000000000000000000000000000000000000000000000000000000000000f89af85494051e0b7eaef576f6a00b4991a244e7ef7a971b2694e3466a89fd4018432634de2c0af1c2e13a6c763e9409950d4e677c1d978435e6752a42d6ee9739eda194a69898f79eae7a6eff5404d69a6dc23dcdcb9a9cb8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0","gasLimit":"0x47b760","difficulty":"0x1","mixHash":"0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365","coinbase":"0x0000000000000000000000000000000000000000","alloc":{"051e0b7eaef576f6a00b4991a244e7ef7a971b26":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"09950d4e677c1d978435e6752a42d6ee9739eda1":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"a69898f79eae7a6eff5404d69a6dc23dcdcb9a9c":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"e3466a89fd4018432634de2c0af1c2e13a6c763e":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"}},"number":"0x0","gasUsed":"0x0","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"}'
4 nodes on docker containers deployed in the same aws instance
Yep, there have been quite a few fixes for various causes of the "bad block" error. Let me know how you get on with the newer version.
If the issue persists even after upgrade, we can keep digging into the root cause.
Enrique, the genesis appears to be generated by older Istanbul tools as well. Please update to latest jpmorganchase/istanbul-tools and regen or manually bump gas limit and replace homesteadBlock with byzantiumBlock.
On Fri, Dec 14, 2018, 10:36 AM Enrique Alcázar Garzás < notifications@github.com wrote:
We've noticed that newer versions have fixed many problems we are currently encountering.
Answers: We have not, but will upgrade, try again and get back to this issue Fresh chain
'{"config":{"chainId":2017,"homesteadBlock":1,"eip150Block":2,"eip150Hash":"0x0000000000000000000000000000000000000000000000000000000000000000","eip155Block":3,"eip158Block":3,"istanbul":{"epoch":30000,"policy":0},"isQuorum":true},"nonce":"0x0","timestamp":"0x5beb2518","extraData":"0x0000000000000000000000000000000000000000000000000000000000000000f89af85494051e0b7eaef576f6a00b4991a244e7ef7a971b2694e3466a89fd4018432634de2c0af1c2e13a6c763e9409950d4e677c1d978435e6752a42d6ee9739eda194a69898f79eae7a6eff5404d69a6dc23dcdcb9a9cb8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0","gasLimit":"0x47b760","difficulty":"0x1","mixHash":"0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365","coinbase":"0x0000000000000000000000000000000000000000","alloc":{"051e0b7eaef576f6a00b4991a244e7ef7a971b26":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"09950d4e677c1d978435e6752a42d6ee9739eda1":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"a69898f79eae7a6eff5404d69a6dc23dcdcb9a9c":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"},"e3466a89fd4018432634de2c0af1c2e13a6c763e":{"balance":"0x446c3b15f9926687d2c40534fdb564000000000000"}},"number":"0x0","gasUsed":"0x0","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"}'
4 nodes on docker containers deployed in the same aws instance
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jpmorganchase/quorum/issues/596#issuecomment-447361070, or mute the thread https://github.com/notifications/unsubscribe-auth/AAbPjDqajbRI-CCa5CfqSt9bp9Bgu4u8ks5u48VngaJpZM4ZR0mh .
Please reopen once you've encountered it again. Thank you.
Updated Quorum to 2.1, fixed our genesis file and everything is working now
In private contracts, subsets of participants should be able to still send private transactions without breaking consensus for the non included parties.
This behaviour was cited in other issue, however, the transaction keeps failing for all nodes which keys were including during deployment and not into this transaction.
System information
Geth version:
1.7.2-stable
Quorum Version:
2.0.0
OS & Version: Linux/OSX
Branch, Commit Hash or Release:
0905eda48eb07a4ce0e7072c1a2ecbf690ddff77
Expected behaviour
Private transaction on a private smart contract which only includes a subset of the keys specified during contract deployment generates a valid transaction accepted by all members on the network
Actual behaviour
All members which have not been included in the subset will deem the block which contains the transaction invalid, and if they are in the minority, fall off consensus.
Steps to reproduce the behaviour
1 Deploy contract privately: 2 Perform transaction without all keys specified in deployment: 3... 4 No profit
Backtrace
Contract mined
Constellation result of the node not included in the group
And the node connected to that address processes the block as a bad block And starts returning an inconsistent sequence number