filecoin-project / devgrants

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

Open Grant Proposal: Tumulus #443

Closed schlackl closed 2 years ago

schlackl commented 2 years ago

Open Grant Proposal: Tumulus

Name of Project: Tumulus: a 'digital burial mound' built with blockchain and Filecoin

Proposal Category: app-dev

Proposer: schlackl@washedupholdings.com

(Optional) Technical Sponsor: Actively seeking a technical sponsor

Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: Yes

Project Description

The Need Our own death is something we don't like to think about too often but when we do, it becomes clear that end of life (EoL) planning is an unavoidable necessity -- unless we want to risk leaving a mess for our loved ones to deal with in their time of grief. Planning for our end of life reduces anxiety and gives assurance that our affairs will be taken care of according to our wishes. And while this has always been true, it is all the more so in our increasingly digital lives. Because more and more of what we leave behind is now digital or requires digital access, we need to carefully consider how to handle the digital legacy we leave to our descendants when we die -- consider for example our passwords to the dozens of online accounts we accumulate over a lifetime. There is a need to be able to collect, store and retrieve information that is essential to EoL planning such that it is guaranteed to be private, secure, immutable, shareable with the right people and, ideally, to persist indefinitely.

The Solution We propose to address this need for digital EoL planning by creating a toolset/framework using blockchain technology including smart contracts to execute EoL agreements between app owners and their estate executors, medical representatives and descendants, while using Filecoin to store assets securely and indefinitely. In essence, we propose to develop a Web 3.0 'digital burial mound', hence the name tumulus (the Latin word for 'burial mound'). Tumulus will provide peace of mind to its owner and reduce stress for descendants, executors, and representatives by gathering all EoL wishes, estate details and legacy items in one secure but accessible digital location. The tumulus solution will provide support and clarity at a time when folks need it most.

Tumulus harnesses the powers of trust inherent in Web 3.0 by establishing meaningful data ownership on a decentralized system. No third party controls or restricts your data access. With tumulus you will be able to exercise data sovereignty and moreover have the ability to delegate that power to trusted parties to exercise after your death. Tumulus also makes possible the multi-generational storage of your digital legacy.

The Approach Tumulus will solve the digital end of life planning problem by implementing the following core features: • Establish cryptographically-controlled identity (using Textile Hub) • Ability to store/retrieve encrypted data on IPFS (using Textile/Filecoin) • Record data changes/additions as immutable transactions on-chain (using Solana) • Share data/roles with trusted parties via smart contracts (using Solana)

Textile allows us to combine cryptographic identity with persistent, encrypted, decentralized storage on IPFS and Filecoin for end users without requiring them to have any knowledge of IPFS or Filecoin. Solana provides the ability to record data activity and business logic on-chain as immutable transactions that provide verifiability, security and access control for vital pieces of data. These core features allows Tumulus to provide end users with the ability to perform core functions of EoL planning while knowing their data is secure, private and accessible by trusted parties.

Our software design strategy is to define clear separations between app, blockchain and storage so that tumulus can develop into a general-use Web 3.0 building block. Although the concept for tumulus arose from use cases around EoL planning, it is easily generalizable to any application that requires the protection, verifiable ownership and programmed sharing of vital personal information.

By addressing such a universal use case as EoL planning, tumulus builds popular awareness of how core Web 3.0 technologies such as blockchain and IPFS can meet essential needs of the individual.

Value

Benefits Tumulus: • Advances the mission of Filecoin to be "a decentralized storage network designed to store humanity's most important information" by allowing individuals to store and share their most precious EoL assets and digital legacies. • Introduces the general public/individual consumers to the value of decentralized storage solutions (Filecoin/IPFS) by providing an EoL planning app; makes Filecoin relevant to a potentially vast user base of individuals, expanding its reach beyond the more typical commercial users needing large amounts of file storage. • Highlights the multi-generational storage and permanent custodianship aspirations of Filecoin by focusing on how Filecoin meets the need of EoL planning to preserve our digital legacies. • Introduces a basic open source building block for embedding Web 3.0 values (digital sovereignty, data ownership, transparency, verifiability, and decentralization) into the growing Web 3.0 ecosystem. • Provides a development framework that can apply to a wide variety of use cases and applications. • Kicks off the tumulus development roadmap and project team to further enhance and expand the existing Web 3.0 ecosystem.

