Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.
Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.
Mar 22, 2023
Client Team Updates
- Nethermind: Bad block fix was shipped.
- Erigon: No updates
- Geth: Imported some blocks, but there’s issues with the freezer, hopefully that’s the last hurdle
- Prysm: No updates
Increasing mainnet RPC to 75% traffic. Implementing monitoring for the Chiado bridge. As soon as this is done, they’ll deploy both bridges for mainnet
Some issues: 3 phases
- No problem
- Issues caught before the merge and fixed in time
Shapella hard fork
- Erigon nodes got stuck with “known bad hash”. Erigon now stuck with another bug
Gateway switched Erigon nodes to Nethermind
- Issues regarding sync committees Mar 22 13:01:07.055 WARN Error processing HTTP API request method: POST, path: /eth/v1/beacon/pool/sync_committees, status: 400 Bad Request, elapsed: 4.13746ms
- Was a good test, revealed some issues. DDoS protection from geth was problematic but is fixed. Missing gas limit implementation. The withdrawal contract reverts on Erigon, but works fine on Nethermind. Missing all the slots (or most?) Bad blocks on Sepolia, but works on Goerli. If any bad block is detected on Goerli, please tell Andrew. Could be linked to an old version of Erigon. Andrew will check on their Sepolia validators
- Consensus issues need to be investigated separately. We need consensus between both clients to test client diversity / parity
Igor: where do (automatic) withdrawals go for genesis validators? Do they have a withdrawal address? Lion: the default tooling sets addresses to 0 Jorge: they sometimes set withdrawal addresses on genesis or after, depending on what’s to be tested Ruben: can help on how to check if withdrawals are happening or not The failed withdrawals per slot are fixed to 4 on Nethermind’s side for now Lion: this should be a consensus config Marek: how can we be sure that we are triggering all testing paths? Lion: we could add coverage tools from Solidity to automate those tests Igor: we need tooling to automatically test withdrawals, because they happen on both consensus and execution Lion: for the withdrawal contract we can easily test it on chain now because it’s insolvent at genesis anyways, as the validators are created in genesis and thus there’s no GNO in the contract Jorge: instead of deploying a new devnet or messing with the current one, we can create a shadow fork and modify some storage there to test specific scenarios I.e. removing the GNO in the contract for example Marek: downside is that this is not automated testing for the future Jorge: indeed, but we don’t have automated tests yet and that’s the best we have
Was supposed to hard fork next week: still realistic? Igor: probably wise to postpone until Erigon is ready
Max not present: no update
- mGNO is getting removed Would require a contract upgrade on devnet. Will be tested on devnet by triggering actions that provide good solidity coverage