Skip to content

A distributed cloud built on top of Aleph, the next generation network of distributed big data applications.

License

Notifications You must be signed in to change notification settings

PoCInnovation/InterPlanetaryCloud

Repository files navigation

InterPlanetaryCloud

InterPlanetaryCloud (IPC) is a distributed cloud built on top of Aleph, the next generation network of distributed big data applications.

IPC offers two services :

Cloud Storage

A distributed personal file storage and management system plateform, protecting your data.

Cloud Computing

A distributed personal cloud computing plateform for HTTP servers.

Getting started πŸ”§

Installation

Install Docker

Follow this official guide to install Docker.
If you want to play a little bit with Docker, you can follow this tutorial or even our workshop !

Install IPC

# Get the project
git clone git@github.com:PoCInnovation/InterPlanetaryCloud.git
cd InterPlanetaryCloud

# Build IPC docker image
docker build . -t ipc:latest

Quickstart

Run IPC πŸš€

# Run IPC docker image
docker run -p 8080:80 ipc:latest

You are now ready to access to your decentralized cloud at http://localhost:8080 πŸ’₯ !

Get involved

You're invited to join this project ! Check out the contributing guide.

If you're interested in how the project is organized at a higher level, please contact the current project manager.

Features πŸ’«

Home Page

Home Page

Signup Page

Signup Page

Signup Page - Mnemonics given

Signup Page Mnemonics

Login Page

Login Page

Dashboard

Dashboard

Dashboard - Upload a file

Dashboard Upload

Dashboard - Share a file

Dashboard Upload

Dashboard - Files shared

Dashboard Upload

Dashboard - Contacts

Dashboard Upload

Dashboard - Add a contact

Dashboard Upload

Dashboard - Update a contact

Dashboard Upload

Dashboard - User's profile

Dashboard Upload

How does it work? πŸ€”

Technologies πŸ§‘β€πŸ’»

Security πŸ›‘οΈ

Every file that you upload will be encrypted thanks to crypto-js.

Database πŸ“

We use Aleph SDK TS.

Full overview

  • For each file, a random key is generated and the content of the file is encrypted with this key.
  • The content is pushed into a store message via the aleph network.
  • The hash of the store message and the key are added to the 'Contacts' post message.
Upload a file

  • For each contacts into the 'Post Message - Contacts', the files and contacts are get.
  • An occurrence between the address of the user and the contacts is searched.
  • For each file found, metadata about the files are retrieved.
Load a file

  • The content is retrieved from the aleph network from his hash.
  • The content is decrypted with the key, itself decrypted with the private key of the user.
Download a file

  • The hash and the key are encrypted with the public key of the contact.
  • These infos are added to the list of shared files of the contact.
Share a file

  • One post message, with the list of contacts and the list of shared files for each contacts
  • The post message contains the info about the contact, his name, address, public key and a list of shared files
Post messages

Our PoC team πŸ‘Œ

April 2022 - September 2022

Developers - Team Storage:


Reza Rahemtola

Tristan Masselot

Laure Gagner

Developers - Team Computing:


Amoz Pay

LΓ©o Dubosclard

Alex Prevot

Project Manager:


Adrien Fort

Reviewers :


Lucas Louis

September 2021 - April 2022

Developers:


Lucas Louis

MatΓ©o Viel

Project Managers:


Adrien Fort

March 2021 - September 2021

Developers:


Adrien Fort

Diego Rojas

Lorenzo Carneli

Project Managers:


Adina Cazalens

Luca Georges Francois

Reviewers :


Tom Chauveau

Organization

πŸš€ Don't hesitate to follow us on our different networks, and put a star 🌟 on PoC's repositories