--- tags: eth2devs description: Notes from the regular Eth2 implementers call image: https://benjaminion.xyz/f/favicon-96x96.png --- # Eth2 Implementers’ Call #53 - 2020-12-03 [Quick contemporaneous notes by Ben Edgington] Agenda: https://github.com/ethereum/eth2.0-pm/issues/193 Livestream: https://youtu.be/8mE--yxMZtk ## Testing and Release updates Mainnet launched :tada: Everything running stably. "It's awesome!" No big news in testing and release updates. Some improvements in test suite in progress to use less space. Some spec work related to potential upgrades in a first hard-fork in a few months. Such as adding a light-client sync committee, which is a fairly minor update. API testing: Proto has been working on API bindings that can be used for client API testing. Contact him if you are interested in getting involved. We are "inches away" from a release version of the API spec. ## Tesnet/Mainnet Pyrmont looks good. Mainnet looks good. [Terence] Any discussion around a testnet with finality disabled to facilitate optimisations? [Danny] A devnet for this could make sense. [Justin] Yes, this is high priority. EF has someone who can help. [Mamy] The main load is when there is lots of forking. Might make sense to clock-skew some nodes to induce forking on the devnet. [Jacek] Long periods without blocks are also worth testing - challenging for the sync protocol. Future of testnets. Pyrmont works - at least through end of Jan worth keeping it running. There are techniques we can put into a new testnet to ensure it stays stable (e.g. high ejection balance, tuned leak parameters, alter queue processing rate). Consider options in the new year. Would be good to have a weak subjectivity sync in all clients as Pyrmont gets older. ## Client updates **Nimbus** Mainnet launch! Learnings: more work on documentation needed. Hot fix was done yesterday; new one coming today. Keep an eye on the Discord. Thanks to all supporters! On software, moving to v5 slashing databases soon (from v3). Raised number of default peers from 79 to 160 which has improved attestation delay. From time to time seeing Lighthouse peers dropping, but Prysm and Teku don't. Blst released a [very significant improvement](https://github.com/supranational/blst/issues/2#issuecomment-737973891) to the sqrt function: 40% speedup to hash-to-curve, 15% to signing. **Lodestar** Blst integration done. Created a common interface between Blst and Herumi. Working on getting Blst to compile to WASM to compare with Herumi in the browser. Finally cut a release a day before mainnet. Lodestar remains "experimental" level in stability. Some mainnet nodes (no validators), but performance issues. **Prysm** Mostly been working docs, mainnet readiness, bugs. Thank you to users and contributors. Next import and export validator client interchange. Weak subjectivity sync and Eth2 API. **Teku** Released the checkpoint sync feature. You can now pass an initial state to Teku via a CLI flag and start your sync from there. This came out of the weak subjectivity work, but is also a terrific user experience win. If you can get a recent state from a node that you know is reliable, you can be fully up and running in under a minute. This is great for things like supporting cold stand-bys. Meredith has made a great video to demo this and explain the long-range attack issue. Should be out soon. We've also implemented a historical sync that will back-fill blocks from genesis up to the initial state. In other news: - We've fixed an issue where our attestations sometimes failed on the first slot of an epoch on Pyrmont. It's a kind of race condition where we'd get the wrong source. An issue remains about delayed block production in the first slot of an epoch on Pyrmont. We're fixing this, but it doesn't affect mainnet at its current scale. - We fixed an issue where we failed to gossip voluntary exits and slashings. We now do this correctly. - The main work in the last 3-4 days has been finding ways to pull data more reliably from Eth1 nodes on mainnet. There's lots of Geth on slow drives or limited resources; and we've had to work around Nethermind and Open Ethereum not downloading chain history or not providing that data in `eth_getBlock` events. We're just finishing up the last testing for our fixes. Meanwhile we've been recommending users having trouble spend 10 mins syncing up with Infura before switching over to their own Eth1 nodes as the load is much lighter after the initial catch up. **Lighthouse** Not present. **Nethermind** Eth2 work is on-hold. [Mamy] Question about Eth1 Nethermind: how big is a node that can serve Eth2? [Tomasz] 100GB. Only need receipts since the deployment of the deposit contract. [Justin] Is anyone working on infra to remove requirement for Eth1 node? Light client + gossip of specific Merkle paths. Anyone experimented with LES protocol? [Tomasz] Beam-sync client can in principle serve requests with a smaller footprint. If deposit contract receipts could be bundled and verified, that could work with LES. ## Research Updates **Aditya** There is a new weak subjectivity calculation that takes into account validator balances. Also working with Alex on techniques to rebuild slashing protection files. Clients need to support v5 format and the APIs. **Vitalik** A couple of PRs in progress. Lightclient work, and incentive accounting reforms ([PR #2140](https://github.com/ethereum/eth2.0-specs/pull/2140)) - get rid of pending attestations and replace with a bitfield structure, which will simplify things. Make sure that long strings of empty epochs don't have O(N) processing time; reforms to inactivity leak; use of polynomial commitments. **TXRX** [Mikhail] Executable beaconchain proposal has been published. Some tricky points such as handling of block hashes. Creating a prototype with Teku and an Eth1 execution engine. Mid-term goal to put up a testnet. **Justin Drake** Blst sqrt optimisation (see above). **Leo** Report on client performance has been shared with devs. Feedback is appreciated. ## Networking Planning to have a call next Wednesday to cover some discussion items. There is an open issue around weak subjectivity sync and networking; Danny will update it today. [Jacek] Note that it is good not to have low peer number settings. It degrades the network performance in general. Thirty (30) is too low. Recommends 70, 80, 100 max peers. [Proto] Clients should not have a completely hard cap on peers, but allow some churn to accept new network entrants. ## Spec discussion Vitalik would be happy to discuss the changes he is proposing around epoch accounting, etc. He'll publish a document to focus discussion. [Mamy] Question around Phase 1 spec? What's the state of the spec and testing? Big things in R&D are data availability, sharding, and merge spec. Over the next few weeks these will start forming more complete specs. On data availability, looking at Kate commitments. [Discussion around crypto library bindings to support this - see the recording for details.] Lowest hanging fruit for client teams is the light client infrastructure. There is a PR up right now on the specs repo for this. ## Open discussion Nothing further. * * * # Chat highlights From Mamy to Everyone: 02:05 PM : The roadmap Vitalik published yesterday was a bit daunting https://twitter.com/VitalikButerin/status/1333922620857745408 From Vitalik Buterin to Everyone: 02:06 PM : It's basically the same roadmap that I published 9 months ago with a couple of tweaks! From Mamy to Everyone: 02:20 PM : BLST perf improvement: https://github.com/supranational/blst/issues/2#issuecomment-737973891 From Aditya to Everyone: 02:31 PM : New WS calculation: https://github.com/ethereum/eth2.0-specs/compare/ws-new-calc From Aditya to Everyone: 02:32 PM : Slashing protection rebuild: https://github.com/adiasg/eth2-slashing-protection-rebuild From Mikhail Kalinin to Everyone: 02:37 PM : Executable beacon chain: https://ethresear.ch/t/executable-beacon-chain/8271 From Mamy to Everyone: 02:48 PM : In C we have everything: https://github.com/status-im/nim-blscurve/blob/master/blscurve/blst/blst_abi.nim#L206-L244