Gnosis Core Devs Call Notes March 22, 2023

March 22, 2023
Armagan Ercan

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

Watch on Gnosis Chain YouTube

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

Chain Infra

  • Gateway: 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

  • Launching chain: No problem
  • Merge: 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

    Erigon: 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

    Nethermind: 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


  • Hive: Max not present: no update

Withdrawal Contract

  • mGNO is getting removed
    Would require a contract upgrade on devnet. Will be tested on devnet by triggering actions that provide good solidity coverage
Read original article on mirror.xyzRead original article on substack