filecoin-project / devgrants

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

OrbitDB v1.0 with Helia #1597

Closed Ann-Teresa closed 10 months ago

Ann-Teresa commented 1 year ago

Open Grant Proposal: OrbitDB v1.0 with Helia

Project Name: OrbitDB

Proposal Category: Developer and data tooling

Individual or Entity Name: OrbitDB

https://opencollective.com/orbitdb https://github.com/orbitdb

Proposer: @ann-teresa on behalf of OrbitDB

(Optional) Filecoin ecosystem affiliations: none

(Optional) Technical Sponsor: n/a

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

Project Summary

OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and Libp2p to automatically sync databases with peers. It's an eventually consistent database that uses Merkle-CRDTs for conflict-free database writes and merges, making OrbitDB an excellent choice for truly peer-to-peer and decentralized apps, blockchain applications and local-first web applications.

As OrbitDB approaches production-ready version 1.0, and with the recent introduction of Helia over js-ipfs, our goal is to migrate OrbitDB's current js-ipfs integration to Helia.

OrbitDB was one of the first use cases and examples for js-ipfs and we want to be there for Helia and its users right from the beginning.

Impact

IPFS provides a storage and distribution mechanism for decentralized applications (dApps). OrbitDB provides a fully decentralized database solution for these dApps, enabling developers to fully decouple their applications from centralized architecture (I.e. client-server). Storing data locally enhances a user's privacy, reduces the attack surface of a centralized database and reduces the need for centralized storage infrastructure. OrbitDB is a key building block for verifiable, decentralized systems, services, data and applications.

OrbitDB's main implementation is written in JavaScript, and along with js-ipfs, has allowed the community and users to build truly decentralized applications in the browser. Following Helia's core goal of implementing a "lean, modular, and modern implementation of IPFS for the prolific JS and browser environments", focusing on modern web platforms and browser use cases, having a peer-to-peer storage, networking and database stack to build on, users are able to build apps that provide better user experience, privacy and personal data control than what the web applications and services currently do.

OrbitDB has over the years provided a simple way to build apps with and within the IPFS ecosystem so making sure that continues as Helia launches is crucial for both current users and newcomers.

Outcomes

Adoption, Reach, and Growth Strategies

OrbitDB's target audience includes:

OrbitDB already has a community and reach ecosystem with many users already integrating OrbitDB into their projects. A number of users already communicate on social platforms such as Matrix https://matrix.to/#/#orbitdb_Lobby:gitter.im and there has been active engagement and discussion since 2017.

It is planned to expand OrbitDB's social and marketing presence by re-invigorating various social media channels. This will be conducted as part of OrbitDB's marketing and communication plans.

Adoption after the project is completed:

OrbitDB already has a number of integrations and forks which will be able to leverage the Helia project as part of OrbitDB's storage and communciation protocols.

Once OrbitDB v1.0 is released, our marketing team will be able to target Helia users, in particular those deploying and distributing decentralized applications (dApps) via Helia, to integrate OrbitDB into their respective projects and allowing them to offer truly decentralized platforms to their userbase.

Development Roadmap

The aim of this project is to migrate OrbitDB's extenstive integration of js-ipfs to Helia. OrbitDB uses IPFS and Libp2p for storage and replication of database assets.

OrbitDB proposes the following milestones to complete the integration of Helia (on the assumption that funding is received by 1st September 2023):

Milestone 1:

Replace the integration of js-ipfs with Helia.

14 October 2023

Milestone 2:

Extensive testing of, and assisting the community with the migration to, Helia.

30 November 2023

Total Budget Requested

Milestone # Description Deliverables Completion Date Funding
1 Replace all integration of js-ipfs with Helia. Update and test all replacement integrations. Update and implement Libp2p configurations for Helia. - Migrate all js-ipfs integrations in OrbitDB to Helia
- OrbitDB v1.0 test suite passing on CI using Helia
- Publish orbit-db@1.0-rc1 npm package with Helia integration

Roles: 1 engineer specializing in p2p and database concepts.
6 weeks USD 12,000
2 Documentation and Ecosystem Testing. Ensure OrbitDB meets the requirements of 3rd party developers and integrators. User education re: Helia integration. Deploy additional communications channels. - Extensive end-to-end browser tests for OrbitDB v1.0 with Helia
- CI Test Suite and GitHub integration/automation for Helia project/developers to test new releases against OrbitDB v1.0
- Update OrbitDB documentation, including examples for Helia optimal configurations
- Update OrbitDB API docs to include Helia configuration
- Update OrbitDB examples to include Helia configuration
- Assist community/users with migration from js-ipfs to Helia

Roles: 1 engineer specializing in p2p and database concepts and unit testing.
6 weeks 12,000

Maintenance and Upgrade Plans

The OrbitDB project was founded in 2016 and has been actively developed for 7 years. OrbitDB has a rich ecosystem with extensive documentation, extensions, active developer communities and a strong team of core developers and contributors who are committed to the project for the long term. The team for this funding application will keep working on OrbitDB beyond the timelines proposed for this funding.

Team

Team Members

Team Website

OrbitDB on GitHub

Relevant Experience

Hayden is the lead core developer and maintainer of the upcoming 1.0 version in which most of OrbitDB's original code base was refactored and updated to modern JavaScript. Haad, the original creator of OrbitDB and previously an early IPFS core developer, together with Mark have been building and maintaining OrbitDB and its community for years. Ann-Teresa has recently come on board to manage grant acquisitions and carry out the Community Manager and Communications role.

Team code repositories

Additional Information

(Discuss previous funding through PL) <!-- How did you learn about the Open Grants Program? OrbitDB has previously been sponsored by Protocol Labs on a monthly basis of $250 USD for 2 years totalling $6,000 USD from January 2021 to December 2022. (Get confirmation on this) Ann-Teresa McLoughlin's email - ann-teresamcloughlin@proton.me

OrbitDB is on Open Collective which shows money previously raised by OrbitDB and contributors that donate on a continuous monthly basis, such as when Protocol Labs donated.
Ann-Teresa commented 1 year ago

OrbitDB 1.0.0 RC has just been released and is available for testing.

Ann-Teresa commented 1 year ago

OrbitDB 1.0.0 RC2 has been released. Currently uses js-ipfs for database storage and replication.

Ann-Teresa commented 1 year ago

OrbitDB v1.0 has been released. It currently uses js-ipfs for storage and the sync-ing protocol. Our aim is to migrate OrbitDB to Helia as soon as it is feasible.

ErinOCon commented 10 months ago

Hi @Ann-Teresa, thank you for all of your patience with our review. Unfortunately, due to budget constraints in this current climate, we are not able to move forward with a grant at this time. We appreciate the work you are completing and are wishing you all the best as you continue forward!

If you have any questions for our team, please feel welcome to contact us at grants@fil.org.

Ann-Teresa commented 10 months ago

Hi @ErinOCon , Thank you for your message. Kind regards, Ann-Teresa