-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to pre-deploy the validator smart contract in a new QBFT network without configuring transition #1543
Comments
Hello, |
I have just tried the lastest version {
...
"config": {
...
"qbft": {
"policy": 0,
"epoch": 30000,
"ceil2Nby3Block": 0,
"testQBFTBlock": 0,
"blockperiodseconds": 5,
"emptyblockperiodseconds": 60,
"validatorcontractaddress": "0x0000000000000000000000000000000001919810"
},
"transitions": [
{
"block": 0,
"validatorselectionmode": "contract"
}
]
}
} |
You are right, this is mandatory in this version: in term of usability, we need to improve that. |
System information
Geth version:
quorum 22.7.0
OS & Version: Windows/Linux/OSX
Expected behaviour
I mocked the example contract to generate a storage layout for the validator contract, and have inserted it into the "alloc" section of genesis file. Validators should have been authorized to seal blocks after I set
validatorcontractaddress
, according to the doc.Actual behaviour
A blank list is returned when calling istanbul.getValidators(), even after I have got expected validator list with web3 http API.
My genesis block
My validator contract code
What I have noticed
At around line 370 of
quorum/consensus/istanbul/backend/engine.go
, I found a line:The
GetValidatorSelectionMode
function is implemented inquorum/consensus/istanbul/config.go
So it seems that with no transition,
GetValidatorSelectionMode
always returnsBlockHeaderMode
, which disabling contract mode, even if I have setvalidatorcontractaddress
.The text was updated successfully, but these errors were encountered: