Hive + Fediverse: A Match Made in Decentralized Heaven? (Or Maybe Not?)

in #development2 months ago

Good afternoon. It is here! Tomorrow Web3Amsterdam.com (ping for a free ticket!)! See you there?

It's been a while since I've posted anything substantial about Hive development but I've been thinking a lot about this lately. In between building our house (which is taking forever and too long haha, but small win: just tested a toilet with automatic shower head TMI TMI TMI!) and maintaining my witness nodes, I've been thinking about an interesting tech mashup: connecting the Hive blockchain with the Fediverse.

Why thinking about this?
As my intention stated earlier this year is to be more dedicated to Hive again, as housebuilding slows down (finally), I started to think more about what is Hive and what makes it special. This is part of a bigger thought experiment and personal goal in my life after building a to big of a house yourself.

One could argue that Hive is multifacetted and has "too many features", whereas in a product world one should build one feature, kill your darlings and dumb down on the one feature. This is what made me think about "what Hive is" / what is the core product? Originally launched as a kickstarter for a new economic model, to get people to use the "Steem token", it grew into a community. And is that a success I mean: economy === community? Maybe it is. A community which is bound together by all these apps and initiatives build on top of the core blockchain.

And the core blockchain revolves around basic features: transferring value plus a database optimized for storing and discovering media content with a social graph (following / followers).

Hence I am now exploring, through this (hopefully) thought provoking / discussion initiating post, how to double down on the origins of Hive/Steem: the decentralised social network function of the Hive blockchain. Which might (or not) be able to be enhanced and hooked into other decentralised (social) networks through enable Fediverse features?

Disclaimer: when researching this topic I noticed that there was an initiative by @hivetrending getting Hiveposh users visible on the fediverse by bridging HivePosh users, but that seems to not work at the moment. But especially curious to hear your input!

So what's this Fediverse thing anyway?
The Fediverse is basically a collection of independent social platforms that can talk to each other. For example Mastodon (a Twitter/X alternative), PeerTube (YouTube alternative), Pixelfed (Instagram style), and others.

The great thing is that these platforms can all communicate with each other even though they're running different software. It's similar to how email works - I can use Protonmail, you can use Outlook, but we can still exchange messages. That's federation in action! It feels pretty decentralized right? How cool would it be to join this network with the decentralized Hive Blockchain?

The technical stuff - protocols and more protocols
To make things simple :sarc: there are a couple of protocols for one federated world :P

  • ActivityPub: Standardized by W3C in 2018. Most modern Fediverse platforms use this one.
  • OStatus: The grandpa protocol that ActivityPub largely replaced.
  • Diaspora protocol: Used by the diaspora* network.
  • Zot: Used by Hubzilla, offering some unique features.
  • And then there is Bluesky (big!) with the AT protocol and let's not forget Nostr.

ActivityPub basically provides a common language for social networks to communicate with each other. It uses JSON-LD and something called ActivityStreams 2.0.

For the technically curious among you, check out fediverse.party for more details!

Why would Hive want to join this
The Hive blockchain is amazing on its own, with apps like PeakD, Ecency, LeoFinance, and many others. A huge ecosystem spreading its tentacles through all these apps and creative developments made by many of you. Connecting to the Fediverse could potentially bring some advantages, worth thinking about:

  • Massive new audience: Your Hive posts could reach millions of Fediverse users who've never heard of blockchain.
  • Content discovery: The Fediverse community is diverse and engaged - perfect for finding new readers.
  • More decentralization: Both Hive and the Fediverse value user ownership and censorship resistance.
  • Spreading the reward model: Mastodon users discovering they can earn crypto for their content!
  • Potential PR / Promotional value? Headlines like: "Decentralized Hive Blockchain joins the Fediverse"

LeoThreads seems particularly well-positioned for this integration. It's already Twitter-like in format, which would blend nicely with Mastodon's microblogging style.

But wait... it's not all fun and fun
There are quite some serious challenges to implement this. And being part of Hive for almost (or) over 9 years now (I lost count here!), they should not be neglected.

