ZuSocial @Istanbul - Nov 13th Daily Roundup
Super packed day at ZuSocial from art & storytelling, to hardcore technical workshop and hands on 101 session. A Daily Roundup below:
1/ Crafting Legends: Storytelling and Art for your Project
Guest: ColtonArt @mettahead
Memes are sticky, which performs great on socials and encapsulates the narrative. Super cool session leveraging AI (ChatGPT, Midjourney, Dalle) to think wide and articulate our project stories with memes and mythology.
2/ Kiwi News / Farcaster workshop
KiwiNews is a decentralized hacker news using P2P set reconciliation. It uses a Merkle Patricia Tree to achieve its set reconciliation.
The technical challenge of nodes synchronization
In an ideal case, where all nodes have perfect internet connection, using a gossip subscription mechanism can easily create a P2P network where all nodes stay "live" by subscribing to a topic and adding messages in order to their database. Thus, we could assume that all nodes are always reaching the same state.
However, in real cases, nodes often lose connection, crash due to bugs etc., which needs a solution for offline nodes to catchup. For nodes that didn't transit from state 0 to state 1 due to offline issues, they cannot directly transit from state 0 to state 2 as state 1 is missing. Thus, simply broadcasting messages is not sufficient.
What is set reconciliation?
Set reconciliation is the mechanism to synchronize nodes back to the current state when having been offline.
Solution to achieve set reconciliation
To achieve set reconciliation, we can use bitmap or merkle tree. Bitmap solution has several drawbacks including:
Message sets could have unpredictable set sizes as they are user-defined.
Modern hash functions would make the size of bitmap significantly huge, which is impractical to share between nodes。
Bloom filters don't work well as they are probabilistic, which requires re-validation upon synchronization.
Merkle tree has the advantages of being deterministic, scaling with increasing number of messages, and verifiable root hash.
By using Merkle tree solution, different trees will broadcast their latest tree root hash to all other peers. When there is a difference between root hash, it descends a level deeper in the trie and sends nodes for comparison, which needs less messages to be sent over the network and less compute when comparing.
fTo resolve the conflict, the nodes will have 3 states among "match", "mismatch", and "missing". In the case that missing node is a leaf and we recieved it for comparison, we add it to the local tree and update all of that subtree's hashes.
3/ Orbis & Ceramic workshop
Ceramic is a decentralized data network that provides data storage for blockchain protocols, and is designed for multiple use-cases such as decentralized social media, gaming etc.
Building on top of IPFS/ IPLD, Ceramic adds streams as mutable elements of data, provenance, access control and indexing, which provides the benefits including mutable data storage, data composability, better dev experience, sign in with Web3, decentralization & permissionless, and high scalability.
In Feb 2023, it launched composeDB, a decentralized graph database, which has the features of fast indexing, composable, decentralized, and open data (other DB can also be built parallel to compose DB).
Orbis is an open social protocol on Ceramic. It started as a dApp and turned into a social infra. Orbis' tech stack incl. Orbis nodes, Ceramic (decentralized data network), Lit (decentralized key mgmt), and Postgres (supabase).
By using and building on top of Ceramic, Orbis has the future potential of :
Being a decentralized database
Use composeDB data models for composability
Fully open source and extensible
Quick start for devs as it's Web2 friendly
Familiar query interfaces
4/ IPFS 101 workshop
Hacker: Srdjan @pyr0py, Marios and Daniel
Hands on 101 session with Terminal time!
Like my work?
Don't forget to support or like, so I know you are with me..