Skip to main content

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

Core Devs Call - 2023/02/15

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

Hello everyone from the weekly Gnosis Core Devs Call. This meeting is repeated on Wednesday every week. 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 the focus of this meeting, opinions on the implementation of withdrawals contract were evaluated. difficulties and solutions to current problems were discussed. also shared EL and CL team updates.

Topics

  • Withdrawals Contract
  • “Native” GNO and mGNO
  • Core Devs Team updates
  • Client Team Update
  • Chain Infrastructure Updates

Feb 15, 2023

  • Withdrawals contract

    • https://www.notion.so/Shanghai-Capella-Withdrawals-13fa64960f304abbac23b73187436058
    • Create a PR with a semi-final implementation
    • Insolvency Case
    • How many failed withdrawals should the system call process?
      • Should it be hardcoded or a chain parameter?
      • Withdrawals are passed as calldata to the contract
      • Only way to fail is if there’s not enough GNO in the contract -> withdrawal stored as failed
      • On every block, failed withdrawals are processed again, in case there’s now enough GNO
      • The question is: how many of those failed withdrawals can we process per block to keep appropriate block times
      • Martin: this situation should never happen ideally
        • Lion: The withdrawal could also fail for other reasons because we’re calling other contracts (?)
        • Goes back to the discussion of whether there should be minting capabilities or not
          • Not realistic to implement this in a timely fashion
      • Daniel: would having two balances (xDAI + GNO) in execution layer (or CL)be an option?
        • Probably too much work / maintenance to be worth it
      • Guillaume: can we get rid of xDAI as native token?
        • Replace it with GNO, and then we basically move to the standard Ethereum way
        • Martin: Probably not viable
        • Is this good for the chain?
          • Would force users to convert their $ into GNO
        • Would it even be feasible?
          • xDAI (or wrapper xDAI) is used in many contracts, where it might be assumed that the native currency is worth a dollar
        • Dan: Move xDai balances into ERC-20 registry?
      • Could we mint something on withdrawals that would allow users to get their original GNO back on Ethereum
    • Need to work with Comms team on instruction guides for community
      • 0x00 addresses can’t withdraw, so these addresses would need to be converted
      • 16 validators withdrawals can be processed per block
        • Dapplion: More withdrawals per block = higher load on processing. Could EL devs benchmark the cost of a withdrawal in gnosis?
        • Cost of withdrawal is more expensive in Gnosis because withdrawals are implemented in EL
        • Marek: best way is to start the devnet and observe block processing time with withdrawals
  • “Native” GNO

    • Ihor: Could lead to bad economical effect
      • Martin: We’re removing the ability of the bridge to mint unlimited GNO on Gnosis’ side, which should only increase security
      • Would be putting the burn promise in code by only having 3m tokens on Gnosis side
    • Need to upgrade Bridge Contracts (?)
      • Omnibridge cannot mint addition GNO.gnosis, needs custom code to pull from 3mn minted
      • GNO.ethereum <> GNO.gnosis (from 3mn) thru 3rd party bridges
    • What’s the current plan of releasing GNO rewards on beacon chain?
      • Right now we can just increase the storage slot in the GNO smart contract on the execution layer side so the token doesn’t need to be upgraded for minting
        • Igor: That has to be done on the execution layer anyways
      • The way this works on Ethereum is just to increase the native balance (no contract interaction)
        • The idea is to call a contract that does it (Ihor’s withdrawal contract) instead of hacking it together
    • Dapplion
      • Thinks it’s a good idea
      • But would probably require a team that would dive into this to make sure everything work as it should and analyze how feasible this is
      • To be considered for inclusion in future hardfork
      • Basically we need expertise on this
    • Let’s do an assessment of whether this is doable or not and how much time it would take
  • mGNO

    • Should it be “user-facing”?
    • Should we get rid of it?
  • Client Team Updates

    • EL
      • Nethermind
      • Erigon
        • Looking into Chiado connectivity issues
        • Nethermind might privilege Nethermind nodes, meaning that they might drop Erigon nodes that are “useless”
        • Nethermind doesn’t think that’s the case and will investigate this
          • --Network.DiagTracerEnabled true can be used for debugging
        • Progress on light CL
        • Stable as a read-only node
        • For validators: treat with caution
          • Misses more attestations than Nethermind and Geth on mainnet
          • Sometimes gets stuck, but not for long
          • From Lukasz, regarding useless peers
            • Invalid NetworkId
            • Capabilities not matched
            • TxFlooding (we are spammed with transaction broadcasts)
            • When someone tries to snap sync from us (as we don't implement snap-server)
            • There’s also another issue that Lukasz is investigating
    • Geth
      • No update
  • Consensus Layer

    • Prysm

      • Merged the changes
    • Nimbus (Philippe Schommers)

      • ghcr.io/filoozom/gnosis-nimbus-eth2:latest
        • Not used by the public yet
    • Gnosis deployed some nodes for testing and Erigon CL

    • Housekeeping

  • Chain infra

    • Gateway
      • Been running an Erigon archival node on Gnosis
        • All the nodes were stuck on the same block number
        • Indexing
      • Figuring out re-org
      • The RPC test is going fine
  • Additional Workstreams (will join this call in the future)

    • Shutterized Beacon Chain
    • Account Abstraction

Core Devs Call - 2023/02/08

· 3 min read
Ale Banzas
Ex-DevRel @ Gnosis
0xarmagan
Validator Comms Lead @ Gnosis

Hello everyone from the weekly Gnosis Core Devs Call. This meeting is repeated on Wednesday every week. Watch on Gnosis Chain YouTube channel. ‍

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

TL;DR

At this week's short meeting, the latest status updates on the withdrawal contract was talked and possible implementation scenarios were evaluated. In addition, opinions were shared about Shanghai testing tools and POSDAO testnet. Updates from Core Dev Team updates on Erigon, Gateway, Nethermind, Geth, Prysm were included in the agenda.Additionally, updates from the Core Dev Team updates about Erigon, Gateway, Nethermind, Geth, Prysm were included in the agenda.

Topics:​

  • Withdrawals Contract
  • Core Dev Team updates
  • Shanghai testing tools
  • Base Fee

Let’s take a look at the core devs call updates.

Call Notes

Withdrawals Contract

  • Not many changes since last week
  • Waiting for feedback before continuing the implementation _ 3 possibilities 1. Declare that the GNO token on the GC is a canonical token _ Mint it when the contract has not enough tokens _ Violates the first principles of the GNO token 2. Mint an GNO on GC token when the contract has not enough tokens _ Violates the bridge pledge logic 3. Do not issue a token when the contract has not enough tokens, but instead leave a note that in the future the user will be able to receive funds if they will be on the withdrawal contract (violates the logic of creating an mGNO token because of staking) E.g. “promissory”GNO

Chain Infra

  • Gateway
    • 20% of Chiado traffic goes to Gateway RPC
    • Need to start getting traffic from Mainnet RPC

Core Dev Team updates

  • EL
    • Erigon
      • No updates
    • Nethermind
      • Working on running devnets for withdrawals with mock contracts
      • The withdrawal spec is going to be different on Gnosis than on mainnet, so testing would be quite useful
      • Wrote a script to verify if some bytecodes are used
      • Resource utilization is apparently lower than before
    • Geth
    • Philippe
      • Added Chiado chainspec to Lodestar
      • Added deposit blocks for Gnosis and Chiado to
    • Erigon
      • To allow for –prune=r without having to specify –prune.r.before=firstDepositBlock
      • WIP: Light clients for CL for Gnosis and Erigon
      • WIP: Nimbus + Erigon

Other issues

  • Bridge Coordinator
    • Will update in subsequent week

Issues

  • Gateway
    • Shanghai testing tools?
    • Igor might have been working on this already
    • Waiting for him and dapplion
  • POSDAO tests?
    • Need to add withdrawals tests

Core Devs Call - 2023/02/01

· 4 min read
Ale Banzas
Ex-DevRel @ Gnosis
0xarmagan
Validator Comms Lead @ Gnosis

Hello everyone from the weekly Gnosis Core Devs Call. This meeting is repeated on Wednesday every week. Watch on Gnosis Chain YouTube channel ‍

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

TL;DR

During this week's meeting, the topic of the Withdrawal Contract was thoroughly discussed. The latest updates regarding xDai fees, which were brought to the table last week, were also discussed. Additionally, updates from the Core Dev Team (Erigon, Gateway, Nethermind, Geth, Prysm) were included in the agenda.

Topics:​

  • Withdrawals Contract
  • xDai “fees”
  • Core Dev Team updates
  • InterOp update
  • Base Fee

Let's take a look at the core devs call updates.

Call Notes

  • Chain Infra

  • Ale: from Discord

    • Source of “block rewards” GNO
      • Withdrawals contract (with Ihor)
      • Option 1: Large reserve that pays out GNO rewards (bridged from ETH)
      • Option 2: Hardfork to “mint” GNO on-chain native to Gnosis Chain
  • Withdrawals Contract

    • Current status
    • Need to decide on approach given differences between ETH & GNO
      • Ethereum = ETH is native, while mGNO is not
      • Withdrawals on GNO will “withdraw” it from the deposit contract
    • The “deposit contract” option is being taken for now _ Withdrawal contract will rely on “reserve” contract that will be funded before/after _ Treasury will need to send more GNO to the Withdrawal contrat to account for block rewards https://etherscan.io/token/0x6810e776880c02933d47db1b9fc05908e5386b96#balances https://github.com/gnosischain/concepts/specs/blob/master/execution/withdrawals.md
    • Alternative approach
      • Minting mGNO on Gnosis Chain thru increment the mGNO token registry thru system call (i.e. “issue” mGNO)
      • Ihor: how do we maintain total token balance (i.e. sum(GNO on Ethereum chain) == 3_000_000)
    • There is no way to convert mGNO to GNO
      • Ihor is implementing mGNO to GNO unwrapping logic in the mGNO wrapper
      • Upgradeable contract
    • Long-term business direction
      • GNO on Ethereum is a “claim” against native GNO on Gnosis
      • Reduce dependency of GNO on GNO on Etheruem or Bridges
    • Need to write a forum post on Gnosis Forum
  • xDai “fees”

  • Core Dev Team updates

    • Erigon
      • Fixing issues with eth_blockNumber
      • Prep EIP-170 with Shanghai update
        • Contract code size limit
        • Previously omitted in Gnosis Chain - POSDAO had code size limit in POSDAO contract (permissionContract)
        • EIP-3860 - relies on EIP-170
      • Prep for Withdrawals work
    • Nethermind
      • Waiting on Withdrawals spec
      • Proof-of-concept implementation based on what Nethermind team knows about withdrawals
      • Can do some local testing on
      • Scanning chain for opcodes +
    • Gateway
      • Igor: This week we finalized Chiado checkpoint sync endpoint, I fixed some tracing issue in Erigon reported by our users, waiting for more traffic from Gnosis RPC
    • Geth
      • Full Sync
      • Snap Sync - some issues
    • Prysm
      • Merged the PR
      • Should be able to run stock on Prysm - pass in config file
      • Let Guillaume know if we encounter issues
  • Any other issues

    • Philippe: Erigon + Nimbus are publishing blocks
  • Base Fee

    • Spam protection
    • 1 gwei would allow it to kick in within ~10min of full blocks, vs hours
    • Tomasz had strong objections - should table it
  • InterOp update?

    • Withdrawals + Shanghai - shadowforks are working
    • SSZ in execution layer (vs RLP for txns)
      • SSZ (CL) vs RLP (EL)
      • Backward compatibility of txns in SSZ
    • EOF - shelved
    • Specs
      • Danube - 4844
      • Electra - verkle (Guillaume)
  • Consensus Spec tests

    • Needed for Nimbus merge