Blockchain is forever, Fediverse isn't perse.
Here's the big one: Hive content is permanent. Once it's on the blockchain, it's there forever - that's literally the point! But in the Fediverse, users expect to be able to delete posts or even their entire accounts.

Think about this scenario: A Mastodon user replies to your Hive post through some bridge service. They later decide "oh no, that was embarrassing" and delete it. On Mastodon it disappears, but on Hive? It's there forever, permanently linked to your post. Awkward!

Economic models don't match
Hive has this awesome token economy where content and curation get rewarded with cryptocurrency. The Fediverse has... well, nothing like that.

How would this work in practice? Would Fediverse interactions count toward Hive rewards? If not, you'd create second-class content. If yes, you might open up the reward pool to abuse from Fediverse users who don't understand (or care about) Hive's economic system.

Technical headaches to overcome:
Speaking as someone who maintains Hive infrastructure bridging these systems would be a maintenance challenge. Both ecosystems evolve independently, meaning constant updates would be needed.

Our 3-second block time is amazing for a blockchain but could be an eternity compared to traditional databases that Fediverse instances use. High-volume interaction could create serious performance bottlenecks.

Authentication is a mess
On Hive, we use key-based cryptographic authentication. On the Fediverse? Traditional username/password or OAuth. Bridging these authentication methods creates security considerations that are difficult to resolve without compromising one system or the other. Or may I be overthinking this?

What should be built in order to get to full integration?
Despite all these challenges, if someone was crazy enough to build this bridge (and I know our community has plenty of brilliant, slightly crazy developers!) to make true content federation work, we'd need:

  • Full ActivityPub implementation with all the required endpoints
  • Follower list management for Hive users
  • Content translation between Hive and ActivityStreams format
  • A push system to deliver Hive content to Fediverse followers
  • Translation of Fediverse interactions back to Hive operations

That's a lot of work! Reminds me of building my house - what seemed straightforward at first quickly becomes a complex project with many moving parts :)

My two cents on the whole thing
I've been with Hive/Steem for almost 9 years now, built apps like Hivewallet, HiveWhale (soon back in the waters after hibernation!) and run witness infrastructure. I love this blockchain and our community.

While integration with the Fediverse sounds amazing in theory, I'm practical enough to see the fundamental challenges. Data permanence, economic models, and authentication differences aren't small issues - they represent core philosophical differences between these systems.

That said, I'm all for experimentation! A limited integration focusing on specific use cases (like just federating LeoThreads content one-way into the Fediverse) might be worth exploring as a first step?

What do you think, fellow Hivers? Is Fediverse integration something you'd like to see? And if you're a developer interested in working on this, ping me - I'm always down to discuss interesting technical challenges when I'm not busy plastering walls in my never-ending house project :)

Please be open and speak freely in your response. According to you, the idea could be good, or not good, curious to hear your thoughts. Is it worth it? Or should the network not open up? Should we just stick with RSS-feeds instead or maybe explore connecting / integrating with other initiatives like Bluesky (atproto - the AT protocol) or Nostr?

