A data model to unify the plural communities
Heni here, I wanted to write about a key feature of Ourcana online I haven't explained at length. Credit: these images and encryption inventions are from the Willow Project and worm-blossom upstream
With Ourcana, there is no one server. Instead, we use the Willow Protocol and its various sub-and-sister projects to allow for a globally-addressable, universal "space" where any user may carve out their own identity.
End to End Encryption and you
The Willow Protocol project works to enable...
Peer-to-peer protocols which scale up, down, and sideways.
Built out of mathematically secure and sound encryption practices for the modern era, Willow is used by Ourcana to create a set of system, member, and media/journal URLs for users to write system and member data into in a format that all Ourcana and Ourcana-compatible clients and servers understand!
What's in a namespace?
Willow's core principles involve a "namespace" or really a set of all namespaces that are owned by systems or by the community. Users can choose to make some private, or some public, or share data out to only friends in bits and pieces from the entire namespace's virtual filesystem.
These files we see here are real, concrete things users see in Ourcana today such as member data, system data, front history, even down to individual fields such as pronouns or in-system relationships. Journals are stored within the encrypted format as plain markdown files with metadata attached such as "last edited" and "edited by" timestamps and user-data.
Can I keep my data separate?
Users have complete ownership and control of private namespaces by design. Public namespaces are social hangouts and friend exchanges, where everyone logs in via their own "system" address and starts writing into posts on the wider "internet".
This means that telling your friend about a front history change is as simple as the client moving the data around, and then telling all your friends about it!
Can I block users? How do I know who is my friend and who is a hacker/imposter?
Willow has an extension called "Meadowcap" that allows for a server, or really any client, to selectively assign permissions. This means for someone to reach you online in say, ex-system chats, your client must have given them encryption rights (capabilities or "caps") to communicate with you in this way.
This means that bad actors can't pretend to be your friends. They have different keys, different universal system identities, and any junk data that somehow might make it to Ourcana can be discarded without even unwrapping. Users are in full control of whom they communicate with, who can reach them, and how they communicate and where. The server can selectively enforce merely providing any data, while clients retain the information required to decrypt it. In the case of edge services such as Apple Push Notifications integrations (for iOS to tell you who just changed front, for example!) where partial decryption is required, users are presented with options to lower their privacy server-side to enable otherwise impossible features. Meadowcap is expressive enough that one can allow the server to see just the sender and maybe front list of a notification that someone has left a message for them in an internet chat, but not details such as the full contents of said message. Users usually want to know who sent the information, but the message itself can be opened privately local to the device â no need for Apple or anyone else to know what you're yapping about in private, including Ourcana's servers.
This community vs owned namespace layer allows for discovery between friends on Ourcana without them revealing where exactly they may be communicating. One has be aware of a namespace to know to address it, and pull the data from an Ourcana server or peer (friend). Some namespace IDs and subspace IDs are reserved by Ourcana for future online features, such as a collaborative gacha game (free, of course), and leaderboard integrations for collection progress. These are in the application for stealth, and will be provided as a "panic key" system that also has real functionality.
The first Willow Transfer Protocol implementation
I reached out to the Willow and worm-blossom organizations on Discord, where they taught me a lot, such as the value of complex hash algorithms like WILLIAM3 and showed me a draft of the WTP specification. I've spent a few days working on an implementation of their theoretical model towards the goal of making it real. I'm proud to say, I may be the first person on the planet to have a functional WTP server and client that work over the internet today! This, and all other Ourcana server-side code will be available under open source licenses! I hope that publishing rich, developer-friendly specifications may inspire others to write applications similar to Ourcana that have their own take on Plural system management. Imagine a rich ecosystem where all apps can communicate! No more confusion about PluralKit front history versus SP custom fronts... put them all into a unified format and let the client figure out how to present a union of the data.
An atomic resolution model of Conflict-free Resolution Data Types
On the side, I design systems that allow for the ingest of all plural applications' data, so that I can provide the most accurate "source of truth" for a user who may have their information spread over many platforms. Unfortunately, these models get complex and full of jargon (hybrid logical clock? last-write wins? atoms? oh boy...) If you want a preview...


















