Hey guys. I'm jb55. I've been in the bitcoin space since late 2010, was the CTO at Monstercat, a record label that was one of the first to accept bitcoin payments for music. I've been building on CLN: lnlink, lnsocket, etc. which is a cool way to access your node remotely using commando to build lightning apps. Recently I've been working on damus.io, a nostr client for iOS and soon the web.
Hi jb55! thanks for doing this AMA. During TFTC you talked about building a metaverse world, could you go into more detail into what that would look like if you built it?
I got into programming for gamedev, so metaverse to me just means an open protocol that you could integrate into game engines or any internet application really.
My proposal (http://git.jb55.com/protoverse) is just an experiment to build a metaverse that is accessible to all, not just people with VR headsets.
You should be able to join the same virtual world with a text, 2d, 3d, or VR client. protoverse was just an initial attempt to see if that's possible.
The metaverse to me is the set of all open protocols and data formats that interoperate with eachother to create a cohesive experience. The metaverse is just the internet really, we just need to make it less reliant on platforms and focus more on writing clients with capabilities for rich virtual spaces so that we can sling sats no matter if its from our social media clients or game engines. it's all the same thing, just different ways to experience it.
whoa this is painfully obvious and brilliant at the same time
How would you compare the security model (e.g. pros and cons) of Damus vs Signal? What are the different attack vectors? What metadata can the servers log in Nostr?
This is a good question!
Signal is superior because it uses a cryptographic ratchet. Right now if either party had their key hacked the entire conversation history would leak. If someone wants to propose a ratchet-like mechanism for nostr DMs that would be amazing! There's no reason we couldn't build something like signal on top of nostr.
Right now metadata is leaked, you can see who is DMing who and when (just not the content). We have a fairly simple fix for this soon which will prevent people from fetching this information from relays if you're not on of the participants of the conversation. This information is still on the relay though so it's not perfect.
You have been in the community for a long time. How much do you think the political aspects or world changing talking points where part of Bitcoin community in the beginning?
I know that Hal Finney or Satoshi where there from the very beginning. But how widespread was it back then in the community? Where most people just there for a quick buck or for the tech?
People in the early days were techonologists, cryptographers, programmers, curious people. It wasn't political at all, there was no maximalism. I didn't get the sense people were in it for a quick buck. namecoin and litecoin was accepted as a curiousity, there was pretty much no animosity toward new projects. maximalism became more of a thing once these projects started to promise insane things and innocent people started losing lots of money. maximalism is just free market SEC.
I remember mining on my gpu when it was worth $1, I never did it for the money I just wanted more coins to play with and send to friends.
It was a pretty chill and small community back in those days. The politicization came after, and it became necessary, just due to the sheer number of cargo-cult scams that cropped up and continue to crop up around bitcoin.
This is the first I've ever heard of Monstercat. I'm incredibly interested to hear what you learned from that experience, how the company came to be what it is today (assuming the one that exists today is an evolution of what you worked on), and what you might do differently if you had another go.
Hey jb. What do you think are some concrete steps or improvements that can be made to UI/UX for lightning that can help it get into the hands of more normies? Does the narrative and framing around lightning make sense, or could it use some improvement as well (in terms of normie understanding and adoption)?
What's your gut feeling on the adversarial thinking being applied to LN? Seems like there's a lot of "theory" around ways to attack it, but no major attacks have been reported yet. Is it a matter of time? Or are the attack vectors overblown? Should builders and node runners be more advasarial or less?
any new protocol stack will have weaknesses. this applies to both LN and nostr. We need more insight into attacks when they occur. It's currently too hard to tell if a failed payment was due to DoS or liquidity issues. We can't fix the problem if we have no insight into it. I think more measuring and monitoring is important for reliability and scaling. I'm not sure if anyone is working on this.
What's the elevator pitch for damus?
An uncensorable social network where plebs are in control. Anyone can extend it to include new features, anyone can build new clients to take advantage of these new features.
It puts us back in control of our online social and data without us having to become serfs to big tech.
Not to mention it's insanely easy to get started. Just download the app and it works. No need to run any nodes. It's pretty darn neat.
Is there an Android version of Damus coming up? Also when is it going to be out of Test Flight?
I'm working on the web version at the moment and then will work on an android version once the iOS once is somewhat stable.
I'm currently only working on damus on weekends since I still have a $dayjob so this isn't going as fast as I would like. Perhaps I can raise money for this eventually and work on it fulltime.
Looking forward to the web/android version. I'm sure some people will be open to contributing as well.
jb55 up in the spot They work on Bitcoin, and I mean, a lot Since 2010? Probably owns a yacht Tesla, Volta, Ohm, Watt
no yacht unfortunately. gave most of it away and lost the rest in a non-yacht-related boating accident.
What’s your favorite programming language, text editor, and bitcoin wallet?
Favourite programming language (can I have 2?): Haskell + C
Text Editor: neovim with no plugins. Used to be spacemacs until I just reimplemented all spacemacs functionality into terminal scripts with fzf.
Bitcoin Wallet: bitcoin-core qt + hwi + cln
Ser, have you heard the good news about Rust?
Love your wallet choice.
What do you see as the most beneficial aspect of your current project?
Will we be able to hide replies/conversations on Damus soon?
Like if I am following you currently I see your replies to everyone in my feed.
And is profile editing coming soon?
I think this a bug, you should only see replies to people if you're following them as well. I should probably have a way to turn off replies in the home feed.
Ok. Thanks. Look forward to that being fixed/added.
When will your awesome btcmerchant e-commerce/store project be available for non super coder plebs to use?
people seem more interested in damus so I've been focused on that. I use it day-to-day as a CLN web ui... this is the first time someone has asked me for it, so I'll throw it up on a website somewhere soon so people can try it out.
I probably don’t fully understand the project but I want a ‘server less’ lightning only CLN based web store.
Is that what btcmerchant is? And will it merge with LNLink?
yes you could imagine a CLN based store that has web, ios or android apps that all talk to CLN nodes directly. we just need nicer tools for minting runes safely so these apps can't drain your node.
Very exciting! Still don’t really or totally understand it but it all sounds for fucking cool! Shopify without Shopify. Totally intrigued and excited about that!
Do you know if LNLink can be used with Umbrel and the CLN implementation on there yet? Does it have Commando yet?
I recently merged tor support into lnsocket so I want to test that with lnlink.app, I think that's all that would need to be done. and umbrel just needs to update to the latest CLN version once that's released.
Ok. I will keep an eye out for Umbrel updating to the latest CLN release.
Again I don’t really understand this, but I wish we could do this without TOR. TOR seems to be problematic and causes issues.
Would it be possible to use LNLink with a VPN instead of TOR, or do all easy plug n play node implementations like Umbrel, Citadel etc use TOR for CLN?
if you can configure Umbrel to use your home IP instead of tor you can just use that directly. you would just have to port forward that port on your router and make sure you have a static ip or dyndns setup.
Any venture capitalist contacted you to fund Damus development?
what is the most under-appreciated feature of nostr?
The fact that it can be extended with new functionality, like lightning tipping, badges, realtime ephemeral chat, typing notifications, likes/reactions. retweets, etc. there are all different note types on the network. There is so much yet to explore in terms of what nostr could do for the decentralized web.
who cares about this crap?
The evidence from other comments on this post shows that there are many Stacker News users that care about this. So hopefully that answers your question.
I wish there was an option of downvoting here
in your work on damus, what's your view on the health of the nostr protocol? that is, in trying to get your arms around the protocol, do you see any obvious weak points we should be shoring up before the sclerosis sets in?
The network is pretty healthy at the moment. spam could be a huge problem, but I don't feel like it's unsolvable. There are many proposals by the community. For example, you could have a mode where you can only see posts from people you follow. It could be completely fine if you use it like a signal-like app where only your contacts can send you stuff.
nostr doesn't preclude a particular style of usage. I'm looking forward to many different types of clients that try different spam control techniques.
Have you thought about adding "no internet" features, like what Briar does? Would that work with Nostr protocol?
(it can connect encrypted p2p over bluetooth, local wifi or SD card... it can also create local Wifi hotspot and let other users download the app from you, which is cool and we tested it on a flight).
you can absolutely sneakernet nostr messages, though there are not yet a lot of tools for this.
Just want to say the stuff you are working on is awesome and so cool! 🤯🔥
I am excitedly following your progress and can’t wait to see what you build!
In your opinion: Which of your projects did brought people into Bitcoin and which did only appeal to the preexisting Bitcoin community?
Bringing precoiners into the space has always been an interest for me. In ~2017 Monstercat I sent a pitch to 600 of our artists to see if they wanted to get paid in bitcoin. At the time it was easier and cheaper to send a single transaction with 600 outputs than to do wire and batch paypal payouts. Almost all of our artists universally said no which was my first realization that education would be the most important thing in the coming years. I started bitcoinwizard.net to try to achieve this without much success.
There are lots of bitcoiners in the nostr/damus world just due to the fact that it's censorship resistant and is an open protocol, so this attracts lots of bitcoiners. Not to mention fiatjaf created nostr and he's a big bitcoiner (he also made lnurl, etc). I hope these apps don't only attract bitcoiners, censorship resistant speech is pretty important and should be interesting even if you're still a precoiner.
I try to focus most of my efforts on bitcoin projects so unfortunately I tend to only reach the bitcoin crowd. I'm hoping damus.io get's out there to the wider internet community so that more people get into bitcoin.
What are the main challenges you see nostr facing as it scales? How do you think they should be solved?
If there are many relays, clients are going to need to get better at making sure events actually get to the relays of the receiving user. A user could be on another relay you don't know about, and you could try to reply to a user thinking they will receive the message. right now there's no good way to know if a message will get to a user in a scenario where there are many relays, and that's no good.
We need a better solution for those situations. Right now if you're a group of friends you can just make sure to all join the rough set of overlapping relays, but there is no protocol-level mechanism that bridges theses relays, other than relay hints in notes and individuals manually mirroring notes from one to the other.
nostr is not consistent or even eventually consistent, so we need better client mechanisms to make that a better experience.
perhaps it's not an issue if there is a small set of large public hub relays that everyone can broadcast to...
Are you going to be raising money for Damus? Why or why not?
I am considering it yes. I am new to this even though I've worked in startups all my live. I have bought two books recommended to me by friends on raising money:
So I'm going to get through those first so I have a better idea on how it works.
But for now I'm just focused on making the best possible nostr client and to get lightning tipping working as nice as stacker.news !
It may be also useful to check this from the "Angel Investor" perspective, to understand the thinking there: Angel: How to Invest in Technology Startups
Either way in our space there are multiple angels that are interested in privacy, sovereignty, good UX and that are not all the way about the money... holler if you need help ;)
thanks, i'll read this. yeah any tips is appreciated because I'm literally starting from scratch and I have no networking in this area at all.
ser wen nostr instagram
Hello Nostr master !
Do you think DNS is problematic and can it be fixed by a blockchain?
Does LNlink work over tor?
did you mine solo back then? did you find a solo block?
Holy shit I don’t know if I’m more impressed by the coolness of your dev projects or by the fact you were at Monstercat and helped deliver such killer beats to the plebs.
Hey JB, I've been thinking about how Damus could overcome Twitter's incredible network effects so it has a chance of growing larger than a few nerds. What do you think about this Idea:
Assume that Damus users have twitter accounts already, and that they want to see all the tweets from the people they follow on twitter, ported over into Damus. (That and posting on Damus can post back on twitter too.) Once you've got the tweets in Damus, you can re-order them to a better priority, because frankly twitter's algo sucks at showing you what you want to see. Therefore, you can market Damus as a way to read Twitter the way you want to read it, all the while building a better network of Damus users!
What is the incentive to be a nostr relay and what happens to the relays once traffic increases? will nostr eventually become centralized?
edit This is why i wish AMAs would be announced a few days in advance so there is time to think of a question :)
Hey mate, thanks for all your work in the Bitcoin and now the Nostr space!
I was wondering what your thoughts on how relays in the Nostr ecosystem will end up monetising their services as this will be needed to be sustainable in the long term?
When I think of setting up a relay, I start to think of the very real resources that will be consumed if Nostr were to take off and it kind of gets tricky as to who to charge for those resources. I know Fiatjaf has built a relay that allows for charging and he believes the market will sort out how to price these resources, but it still seems like a big unanswered question at the moment.
Breaking down the costs of running a relayer:
Storage of the data. Could be charged to the person storing the data, but is it a one time charge or ongoing?
Serving of the data - maintaining WebSocket connections, network bandwidth. Who pays for this?
I could imagine a client having their own relay and they charge a monthly fee that allows for a certain amount of storage and subscribing to a certain amount of updates per month.
It gets interesting when you consider if an account becomes super popular and has a huge number of different clients connecting and pulling in data for that account. Should the account pay for that network bandwidth and socket connection requirements, or should the subscriber pay for those resources?
If you could live anywhere in the world where would you live?
Hello Jb55... 🇧🇷⚡ iamcais