filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
369 stars 307 forks source link

Filecoin Native Mobile App for Hackathons and End Users at Scale #1580

Closed bmann closed 10 months ago

bmann commented 1 year ago

Open Grant Proposal: Filecoin Native Mobile App for Hackathons and End Users at Scale

Project Name: Filecoin Native Mobile App for Hackathons and End Users at Scale

Proposal Category: Developer and data tooling

Individual or Entity Name: Fission

Proposer: @bmann

Technical Sponsor: @autonome

Do you agree to open source all work you do on behalf of this RFP under the MIT/Apache-2 dual-license?: Yes


Fission is a protocol engineering team that is building a decentralized edge computing stack with IPFS and Filecoin as a major building block. We look to partner with organizations to research, solve, and implement core protocol extensions and ecosystem products.

Fission is making these proposals as part of our approach to having high impact and long term success for the entire IPFS & Filecoin ecosystem. Our goal is to continue to build a world class protocol engineering organization that partners with select edge computing and blockchain projects that have massive impact.

Our approach is to combine a working group style of building specifications across the Protocol Labs Network (PLN) group of organizations, plus code implementation by the Fission team and other stakeholders.


Filecoin as a sovereign blockchain can be a great target for hackathons at scale. By enabling mobile as a secure key storage and login target, we can enable many use cases that make for great hackathon experiences: from FIL web app to FIL mobile app with a UX that lets anyone participate.

With this proposal, we are proposing an end-to-end mobile experience which results in the following: 1) creation of a large number of FIL accounts (~3000+ initial test users across PLN and IPFS India) 2) dogfooding in person to support a live event and onboarding people to a native mobile app 3) open source code for further FIL mobile work

This project accelerates discovery and implementation of best practices that have pulled all supporting code bases into alignment around identity and mobile support for the Filecoin ecosystem.

Other large players like MetaMask FILSnap and Brave should then also be able to enable standardized login using FIL accounts.

Proposed Stakeholders

Scoping, Feedback & Testing

Network Goods / Impact Evaluators: use this app as a default wallet and login for Filecoin & IPFS focused web3 funding initiatives

Protocol Labs (Event Team, IPFS Camp, PLN): we would actively work with the PL event team and PLN Labweek organizers to support them as primary use cases in the initial build for login into any apps that get built, especially in support of IPFS Camp India 2023.

Secure Design Working Group: we are members of the Secure Design WG — and the Chain Agnostic Standards Alliance (CASA) group that it meets in. The WG is presently focused on a set of design principles, heuristics and UX patterns that we will leverage and contribute back to for this project.

SpruceID for co-ordination on the ReCap spec and associated AuthZ flows

Interops & Integrations

Glif: target app for interoperability -- should be able to go to glif.io and connect mobile wallet

SealVault is building high quality Rust-based wallet code for mobile, including secure backup and recovery. We would work with them on interop, and

Durin: interop and parallel implementation, shared code. Ideally both projects will target mobile to mobile interactions (e.g. scan a FIL account QR code and connect, send a file, etc.)

FIL Snap: target interop with the MetaMask FILSnap Note: Fission is doing some testing and maintenance work on this code base

Web3Storage: use the W3S endpoints for UCAN-based access to the infrastructure. Power the file uploading and persistence.

Proposed Experiences to Enable

A mobile app in the Google App store

New FIL account creation

Mobile based login into mobile web and desktop apps:

Seed phrase

One IPFS Camp India (or Labweek or other large PLN Event gathering) specific flow:

There are other projects like the PLN Directory login that might also be a good candidate for interop.

Proposed Code & Design Outcomes

Full native mobile, cross platform codebase for a mobile app with wallet / login features. Initial target will be for Android for emerging markets where PLN Event takes place (e.g. IPFS Camp / FIL India)

Native mobile compatible libraries for:

Base mobile design & UX Components

Design to support the PLN Event use cases

Security Auditing and Related Production Concerns

This initial proposal is to have an end to end experience that is usable by many end users in a mobile context. Our proposal is to have up to 1000s of users within the PLN and within hackathon contexts onboarded directly.

Before any apps, including our default FIL Mobile for the PLN, goes into published app stores, there must be a security audit that takes place.

We are one of the core members of the Secure Design Working Group. We are authoring the test framework for FILSnap. We aim to work closely with Glif and and SealVault who are working on core FIL-related cryptography. We also would like to coordinate with Brave on FIL login support, including enable that on mobile Brave.

