Skip to main content

Core Devs Call - 2023/04/26

· 2 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.

Watch full record on YouTube

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

April 26, 2023

Client Team Updates

EL

  • Nethermind: Got close to releasing the first hive tests. Maybe later today or tomorrow. Preparing a new major release. Found some issues, mostly optimizations and bug fixes. Probably going to be released next week. Will send the release notes once they have them

  • Erigon: New release (2.43) Replaced the light consensus client with a more experimental full consensus version. As it’s a full blown CL implementation, it should also be able to work for Gnosis in the future--externalcl is now default (and the flag was removed).Use --internalcl now to use the new experimental CL. Looking to hire a new core developer. Gnosis HR has been helping. New diagnostic tool https://github.com/ledgerwatch/diagnostics. Idea is to also use it as a recruitment tool

  • Geth: Still has a sync problem. Nethermind hangs up without telling why. Spent some time with Nethermind to fix this. Related to a wrong chain ID. Resulted in the need to resync everything

CL

  • Prysm: No updates.
  • Nimbus: No updates.

Chain Infra

Gateway : No peers found on Devnet (probably just the different genesis).

Devnet

No major updates. Withdrawals look good. Activated ~80% of the keys and withdrawals work. Failure scenario works as well.Exiting worked a few times as well.

Research

Shutterized Beacon Chain The EL specs seem to be clear enough. Nethermind can start prototyping something until libp2p is made available.

Tests

Hive Ran into issues regarding the config. Five basic withdrawal tests should be delivered today or tomorrow. The blocker is regarding the payload. The payload isn’t communicated correctly between CL and EL.

Core Devs Call - 2023/04/19

· 2 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.

Watch full record on YouTube

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

April 19, 2023

Client Team Updates

EL

  • Nethermind: No updates.
  • Erigon: No updates.
  • Geth: Was able to import the state (simulate snap sync)Is now starting the node in full sync, but it’s not connecting / downloading blocks. Once this is done, Guillaume should have a working prototype

CL

  • Prysm: No updates.
  • Nimbus: No updates.

Chain Infra

Gateway

No peers found on Devnet (probably just the different genesis).

Devnet

Wrong configuration was shared. There’s now a mismatch for outside nodes. There’s no Erigon node running at this point. 80% attestation rate (all nodes ran by Nethermind) Shapella went through Lion: does Nethermind have metrics for the network? I.e. withdrawal amounts per block etc. Apparently not. Might potentially be added. Most credentials are still 0x00. Meaning that no withdrawals are currently happening.

Research

Churn coefficient https://hackmd.io/@dapplion/gnosis-churn-limit Defines the number of validators that can join or exit the network in a specific time frame. On Gnosis that number is a bit high, meaning that it would theoretically be possible to get a big stake in the network very quickly. This would require a consensus client code change. Technically a change on the deposit contract could also limit inflow. But that break a lot of assumptions. It doesn’t change anything in the case of outflows.Attacking the light client bridge is exclusively an inflow problem

Shutterized Beacon Chain: is there progress? We’ve got more precise specs on a PR https://github.com/gnosischain/specs/pull/4 Lion: how specific do you need the spec to be? It seems like EL clients have more lax requirements for specs, is that true? On CL everything is specced quite precisely.

Tests

  • Hive

Will start writing Hive tests by the end of this week Improving the genesis loading for Erigon and Nethermind, but hasn’t been tested on Erigon yet. Lion: can we agree on which conditions tests would be considered good enough to move to testnet / mainnet? Ruben thinks it would be enough if we can just run the contract specific parts (balances etc)

Core Devs Call - 2023/04/12

· 2 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.

Watch full record on YouTube

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

April 12, 2023

Client Team Updates

EL

  • Nethermind: No updates. Steadily progressing with Hive tests
  • Erigon: No specific updates, waiting for Shanghai to happen. Marcos was asking for an Erigon config for Gnosis. Erigon doesn’t support single file configs for AuRa chains. It will require some code change. Is this required for Hive tests? Not absolutely necessary, but would be useful so that it’s generic for every client Andrew will take a look at it this week.
  • Geth: No update

CL

