-
@ cloud fodder
2024-10-12 15:42:36relay.tools quarterly report
April, 2024
Project updates
The main initiatives for Relay.tools this quarter were the installer, re-occuring billing support, customer support, and moderation capability. Towards the end of the quarter I was able to start work on supporting nostr groups and a NIP42 auth proxy.
Installer
I made lots of progress on the installer this quarter. It's now at a point where it is fully functional.
- [x] Whitelabel support for custom domains
- [x] Automatic SSL certificate deployment via. certbot container
- [x] Many bugfixes, improvements, and end to end testing
- [x] Publish pre-built images
- [ ] Use pre-built images in the installer (alternative to building from scratch).
The installer was used to deploy a POC for vote.gold. A side project by @manime that is a relay hub for independent voters.
Re-Occuring Billing
I created a new system for billing / invoicing that tracks user balances and allows them to "top-up" their balance.
The billing system accounts for users of a paid relay (paid relay bonus), these payments go toward the owners balance.
This system is now live and there has been decent response by relay owners that reached out to pay their bills.
The cost of relays was adjusted to 12,000 sats / month. (from 21,000 sats/month).
Upgrades to lightning node and channels were performed to support these payments.
Customer support
Relay.tools rolled out a new customer support portal to support users that have questions about billing and so that relay.tools can contact relay owners via nostr with announcements / notifications.
My goal here is to use nostr itself to support the relays. I also did not want to use DMs because they are not private, they're flakey and simply not a good practice given the state of clients implementations. I think using nostr native methods for support is very important, but is also very difficult given some limitations that currently exist with nostr. Regardless, I pushed ahead.
- [x] Created a nostr pubkey for fielding questions and supporting users.
- [x] Used the outbox model from gossip to setup a streamlined customer support focused dashboard.
- [x] Created an additional relay for support and linked to the relay from the relay.tools landing page.
- [x] The first support notification blast went out to all owners advising them to pay balances in the coming month or to contact support for free 'credits' in exchange for feedback.
Based on the feedback I've gotten so far, it's clear there is still much work to do implementing a nostr native support system:
- Gossip outbox was buggy, and my client database pushed the limits of gossip and corrupted the database. I filed bug(s) upstream and am working with upstream to make this better.
- Some users preferred to use DMs vs. open communication on nostr (even though DMs are not advisable for private communication on nostr).
- Added SimpleX to the support pubkey's bio as an alternate contact method.
- The process for balance notification was very manual and once further research is done on the path forward, it needs to be automated.
Moderation and house-keeping
- [x] I've begun reaching out to nostriches for help with moderation.
- [x] Implemented some additional super-admin capability for the relay.tools admin user(s) in preparation for multiple super-moderators. This includes a global view of all relays and the ability to quickly explore flag mis-behaving relays.
- [x] I've started deleting some relays that were abandoned after using the new customer support portal to reach out to them. Some were simply test relays, some operators expressed that they've graduated to running their own relay, and some I simply could not get in contact with. This is a good milestone for relay.tools and was much needed, leveraging the re-occuring billing and support tasks.
AUTH proxy for strfry
I've started work this quarter on creating a mechanism to bring NIP42 AUTH to the strfry ecosystem. The gist of it is, strfry has been unable to implement NIP42 due to the complexity of needs that various authentication schemes require. There are many considerations and what seems simple at first glance quickly becomes mired in confusion and C++ makes it hard for anyone to collaborate or implement.
To work around this, I've created a proxy written in golang that can sit outside strfry and intercept/handle AUTH requests, leveraging the robustness and performance of strfry while allowing us to customize the authentication flow in a separate process.
So far I have an initial POC working and in the coming quarter I hope to ship an initial version of this which will be used by relay.tools and be the first open source auth proxy for strfry relays.
I am very excited about this. NIP42 in my opinion will enable multiple new paradigms for interacting with relays as it will be able to implement ACLs for reading from a relay vs. the current methods of write ACLs. It also will have the potential to support the new group clients that I mention in the next section.
Outreach / Collaboration / Nostr Groups
I've been spending more time on getting some collaboration going with fellow nostriches where our vision for nostr aligns. I am very interested in groups for nostr. (Functional replacements for discord/telegram/slack/reddit). This has been a long-term goal of relay.tools to support these types of clients and I'm excited that clients are starting to kick off a second wave of nostr functionality and I will do everything I can to support them.
- [x] I made an appearance on the Thank God For Nostr podcast talking with @hodlbod about relays, group-chats, and the viability of relays being profitable/sustainable.
- [x] Various nostriches have contacted me about running their own relay.tools and I'm working with them to educate and help them bring new 'relay hubs' online!
- [x] I've been working with @hodlbod on some extensive testing of the new Coracle groups implementation, private groups or closed communities: NIP87. I have been expoloring the possibilities of using Coracle's private community/group and whitelabel support for an integration with relay.tools. I have also been exploring what modifications a strfry relay may require to support advanced groups such as this based off the triflector relay proof of concept.
- [x] Investigated the use and requirements for 'simple groups' by @fiatjaf NIP29. This is another group implementation which may require customized relays and I wanted to understand the possibilities and requirements.
- [x] Integration with blowater.app - I've been working with @blowater on his new client/relay initiative that involves groups for nostr.
Next Quarter plans
- [ ] Release initial version of the AUTH proxy for strfry.
- [ ] Collaboration/Outreach - Coracle, blowater, other groups efforts.
- [ ] Submit a Relay Discovery NIP for review.
- [ ] Relay Support channel improvements.