Risks: Risk: The frameworks being used in the project are still very much works in progress, so there is a risk we may have to pivot at various junctures resulting in delays in deliverables. For example, Filecoin Powergate "is undergoing rapid development and should not be used in production. Mitigation: Early-on testing and evaluation of the chosen toolset; Framework integration points will be pluggable to support alternate blockchains and/or version updates to toolsets such as Textile or Powergate; Engage with development communities via discord and other communication platforms.

Risk: Other dev teams may be working in the same problem domain and may have come up with something similar before us, so there is a risk that we might end up "reinventing the wheel" to some extent. Mitigation: Perform market research in problem domain; Connect and communicate with a technical sponsor and dev communities; gap analysis of other systems

Risk: There is a risk the final product will not exemplify core Web 3.0 values adequately Mitigation: Regular architecture review with focus on values; user experience sprint reviews

Final Deliverable

Project Phases

We envision the project proceeding in phases, with Phase 1 lasting approximately three months and delivering the tumulus prototype. The prototype will embody the core features described in the Approach section above in the form of a minimal viable product (MVP), produced using an agile project approach.

In Phase 2 the project team will use the code and other project artifacts produced in Phase 1 as the starting point for completing a complete version 1.0 of the product capable of being released successfully to the developer community as an open-source project.

Scope of this Open Grant The scope of work for this Protocol Open Grant is Phase 1: Prototype, in which core functions satisfy core user stories to not only prove the concept but also to further refine the team's understanding of the effort and approaches required to launch tumulus as a open-source project and a valuable building block for a whole array of decentralized Web 3.0 applications.

Phase 1 Deliverable: Prototype A functional tumulus prototype will include: • The tumulus data object • Cryptographic identity of owner • Automatic creation of Solana and Filecoin accounts • Read/write functions from/to IPFS via Filecoin • Log transactions to Solana blockchain • Basic user interface for end user to create tumulus object and execute functions • Basic smart contract "agreements" to allow defined data access to trusted third parties • Demonstration of prototype to project sponsors

Phase 2 Deliverables: Version 1.0 open-source code/project (Not in scope for current Open Grant; see Development Roadmap, Phase 2 below)

Project Specification The tumulus prototype is specified by a distinct set of user stories characterizing the basic needs of the end user, i.e. the EoL planner, as follows:   User Epics/Stories As a tumulus end user, I want to be able to: • create a cryptographically secure identity, so that I can assert and maintain ownership over my data and application. • access my tumulus using a standard browser, so that I am able to access it from anywhere and at any time. • upload any type of digital file into my tumulus, so that I can protect and share any data I wish. • retrieve any of my stored files from my tumulus, so that I can update them whenever I wish. • check the history of user transactions on my tumulus, so that I can verify that no one has tampered with my data • create agreements with other end users, so that I can have my EoL wishes honored. As a tumulus end user, I want • my data to be stored on a decentralized network, so that I can be assured that it will not disappear due to the arbitrary decision of a third-party provider. • my data to be encrypted (both content and transport levels), so that I can be assured that it remains private. • agreements I make to be written to the blockchain, so that I can be assured they will be executed given conditions are met. Summary of Functionality Based on these user stories, tumulus will consist of a serverless API that facilitates interaction between a user interface, a blockchain and decentralized asset storage while maintaining a high level of privacy, security and accessibility. Providing an API to wrap core functionality of blockchain SDKs supports simplified integration and adoption for application development by anyone. In addition, a series of smart contracts will be created to facilitate core features such as role definition and data sharing and will be published on-chain for use via the API. It will meet the requirements in the above specification by exhibiting the following core functionality: • Cryptographically-controlled identity • Ability to store/retrieve encrypted data on IPFS/Filecoin • Record data changes/additions as immutable transactions on-chain • Share data/roles through agreements with trusted parties via smart contracts on-chain The core functionality will be built according to the Milestones outlined in the following Development Roadmap.

Development Roadmap

Phase 1 Milestones (assuming start date of Mon Jul 11, ending Fri Sep 23, 2022) Milestones #1 (week 4) • Create tumulus object • Create cryptographic identity (owner) • Create owner account and purchase (SOL and FIL) • Read/Write a file to/from Filecoin • Read/Write transaction/log to Solana blockchain • Basic UI for end user to execute tumulus creation, store and retrieve files • Define basic smart contract types

2 developers (249 hrs) 1 PM/UX (140 hrs)

389 hrs $22,148 4 weeks: Monday July 11 - Friday August 5, 2022


#2 (week 8) • Write smart contracts for various agreement types between parties ◦ 1:1 agreements ◦ Single Execute agreements • UI to select and execute smart contracts • Publish agreements to blockchain (Solana)

