STORY
Comments #PoweredByNostr
AUTHOR
Joined 2022.06.04
DATE
VOTES
sats
COMMENTS
Comments #PoweredByNostr

Comments #PoweredByNostr

As seen in our announcement story, BOLT🔩FUN has just launched its new comments feature. Comments were introduced to increase community engagement and feedback on maker stories.

To realize this exciting new feature, we used the Nostr protocol. There are several reasons we chose it over other protocols, and in this article we will explain what Nostr is, how we use it, the benefits it brings, as well as answering some of your questions around data usage and ownership.

What is Nostr?

Nostr is an open protocol that enables the creation of censorship-resistant global "social" networks.

Nostr is extremely resilient as it doesn't rely on any trusted central server, instead it relies on a network of federated servers (known as relays) who distribute data and information between one another. Since it also uses cryptographic keys and signatures to send messages to other relays in the network, it is extremely tamperproof.

How does it works?

Within the Nostr network, everybody runs a client (this can be a native client, a web client, etc). To publish something to the rest of the network, users have to sign their message (e.g a post, story, or comment) using a private key and send it to multiple relays (servers hosted by someone else, or yourself).

To get updates from other people, clients ask multiple relays within the network if they know anything about these other users or applications. Relays can then return information to the client. Relays are very simple and can be run by anyone in the network, they do nothing besides accepting information from some people and forwarding to others.

Using the example of Twitter, this would work by allowing users to send Tweets by signing each post with a private key and relaying it across a network of federated servers who then store this message. Anyone in the network could access this data at any time by asking the relays for it.

What are the benefits?

  • Can't ban users or censor data.

  • Nostr simplifies migration and cooperation between servers.

  • Not every relay has to store each and every data event, a handful of them should be enough to keep your data always available.

  • Users don't have to run their own relay (server) to be able to participate in the network.

  • The protocol is relatively simple.

  • No forced advertisements.

To read more in-depth about the protocol, check their readme & 'nips' here: 
https://github.com/nostr-protocol/nostr and check out some awesome things people are making with Nostr here: https://github.com/aljazceru/awesome-nostr

How is BOLT🔩FUN using Nostr?

Because the Nostr protocol is still considered experimental, and its adoption is in its infancy, we want to start by integrating it into our platform piece-by-piece, learning from each step of the journey and improving upon the next.

We have chosen to start this process by building out our commenting feature, due to its simplicity. However, we later plan on using Nostr to allow users to publish most of their data to its distributed network of servers, including: stories, comments, and profiles. This will eventually reduce the load on our database and bring users the advantages detailed above, such as the censorship resistance and data migration.

Users will eventually be able to link their Nostr IDs across multiple platforms and see their information shared and relayed. That way, if someone wishes to fork our code and create a different interface for BOLT🔩FUN, stories and comments data can still be fetched, relayed, and published to their new platform.

FAQs

Where are we storing your nostr keys?

For now, we are generating the keys in the back-end, and storing them in our database. We realize it's not the best place to store them, and this is only a temporary solution. Until we see some wide adoption for a solution that manages your Nostr keys, or until wallets like Alby decide to store your Nostr keys, it seems like the best option available. To find your Nostr keys, as well as information on connected relays, go to your Maker profile page and scroll down to the "Nostr comments" section.

Can I edit/delete my data?

Being frank, not at the moment. When a new event is created, it gets published and stored on multiple relays, and for the moment there is no guarantee that each relay that has your event will delete it when asked to. But we are actively working on finding solutions for this issue.

Relays currently store and deliver data for free. Will this always be the case?

Because Nostr is still in the early stages of development, most relays store your data for free. However, as the protocol gains enough stability and adoption over time, relays may start charging users to store data on their servers.

For the developers; What are the filters and kinds we use and why?

We are using events of kind 1, cause they represent text events.

And to be able to query the right events for each post, we are using a filter tag “#r” with the value:
“boltfun Story_comment <Story ID>”

How will this feature evolve over time?

Since the Nostr protocol is so new, we are still learning about how to implement it best ourselves. Whilst building out the Comments feature, we came across a number of interesting challenges along the way, adapting and solving them as we saw fit. However, these solutions and improvisations can of course be improved upon for efficiency's sake. We hope that by sharing our development process with the bitcoin community, we can increase the number of active users, problem solvers, and tinkerers - improving these features over time.

And that's exactly what we set out to achieve when building BOLT🔩FUN - learning how to implement technologies such as lightning network and Nostr ourselves, whilst teaching others about how to incorporate these protocols into their own real-world products, plus how to deal with certain challenges along the way. More to come as we #buildinpublic.