![](https://i.imgur.com/Vrxm6je.png) # **[TXRX Team Update](https://github.com/txrx-research)** - June 19, 2020 ## [Eth2 Network Monitor](https://github.com/prrkl) **Jonny Rhea** - [Twitter](https://twitter.com/JonnyRhea) - [Github](https://github.com/jrhea) Crawl, monitor and record data relevant to the health of the Eth2 network. The intention is to find, report and fix issues in the spec and implementations as they are found. **The primary goal is to ensure the Eth2 network is ready for Phase 0 launch.** This effort includes development of: - [Libp2p Wrapper](https://github.com/prrkl/mothra) - [Network Agent](https://github.com/prrkl/imp) - Eth2 WTF: Dashboard to combine Rumor + prkl testnet data ### Validator Privacy https://ethresear.ch/t/packetology-validator-privacy ![](https://i.imgur.com/aX1FT7j.png) **Summary** The Eth2 community has long speculated that validator privacy will be an issue, but the problem has been somewhat limited to the existential realm. This post walks through an exploit that demonstrates how validator indexes can be easily linked to ip addresses. **Next steps** I would like to see a working group or open discussion focused on the evaluation of the various mitigating strategies that have been suggested. ### Block Propagation Analysis https://ethresear.ch/t/packetology-eth2-testnet-block-propagation-analysis ![](https://i.imgur.com/HhRxrgW.png) **Summary** The purpose of this post is to present a view of the gossip data that I collected while monitoring the Witti testnet. Similar to flight test analysis in the aerospace world, testnet data can be used to validate assumptions and flag unexpected behavior. **Next Steps** - Discuss spec mods suggested in the post - Discuss the prospect of adding instrumentation to gossip message to make it easier to diagnose anomalies - More testnet analysis ### Automated Network Analysis https://txrx-research.github.io/prkl ![](https://i.imgur.com/tsg7VLJ.png) **Summary** This is a basic prototype of a testnet analysis report that is autogenerated by CI job. The goal is to investigate metrics that can be used to monitor the heath of the network. **Next Steps** Combine the network data with Proto's consensus related data. ## [Onotole](https://github.com/ericsson49/research/tree/master/onotole) **Alex Vlasov** - [Twitter](https://twitter.com/alex_vlasov_eth) - [GitHub](https://github.com/ericsson49) ![](https://i.imgur.com/AYf3iHc.jpg) - Transpiler updates and fixes to work with phase0 and phase1 (v0.12.1+) - Expression type inference - Data-flow analyses (live variables, reachable defintions, SSA form) - Kotlin code generation improvements based on the analyses results - phase0+phase1 (v0.12.1+) [transpiled to Kotlin](https://github.com/ericsson49/research/tree/master/beacon_kotlin_generated) Some bugs in pyspec found ([#1905](https://github.com/ethereum/eth2.0-specs/issues/1905), [#1908](https://github.com/ethereum/eth2.0-specs/issues/1908)) + some PRs suggested/merged ([#1844](https://github.com/ethereum/eth2.0-specs/pull/1844), [#1909](https://github.com/ethereum/eth2.0-specs/pull/1909), [#1910](https://github.com/ethereum/eth2.0-specs/pull/1910)) A more theoretical part includes working on a model of type system used by pyspec and remearkleable. It's less tangible right now, though it's incorporated in the Onotole type-inference and checker. We have a discussion with [Protolambda](https://github.com/protolambda) about it. I am aiming to have a more formal and explicit description in some future. Issues opened as a result of the discussion: [pyspec #1923](https://github.com/ethereum/eth2.0-specs/issues/1923), [pyspec #1924](https://github.com/ethereum/eth2.0-specs/pull/1924), [remerkleable #5](https://github.com/protolambda/remerkleable/issues/5). #### Next steps - Finish data-flow analyses - Generate fully compileable Kotlin code, based on the analyses - Static analyses: data structures mutability/immutability, etc - Other backends (Scala, Dafny) ## [Eth1 <-> Eth2 Merge](https://ethresear.ch/t/the-scope-of-eth1-eth2-merger/7362) **Mikhail Kalinin** - [Twitter](https://twitter.com/mkalinin2) - [Github](github.com/mkalinin/) #### PoC development Working hard on the PoC development. - A codebase with generated (by Onotole) Phase 1 code integrated in a forked Teku: https://github.com/txrx-research/teku/tree/phase1/ethereum/phase1/src/main/kotlin/tech/pegasys/teku/phase1 - Overall progress: - Phase 1 - Integrate Onotole's Phase 1 - Phase 1 shard simulator **<--- current stage** - A client for Eth1-Eth2 communication protocol - Eth1 shard - Replay Rinkeby blocks in Eth1 shard simulation - Eth1-Eth2 Merger Calls. We have a bi-weekly sync calls with a small group consisting of myself, Ben, Danny, Proto and Guillaume. Call's history can be found here: - https://hackmd.io/twyTHfA0TQ-AtOpkviNq6A ## [Fork Choice Tests](https://github.com/ericsson49/research/tree/master/onotole) **Alex Vlasov** - [Twitter](https://twitter.com/alex_vlasov_eth) - [GitHub](https://github.com/ericsson49) - fork choice test generation adaptation to v.0.11.3 and v0.12.x (resolving consequences of https://github.com/ethereum/eth2.0-specs/commit/68442c2eefbd245a717b1710e8bb155c1c22678f) - a bug in Teku fork choice found, PR suggested/merged https://github.com/PegaSysEng/teku/pull/2063 - a couple of bugs found in pyspec https://github.com/ethereum/eth2.0-specs/issues/1883 and https://github.com/ethereum/eth2.0-specs/issues/1887 - integration of fork choice tests with Teku (to allow testing Teku fork choice by others), PR merged https://github.com/PegaSysEng/teku/pull/2154 - one more problem in protoarray implementation in Teku found (a test failure, communicated to Cem Ozer directly) ## [Clock Sync Protocol](https://github.com/ericsson49/research/tree/master/onotole) **Alex Vlasov** - [Twitter](https://twitter.com/alex_vlasov_eth) - [GitHub](https://github.com/ericsson49) A [research post](https://hackmd.io/u-xf-Bt2SJ-OKAS9ATxyEA) about robust clock model estimation using interval data. Hope to complete before Steering Panel. It should cover while one may need such a model estimation technique. #### Next steps - De-anonymization attack using clock sync vulnerabilities - Account for multiple message delivery paths ## [Cross-shard Transaction Simulation](https://github.com/dangerousfood/vorpal) **Joseph Delong** - [Twitter](https://twitter.com/josephdelong) - [GitHub](https://github.com/dangerousfood) Continuing statistical analysis of Eth1 with the object of creating an accurate mathematical model for Eth2 cross-shard transactions. That mathematical model will be fed into Vorpal for simulation of Eth1x64 Apostille. Simulation will incorporate models of the following - Cross-contract calls - Gas Usage - Bandwidth ![Eth1 Cross-contract Analysis](https://i.imgur.com/WdCsjQb.png) Two probabilities at play in a cross-shard call. The first is the probability that a transaction will result in a cross-contract call where `from != to && from != EOA && to != EOA`. That gives the probability that a cross-contract call occurs in a transaction. This data is currently obtainable from Eth1. The cross-contract call is then computed against a probability of the contract sharing the same shard in a uniform case is which is `63/64 = false`. I am currently enhancing my simulator to account for different non-uniform distributions and drafting a third update on this topic following further analysis. ## [Discovery v5 Advertisement Efficiency Comparison](https://github.com/zilm13/discv5) **Dmitry Shmatko** - [Github](https://github.com/zilm13) Drafting write-up about DHT usage for state sharding