-
Notifications
You must be signed in to change notification settings - Fork 0
Overview
James Carnley edited this page Nov 9, 2023
·
5 revisions
Used to be tech stuff but that's now been moved to architecture overview and this hasn't been cleaned up.
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.
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;
- Represent an idea or community
- Controls its property values and types
- Has associated properties/files/data in the form of key-value pairs
- 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
- 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
- EFS's graph is organized in a hierarchical folder-like structure that allows for ownership and organizational structure for large communities
- 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
- Represented as properties with data content
- Stored within folders, providing a clear organizational structure
- EFS implements a URI scheme that enables users to reference data within the property graph easily from the web
- 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
- URI: efs://chainId/path/subject:relationship.type?option=value&option=value#editon