# ETH Denver Ethereum Magicians Mobile Ring The aim of this ring is to get native mobile dapps, mobile dapp browsers, and wallets working together well on mobile. Also light/ultralight clients. Onboarding new users to the Ethereum ecosystem is a large part of the motivation for this ring. ## Notes for ETH Denver Mobile Circle Date: 2.14.19 ## Attendees Paul- SDK Tasit Labs Mike- Cristian Espinoza - Affogato Network Oscar Presidente - Android developer Cayman- Chainsafe Arvid - Alex- mobile payments Rouven Eddy- backend dev Pedro- Wallet Connect George ## Proposed topics - Decentralizing infura & remove need for light clients - Indexing solutions - Mobile Dev-Experience - Biometric auth - Identity/Key portability & interoperability between mobile/desktop ## Questions for the group 1. Where should private keys live? 2. What is the best login flow for dapps? Will it be 'login with Facebook' - style? ## Discussion ### 1. Identity/Key portability & interoperability Most of the problems associated with mobile dev are associated with Identity/Key portability & interoperability. We need to choose a good example to guide the discussion e.g. "Decentralized Uber". Is this a good example since its limited to mobile? Login flow: 1. Create an account for the user 2. Link that with a more secure option, either: a. move funds to proper wallet as single identity b. move to contract base identity (adding/removing accounts) Q: What happens in the Uber case? A: If keys are lost who cares? Why no back up the keys on iCloud? - _Wallet Connect paradigm_ - deeplinking allows tracking which wallet was used last. The first app you register with ethereum "names" itself in the phone as the primary wallet for the user. Q: There are many different identity patterns being developed e.g., Universal Logins. How do we proceed? A: The goal is not just to build the identity standard, but to __all agree to use the same standard__. Additionally, whichever solution we build should be blockchain-agnostic, and integrate the Decentralized Identifier **(DID) standard**. Hardware discussion for crypto-friendly phones. How will signing work for Samsung native hardware crypto wallets? The problem is not associated with hardware. Regardless of where keys are stored, there will still need to be an abstraction to allow for DID across wallets. Maybe a hybrid approach will naturally occur. ### 2. Biometric Authentication Unlocking wallet with face or thumb-print The group agrees biometrics will be adopted ### 3. Decentralized Infrastructure / Infura __Slockit__ a light-client is too big to run on a micro-controller. Their solution is request data from a single node, and thus create a "marketplace of Infura's" and incentivize trust. An alternative is cutting data into slices, and reporoducing them Q: Will at-home nodes solve the decentralization problem. Options for getting data into your app: 1. Connect to a node (centralized / self-hosted node/ node "marketplace" 2. Ultra-light clients to embedd in app ### 4. Onboarding for Developers There is a need for a repository of libraries and SDK's for building a mobile dApp. | Mobile Web3 Stack | Details | ------ | ------ | | App UI | | Data storage | Remote / local | | Tx Signing| EIP 712, Personal signer | Data/Chain connection (Infura)| Light clients, Infura | Identity (DID) | 712, 1056 | Key management | Design choices: Number of keys per identity? ### 5. Solutions for Indexing Data Current nodes are not sufficient, no ability to show historical state. Indexing ability depends entirely on which node you use. A better soltion may be a network of providers and you submit a bounty __Holochain__ provides at-home nodes to create an end-to-end network similar to IPFS. ## Action items - Paul will create the ETH Hub repo - Paul will summarise and move information to ETH Hub - Everyone will go to ETH Hub and contribute to designing the mobile-stack. ----------------------- ### Organizing Call (Pre-ETH Denver) Agenda * Introductions (who you are and what you're working on) 3 tags, 3 projects they can mention. This makes sure introductions stay short. * Overall thoughts on best format for ring meetings Set an agenda Ligi suggests 1 finger if new topic, 2 fingers if follow-up. One person manages this all and points at the people who should speak next. Rough consensus for switching topics Let things slip into agenda last minute * Logistics during the gathering Paul to follow up with Matt Lockyer to see if we need to book a room separately * Any open EIPs to be aware of? Something related to peer discovery https://github.com/ethereum/EIPs/pull/1459 Richard Meissner's topic of subset of RPC methods starting with wallet. Pedro chimed in. EIP 1328 - WalletConnect URL format. Stateful vs. stateless. Speak to one node on one chain. Have to know it to sign EIP155-style. Don't have statefulness in wallet provider. Let's discuss controversial stuff. * Mobile-related items for potential discussion during ETHDenver _(We'll populate this list during the call)_ New system to get state data. Incubed client (by slockit). Less bandwidth, less CPU. Devp2p heartbeats are too frequent, so that doesn't let the radio on your phone go to low-power mode ever. 30 seconds of no traffic or very low traffic to switch. Pings every 2 seconds. 3G or something always all power draining faster than CPU usage. The Graph protocol POKT React out to resource-constricted client ring Mobile DevEx like Parse or Firebase Biometric auth Identity between using a dapp in a dapp browser and a native mobile dapp Portis might help with that. In Sweden app called Swish (they store your keys). * Top-of-mind Ethereum-on-mobile-related issues * Ideas for more Mobile Ring community building Rate quality of meetings after the fact Collect action items. Things we agreed on. Hot topics. Best practices document Note: Meeting ended abruptly due to the Zoom free tier 40 minute time limit. ### Mobile Ring gathering before ETHDenver Notes from the Mobile Ring meeting itself will live here * Collect action items. Things we agreed on. Hot topics.