# Grant Application - NGI Core - April 2024 In the list of current calls below, please indicate the **call topic** you are responding to. Note that some larger funds (like [NGI0 Core](https://nlnet.nl/core) and [NGI0 Commons Fund](https://nlnet.nl/commonsfund)) and smaller funds with targeted calls (like NGI [Fediversity](https://nlnet.nl/fediversity), [TALER](https://nlnet.nl/taler) and [Mobifree](https://nlnet.nl/mobifree) (all part of the [Next Generation Internet](https://ngi.eu/) initiative) will have some special scope or conditions. You'd better have a look at them before you submit a proposal. If in doubt, submit to our open call and mention in the application that you are okay with us allocating your proposal to the most suitable fund. ## Contact information * Thematic call: `NGI Zero Core` * Your name: `Georgios Antoniadis` * Email address: `george@noodles.gr` * Phone number: `+447473921106` * Organisation: `REAMDE LTD` * Country: `United Kingdom` ## General project information * Project name (max. 100 characters): `Monolith` * Website / wiki: `-` * Abstract: Can you explain the **whole project** and its expected outcome(s) (max. 1200 characters). ```md The Monolith protocol aim in the creation of a confederal network that promotes user sovereignty on top of federated infrastructure. It prioritizes user ownership and empowerment as well as enables a diverse ecosystem of interoperable and interchangeable applications, services, and agents. Notable features: - Strongly-typed immutable primitives, offering consistently hashed and content addressable data. - Strongly-typed mutable structures using DAGs of cryptographically linked immutable CRDT-like events. - Convergent and commutative replicated data repository format and synchronization protocol. - Strongly-typed RPC-like service definitions with optional support for request routing and response aggregation. - Cryptographically self-certifying decentralized identifiers, with human readable aliases using DNSLink. - Registry of well-known data schemas and service definitions. The goal for first milestone is to design and implement the components needed to build two test cases: blogging and instant messaging. This will include required libraries and SDKs, service providers, and prototype applications. ``` ## Requested support * Requested Amount: (between 5k and 50k in Euro) ```md 40k EUR ``` * Explain what the requested budget will be **used** for? ```md Current and further development will be self-funded. Budgets next to each section refer to allocation of the requested NGI Core funding and are based on estimate effort. All code will be released as open source, licenses will be MIT and/or GPL. Languages are still being evaluated, most likely Golang/Rust for backend libraries/services, React JS/Native for frontend. - User/Service Research - 5k - Best practice guides for application development ontop of Monolith - Conduct user tests/interviews to understand the best way of communicating the concepts to users: Identity, Data Repositories, Service Providers, etc - Core protocol design and library implementations - 10k - Data: schemas, consistent hashing, mutability, repository synchronization (Golang, GPL License) - Networking: messaging/rpc, routing, encryption (Golang, GPL License) - Identity: authentication, authorization (Golang, GPL License) - Application SDKs - 5k - React JS / React Native (Javascript, GPL License) - Core providers - 5k - Identity provider (Golang, GPL License) - Configuration provider (Golang, GPL License) - Data storage provider (Golang, GPL License) - Application registry (Golang, GPL License) - Service provider registry (Golang, GPL License) - Prototype providers - 5k - Blogging provider (Golang, GPL License) - Messaging provider (Golang, GPL License) - Prototype applications - 5k - Blogging application (React Native, GPL License) - Messaging application (React Native, GPL License) - Stretch goal: Sponsor the integration either of the two test cases in an already existing platform - Stretch goal: Sponsor the development of third party applications compatible with the two test-cases - Events, Dissemination, Developer Outreach - 5k - Create a website for user guides and developer documentation - Create an online community for users and developers to communicate - Attend events such as Web 3.0 Conference, Web3 Live London, IPFS Camp, DWebCamp, etc - Stretch goal: Organize/participa in event/s in London UK to promote Monolith and approach developers ``` * **Compare** your own project with existing or historical efforts. ```md - Solid project: Focused on the advancing web standards and enabling users to store their data securely in decentralized data stores. Monolith takes this notion a step further enabling users to not just take control of their data, but also their preferred services. - IPFS/IPLD: The Interplanetary Filesystem and Interplanetary Linked Data enable users and application developers to store and retrieve files and data in a decentralized network. The fully decentralized/peer-to-peer nature of IPFS has been a major bottleneck for more general adoption, which is why Monolith is taking a different approach by bringing together self-sovereign identity and data with federated service providers, in the hope of keeping users in control while providing them with a user experience comparable only to centralized applications. - Ceramic Network: Brings together IPFS and Blockchains to provide utilities to application developers such as event streaming, composable and decentralized databases, and more. Monolith takes a slightly different approach by aiming to provide a registry of well known data and service types, and enable application developers to create interoperable applications. In addition, Monolith does not plan on using any cryptocurrency blockchains in order to ensure users are able to maintain access and control of their data and services in the far future without having to worry about cost or availability. ``` * What are significant technical **challenges** you expect to solve during the project, if any?) ```md - Convergent and commutative replicated data repository format and synchronization protocol. - Strongly-typed mutable structures using DAGs of cryptographically linked immutable CRDT-like events. - Cryptographically self-certifying decentralized identifiers. ``` * Describe the **ecosystem** of the project, and how you will engage with relevant actors and promote the outcomes? ```md ### Understanding Our Ecosystem - Protocol/Core Developers: Enthusiasts and developers interested in contributing to Monolith's design, libraries and SDKs. - Service Provider Developers: Companies or individuals offering online services to application developers - Application Developers: Companies or individuals building applications on top of Monolith. - End Users: People who are interested in using the application built. ### Engaging with Stakeholders - Developers: We'll provide tools, documentation, and support to make it easy for them to build on the Monolith network. - End Users: Through the use of online community software/services (Discord/Matrix), discussions, surveys, and beta testing, we'll gather feedback to ensure our technology meets real-world needs. We'll also be conducting user tests to better understand how well communicated the various concepts of monolith are and provide best practice guides for developers. - ### Promoting Our Outcomes - Website: This will be a go-to place for anyone wanting to learn about Monolith, from developers to everyday users. - Guides and Tutorials: To help developers get started and enable users to make the most of the Monolith-enabled services. - Events: We'll join and speak at tech events to spread the word and connect with potential collaborators. - Communities: Through our online community and social media, we'll create a space for discussions, support, and feedback. ``` ## Attachments * Attachments: add any additional information about the project that may help us to gain more insight into the proposed effort, for instance a more detailed task description, a justification of costs or relevant endorsements. Attachments should only contain background information, please make sure that the proposal without attachments is self-contained and concise. Don't waste too much time on this. Really. ```md None ```