Avatar
Rizful.com
97f848adcc4c6276685fe48426de5614887c8a51ada0468cec71fba938272911
Rizful.com: Free, easy-to-use homebase for Bitcoin on Lightning. ✉️ Free Lightning Address ⚡ Fast, reliable zaps & Lightning payments 🔌 Connect to hundreds of apps with NWC 🛡️ Enterprise-grade uptime & reliability Created by the team behind The Megalith Node, one of the biggest routing nodes on the Lightning Network.

Sure, and there would be lots of gaming of the views thing. But still. For the Normies....

You wrote....

"you can just rely on such packets to be sent to the sender if the payment cannot go through due to insufficient liquidity"

.... Right -- "temporary_channel_failure" -- here https://github.com/lightning/bolts/blob/2b9c73b48c1920df8e7e867d110fab2d720a059b/04-onion-routing.md?plain=1#L1157 .

The issue is that hitting failures like this has the effect of increasing payment latency for users, and also, if there are too many failures, the payment will time out entirely. Shouldn't we, for the sake of users, be trying to insulate payers from potential failures?

And ....isn't a good way to do THAT is to simply signal to the network "hey, don't use this channel in this direction, I'm signaling this by putting my fees high"..... ?

Instagram, TikTok, YouTube and others have a concept of "views". It's pretty simple... users can get positive feedback on their content EVEN IF nobody "likes" or "comments". Nostr lacks this. I think we actually need it to onboard Normies. Normies will show up here, think "I'm getting zero views!" even though they might be getting MORE views than back on Instagram or TikTok.

Replying to Avatar LNBϟG

I might be wrong, but it seems to me that channel balancing through fees has some significant downsides. Let me try to explain them.

I personally witnessed a situation where I tried to make a payment from a mobile wallet and couldn't do it. The route went through my nodes. I started checking the logs and found that when the wallet sent the payment, it used fee parameters that were in the network graph several hours earlier. They were later changed to higher ones as liquidity decreased. At that time, I had an algorithm where if my channel's liquidity got depleted, the price would increase. For this reason, the payment couldn't go further. The sender's wallet used a lower fee because it saw that in the network graph, which didn't relay fresh data well due to the protocol's significant delay. Theoretically, when a payment doesn't go through due to fees, the intermediate node where it fails forms a response and sends new fees in that response. Upon receiving such a packet, the sender's wallet should, in theory, adjust the fees and resend it. Then, the payment would go through. But this doesn't always happen. It may be a bug in the system implementation or other reasons I can't fully understand. But at that time, I concluded that if I had fixed fees, that payment case would've succeeded, as the liquidity still allowed it.

Then it occurred to me that balancing channels based on such a scheme—setting low fees when you have a lot of liquidity and high fees when it depletes—creates a sort of logical contradiction. When you could earn from fees with your bitcoins locked on your side, with this algorithm, you earn very little while your bitcoins are locked and available. When the channel depletes and you have fewer locked bitcoins, you need to increase the fee. This makes it unlikely that you'll earn more than when you had funds in the channel. It all seemed somewhat illogical. Therefore, I thought it would be better to just set a fixed fee. After all, when the channel depletes, adjusting fees only signals to future senders that we can't process a large payment through this channel. We financially discourage them from sending through us. But there are other ways to avoid losing profit (since higher fees often encourage senders not to use your channel at all). For example, if we lack funds in a channel and someone tries to send through it, our Lightning Network server would simply send a packet to the sender indicating that funds can't be sent through this channel temporarily.

Interesting. The first think you are discussing ... "The sender's wallet used a lower fee because it saw that in the network graph, which didn't relay fresh data well due to the protocol's significant delay. " -- this is something I've seen a lot on the Lightning Network, but I've never seen it quantified. But anecdotally, there do seem to be nodes that are used to for payments which often "cache" old fee information from the network. My assumption is that many might be mobile clients with poor connectivity. It's actually for this reason that none of our nodes use "fast" automatic fee changes ... my experience is that you shouldn't change fees more than maybe once or twice a week for any given channel, because of this "caching" behavior. I've also seen attempted payments which are clearly using fee information that is several days out-of-date.

Regarding this second issue, you write: "our Lightning Network server would simply send a packet to the sender indicating that funds can't be sent through this channel temporarily." Do you mean like with LND's "updatechanstatus" API? https://lightning.engineering/api-docs/api/lnd/router/update-chan-status/ .... if so, wouldn't this prevent your depleting channel from "refilling" from the other side? Or maybe you are referring to a different strategy?

Any chance you could share the rejection reason from Apple? Was it about zaps?

Also, was the Vultr shutdown related to NSFW images? Or something else?

Agreed. Zaps are the thing that can attract hundreds of millions of normies to Nostr. Likely they need to be onboarded thanks to stuff like this that purists/nerds will consider distasteful.

Word vectors. Word2Vec - now I think more than 10 years old, but when you first start learning about large language models, and you encounter this, you're like "oh, that is cool"..... . https://en.wikipedia.org/wiki/Word_embedding

Yes, in theory, anyone can do this. In practice, this is for developers. If you're not a developer, you should check out Alby Cloud or Rizful.com to run a node-in-the-cloud.

(Also, before you run a node on your OWN internet connection and computer, make sure your computer will be online 24/7 ... https://docs.megalithic.me/lightning-user-vs-lightning-runner/the-lightning-node-is-an-internet-application )

Yes, we've developed a server-side way to measure zap time. In your case, I am guessing your a running Alby Hub on your own hardware, and your internet connection is perhaps not super-low-latency, thus your 7.4 zap time. There could also be other factors. If you wanted to improve this, we'd recommend rizful.com or Alby Cloud. Both of which give you "your own node", but you are dependent on the cloud service to keep it running.

Are you sure? Look at that shoe. Seems unrealistically big? Or am I just paranoid?

For something like a Nostr app, what is the reason to NOT to use React Native?

Probably the most performance -intensive thing is "the scroll" -- preloading and rendering lots of content. But can't .... realistically.... React Native do this pretty well at this point? React Native is now 10 years old.

This is not a rhetorical question. I'm wondering about this myself. Maybe someone can answer or has an opinion.

thanks https://ledn.io/savings. ... looks like 2.25% APY. And companies like this have I would guess about a 10% chance of going out of business on any given year...

That's not advertised on the website, I take it? Like you have to sign up it and then you might see such an offer?