Or could it maybe be as simple as an app which shows you content from several networks at once, just merging it on the client (viewer's) side and opening up Hive to other federated networks via a webfinger endpoint like @hivetrending experimented with?

Or should we build a "Hive this!" button instead? Where any content on the web can be "liked"? just like the good old Digg.com (it's returning!) days and/or for example Slashdot / Stumble Upon?


(is also my witness name btw :P)@roelandp

Sort:  

There was a chance that I will be in Amsterdam, but I have to skip this :-(

Re: integrations, I guess the other way around, make it viable for current fediverse users to easily use Hive. We are actually making some steps towards it (easy onboarding). TBA soon.

curious! and looking fwd!
is the namespacing from bitshares considered? mainname.something (iirc)
and/or reserved namespaceing?

too bad u cant make it, not too far from the irl 🏠 project :)

We just made it possible for bitcoiners to use hive and earn bitcoin at onebitcoinclub.org. All open source and maybe u can use it as a foundation to integrate more systems to such a platform

the onebitcoinclub is a great initiative! it could, but I was thinking to have this as a core feature of the blockchain so it would be every user would be available in the fediverse through

acct:@blog.hive/@username
├── alias: fedi.hive.blog/@hive_username
├── alias: fedi.peakd.com/@hive_username
├── alias: fedi.ecency.com/@hive_username
├── alias: fedi.onebitcoinclub.org/@hive_username
└── alias: etc..

Yes, understood. It would be great to see the ability for your system to recognize log ins from any hive account that has associated to another blockchain. And give the ability to associate a Hive account to any other blockchain account directly from your system (all code for this is already built and open source) that way you can show the BTC balance, ETH balance or any other coin balance in your users wallet from their hive account directly on your fediverse platforms. This opens the ability to earn in any currency, with Hive as the foundation of the whole thing

The core Fediverse people are very pro open source, but a lot of them are very anti-crypto. That can be a barrier to entry as nodes can opt not to federate to others. That happens if some are too spammy.

I've mentioned this a few times, but I have little idea how to implement it. I talked to @hivetrending when he was playing with it. I use Mastodon for the people I can follow there and there are some definite overlaps with the community and technology of Hive, as well as big differences. A lot of people there are into open source, but a fair few are anti-blockchain/crypto (perhaps based on old biases). I've mentioned Hive and not been banned yet, but some people may have muted me :)

We have great content on Hive, but the audience is limited. Being able to publish to the Fediverse would greatly expand that. As people left Twitter Mastodon gained millions of users, although some did not stick with it. I think Bluesky has benefited too, but I don't use that.

I'm sure some smart Hivers could do it. I think it needs to at least get Threads/Snaps/Wave/Dbuzz type posts across the bridge.

Castgarden includes both Hive and Peertube, but I don't fully understand how. I was putting my old podcast on there.

thanks Steve. I'm currently reading into this https://maho.dev/2024/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-3/ and will try to setup an experiment asap.

Even if it just allows people to follow Hive accounts without signing up it's useful. Feeding comments back will be harder.

I still use RSS to follow various blogs and I know there was a way to create various types of feed from Hive. We need these options.

so maybe a dedicated server translating:

  • feed.hive.blog/@steevc.rss to rss/xml feed
  • fedi.hive.blog/@steevc for fediverse so one can follow hive posts via mastodon and other supported softwares?

what do you think @hivetrending?

This is doable. Lets see what volunteers appear, but over the next few months we definitely could help, especially if its open source

I posted on Mastodon about this idea. Got the sort of response I would expect from one guy. Some are real open source, anti-blockchain, anti-'AI' purists. I think we have to be open minded to some degree about alternative concepts. I may not be the best salesperson for Hive.

HiveToday is permanently suspended from Mastodon. And on 3/20 (Hive day) of all days!

I know you were one of our biggest fans there. A post is coming soon.

It's time for us to find a new home in the Fediverse.

Sorry to hear that. Which server was it? Another may be friendlier, but we have to be aware of the anti-crypto sentiments of some people there.

oh well.... you did great :)

Great ideas! Unfortunately I have no available time at the moment to commit to helping with this project.

Welcome back @roelandp glad to see one of the OGs around. I think one of the most interested in this would be Khal @khaleelkazi and the @leofinance team.

👀

I told @minigunner after we spoke with you, that we felt the fire back in your eyes.

Don't forget about the Hive Five came thing :P

Thanks for the mention. I’m happy to see this.

We can do a lot more related to bridging between Hive and other networks. Recently we added some basic BlueSky connection to POSH.

I am not sure what state the webfinger experiment is in. Due to time constraints and lack of dev power it was put on hold.

@acidyo may be interested in this discussion as well.

think it would be great to have this discovery / webfinger auto enabled for all hive users on e.g. @roelandp@on.hive.blog it could be a simple static file maybe or as metadata inside the hive.blog profile page template?

