project screenshot 1
project screenshot 2
project screenshot 3

Mimis

๐”๐”ฆฬˆ๐”ช๐”ฆ๐”ฐ is a filesystem overlay for IPFS resources leveraging several novel approaches to organize content.

Mimis

Created At

HackFS 2022

Project Description

This program is a virtual โ€œfilesystemโ€ built in a native graph database. Each user has a โ€œcontext forestโ€ wherein they try to see that all sensical paths for a resource resolve. If you can come up with ๐˜ข๐˜ฏ๐˜บ path that sensibly describes the resource you're looking for, it'll be there. No more lost files.

Operations are done on combinations of these forests across users. For example, users can specify a trusted set of forests to search through. Content can be ranked based on how consistent and desirable the information encoded in the paths including the resource.

๐”๐”ฆฬˆ๐”ช๐”ฆ๐”ฐ differs from a traditional directory tree in several fundamental ways:

โ˜… ๐—ฃ๐—ฎ๐˜๐—ต๐˜€๐—ฒ๐˜๐˜€: When searching through resources, rather than a single path, the user can specify combinations of paths, and display elements that are common between them.

โ˜… ๐—–๐—ผ๐—น๐—น๐—ฎ๐—ฏ๐—ผ๐—ฟ๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—™๐—ถ๐—น๐˜๐—ฒ๐—ฟ: In ๐”๐”ฆฬˆ๐”ช๐”ฆ๐”ฐ, each user's additions are saved to their own subforest. These are traversed en masse to find which resources were the most often referenced to gauge popularity for competitive spaces like /news/interesting/ where lots of content wants to have the top spots.

โ˜… ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—–๐—ผ๐—น๐—น๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐˜€: Folders may contain multiple resources with the same name.

How it's Made

IPFS filesystems are spidered into Neo4j including saving the structure of symlinks. Each user has an isolated import structure and queries are performed by traversing over combinations of them.

The base application is Next.js / TypeScript. There's a React frontend that sends JSON to API endpoints which converts it to Cypher, passes it through Neo4j, and composes a JSON response.

Authentication is accomplished using Sign-In With Ethereum. ENS names are used as the root identifying token for the user-based import trees.

background image mobile

Join the mailing list

Get the latest news and updates