top of page

H.O.R.N.E.T Relay
Large File Storage
Hashed & Chunked

Deduplicate all hosted files with their hash IDs: never store the same file twice.

 

Nostr Apps can use H.O.R.N.E.T Relays to store posts, small files as Blossom Blobs and large files as Scionic Merkle Trees.

Get started
H.O.R.N.E.T Storage

H.O.R.N.E.T Relay
Large File Storage
Hashed & Chunked

Deduplicate all hosted files with their hashes: never store the same file twice.

 

Nostr Apps can use H.O.R.N.E.T Relays to store posts, small files as Blossom Blobs & large files as chunked Merkle Trees.

Scionic Merkle Branch

Scionic Merkle Tree

Sync Root Hashes
with Negentropy

Request File Chunks
with Leaf Numbers

Request File Chunks
with Leaf Numbers

History of Merkle Trees

Hashed tree structures have a long open-source legacy. From the invention of Merkle Trees by Ralph Merkle in the 80s, later adopted by bitcoin, to Git’s use of hashed DAGs and IPFS's implementation of Merkle DAGs for file storage. However, Classic Merkle Trees cannot contain a folder of files. Merkle DAGs were developed as a solution to incorporate a directory of files into a similar Merklized structure.

Scionic Merkle Tree branches exhibit logarithmic growth, like Classic Merkle Tree branches, but Scionic Merkle Trees also provide the ability to chunk a directory of files like Merkle DAGs. These new Merkle Trees are the best of both worlds for file storage. The logarithmic Merkle Branches from Scionic Merkle Trees means each branch will be smaller than a Merkle DAG branch for large files, making them better for transmitting large directories over a network.

Nestr utilizes Scionic Merkle Trees to chunk each git bundle file. The bundle file contains the commits within every gitnestr push. These bundle files allow peers to perfectly maintain the exact commit hashes, tags, and authorship within the git tree shared between peers... unlike git patches.

Folder Support with Small Branches

Scionic Merkle Tree are a new type of Merkle Tree/Merkle DAG structure for file chunking. Scionic Merkle Trees have small branches like Classic Merkle trees, the file/folder storage ability of Merkle DAGs, and numbered leaves so relays can request a range of missing leaf numbers in order to sync succinctly. Merging the advantages of Classic Merkle trees and Merkle DAGs gives H.O.R.N.E.T Storage the best of both worlds: file storage and small branches. This will unlock a new tier of speed for a variety of decentralized apps that require large file directories.

What Does Scionic Mean?

In plant grafting, the scion is the upper part of the plant, chosen for its desirable fruits or flowers. It's grafted onto another plant's base to grow together. In a similar vein, the Scionic Merkle Tree was born from grafting together Merkle DAGs and Classic Merkle Trees. This process emphasizes why we use the term "scion" for the Scionic Merkle Trees. The name symbolizes the digital grafting of these two similar data structures, combining their strengths into one piece.

Scionic Merkle Tree

Nestr is a Nostr-native alternative to GitHub and X as a desktop app powered by Electron. It's complete with profiles and customizable feeds.  GitNestr CLI enables developers to push commits to H.O.R.N.E.T Relays. Every push contains a collection of commits that are stored in a git bundle file. This git bundle file is chunked into a Scionic Merkle Tree with metadata about it's properties, then the process is finalized when the Merkle Root hash is signed... authenticating every chunk in the tree.

Scionic Merkle
Trees in Nestr 

bottom of page