Chain Infra

  • Gateway

Bridge validators up and running and there are successful transactions for both (native and AMD) Helped Giveth team to setup their bridge validators by sharing steps via notion. Looked into the shapella issue on devnet

  • Plausible scenario: Lighthouse lost all peers just before it was its time to propose the block, so it began a new chain, then it couldn’t re-connect to reorg so it only proposed blocks when it was its time

Doesn’t seem to be the issue with Erigon or Nethermind Unlikely to repeat in real life because we won’t have that little actual nodes and that many validators. But we need to be careful with Chiado, because the setup is similar

Waiting for the next steps for the next devnet.

  • Gnosis

Setting up network metrics and alerts Grafana and Prometheus running. Doing some tests. We will follow up with new updates next week. Also have Telegram notifications working. We will invite appropriate teams in due time.

Devnet

We have consensus on the current broken devnet. We’re going to spin a new one up. Mainnet hardfork is happening today, so it might be a blocker. To be confirmed by Carlos

Tests

  • Hive

How to open up the network to outside validators? GNO faucet? New testnet for validators to keep Chiado stable for other testing?

Core Devs Call - 2023/04/05

· 4 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.

Watch full record on YouTube

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

April 5, 2023

Client Team Updates

EL

  • Nethermind:

Merged withdrawals to the master branch

  • Erigon:

No updates

  • Geth:

Was still syncing on Monday (~1 month left to sync)

CL

  • Prysm:

No updates

Chain Infra

  • Gateway

Has been helping quite a few teams. Giveth to setup their bridge validator. Max helped Marcos with Hive tests. Took all the traffic from the main Gnosis RPC because Gnosis was experiencing issues. Everything went fine

  • Gnosis

Had an outage on the public RPC. Redirected all the traffic to Gateway

