Skip to content

Overview

James Carnley edited this page Nov 2, 2023 · 5 revisions

EFS Overview

EFS at its core is a hierarchical structure of folders and data implemented on top of a property graph. Users access data through a static HTML, CSS, JS Web App hosted on IPFS that connects to the blockchain via a user's wallet, RPC endpoint, or a light client.

Property Graph

EFS utilizes a property graph model which allows for the storage of data in a graph structure with nodes representing entities, and edges representing the relationships between these entities. Each node and edge can have associated properties that store data in key-value pairs.

graph TD;
    Root -->|contains| Folder1[EthFinance]
    Root((Root)) -->|contains| Tags[Tags]
    Root -->|contains| Folder2[UIs]
    
    Folder1 --> File1A{{ETH breaks 10K}}
    Folder1 --> File1B{{EFS released}}
    Folder1 --> SubFolder1A[submitted]
    
    Folder2 --> File2A{{Uniswap}}
    Folder2 --> SubFolder2A{{Aave}}

    Tags --> NSFW{{NSFW}}
    Tags --> DeFi{{DeFi}}

    File2A -->|tagged with| DeFi
    File1A1 -->|tagged with| NSFW
    
    SubFolder1A --> File1A1{{Satoshi says BTC or bust}}
    SubFolder2A --> File2A1{{ipfs = QmRA...D4}}
 
    
    classDef folder fill:#ffcc00,color:#333,stroke:#333,stroke-width:2px;
    classDef file fill:#ccffcc,color:#333,stroke:#333,stroke-width:1px;
    
    class Root,Folder1,Folder2,Tags,SubFolder1A,SubSubFolder2A1 folder;
    class File1A,File1B,File2A,File1A1,File2A1,File2A1a,SubFolder2A,File2A1b file;

Loading

Nodes

  • Represent an idea or community
  • Controls its property values and types
  • Has associated properties/files/data in the form of key-value pairs

Properties

  • These are individual peices of data and files
  • Can be simple (name = "James") or complex (Whitepaper = bytes of PDF file)
  • Each property has an associated content-type/mime-type such as text/plain or application/pdf

Edges

  • Represent relationships between nodes
  • Can have properties that describe the nature of the relationship
  • Edges can be either single statuses like James -> "Follows" -> Vitalik or an array of events such as instances of James -> "Met IRL".ETHDenver -> Vitalik

Hierarchical Structure

  • EFS's graph is organized in a hierarchical folder-like structure that allows for ownership and organizational structure for large communities

Folders

  • Represented as nodes with related properties
  • Folders may also denote a certain type of contents such as /account/0x918327...1f having special properties of being an owned folder by that user
  • Can contain other folders and files, mirroring traditional file system structures

Files

  • Represented as properties with data content
  • Stored within folders, providing a clear organizational structure

URI Scheme

  • EFS implements a URI scheme that enables users to reference data within the property graph easily
  • The URI format is designed to be intuitive and aligns with existing web standards, allowing other resources on the web to link directly to EFS data

Clone this wiki locally