We will work together with the ecosystem and have security audited crypto libraries to be used, along with UX patterns that prioritize user safety.

A full app audit needs to be done for anything that involves mobile apps published to major app stores for the mass market at large. We are proposing that comes after this first build, where we assess with the other stakeholders.

Milestones

Milestone 1: 3 months (preview release at Devconnect Istanbul / IPFS Connect / Labweek Nov 2023) Milestone 2: 3 months (Jan 2024) Milestone 3: ongoing support and maintenance as described

Milestone 1: $126,000

1) Project Start

2) Wallet client functional prototype capable of:

Milestone 2: $126,000

3) UX Iteration 1

Milestone 3: Funding Maintenance $38,000

5) On site support at IPFS Camp India / FIL India / Labweek

6) Funding of Open Collective for a year of maintenance

Maintenance

The pattern we are following is to set aside 10% of total grant size and funding an Open Collective attached to the project. After initial Grant implementation is complete, continued maintenance and/or small feature additions can be covered by ongoing funding over the term of a year. This itself can be accomplished by rewarding open source contributors, and looking for other people who want to actively use the codebase.

We will prompt users of all kinds to support the project, and will use Open Collective contribution status to gate participation in early access of builds, voting on priority features, and otherwise weight feedback from contributors above those who don’t contribute. Contributor status can also be gained through open source maintenance and support, including code, design, promotion, documentation, translation, and other community contributions.

A service model where contributors, agencies, and others who use the codebase and libraries to build products could also include social norms to allocate a support fee to the Open Collective for every use.

See the way that Marijn Haverbeke describes his work on CodeMirror, ProseMirror, and other permissively licensed software:

Building and maintaining software is skilled, specialized work. I prefer to allow the whole world to use my software, but I do need some kind of income.

Thus, I ask people and companies who use my software to make profit to fund the production of that software. This is a social expectation, not a legal requirement.

We also think that there is the potential for retroactive impact funding for this project, based around Filecoin accounts activated and ongoing active usage.

User Adoption: Hackathon Support

This proposal is targeted at activating the extended Protocol Labs Network and supporting large hackathons like IPFS Camp and FIL India.

Every PLN member (about 3000 or so) should have the TestFlight version of this installed.

With this codebase, it will be a key hackathon support material.

Every FIL hackathon can have teams that either build on these mobile libraries to make custom apps, or to use it as the way to login to web dapps and take advantage of FIL-aware wallets.

This increases the amount of FIL accounts, and showcases features beyond just FIL transfer.

Once the project is out of TestFlight and has been audited, it can then be ready to be marketed and promoted more widely to end users as well.

Funding Requested

Additional Resources, Requirements, and Information

This codebase and associated code that interacts with key material should go through a security audit ahead of coming out of Early Access / TestFlight mode. We don’t know what this will cost.

There isn’t a FIP describing logins of native FIL accounts: The FEVM portion functions as EVM chains do. We will prepare for a FIP and/or CASA process as part of this build out, but is not covered in scope (see Future Ideation).

WalletConnect support for FIL accounts: this has been proposed in the past, and could be a stretch goal related to this project. Needs to also be part of a FIP/CASA process connecting to FIL specific aspects of key material and chain support.

Future Ideation

Taking at least one app experience to published and maintained in app stores. There should be a security audit, and a scoped set of features that the app enables around login, key storage and recovery, and needs of the PLN and Filecoin ecosystems (e.g. event support, all members of PLN have this app as part of onboarding).

The FIL Account Working Group should be chartered and supported to evolve Filecoin. Participation in CASA, working on FIPs, maintenance of WalletConnect, fil.js login code, privacy/encryption use cases for FEVM and native FIL. Multisig and staking support.

Capyloon and KaiOS: we work with Capyloon on IPFS protocols already, and making these libraries work well on that OS would be a path to deploying on KaiOS.

Unlock Protocol: Unlock Protocol focuses on on chain membership for events and other experiences. Deploy UP code to FEVM and integrate with it for events and ticketing.

Source Network: Source Network is a sovereign blockchain built on top of CosmosDB. They include Zero Knowledge key management that might power trustless recovery of user keys. They use IPFS as part of their stack.

Lit Protocol: Lit Protocol is building a login stack backed by a distributed validator network that secures and validates everything from social logins (Discord, Github, etc.) to trustless recovery.

ErinOCon commented 10 months ago

Hi @bmann, thank you for your time with this proposal and for your patience with our review process. As discussed, we will, unfortunately, not be proceeding with a grant at this time. Wishing you all the best as you continue to build.