Devnet

  • Gateway (on 4 nodes for 5k validators) that 3 validators are on the right chain and working correctly
    • 2 have Nethermind
    • 1 has Erigon: The last Erigon forked away on the block that it created by itself (#88092). A previous block by the same node has been accepted by the network. Except by the broken Erigon node. The failed block has a different state root and an additional withdrawal. This specific node rejected a block that was considered valid by all other nodes. We don’t exactly know why the broken node rejected the valid block. There was an unwind right before on the broken node. Logs for both Erigon nodes are in the Telegram group
  • Nethermind (5-6 Nethermind nodes, out of which 2 had issues)
  • Lodestar: Seemingly peering issue Ping-pongs between having enough peers and not having enough, so it wasn’t able to keep in sync
  • Teku (although another one was working fine) Started sending FCUs of the same blocks over and over again around 1k blocks before it lost sync Might have been connected to Gateway’s broken Erigon node
  • Gnosis Experiencing issues as well (running Erigon, Nethermind, Teku and Lighthouse, 2.5k keys total).Nodes are stuck on different block numbers. Currently debugging more in depth. None of the 4 validator combinations are working correctly and are on different forks. Giacomo and Igor will keep in touch to debug this.
  • Next steps
    • Find the issue (Andrew)
    • Launch a new devnet Alerts (Lion)

The objective is to track everything that can go bad and send alerts to the relevant parties. Has a private repo with a bunch of alerts. Covered basically everything on the consensus side. Will add the relevant people on the repo async. Will be set up by Gnosis DevOps, Giacomo knows about it already. Ruben tested failed withdrawals on Apr 4, 2023

The current implementation executes withdrawals transactions after standard transactions. This means that the event logs are missed. We might want to drop them, as they are thus useless. To track specific parameters we could add more variables. Erigon behaves in the same way. Instead of using events to check if a withdrawal was successful, we could check the state of the contract to see if the transaction was added to the failed transactions. If not, it should be considered successful This is not super accurate though and doesn’t give great visibility.

Lion thinks it might be possible to do it with the current withdrawal contract implementation, but if not we can add some primitives. There might be something with public variables on the contract:

failedWithdrawalsPointer numberOfFailedWithdrawals

Lion want to know how exactly the devnet was bootstrapped. ruben@nethermind.io will send this offline

Tests

  • Hive

Had a call last Thursday regarding what our objectives were defined a overview of what things should look like. Hopefully more information next week.

Withdrawal Contrat

No updates

Core Devs Call - 2023/03/29

· 2 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday.

Watch full record on YouTube

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

Mar 29, 2023

Client Team Updates

EL

  • Nethermind:

Introducing Marcos for Hive tests. Will have a call tomorrow regarding those tests.

After Shapella, Nethermind will probably release a very big version with a lot of changes. Huge amounts of optimizations is coming.. Potential new light mode that would reduce memory consumption a lot

Improving attestation performance Better multi-threading Potentially (but way later) snap sync

  • Erigon:

Canceled their agreement with Gateway for developers, thus Max is no longer an Erigon dev. They want to hire new devs, but will take time. Added the max failed withdrawal parameters to the withdrawals system call, which should now work

  • Geth:

Guillaume has worked around the issue from last week, and is now importing the data to start syncing the chain. It has been running for two days, and there’s probably one more day to go, after which he’ll be able to give an update.

CL

  • Prysm:

No updates. Guillaume is focused on Geth

  • Nimbus:

We’ve written and reviewed our docs to be published soon After this, we’ll publish client diversity docs, so that validators can start using Nimbus.

Chain Infra

  • Gateway

A mainnet bridge validator is now running and has already processed a few transactions.Extra monitoring was added there.

Devnet

Withdrawals are working again. Tried partial withdrawals, not full exit yet. Gnosis mostly deployed Nethermind nodes. No one seems to know if Erigon nodes still sync. Andrew’s Erigon nodes still work

There’s close to 100% attestation participation.Ruben can do a full exit on 1024 nodes to drain the GNO in the deposit contract.

There’s a faucet for GNO afterwards.Ruben expects Gnosis to be testing this a bit more

Lion will run Truffle scripts

Tests

  • Hive

There’s a call tomorrow, invite in Telegram Happening at 3pm CET

Withdrawal Contrat

Adam’s audit is done, and another external audit should be done by early next week. The minimum amount to deposit is 1/32 GNO, which could be an attack vector. Looking into it. We might want to increase that minimum.

Core Devs Call - 2023/03/22

· 3 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

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

EL

  • 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

CL

  • 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

Devnet

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

  • Testnet

Was supposed to hard fork next week: still realistic? Igor: probably wise to postpone until Erigon is ready

Tests

  • Hive

Max not present: no update

Withdrawal Contrat

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

Core Devs Call - 2023/03/15

· 5 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

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.

At this meeting, the team talked about xDAI's base fee and options are being evaluated. Research is underway on Home stakers affected by ISP bandwidth limitation. Also shared updates from CL and EL teams.

Watch on Gnosis Chain Youtube

Mar 15, 2023

Client Team Updates

EL

  • Nethermind: Aiming to automate the contract deployment But having issues with the deploy contract. Going with truffle deployments. Contracts work as expected. Issues with deployment only.

  • Erigon: Working on documentation internally. Andrew is in holiday so wasn’t able to join the devnet yet. Maybe can next week (back on Monday)

  • Geth: Managed to rebuild the trie. Needs to finish importing blocks, after which it should be possible to follow the chain. Needed because snapshot sync doesn’t work. Will then serve snapsyncs to other instances of Geth

CL

  • Prysm: Doesn’t work with the “CAPELLA_FORK_EPOCH: 9999999999999” “hack” either, more investigations to do.
  • Guillaume: Might work when building locally instead of using their Docker image

Chain Infra

  • Gateway

Provisioned bridges on Chiado. If everything goes right -> mainnet. Serving half of the requests on the official RPC. Service 75% of the Chiado RPC requests. Figured out issues with The Graph. Figured out an issue with Erigon sometimes stopping to sync. Because of invalid blocks produced by Nethermind. Not super focused on withdrawals right now.

Provided Ethereum archival nodes for Gnosis Bridge validators

Devnet

New one to be spun up after deployments are automated (probably today or tomorrow)

Target configs: Monday Target launch date: Tuesday

  • Testnet

Tentative date for Chiado hard fork Nethermind: 10 days to 2 weeks (maybe a bit optimistic) Erigon: the code is ready and they don’t expect any big issues, so the hard fork could come relatively soon

Tests

  • Hive

It’s actually a lot of work to adapt Hive tests for Gnosis. The Erigon team is meeting IRL to discuss this Updating tests will take at least a few weeks, maybe a month or two. It’s a bigger task than anticipated

People

Nethermind agreed to take on DevOps and QA roles and is looking for people

Research

  • Home stakers affected by ISP bandwidth limitation (because of CL). Workaround?

Idea: Reduce transaction pool size (EL) Several members of community receiving letters from ISP saying their service will be cancelled due to high bandwidth consumption

Past Research

  • Research: 5s Blocktimes for Gnosis

There would be an advantage of having 4 or 6s block times to be in sync with Ethereum. Connected block builders could be used to have optimistic mechanisms in contracts for cross-chain arbitrage.

  • Also requires Genesis times to be aligned

Gnosis Dec-08-2021 07:55:40 PM Ethereum Dec-01-2020 12:00:23 PM Meaning that have one block time be a multiple of the other one would probably still not work either way

xDAI as base fee

Nothing actionable right now. The last weekend showed the problem. Gnosis wants to be decentralized and resilient. The base token (DAI) is essentially wrapped USD bank deposits at this point. Mostly USDC (60-70%). DAI is very affected by potential US banking problems.

  • Problematic for credible neutrality

Problematic because it’s linked to a specific “region” (i.e. the USA) Moving to GNO as a base token

The idea of a stable coin as a base token is nice and many like it based on an internal poll. How bad is it actually if DAI has an issue?

Having fees be twice cheaper is not a huge issue, as in any case there’s still an auction for block space DAI is not integral to the security of the chain, whatever its price.

It still impacts all the users that are forced to hold DAI because of Gnosis.

It would impact a lot of DeFi as well Using a less centralized stable instead of GNO would be a nice option.

There’s some very early research. We could schedule an open research call.

  • Option: fork Maker on Gnosis

In the same way that Maker accepts 1 USDC as collateral to get 1 DAI, we could start with that and then add options to add GNO or other crypto assets as collateral. Gives a lot more flexibility. We can limit the amount of xDAI minted through DAI and force more of it to be minted through decentralized collateral

  • Thought Experiment: GNO as a Native Token

Some ideas (lacking expertise) Different opcodes for "legacy" native asset transfers vs. GNO transfers Different txn types (e.g. type 1, EIP-1559, and GNO-native txns) Utilizing legacy RPC URLs to relay txns using a JIT airdrop of GNO

Misc

Figure out deploy strategy on Chiado so that we can replicate it on Mainnet I.e. go through the same deposit contract upgrades etc

Core Devs Call - 2023/03/08

· 3 min read
Lion - dapplion
Hard Fork Coordinator
0xarmagan
Validator Comms Lead @ Gnosis

Greetings everyone, and welcome to the weekly Gnosis Core Devs Call. Just a quick reminder that this meeting takes place every Wednesday. Watch on Gnosis Chain YouTube channel. ‍

Participants: Erigon, Gateway, Nethermind, Geth, Gnosis DevOps, Gnosis Core Devs, Gnosis DevRels, Gnosis Comms team and the contributors.

In this meeting, after a quick update was received from Chain Infra and Client teams, devnet planning was discussed in the Withdrawals process. Test processes continue. In addition, new positions were evaluated for needs.

Mar 8, 2023

Client Team Updates

EL

  • Nethermind: Managed to get the contract deployed on devnet. Will figure things out with Lion async
  • Erigon: No update
  • Geth: No update

CL

  • Prysm: No update

Chain Infra

  • Gateway : Close to final setup for a bridge validator for Chiado. Hopefully this week. If it works, they’ll go to mainnet with the same config

Withdrawals contract

  • Adam reached out, the audit is ready
  • Lion will follow up with that

Devnet

  • Contract deployment issues
  • Ownership: See hiring
  • Nethermind is maintaining the current DevNet short term Carlos, Lion and maybe someone from Gateway will maintain them. The current devnet is mostly internal for Nethermind It has a very low amount of validators. For a public one we should create a new devnet. Maybe we can still open it at least to Erigon so they can start testing Infra (explorers etc) are already mostly set up Lion is suggesting to use Nimbus’ explorer (which is way more minimal) in case beaconcha.in can’t keep up The withdrawal address contract isn’t known in advance, which is a bit problematic. Ideally we should have create2 deployments so that the address is known in advance The address should be identical across deployments to make things easier
  • Needs to be deployed with the same EOA. Ruben will try to get this to work
  • New larger devnet: We’ll give one week of notice to allow everyone to spin up infra

Tests

  • Hive Max brought in by Anna. He’s working with the Gateway team and moved to Erigon. Worked on the Hive tests to figure out the differences between Ethereum and Gnosis Crafted a new genesis for Gnosis. Went down a rabbit hole with dependencies and adapting the tests to work with Gnosis. Will ask questions regarding the network Commitment unclear

People

Philippe officially taking over as TPM “Core Devs”!

  • Hiring Roles QA: maintain test suite (Hive tests, etc) DevOps: DevNets, Shadowforks, Testnets Where headcount will sit: Gnosis, or with a core team Need help with JDs + recruiting

Core Devs Call - 2023/03/01

· 6 min read
0xarmagan
Validator Comms Lead @ Gnosis

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.

The main topic of discussion during the meeting was the Devnet and Hive test. The team is currently making preparations for the forthcoming Shapella upgrade. Furthermore, updates were given on withdrawal contract, the Client team, Chain infrastructure, and POSDAO test.

Watch on Gnosis Chain YouTube channel

Topics

  • Withdrawals Contract
  • Shapella Upgrade
  • Core Dev Team updates
  • Client Team Update
  • Chain Infrastructure Updates
  • Devnet
  • Hive and POSDAO test
  • Get rid of mGNO

Call Notes

Gnosis Core Devs Call Notes

Withdrawals contract

  • We should try to commit to a date soonish
    • Devnet with actual contract deployed today by Nethermind and joined tomorrow by Erigon
  • Semi final state
    • Adam should be taking a look for the audit
      • "I’m still auditing, but also waiting for your response on two threads. I should be able to wrap up the audit shortly after I receive the fixed code."
    • Lion is getting gas numbers to have accurate parameters
    • Coming up with a plan so that Jorge can easily deploy

Client team updates

EL

Nethermind

  • Figured out the issue with withdrawal testnet
  • Next step: spinning up a new one with the actual withdrawal contract’s bytecode

Erigon

  • Implemented the withdrawal logic for Gnosis chain
    • Not tested yet

Geth

  • Guillaume went back to snap sync, but it makes Nethermind hang up
  • Trying some sort of manual snap sync by exporting data from Nethermind and importing directly into geth

CL

Prysm

  • New release with the Gnosis changes also includes Capella changes
    • Breaks the fork id logic for networks where the Capella fork hasn’t been scheduled yet
    • One can set a Capella fork block far in the future to test it out

Devnet

  • No updates except the ones mentioned in the team updates
  • How are we going to split validator duties?
    • Ideally multiple teams should run keys
    • Between 1k and 10k in total
    • A third for Nethermind, Gnosis and Gateway

Chain infra

Gateway

  • Work on bridge validator
    • Created ansible scripts
  • Slowdown while Denver is happening
  • Updated the way traffic gets redirected from the Gnosis RPC to Gateway to better track RPS
  • Beaconchain

Additional Workstreams (will join this call in the future)

  • Shutterized Beacon Chain
  • Account Abstraction

Tests

Hive

  • Nethermind has been discussing it internally
    • They think it would be bad long term if Nethermind took ownership of testing because they’re the majority client already, and thus don’t really want to do it
    • At the same time, it’s unrealistic to fork without testing in place
  • Dapplion thinks that if Nethermind has capacity it would be nice to still do it and diversify later on
    • The shortest path right now to move forward is for Nethermind to implement tests
  • On Gnosis, previously Jorge wrote tests (but also implementation, so that’s not great)
    • We don’t have experience in-house for testing
    • We might not have enough work to hire a full-time test developer
  • Guillaume thinks that for a short period of time it could occupy a full-time developer position and will ask for finer details from the Ethereum Foundation / tester
  • On Ethereum, there’s a dedicated testing team and contributions from clients teams from time to time
    • Ideally, teams give ideas for good tests but don’t implement them
    • They also have tests other than Hive
  • Guillaume would be willing to help writing Hive tests with the Nethermind team potentially
  • Tests are a blocker right now
    • We have most implementations and devnets, but no tests
  • Dapplion: is it a big issue to not have tests if devnets work as expected?
    • Are there code paths that we can’t trigger on a devnet?
      • Failed withdrawals are trivial to trigger on devnet
    • Could be an issue for regression testing, but we could freeze that code
  • Dapplion: does Gateway have core devs that could do this?
    • Anna: not sure, will ask
  • For consensus-breaking features, tests are essential
    • Also useful for edge cases, which can be difficult to trigger on devnets / testnets
  • Guillaume and Marek don’t feel comfortable going to mainnet without tests
  • Dapplion: it might take a lot of time to hire someone to work on this, so ideally we should jumpstart it with existing talent to not delay the fork significantly
    • Ask: Find person who is familiar with Hive tests (HR? - ?), in worst-case scenario find Go (but has cold-start problem)
  • Next steps
    • Dapplion asks Nethermind to reconsider taking part ownership
    • Nethermind will talk about it internally and keep us up to date
    • Gateway should check if they have talent / capacity
    • Gnosis should consider hiring someone
    • Dapplion and Guillaume will take this offline
    • Stefan: Erigon - Go? (but unable to take it on)
      • The core team is rather small and there probably aren’t any free developers
  • POSDAO
    • Written in JS
    • Jorge would prefer to get rid of them
      • The code is quite complex
      • Still makes it possible to tests withdrawals

Miscellaneous

mGNO: sole purpose is to allow to use 1 GNO for validators and emulate the 32 ETH on mainnet

Core Devs Call - 2023/02/22

· 6 min read
0xarmagan
Validator Comms Lead @ Gnosis

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.

The main topic of discussion during the meeting was the withdrawals contract. The team is currently making preparations for the forthcoming Shapella upgrade. Furthermore, updates were given on Devnet, the Client team, Chain infrastructure, and POSDAO.

Watch on Gnosis Chain YouTube channel

Topics

  • Withdrawals Contract
  • Shapella Upgrade
  • Core Dev Team updates
  • Client Team Update
  • Chain Infrastructure Updates
  • Devnet
  • POSDAO

Call Notes

Withdrawals contract

  • Should be finalized
  • Being audited by Adam
  • If the transfers can’t occur (insolvency case), they will be queued and cleared when new GNO is supplied
  • Dapplion is asking for help from Nethermind to pick a safe value of the number of failed transactions to execute per block
  • Might be useful to test on mainnet because on devnets the entire state can be cached
  • Ruben suggests a default of 16 for both, so 32 in the worst case scenario
  • If we have one day worth of failed amounts, then clearing the queue would take a day as well
  • In any case, this would be an unlikely scenario Would require a massive exit
  • Lukasz: is there an estimation of gas usage for those transactions?
  • Dapplion: we don’t have those numbers but we should compute them
  • Based on this, we could choose a number for the failed transactions per block
  • Dapplion: will ask Ihor to get some numbers
  • Need to assign tokens to Deposit Contract
    • Should have some 0x01 addresses
    • Method 1: Jorge’s “Merge” method of just overwriting storage slots
    • Nethermind and Erigon have support for storage allocations
    • Makes it possible to give tokens to users in contracts
    • Method 2: Assign code as constructor bytecode (?)

Devnet

  • Are there blockers?
    • Actual withdrawals contract (currently using mocks)
  • Can we start spinning one up?
  • Status‍
    • Nethermind
      • Started an internal devnet using a mock contract a few days ago
      • So far, everything seems to be good
      • Starts with AuRa blocks, then Merges (Bellatrix) and then enables Withdrawals
      • Lighthouse might not be compatible with TTD = 0
      • Devnet is simple to set up because it’s mostly automated
      • Current state‍
        • A dozen of validators
        • Went through Shanghai without any issues
        • Withdrawals have not been tested yet
        • Figuring BLS addresses out
        • The nodes are public, so an RPC can be shared
        • Erigon can also join this devnet, but the mock contract is still used, so that needs to be configured‍
    • Erigon‍
      • Not implemented yet
      • Can be done this week
    • General
      • We can spin up a devnet with both clients end of next week (March 2nd)
    • Gnosis DevOps
      • Will run Nethermind first?

Client team updates

Execution Layer

  • Nethermind‍

    • Running devnet for withdrawals
    • Issues regarding 1.17
    • Attestations down
    • We’ll investigate and contact Nethermind on Telegram
  • Erigon

    • Chiado now works
      • Linked to dead peers on Nethermind
      • Enabled snapshots
    • Light client works for Gnosis and Chiado
      • DevOps is working on spinning up more Nimbus peers
  • Guillaume

    • Trying to run latest Prysm on mainnet
    • Will be working on geth sync for the rest of the month
    • Will be working on geth sync for the rest of the month

Consensus Layer

Chain Infra

  • Gateway‍

    • Half of the traffic on Chiado
    • 25% traffic on mainnet
      • Everything’s good and planning to increase traffic
    • Gnosis Bridge Validator
      • 1-of-7
      • Work can be slow during EthDenver
  • Beaconchain

    • Not ready till T+1 after Ethereum Shanghai/Capella
    • For the 0x00 -> 0x01 address conversion

Timeline

  • When is a realistic time for Withdrawals?

    • Need to prep community
    • We should not overpromise‍
  • DevNet

    • Next steps (can be done without Erigon)
    • Deploy a new one with the actual smart contract
      • With upgrade from mainnet bytecode if possible, but not essential
      • Can be put in the genesis bytecode
    • The contract should be pre-funded to simulate the current state on mainnet
    • Would be great to test the insolvency case
    • Test the deposit contract update
      • Start with the bytecode of the current deposit contract
      • Go through the upgrade
    • Can probably be done this week
  • Shadow forks‍

  • Chiado

    • Deposit contract for Genesis
    • Start testing tooling
      • Dappnode
      • Withdrawal credentials in general‍
  • Mainnet‍

    • Deposit contract needs to be updated
    • Requires testing
      • On devnet
      • On chiado
      • Emulate it as close to mainnet as possible

Additional Workstreams

  • Shutterized Beacon Chain
  • Account Abstraction

Tests

Hive

  • Dapplion: Should be the option in the long term
    • Marek agrees because Ethereum also supports Hive tests
    • However, the initial effort will be more important as we have nothing yet

POSDAO

  • Currently: Truffle test suites
  • Really annoying to work with
  • Still-relevant
    • Deprecated, but still necessary for nodes being synced from Genesis:
      • Pre-merge testing of POSDAO - rotation of validator set, voting etc
      • Test that we can still go thru the Merge without going thru forks or nodes getting start
    • Still relevant:
      • xDai Block Rewards
      • Has prevented really bad problems from happening
        • Syncing from Genesis

None of them are being worked on

  • Would anyone have capacity to do either?
    • Nethermind: Hive tests are written in Go
      • Nethermind has devs, but not sure anyone is available
    • Erigon: Andrew will ask around, but probably no capacity
  • Would be great to have long term ownership of Gnosis tests
    • Especially for shutterized beacon chain etc in the future
  • We wouldn’t need a suite as extensive as Ethereum’s for now
    • The withdrawal tests are relatively succinct

Miscellaneous

  • The xDai team did an attempt at implementing withdrawals
  • There will be no trace (logs) of withdrawals on explorers
    • We need to work with explorers to display them
    • Ideally they add a new tab, similar to “internal” / “ERC-20” for withdrawals
    • We can probably piggy-back from the mainnet implementation
    • Caveat: insolvency case, might require some specific logic
    • Beaconcha.in
    • Gnosisscan
    • Blockscout
  • Lukasz: should withdrawals be shown in traces somewhere?
    • Lukasz: mixed feelings
    • We should maybe ask block explorers / users what they want?
    • Dapplion: let’s keep it simple