fxhash docs
discordonchfsfxhash$FXH
  • Docs Overview
  • Quickstart Guide
  • $FXH
    • Protocol overview
    • Programming open-form genart
  • Creating on fxhash
    • Project Setup & Development
      • Project Structure
      • Project Template
      • CLI Setup
      • CLI Reference
      • fxlens
    • fxhash API
      • API Overview
      • API Reference
      • fxparams module
      • fxparams API Reference
      • Parameter Definition Specs
    • Genart in the Browser
      • Canvas element & API
      • Including Libraries
      • Responsive Browser Projects
      • Deterministic Randomness
      • User Input & Media Exports
      • Testing Browser Compatibility
    • Releasing your Project
      • Minting Interface Walkthrough
      • Pricing and Supply
      • Reserves & Allow Lists
      • Licensing your Project
      • Collaborative Projects
      • Withdrawing Earnings on ETH/Base via splits
  • Collecting on fxhash
    • Platform Overview
      • Primary Market
      • Secondary Market
      • fx(params) & the Ticketing System
      • Allow Lists & Reserves
      • Redeemables
    • Collector Tips
      • Getting Started as a Collector
      • Token Discovery Tools
      • Towards Curation
      • Market Analysis & Dynamics
  • Knowledge Base
    • fxhash & Web3
      • Decentralization & Blockchain Tech
      • Multi-Chain Integration
      • NFTs & Smart Contracts
      • Web3 Storage
        • IPFS
        • ONCHFS
      • What is Generative Art?
      • Genart on the Blockchain
    • Onboarding
      • Creating a Wallet
      • Creating an Account
      • Adding Funds to Your Wallet
      • Account Verification
      • Platform Moderation
    • Policies & Guidelines
      • Code of Conduct
        • Artists' Code of Conduct
        • Collector's Code of Conduct
      • Terms and Conditions
      • Privacy Policy
      • Safety Notes
  • ONCHFS
    • What is ONCHFS?
    • Motivations
    • System Overview
    • Cross-chain Referencing
    • Limitations
    • References
  • Find us on Social Media
    • X (Twitter)
    • Farcaster
    • Join the Discord
Powered by GitBook
On this page
  • System components
  • Core properties

Was this helpful?

  1. ONCHFS

System Overview

PreviousMotivationsNextCross-chain Referencing

Last updated 7 months ago

Was this helpful?

ONCHFS is a permissionless unix-like content-addressable file system fully stored on-chain designed to be delivered through the http protocol, with cross-blockchain compatibility in mind.

System components

FILE-OBJECTSCONTENT-STOREHTTP-PROXY-RESOLVERUSERAPP-CONTRACTCREATORSwrite/read content-addressed chunksresolvesrequest to view content through httpreferencesinsert files & directoriesuse file objectsdiscover content

Core properties

Permissionless

Anyone can write data, create files & directories, & reference files stored on the file system.

On-chain

Every byte necessary to fully reconstruct the file system is stored on-chain. Standards provide a way to write & read the file system.

Immutability

Content created on the file system can never be altered.

Interoperability

The raw bytes of data are stored as chunks in a dumb Content Store contract, only supporting low level operations such as write & read. Because the chunks of data are Content-Addressed, many applications can use the Content Store for various purposes without impacting each other. This protocol provides extra abstraction layers to improve upon just having a Content Store.

Content-Addressed

Chunks of data, files & directories are hashed and identified by their in the Content Store hash.

Unix-like

An inode can be a file or a directory:

  • file: an ordered list of pointers to chunks of bytes in the stored in the Content Store, and some extra data describing the file

  • directory: a list of inodes with their assigned names

inodes are also Content-Addressed, the hash of their content is used to identify the inodes on the file system. Such hashes are used as entry points to the file system, and are referred to as Content Identifiers (CID).

Designed for the http protocol

As browsers are the main (if not the unique sensible) gateway to web3 assets, the protocol is designed to easily serve its content through the http protocol, in such a way that assets can easily reference and load other assets stored in the file system, using the native behaviour of modern browsers through the http protocol.

While the http protocol isn’t directly built into the Smart Contracts (yet), the protocol specifies particular guidelines so that consumers of the system provide particular metadata for delivering resources through the http protocol, in an optimised fashion.

However the protocol specifies how proxy servers should be implemented to navigate the file system using the URIs native to the file system.

Extensible

As the protocol provides very low level primitives, it’s easy to extend it by providing other abstraction layers for navigating the file system.

For instance, we could imagine an “http-like” contract which would take “http-like” requests to return content stored in the file system with http-compliant response messages.

An abstraction layer inspired by on provides a generic way to organise the Content Store into files & directories.

inodes
Unix-like file systems