Problem Statement
In early 2023, Bard (Google’s A.I chatbot) made claims that Google used Gmail data to train its A.I model. Part of this data included users’ personal emails and conversations.
This brings into focus whether we can trust these big companies that manage our email servers, hence the need for a decentralized email service - YourMailer.
Aims and Objectives
- To build an email service where all interactions between the client and server are logged onto the blockchain (1)
- To build an email service where any access to user data is logged onto the blockchain (2)
Project Benefit to the Cartesi Community
Here are the key reusable features or ideas that YourMailer brings to the Cartesi community:
-
An architecture that can be used by other messaging apps that want to deploy on Cartesi. The design ideas can also be reused. E.g the proxy and data processing design
-
API for integrating YourMailer in any Web2 or Web3 application.
-
Anyone can fork the repo & customize the email DApp. Ideally, corporate and other private entities that would like to manage their own domains & mail servers.
How the Email Service Works
This is a description of the architecture.
-
On the client side, you have an email client. For this, you can use an open-source email client called Thunderbird.
-
The email client interacts with the Nginx server. This server is a transparent proxy that is used to route email requests for various email protocols (IMAP, SMTP, POP3).
-
By design, Nginx requires that you have an HTTP Authentication server that will determine the Upstream server for a given email request. We will use the embedded Tomcat Server, which ships with Spring Boot for our email service. The authentication server can also carry out some processing defined by the logic in your code.
-
This authentication server is where our application will interact with the Cartesi Rollups. Our application frontend sends a hash of the email body to the blockchain. Our Cartesi backend then gets the data (i.e. the hash) and sends it to the Authentication server. This server checks if the hash matches the one it has.
If yes, it sends a response to the Nginx proxy allowing it to route the email request to the appropriate Upstream server and port.
- The Upstream server is Java Apache Mail Enterprise Server(JAMES). This processes the email request and relays it back to the Nginx server.
Milestones
Milestone 1 (2 weeks )
- Building the PoC. Objective (1), should be achieved. The demo setup will be in a local development environment.
After completing this milestone, the following should be realized:
- Users can send/ receive emails using their email client with the standard protocols and ports ( IMAP, SMTP, and POP3).
Funds request for milestone 1: $ 1500
Milestone 2 (5 weeks + 1)
- Web interface for accessing mail
- Create and deploy Rollups Smart contract to Ethereum Goerli
- Deploy DApp validator node to Cartesi infrastructure
- Provide options for data storage:
- Decentralized
- OR other centralized service providers like Google Drive or One Drive)
After completing this milestone, the following should be realized:
- Users can access emails using a standard Web browser over the internet. The web interface is where users will be able to access information about their previous account interactions.
- Users can choose where their data is stored
Funds request for milestone 2: $ 2800
Milestone 3 (3 weeks + 1)
- Secure the mail server
- Performance tuning
- Engage various communities about the product ( will be very grateful for help from Cartesi when it comes to this part!)
Deliverables:
- Provide a Report
Funds request for milestone 3: $ 1500
===========================
Total funds requested: USD 5,800
ERC 20 Address: 0xaDb7fC24BbEaF6af359d2d4b1c5AB97013B26a63
About the team:
Currently, 1 member. If approved, will onboard 2 more team members.
Portfolio work:
- Participated in Cartesi Online Hackathon 2023 (This very project)
- Roulette (Cross-chain game built on Axelar using Chainlink’s VRF)