Issues: "failed to meet quorum" on homestead network only.
See original GitHub issue@ricmoo I’m still having this issue after fresh install version 5.0.12.
It’s no issue happens if I add an event listener on rinkeby
network but homestead
got this error.
filters :
[homestead] register listenner: [ partnerowner1 : 0xBb993EBccB72F523f068220Ed557aDAE3CdA2cd4 ]
filters {
address: '0xdac17f958d2ee523a2206206994597c13d831ec7',
topics: [
'0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
null,
'0x000000000000000000000000bb993ebccb72f523f068220ed557adae3cda2cd4'
]
}
and this is what I got:
Error: failed to meet quorum (method="getBlockNumber", params={}, results=[{"weight":1,"start":1603061155831,"result":11078005},{"weight":1,"start":1603061155831,"result":11082697},{"weight":1,"start":1603061156585,"result":11082697},{"weight":1,"start":1603061156585,"result":11082697}], provider="[object Object]", code=SERVER_ERROR, version=providers/5.0.12)
additional log
{
reason: 'failed to meet quorum',
code: 'SERVER_ERROR',
method: 'getBlockNumber',
params: {},
results: [
{ weight: 1, start: 1603061697719, result: 11078005 },
{ weight: 1, start: 1603061697719, result: 11082737 },
{ weight: 1, start: 1603061698474, result: 11082737 },
{ weight: 1, start: 1603061698474, result: 11082737 }
],
provider: FallbackProvider {
_isProvider: true,
_events: [ [Event] ],
_emitted: { block: 11082736 },
formatter: Formatter { formats: [Object] },
anyNetwork: false,
_network: {
name: 'homestead',
chainId: 1,
ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
_defaultProvider: [Function]
},
_maxInternalBlockNumber: 11082736,
_lastBlockNumber: 11082736,
_pollingInterval: 4000,
_fastQueryDate: 1603061693718,
providerConfigs: [ [Object], [Object], [Object], [Object] ],
quorum: 2,
_highestBlockNumber: 11082736,
_internalBlockNumber: Promise { <rejected> [Circular] },
_poller: Timeout {
_idleTimeout: 4000,
_idlePrev: [TimersList],
_idleNext: [Timeout],
_idleStart: 28586,
_onTimeout: [Function: bound ],
_timerArgs: undefined,
_repeat: 4000,
_destroyed: false,
[Symbol(refed)]: true,
[Symbol(kHasPrimitive)]: false,
[Symbol(asyncId)]: 438,
[Symbol(triggerId)]: 0
},
_bootstrapPoll: null,
_fastBlockNumber: 11082736,
_fastBlockNumberPromise: Promise { 11082736 }
}
Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (4 by maintainers)
Top Results From Across the Web
Failure to Achieve Quorum - FindHOALaw
If an association fails to achieve quorum, the membership meeting may be adjourned by the vote of a majority of the votes represented...
Read more >UniswapV2SlidingOracle: failed to meet quorum - Defender
Hello everybody,. Just to say that the code ok @Bolo work well, and I have my first transaction with it. With really high...
Read more >THE CONDOMINIUM ACT - MyFloridaLicense.com
locations and approximate dimensions. Failure of the survey to meet the standards of practice does not invalidate an otherwise validly created condominium.
Read more >Board of Appeal and Equalization Handbook
A quorum was present at each board meeting for the previous assessment year. Failure to comply. Any city or town that fails to...
Read more >2022 Florida Statutes - Online Sunshine
Failure of the survey to meet the standards of practice does not ... during a specified period applies only to unit owners who...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Increasing it beyond the sum of providers / 2 could start to impact its quorum error rate.
Basically, the goal of the FallbackProvider is to create a provider with many backends.
The defaultProvider creates a FallbackProvider backed by multiple third-party backends (such as INFURA and Alchemy). But since using a third-party service means you must trust that service, multiple backends are queried at random, to ensure a quorum of them agree. That way if a backend is lying (through malice or being out-of-sync) it will be “out-voted” by honest, synced nodes. If a quorum is not reached initially, additional nodes are queries until a quorum is reached.
So, if you use eth_call to lookup an ENS name and the first node says address A and the second address B, then a third will be queried. If it answers with address B, the default quorum has been reached and address B is returned.
So, but specifying a quorum of 1, you are saying you will accept any answer that comes back and that you trust any backend. If you do this, I recommend pulling the CloudflareProvider out of the list of providers as it is regularly out-of-sync. I might make this the default behaviour; if a person is selecting a quorum of 1, remove Cloudflare. I have had relatively issue with any of the other third-party services.
Hope that helps a bit. 😃
No worries, I’ll look into it. I am planing to re-factor the FallbackProvider overall.
Reducing it to 1 will eliminate the error in you code, but reduces the security and resilience. If any backend is out of sync or has been compromised, your app may behave incorrectly…