and yes the bluesky integration is great work!!

Peertube / Fediverse is awesome. It’s well integrated already on a few Hive Layer 2 platforms.

Sounds really interesting. :)

A one way link should be a easier to implement. Allow HIVE users to publish their top level content direct to Fediverse and Twitter. It should create some engagement and exposure to HIVE. Fediverse has not been friendly towards cryptocurrency.

It would be a lot easier to simply promote signups with Lite Accounts and get the users to eventually use @keychain and have self custody. INLEO already looks and functions like Twitter. The technology is finally open source: https://inleo.io/@leofinance/inleos-onboarding-framework-is-now-open-source-x-google-hive-lite-accounts-and-keystore-7nw

ok great thanks for pointing to this. But that would mean crosspublishing on a "fedified" copy instead of having a single point of data access? or "earmarking" certain content to become available on the fedified feed?

Re: lite accounts: thanks for pointing out the link to inleo's fossing. Not certain how I should read: "a lot easer would be to simply promote signups"? a lot easier then what exactly? Trying to fully grasp what you mean here...

To tldr; I was thinking of having Hive content become natively available in third party Mastodon (and the likes) fediverse enabled applications, in order to have those users be able to follow Hive users' content,,,

What I want to see the most is a larger number of HIVE users. More users will naturally lead to more investments and exposure for HIVE. There is a reason most startups focus on user acquisition as a top priority. Most people are too lazy to post the same content on multiple places. What I would like to see is an easy way to copy HIVE posts to other places automatically.

I think @dbuzz had this feature where Buzzes could get posted to Twitter automatically by clicking on a check box when posting. This is relatively easy to implement compared to an interoperable system with Fediverse. Even if this was built, what is the likelihood of these Fediverse users start playing @splinterlands or endgame with other DAPPs that are not social media?

Increasing the the number of MAU on HIVE should be our most important KPI IMHO. Getting users to create a HIVE account and start using the DAPPs is paramount. INLEO has been the biggest onboarder so far because their onboarding process can be as easy as using any Web 2 project.

Not certain how I should read: "a lot easier would be to simply promote signups"? a lot easier then what exactly?

Sharing some HIVE content on Fediverse + Twitter and telling people that they can start earning and playing games using their existing Web 2 account (Google + Twitter) or Keystore wallet is easier than creating a bridge between Fediverse and HIVE. One of the problems with INLEO was that other DAPPs could not use their signup method. Withe their ongoing FOSS efforts, it should be possible for any HIVE front, games etc. to allow almost anyone to be a part of HIVE.

Having to learn about Keychain and managing keys is easily the biggest barrier I have had with onboarding users to HIVE. What is the point of having security when there are no funds to secure in the first place. We need to get out of our ivory towers and allow normies to "just use" HIVE and "recommend" them self custody the same way we recommend hardware wallets.

INLEO was working on enabling signups for multiple blockchain wallets. This is the best case as users have self custody. Those who already have cryptocurrency wallets, but not a part of HIVE should be the easiest to onboard.

Think of any moment where you joined a new blockchain and started exploring the DAPPs because you could easily add it to your MetaMask (or similar) wallet.

answer it seems there is easier onboarding on the roadmap / in the works. you are very right that those whomever already working with metamask or phantom should easily be able to be onboarded :)thank you for your extensive answer. as I can decrypt from @gandalf's

For the time being, it would be great to have Keystore support for more DAPPs. There should be at least a million people who already have a Keystore.I saw from @howo's meeting summary that MetaMask support is in progress. Since INLEO is working on few more wallets with a FOSS release on the way, it would be definitely possible to see some collaboration and rapid development.

Congratulations @roelandp! You received a personal badge!

You made it rain on the HiveWhale!

You can view your badges on your board and compare yourself to others in the Ranking

Congratulations @roelandp! You received a personal badge!

You made it rain on the HiveWhale!

You can view your badges on your board and compare yourself to others in the Ranking