1 developer (158 hrs) 1 PM/UX (140 hrs)

298 hrs $16,967 4 weeks: Monday August 8 - Friday September 2, 2022


#3 (week 12) • Execute smart contracts • Create and deploy smart contract with agreement builder • Demo prototype for project sponsors

1 developer (126 hrs) 1 PM/UX (65 hrs)

191 hrs $10,875 3 weeks: Monday September 5 - Friday September 23, 2022


Phase 2: Version 1.0 Open-source Project Phase 2: Version 1.0 Open-source Project is not within scope of the current Filecoin Open Grant. It is included here only to provide insight into the planned trajectory of the Tumulus Project. Phase 2 will build on the code produced in Phase 1 to produce a viable version 1.0 of Tumulus.

Phase 2 Milestones (assuming start date of Mon Oct 3, ending Fri Dec 16, 2022) • Complete functionality for assigning permissions to trusted third parties • Expand agreement / smart contract selection to include 1:many type • Complete functionality for first generation 'agreement builder' • Define and implement trigger events • Link agreements to produce a smart chain that executes multiple contracts in series • Tumulus open source project including: • GitHub repository of tumulus open source code ◦ Public repository • Supporting pieces for open source project ◦ Application/UI sample(s) ◦ Implementation Walk-thru(s) ◦ Developer Forum/Discussion/Community • Change/Release Management ◦ Maintenance and Upgrade Plans • Strategy for code standards maintenance

Roadmap (Q1 2023 and beyond) Where we want to go after the first two phases: Q1 2023

Q2 2023

Q3 2023

Q4 2023

Total Budget Requested

For all Phase 1: Prototype milestones 878 resource-hrs @ av. 57 USD/hr: $49,990.00 Total Budget for Milestones $49,990.00

Total Budget Requested $50,000.00

Maintenance and Upgrade Plans

As part of Phase 2: Version 1.0 Open-source, Tumulus source code will be maintained through GitHub as an open-source project available to all for use under the MIT and Apache 2 Licenses. Maintenance of the code repository will remain with the core team below.

Contributions (pull requests) and bug reports (issues) will be submitted through GitHub and managed by the core team. Contribution guidelines will be outlined in the CONTRIBUTING.md file accessible via the GitHub repo and follow similar guidelines for other open source projects managed through GitHub.

Tumulus will use semantic versioning for releases to convey meaning about the underlying code and what has been modified from one version to the next. We will use milestones to track the progress of a release. Assigning issues to a milestone is on a best effort basis and we make no guarantees as to when a particular issue will be released. A milestone (and hence release) is considered done when all outstanding issues/PRs have been closed or moved to another milestone.

Team

Team Members

Jonathan Schlackl, developer and architect Owner, WashedUpHoldings.com; Jonathan has over 20 years of application development experience ranging from web applications, mobile apps, systems integration and more recently, blockchain and decentralized application development, specifically around NFTs and the Hedera Consensus Network and Token Service (HTS). LinkedIn Profile: https://www.linkedin.com/in/jonathan-schlackl/

Steve Burtch, product/project manager CEO, Netscribe Communications Inc.; Steve is a philosopher, an activist and a pioneer of Web 2.0 who is determined to take up the Web 3.0 challenge to build networks that bolster rather than degrade our humanity. Steve has led web development teams for more than 20 years and has deepened his product development and project management expertise by integrating service design and organizational change management methods. Steve's mission is to construct the building blocks for a new decentralized web based on Web 3.0 values such as self-sovereign data ownership, freedom of speech and expression, privacy, verifiability and trust. LinkedIn Profile: https://www.linkedin.com/in/stephen-burtch

Web 3.0 Developer (hiring) A proven innovator with exceptional problem-solving skills and experience writing and deploying smart contracts for the Solana blockchain using Rust. Familiar with JSON RPC API, solana-web3.js SDK, Solana native programs, SPL. Good understanding and/or experience with Filecoin/IPFS.

Ocean Tiong, full-stack developer Founder & architect of rolia.net; Ocean is a senior full-stack developer with extensive experience programming in Java/PHP/JavaScript and with all major RDBMS products, including Oracle, PostgreSQL, and MySQL. Ocean has decades of experience working in the corporate and public sectors, and on community projects. Major clients include Moneris, Metavante(FIS), Rogers, NRCC, CGI, and the Government of British Columbia. Major project domains include e-commerce, social networks, financial order management, corporate e-banking, telecom order management, astrophysical science, government, and content management.

