1. Centralized bootstrapping: you must rely on a centralized set of nodes to connect into the network.

2. No user-server model: users are forced to spin up a server to browse their decentralized web. You can’t even turn a file into a merkle tree without being forced to spin up an IPFS blockstore server.

3. Their Merkle Trees/DAGs are not optimized for downloading one branch at a time, because you must download a list of all children hashes when downloading any parent hashes — creating excessively bloated merkle branches.

We’ve invented a new type of Merkle Tree/DAG that has the ability to map file directories like IPFS Merkle DAGs, and maintains the small branches of Merkle Trees for quick user validation.

This achievement may help projects independently of Nostr.

Reply to this note

Please Login to reply.

Discussion

Jack, would you like our team to write a paper explaining everything? From how we store repos, to our optimized trees and layered architecture… happy to share.

That way you and the communities on #nostr can assess our approach before we complete the project. Thoughtful criticism is always welcome.

Hmm. I believe you have the ability to specify bootstrap servers. And my understanding is that IPFS is more of a foundational protocol on which to build services that can offer a user-server model (like https://web3.storage/ ) so I'd imagine a service that acts as a nostr relay and has an ipfs node in combination to provide git services.

I don't have knowledge of your third item though.

We’re replacing IPFS with a layer 2 off-chain storage system that stores files with our optimized merkle trees, like IPFS does, but we ditch their bootstrapping system for a trust-minimized relay discovery system.

The node running this storage system also runs a git server, as you suggested. I have to say, I explained the basics of our storage system with merkle root on-chain — but I haven’t gone in-depth on how we’re doing the GitHub itself in context to the storage system.

Happy to share, just was trying to finish it before someone else did — it was a competition afterall.

Cool. I'm curious to learn more. Got a link?

Haven’t released the new merkle trees yet. We’ve only released the whitepaper on how we put merkle roots on-chain to sync the nodes hosting the merkle trees. I think it’s time to reveal how everything else works, given the concern around the bounty and everyone’s curiosity.

https://medium.com/@colbyserpa/nostr-2-0-layer-2-off-chain-data-storage-b7d299078c60