My point is simple, more distributed services need to be built on lightning.
ATM it seems like many ideas that would work extremely well (imo) on lightning are only being built on shitcoins, and while they're mostly opensource they appear to be only operated by a small group.
Just a few examples:
  • lokinet a tor like mix net unfortunately using some shitcoin but is a great privacy tool.
  • rndr enabling purchase of compute power for rendering (duh), also running on some shitcoin. P.S: maybe something similar should be built on lightning to enable training of AIs/llms?
  • presearch, decentralised search with some shitcoin.
My point is certainly not to promote any of these shitcoins, but that I think we should similar services that would use lightning instead (which has superior transaction times anyways).
I would love to hear what you think about this, is it possible or would it be unfeasible.
Please Note: I am an absolute noob when it comes to NOSTR/Lightning and only know the basics from which I feel such services are possible.
So, what's your favorite programming language?
reply
I knew this was coming lol. Python probably, though I don't think I'd be good enough to build something of this scale.
reply
Hmm python. Welp, everybody knows I'm a ruby guy. Can even compile it to C if you want. Know a few good GUI libraries for ruby (adapted from their respective C libraries) as well. Ruby has ruby on rails which is a web framework if you're looking for that.
So next question, of the things you think need built, which of them would have the biggest impact?
reply
You know that would be tough to evaluate, probably would be search.
When it comes to the programming language, python probably would be too slow I reckon. Ruby probably would be a lot better, I wonder how other options might stack up.
Would also probably be a good idea to use one that other lightning projects are being built with to increase possible contributors maybe.
Frankly all software I've done before was either a simple university project, or some dumb bot that's just a front for some API XD
reply
Lot of Bitcoin projects use Rust these days. You could try learning that.
reply
1358 sats \ 7 replies \ @ek 5 May 2023
I have become a Go maxi.
After a long time working with Python and NodeJS software and after the initial weirdness (wtf are channels and goroutines and why should I care), it's feels really nice to work in a statically typed language (without generics however ...) again where concurrency support is built-in with goroutines and channels. It feels soooo much better to have a compiler do type checking for you (in a guaranteed way) even if that means you have to define your types first, so you are slower first. But I would trade runtime errors with compile-time errors any time.
Also, the build process spits out a single binary which can be run anywhere where golang is installed (afaik) and the ecosystem is not a complete mess like Python (looking at you, Python package managers) and NodeJS (npm vs. yarn, CJS vs ESM, Javascript vs TypeScript). I also like how imports work in Go. In Python, you run into this circular import issue pretty fast if you don't try to stay ahead of it.
I also tried to learn Rust but the syntax felt rough. When I tried out Golang, I didn't look back.
@theindranetworkprotocol also made me try out Go. If I remember correctly, he also mentioned here and there how awesome Go is.
reply
I like Go because Go lets me write code and then build the structure as I go. You gotta watch out for race conditions with maps and slices, make sure you isolate things using interfaces to avoid tight coupling, the pattern of passing closures is a good way to keep the code concise and single-responsibility.
The best thing about Go is you can just dive into it. The worst thing about go is that you can just dive into it. The drowning feeling you can get sometimes when you tinker with too many pieces at once inside a concurrent system... thank Linus for Git so I don't have to restart the whole thing from scratch!
reply
What IDE do you use? Mine just expired.
reply
I know you didn't ask me, but I'm inserting my answer anyway lol
I don't use an IDE, but on rare occasion, I'll use cherrytree as a note taking app to organize thoughts
It seems to have some IDE like aspects in there if you choose to use it for programming as well.
I use vscode because I work in multiple languages and I like how it's more a text editor than a full-blown IDE.
Wait, Go seems to support Generics, lol: https://go.dev/blog/intro-generics
I think I confused Generics with function overloading. This is what Golang does not support. But I was able to deal with it. Was just unexpected but not that big of a deal in the end.
reply
After coding in C/C++ for 5+ years, I loved golang (I was a go maxi for ~3 years).
But if you are trying to build software that solves problems not requiring statically typed and compiled code, you can produce solutions faster in more expressive languages eg js.
Coming from a golang background is one reason why I'm so excited about the Deno runtime ... It lets me use the most popular expressive programming language (js) with a golang-like package management system and can produce standalone binaries like golang. It's not ready for primetime yet, but it'll get there.
tbh if I could have my way, I'd prefer to program in a Lisp dialect ... it doesn't get more expressive than ad hoc DSLs.
Go has interfaces. There's no need to complicate a language with more than one effective way to do things. You can mimic much of the behaviour of variants and generics with interfaces. And the interfaces available in Go since 1.18 are a pretty slim set and don't include any structured types. You can do signed/unsigned/float and you can do arrays (predefined size) but that's it, at least if I have grasped it correctly.
Easy way to remember if Go has a feature: is there a simpler way to do it? Ok, no. No map/reduce/filter or complex iterators, no generics, no objects, the slice and map are naked and barely cloaked pointer types that make for some racy fun with goroutines.
Thanks, will look into it.
reply
376 sats \ 0 replies \ @om 5 May 2023
Also Arweave which offers effectively infinite term storage.
The thing is, mining those coins provides an incentive structure that lightning currently lacks. Basically if someone wants people to dance ballet, they emit BalletCoin and tell people that they can dance to mine it, and so the network periodically checks who's dancing and randomly awards newly created BalletCoins. Now the drawback of this scheme is that people sooner or later start to wonder: wait, did we just spend all that effort for some shitcoins? (Yes.) But still we'd need to replicate something similar with lightning.
reply
Coinjoins are a thing and jam is nice through tor and a node service like start9
Nicehash offers hashpower buying, but i probably would go that direction, blockstream is coming out with mining notes if that your fancy.
Nostr is coming out with explore and search clients, I could see Nostr replacing or merging with most application and websites.
Lightning will be the membrane of what holds other layer 2s together like Nostr and Liquid
Marketplaces are on the way, v4v and lightning pay walled content is being played around with (Civkit/Diagon Alley)
Seems like we got the communication and money figured out, prolly just need some logistics and adoption now
reply
I've been wondering why none of the mobile wallets have come up with a protocol to allow on-the-fly coordination of coinjoins/payjoins with other active users, regardless of what wallet software they're using (as long as they follow the protocol). Maybe the ability to publish the intent to participate in a coinjoin on nostr is the missing piece?
reply
Submarine swaps between on chain and off chain via lightning coming to nostr. Swapping between e-cash and lightning will be a thing. Prolly App Store hurdles slowing down mobile Coinjoin implementations
reply
There is no doubt that the development of multiple services and software based on the Lightning Network (LN) would increase the scope of its use. It is necessary to continue that path🤔
reply
Global decentralized marketplaces denominated in sats brought to you via nostr client. Micropayments for various AI tools and services (Geyser.Fund with a nostr bot collecting zaps to fund various projects). Yield opportunities through the collection of routing fees/the buying and selling of channels. Money to be made providing liquidity for coinjoins, no kyc arbitrage, and on-chain/off-chain nostr submarine swaps. Future of lighting looking pretty legit.
reply
Well, let's hope to see all that implemented 100%. I know that the possibilities with LN are enormous.
reply
Maybe I'm playing semantics, but I think rather than building services on LN, we need more distributed services that can incorporate LN - similar to nostr. I'm other words, build more tokenless protocols.
reply
Yeah, that's what I had in mind, sorry if I wasn't clear.
reply
I'm working on a tor-like mixnet, but it's built on the same source routed basis as the LN payment routing and message delivery system, and uses a sessions and micropayments to top up balances, a small trust risk but several mechanisms help clients find and keep using good relays.
I am in the process of connecting up a reliable latency minimising message multiplexing dispatcher for network connections I just finished writing to the relay engine and soon will be able to spin test networks.
It uses LN AMP sender initiated payments to stream micropayments over a zero fee intra-Indra payment channel network that shares balance state via Indra because payment for sessions and usage of sessions are not implicitly correlated anyway and channel sizes will be small, potentially as low as 15000 sat, since with path balance info the indra client can just dictate the path to the LN node in the invoice request.
I am managing ok but our budget is pretty tight and currently I'm the only worker regularly building. The sponsor contributes some work here and there, but his experience is more with simple servers and devops type stuff, he will definitely be getting busy with docker compose to build networked virtual local testnets and for use as part of test harnesses.
It's hard to prove anything about code until it's relatively close to completion, but pretty soon we will have a small private testnet and show it being used to anonymise bitcoin and lightning traffic, since every node has to have a chain data source and an LN node.
reply
Super cool, good luck!
reply