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.
Select a repo