Shylene Schlackl, subject matter expert Shylene is serial entrepreneur. As a community-engaged artist and president of a not-for-profit community arts organization for 20 years, Shylene came to see the need for more support, education and conversations around death and end of life planning. After years of study and research she developed and co-founded (along with celebrant J) the RestSure program (www.restsure.ca). LinkedIn Profile: https://www.linkedin.com/in/shylene-schlackl-714a5a39/

Stella Archer, UX architect Creative Director, Netscribe Communications Inc.; Stella is a collaborative and insightful creative, able to mentor and motivate cross-functional dev teams to perform above expectations. She thrives in energetic and challenging environments, delivering superb solutions to the most complicated UX challenges. For the past 15 years she has led high profile user-centered design and information architecture projects for B.C. Government clients.

Team Website

https://tumulus.io/

Relevant Experience

Why we are we the right team to build this project:

• The members of the tumulus team bring decades of software development experience to play in this project. From online banking to government job portals to international social media platforms, our individual dev backgrounds are deep and diverse. • We have a proven track record working together on both private and public sector projects. • We have the right set of skills for the project including software design, programming, project management and user experience design. • Experience with smart contracts, NFTs, REST APIs; in particular developer with experience writing smart contract on Solana blockchain using Rust, solana-web3.js, node.js, vue.js. • Each one of us is driven by the passion to contribute to the newly emerging Web 3.0 ecosystem because of its promise to instantiate the values we hold dear (see below).

Team code repositories

Private contract for Hedera Hashgraph and IPFS storage API: https://github.com/schlackl/thp-hedera-serverless-api

Additional Information

Team Values and Mission As a team we are committed to embedding Web 3.0 values in whatever systems we build. These values form the starting point for our strategic development goals.

During the 2019 Web3 summit, Juan Benet presented a list of Web 3.0 values, saying "I think it's really important to bake some of these things into the network while we can." He then demonstrated how these values can be mapped to systems central to Web 3.0:

This mapping serves as the inspiration for our mission as a development team. Given the challenges we face today in a Web 2.0 world rife with censorship, surveillance and loss of autonomy, we feel it's never been more urgent to "bake" these values into the Web 3.0 alternative, and the tumulus open source project represents our commitment to doing just that, as shown in the third column of the table below:

Web 3 Values -> Web 3.0 Systems -> Tumulus Features Freedom of Speech (secure self-publishing) -> Secure data publishing & distribution -> Data published is encrypted Freedom of Assembly (secure comm) -> Secure networking -> Secure comms between app and tumulus Users own & control their data (secure storage & sharing) -> Secure data storage & sharing -> Secure storage in Filecoin; secure sharing via smart contracts Without central control (decentralized) -> Decentralized connectivity & computation -> Decentralized on Solana blockchain All interactions are Verifiable -> Authenticated, Provable, Irreversible Txns -> Verifiable on Solana blockchain Reader & Writer Privacy (-- privacy is security) -> Oblivious content routing -> All content encrypted Dependable, trustless, and robust infrastructure -> Decentralized incentivized infrastructure -> Incentivized by a token (TBD) Self-sovereign identity for all (people, orgs, & programs) -> Cryptographically controlled identity -> PKI via Textile Hub

Tumulus — our mission is to: • Restore and protect individual autonomy and dignity in the digital world • Preserve digital legacies for future generations • Embed Web 3.0 values (digital sovereignty, privacy, transparency, verifiability) in the decentralized Web

realChainLife commented 2 years ago

Hi @schlackl thank you for this proposal, we have a couple evaluation questions that we could use additional information on, for instance:

schlackl commented 2 years ago

Hi Sonia, Thanks for your email. The project team is preparing a response to your questions and we'll get that back to you soon. Regards, Jonathan S

schlackl commented 2 years ago

Hi Sonia, Thank you for posing such thoughtful questions and for giving us the opportunity to respond. Please find our responses below. If you have further questions, please send them along or alternatively we would be very happy to take part in a zoom meeting at a time that works for you. Our project team looks forward to collaborating with Protocol in building out the web3 ecosystem, Regards,

Tumulus Questions Round 1:

  1. Please share any prior experience in this domain, specifically the legal and financial implications of this solution

The Tumulus project aims to create a data storage and marshalling system that leverages the anonymity and security of web3 while allowing developers to create any user experience they choose. While our proposal illustrates its use around an end-of-life (EoL) planning application, it could be used to store, protect, record and marshal other types of data.

Tumulus itself is the underlying framework for data handling and does not provide any legal or financial advice or operation. For example, in the EoL user experience model, Tumulus will provide a way to store personal documents such as a Last Will and Testament but does not create or validate such documents as to their contents.

Moreover, when it comes to end-of-life, legal requirements and stipulations vary dramatically from jurisdiction to jurisdiction across North America. Consequently, Tumulus offers no means of enforcing specific regulations around what EoL components must be in place since it only offers the ability to store, protect and marshal or share that data with user-specified parties following specific events that are triggered by user-specific actions.

Project team member Shylene Schlackl has spent the last five years researching and studying the requirements for EoL planning to discover how they vary across North America. As a result, the EoL user experience will be built as an application that will use Tumulus to provide the data storage and accessibility constraints.

Our grant proposal focuses on the development of that underlying framework as opposed to the user experience application, even though some portions of that application may be required to illustrate certain successes and/or milestones achieved during development of the framework.

  1. What components of the solution will be reusable across the web3 stack?

Tumulus is a set of tools that allow developers to build applications that leverage blockchain and IPFS technology and their benefits. Tumulus provides a bundled set of functions and tools that represent the protocol-extensible developer tools, APIs & languages layer of the web3 stack.

Functions include the ability to create a cryptographically-controlled identity, encrypted data storage and retrieval, information and data change auditing stored on-chain, and smart contracts to define when, how and by whom data is accessed and/or shared. As such, Tumulus provides developers with essential tools to bridge the gap between current web technologies and the web3 landscape.

Reusable Components:

  1. Agreements (On-chain smart contracts)
  2. Cryptographic Identity (Textile Hub)
  3. IPFS Storage Encryption (via Textile)

The approach is to build a deployable application (node) that provides the functions via a REST API such that all interaction with Filecoin, Textile, blockchain and IPFS are abstracted from the application layer and could be used with any front-end user interface on any platform. The deployable application is open-source and available for use by anyone; simply download or fork the repo and host the application accordingly to gain access to Tumulus.

  1. Can you elaborate how the users needs will be met per user, specifically how your model will optimize a large one-time use base.

Tumulus is a set of tools for use by developers to employ the use of web3 technologies in their applications without having to learn to work with SDKs and other web3 libraries. In the EoL application, users will be able to create accounts through a familiar interface to interact with web3 technologies such as blockchain and IPFS. Tumulus works to bridge the gap between current web technologies and the web3 landscape.

There are two sets of user needs for Tumulus:

  1. Application Development (for Application Developers and Service Providers)

Tumulus will meet developer needs by providing a generic building block that can be used to integrate web3 technology into any web application, including mobile applications. The proposed deployment architecture as a REST API provides a familiar interface for developers to interact with and allows them to leverage the technology without any prior knowledge of web3 or any of its components.

  1. Data Management (for Individuals, Data Owners and other End Users)

A Tumulus User Experience Application will meet the needs of the end user in terms of their data storage and protection requirements. For example, an application could be built that uses Tumulus to store sensitive data and provide logging reports for when changes were made and by whom. Moreover, the application could also use Tumulus to share that data accordingly to certain restrictions that are configured by the end-user around their own data using Tumulus agreements (smart contracts).

schlackl commented 2 years ago

Hi Sonia,

I am writing you to enquire on the status of our application for the open grant. We responded above to your first round of questions - have you had a chance to review?

The Tumulus team greatly appreciates the time you have taken to evaluate our proposal and are happy to answer any additional questions you may have.

Regards

ErinOCon commented 2 years ago

Hi @schlackl, thank you for your patience with this proposal. Would you be available for a call to discuss further? If so, please feel welcome to email your availability to grants@filecoin.org.

Looking forward to connecting!

steveburtch commented 2 years ago

Hi Erin, Sonia,

I'm just following up on behalf of our team and to let you know we are available to chat about our grant proposal any time at your earliest convenience. Looking forward to connecting with you!

Regards, Steve Burtch Tumulus product manager steve@netscribe.ca +1 250 216 5980 Zoom ID 361 056 4443

ErinOCon commented 2 years ago

Hi @steveburtch, we have sent you an email regarding next steps!

steveburtch commented 2 years ago

Hi Erin, This is really fantastic news! We are all excited to get going. I will be completing the contract documents shortly. Thank you most sincerely for selecting our team as grant partners. We are honoured and we are determined to make a game-changing contribution to the Filecoin ecosystem. Regards, Steve Sent from my iPhone

On Jul 9, 2022, at 2:52 PM, ErinOCon @.***> wrote:

 Hi @steveburtch, we have sent you an email regarding next steps!

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.