Something I’ve noticed since I lost Phoenix wallet, is that our ability to communicate or “partner” between projects is kinda horrible. Example: One of the best ways to get new users sats without any onboarding friction have been services like Fountain and Zebeedee. Yet literally none of the wallets will read or accept a withdraw from those services. Phoenix was the only one that would just do it. Then the same problem with Cash App, which is easily a dominant service for buying and using #Bitcoin and now #Lightning. Yet none of my wallets will let me enter in an amount if the invoice is for zero sats… which all Cash App invoices are blank. I thought these would just be growing pains about a year or 2 ago, but neither have changed at all in that time span. Are the wallet builders just not using their own wallets? (I’ve had a super shitty day so if this is overly critical I apologize, but for lightning to also be a pain in my ass today is just icing on the cake. I’ve tried 5 different wallets and 2 different UI for btcpay trying to get a simple withdraw from Fountain to work)
This sums up the difficulty with interoperability, and is true of nostr development as well. Everyone wants their products to work seamlessly, but at the end of the day it's a lot easier to implement your splashy new feature without regard to the rest of the ecosystem.
I use a Lightning invoice from Muun to get sats out of ZBD (iOS).
Agree. Breez will take the withdraw code from fountain though - at least it has recently 🫡
I was able to withdraw from fountain just now to Minibits (solution for Android only). https://image.nostr.build/60b1466d05acd7df11502311aea3b532fd927eeb44ce4b6c7e4d973e7c649c76.jpg
I use to be a big phoenix user. Keeping around 2-3 millions SATs for all my weekly purchases with Bitcoin. When they chickened out the US I tested out Mutiny and Zeus. Mutiny did not work well for me. 90% of the time the payments would not work. Zeus worked a little better, like 50% of the time it worked. But it takes a long time to open. And 50% is not enough. I decided to just download back the APK version of Phoenix on Obtainium and that's it. Fuggem all. I like the guys from Mutiny and I know Zeus are working hard too, but it just ain't working right now.
What’s funny is that the problems with @ZEUS and @OpenSecret don’t even seem to be wallet related specifically, it’s something with their LSP Implementations that just don’t work most of the time. Either that or they are having liquidity problems maybe. I can’t figure it out. The wallet functions and features are awesome, but payments are just crazy hit or miss. I had just gotten super spoiled with Phoenix. Their implementation just worked and I don’t know what magic trick they had but I wish they would share how the hell they did it so seamlessly.
Have you tried Zeus with the Persistent LND? Where it runs in the background?
No I haven’t. The main way I’ve been using Zeus lately actually has been connected to my Start9. But I think most of the frustrations and lagging in that setup is just the connection method. It’s really hard to troubleshoot some of these too because of how many moving pieces there are. Like @OpenSecret is running entirely in the browser, so it’s hard to tell if there’s a route problem or a resource problem on my devices for *finding* routes when a payment goes pending and ultimately fails. Then with @ZEUS, is it the connection, is it my Start9, is it a liquidity problem, or is it something in Zeus itself that is causing a delay or poor performance for some payment or update? It’s just not easy to troubleshoot. Mind you these both work really well in a lot of ways and I comment because I’m using both of them regularly. My current setup just runs into little frustrations and hiccups far more regularly than my old one.
Do you connect over Tor?
I had been, but switched to LNDconnect but it loses connection a lot and I can’t figure why. Mechanic said he was using it and had incredible results. Now I’m just trying to get it to work with Holesail, which has become my dominant means of connecting to anything. I was actually thinking of putting a bounty with you guys to see if you could integrate it. Far and away, imo, the best thing that ever happened for simple, P2P, fast connections. I uninstalled Tailscale the other day because I’ve just been using Pear stack tools for literally everything. Lightning fast
If you connect over Tor considering using Lightning Node Connect or Tailscale as alternatives. You’ll have a much faster and reliable experience. Check out our guides here: https://docs.zeusln.app/category/remote-connections As far as payment reliability goes, try getting a channel from our LSP Olympus. We have one of the most well connected nodes on the network. It’s about to be used by many wallets other than Zeus too.
How much to integrate Holesail? It’s Tailscale but without servers, no accounts, and no complicated setup. Just scan QR and you’re connected, encrypted, fast, easy. I’d pay good sats to bring this to life.
I’m going to be pressuring Start9 on this too, but right now I can do it manually without needing explicit integration. It would be really nice to have it though so I’m going to push for it over there too.
I'd like that (and contribute to a bounty) too. Zeus connected to Start9 using Lightning Node Connect works ok-ish, but is still kinda slow and crashes a lot. I've no idea how to install Tailscale on start9 to even try if it would work any better, so some easy solution like direct integration in apps and a Start9 package (at least while there's no clearnet-support) would be much appreciated.
Here’s how to do it manually nostr:nevent1qqsrjjfa6r0k5r2a2fpsk45st55hl0pvc04u94c0ggfrhy420lpwmpgzyqpkz2cwhtswerfsqvwygzaqslleh5tzjckllwjtdcppa3906ufpvcwmkhm
Thanks, I'll look into that later, running LND though, can't make much of a difference, right?
The difference is the macaroon hex which you can get easily. Sorry i never pushed an official tailscale package for start9. Was told next version is coming soon and packaging would be easier so waiting...
I'm a newly minted Start9 runner. I bought a Server One from them in Nashville this year, nostr:nprofile1qqstnem9g6aqv3tw6vqaneftcj06frns56lj9q470gdww228vysz8hqpz4mhxue69uhk2er9dchxummnw3ezumrpdejqzrthwden5te0dehhxtnvdakqz9rhwden5te0wfjkccte9ejxzmt4wvhxjmcjgxv3n, and I'd be very grateful if you're able to motivate getting holesail and other Pear and related packages into the Start9 Marketplace ecosystem.🙏🏻😆💖
It’s happening. We are waiting on just a few things for the Start9 side to be done. They’ve just been working hard on the new mobile version, which they want to finish before launching on Start9 so it can be used out the gate. In other words, it’s basically done on the start9 side, but not releasing until theres a way to really make use of it 👏🏻
I've recently started experimenting with holesail and setup a forward proxy to expose self-hosted holesail services to the broader internet. Have you experienced issues when you stop the holesail server then try to restart it? I'm using holesail-manager, and when I stop the server then restart, I am unable to connect from the client until I make a new server session. Seems like it creates a new connection string... Where is the best place to stay up to date on development?
this may be my problem... from the docs: "Note: If you did not set a custom connection string, stopping and restarting a session will reset it's connection string." Do you have any content around how you manage your holesail connections?
As @supersu said, this is purely a consequence of persistence not yet built in across sessions. The manager for multiple connections itself is actually only like a couple weeks old 😆 This is all pretty brand new, so expect updates that keep making it better. I’ll keep doing what I can to push it along as well. I know lots of people who are working to make this all much easier and more ubiquitous. I think there will be a point in the coming year where enough has finally reached a stable production level that this starts to proliferate really quickly. Then comes the time where we can easily connect any and all of our devices together for any reason, and it seems weird that it didn’t just always work like this.
Why does it need a direct integration? Could you use a third party app for the connection like with Tailscale?
Yeah, just thinking for the sake of user setup, having it integrated would be so awesome. The more pieces the typical user needs, the less likely they do it. I’ve always felt self custody options were always limited to the greatest degree by needing 4 different tools or wallets to get it all to work. Rather than the main tools finding the easiest, more reliable thing, and integrating it. But yes, this can be done just with the external app like Tailscale. Just feels a little clunkier. Would love to see direct use of it in the apps. Again… will donate and then also try to raise more sats for this. Just throwing it out there 🤣
How does holesail work without a server? 🤔
P2P. It’s a DHT model just like BitTorrent. And uses a 2-way hole punching method to get through any firewall. It’s pretty slick. It’s really an extension of BitTorrent when you look at its history and the development of it. This has been a 10+ year project continued from previous ones that were incrementally making BitTorrent more data agnostic so you could do anything with it, rather than only serve static files.
It’s based off the protocol at pears.com. He built it on top of Pear runtime. Same thing we are using for PearDrive… which will hopefully see the light of day sometime soon 😆😅
Have you seen a Kotlin implementation of it? I want to make Amethyst connect via P2P and share events with each other when both ends are on the DMing each other.
or Java
Right now pear runtime is vanilla JavaScript. But they are building things to make integration easier. And if you just use it for the connection you can always simply use it to then establish an SSH tunnel or whatever to do any other kind of communication necessary. Not sure how integration would work, but the Pear Runtime platform is still very fresh, only released in Feb of this year. So no other languages yet but the community building with it is picking up momentum quickly. It’s largely because people are seeing it just work. I literally have been connecting *tons* of services between devices with this and Holesail just dropped a mobile app. I already have a setup to run LLMs off my Linux with the ability to upload files and it’s crazy how fast it all is. I’ve got a video waiting to publish on unlisted YouTube right now. Really short just showing how it works. I’ll post here when we publish
We should build a consortium to recode it in native Kotlin and create a little library for it. Then all apps could use it. I just don't know where to start, holesail has a web of dependencies and I don't really know what each thing does.
watch their tutorials https://youtube.com/@Pears_p2p they are currently working on massive improvements to their mobile tooling and tutorials and example code, this is their current main example https://github.com/holepunchto/pear-expo-hello-world in keet.io there is a link to the community room on the profile page and there is a number of dev rooms https://github.com/gasolin/awesome-pears/blob/main/keet_rooms.md 🍐 Pear Development - pear development related discussion (Official) pear://keet/yryzix4muu85ocwke9njhfppkyjkkrhy15gdyam137jxhtu4ei6y43npudeidy49kiisp9mghefgfg4rcp7iww881sq5dm13syjuim7awr Bare Developement 🐻 (new) (invite expires on 2024/7/7 0:38 UTC) pear://keet/yrbooziif9ryfdxm5o665bpx7rgcrophs8o4sarufmrgfa16fiy1mjiwahgyfx3qkyk4pahkmnj8wc1wmmanumf7zikq8mhp4jh1honzo1n68nmg Pear Baby Room for new devs(invite expires on 2024/7/7 0:39 UTC) pear://keet/yrb9wwk87cqhq7x7wc3oub4e5efdiobjf4sdoxnd3s4k694oh4sd1wogfu8hi4ky6eztrz64j4s8tc6r1zjsodboibsd9usepmixe6mpr9yq8nmg
This could be possible (though would require some work), you need to embed bare runtime in your java/kotlin application and run holesail-client and holesail-server on it. It is a tedious and undocumented process atm, but holepunch team is working on new mobile development kit, hopefully that will resolve this and make development easier
Is NAT hole-punching feasible on mobile devices? For some reason I thought it wasn't... But now I can't see why not
Old stuff won't work, but these new protocols and IPv6 should do just fine.
Works fine for Keet and Holesail, so seems like it must
Yup, NAT holepunching is working good on mobile devices (iOS and Android both), in fact I have used holesail to access my Windows VNC on mobile
Hey! Very glad to learn you're on Nostr. I work on solid state interpreter personal servers, and hole-punching is a task we'll be looking into very soon as we get deeper into peer-to-peer aspects.
Yeah guy Swann introduced me to Nostr, it's a cool platform. What is a solid state interpreter personal server?
Our blog posts and documentation are coming online a little more every week, and a good explanation of the SSI is much-needed topic, but I'll give a brief taste here. SSIs are a novel computing model and therefore are still tough to describe at first... An SSI is a purely functional, single-level store VM and programming environment. Rather than "operating system", think "single operating function". There is a single, frozen top-level function that takes as it's input the "computer's" state as an append-only event log. The net result of that is you have a highly portable SINGLE value that describes the entire state of a computer's storage AND active computation with zero external dependencies. What I mean by "single level store" is that the Operating Function makes no distinction between memory and disk, such that you can take an entire running computer, turn it off instantly, put its representation on a USB drive and ship it across the world, plug it in and start it and it'll be running exactly as it was. (This has happy implications for "durable execution" style cloud services, as well as ridiculous peace of mind for local, personal compute). You get this persistence for free in the programming language: there's no DB interface to import and rely on. The whole persisted state of the VM and every running application is a single closure. Other similar systems (like Urbit, introduced in the paper below) have very limited storage capacity, while our system can easily handle terabytes of data. Which means that an individual running a VM like this in the cloud can be their own S3-style static file host. Or a network of similar instances can act as a replacement for something like IPFS. okay well I've rambled far too long now and only scratched the surface, but I'll leave you with: our "VM" is stupidly easy to run. It's not like installing Linux. You just start the binary and it's going. So an exciting bit of low hanging fruit in my mind is making it trivially easy for every nostr user to have their own personal relay, either on their own hardware or in the cloud and optionally behind a proxy to preserve IP privacy. The whitepaper that originally introduced the concept of the SSI: https://media.urbit.org/whitepaper.pdf We've got new posts and podcast episodes coming every week: https://blog.vaporware.network My company's brief landing page: https://vaporware.network I should also mention that all our work is free and open source and all the code that is analogous to regular systems' "compiler binaries" is actually human-readable, so our VM 's entire stack from hardware interaction to userspace applications doesn't ever ask you to trust, but instead to verify. Happy to answer any questions!
Cool idea! This is exactly the type of stuff I was hoping to find coming on Nosster. Wish I was deeper into this world to give a valuable opinion.
This seems like a crazy awesome idea in theory but that it could run into a million problems in practice. How much setup is needed to run this on any random machine and how do you boot into it exactly? I might actually like to chat with you out of band about this just to get a better idea of things if you have some time. Mind if I DM?
Naming conventions in this are all over the place. Making it sound kinda ridiculous, imo. Ships, and plunder, Sire, all make it more confusing, not less, imo. No offense, just trying to give honest feedback.
Maaaan did you guys put a damn token in this thing? If that’s what this is, I don’t think you realize how much this ensures the project has no future. And just how quickly it’s going to turn off a *ton* of people up here, all while ruining the incentives of the very project. Am I reading that right? https://i.nostr.build/dwBrY.jpg
Oh man, I didn’t cut when this when he shared his ideas. Yeah, everything what is tight to shitcoins is going to be no go
There are no tokens in our stack or dependencies on blockchains of any variety, including Bitcoin. The token stuff you see on that landing page was an early idea for handling trustless software versioning and provenance. We aren't working on that now; building core OS primitives currently.
What about the future ?
As a cofounder of the company I commit this note to my personal relay and many others: The core OS primitives that we build are now and will continue forever to be trustless, permissionless, open source, and not dependent upon tokens to operate. Given that it is FOSS, I can't determine what other people will build on top of the system - nor do I have any interest in making it possible for my opinions and principles to dictate what others can do with my software.
Great that you changed your mind! I just don’t see any benefits to the projects that try to print their 💩 coins 🤷♂️😁
To elaborate a bit, since you're asking about it: we were not going to launch a token. We experimented with attaching software to ethereum NFTs such that purchase of an NFT meant the author of the software would distribute the source code to you. And reselling the NFT meant the new owner would receive the software (statefully! Meaning if you had a "Pokemon" app containing a highly trained Pikachu and you sold that app to someone else, he would have that trained Pikachu now.) The app data wasn't stored onchain, nor was the source code, both of those were local to the VM and transferred to the new owner as a serialized value. just the ownership record was stored onchain via NFT. ...but as I said, that was an early demo to prove some things about code and state distribution. There's nothing in our current code that has anything to do with blockchains. If two people can peer with eachother, they can distribute software (or any other arbitrary digital content) to eachother in an uncensorable manner. Pirate app stores from the future!
Completely agreed! The fuller story on our current messaging is that current users and developers of the Urbit platform are most familiar with the technologies involved in our stack, and our messaging is mostly directed pretty narrowly at them. We absolutely owe a more readily understandable explanation to a wider audience and we're working on that. (As well as building demos for a general audience. We've already built an S3-style service that was shared with a small beta testing group). We are extremely busy and are trying to direct our energies where they are most fruitful, as I'm sure you understand :)
I’m keeping the DM inbox warm for you. To answer some of the questions you asked here now: - How much setup is needed: exactly zero. There are a couple different runtimes in the works right now, but with the C runtime it’s literally just getting a hold of the compiled binary and running it. There are zero host machine dependencies - How do you boot into it: **for now** “you don’t” (boot INTO it). You interact with it via the CLI or more robustly via the browser (either on the host machine or over HTTP from a remote machine, if you’re using the web server aspects). For the moment, the easiest way to create UIs is via standard web stack, and we have a number of examples of that (group chat, image board, S3 bucket, a MUD with randomly-generated maps, etc. etc.) Working with native graphics is a consideration, but we’re more interested ultimately with running our OS natively on devices - starting off something like an Android fork and going from there (the @daylightco is a good mental model. basically a new device type category).
you can use ipc to talk to the pear bits
Keet is a P2P messenger made by Holesail. Might be something there to point you in the right direction.
You’re thinking of HolePunch, not Holesail. Holesail is built on the same stack as Keet is, but it’s a completely separate project. HolePunch is the company behind the development of all of this. The naming conventions can be super confusing and there’s basically like 4 of them 🤣. Thats why I just refer to it as the pear stack now.
I would also contribute to this bounty. Is there one started anywhere?
Maybe I should just start raising some sats for this
Wdym by no servers? Isn't there a server that helps peers connect directly?
No there isn’t it’s purely P2P. It’s a DHT same as BitTorrent. @supersu isn’t running any infrastructure or anything.
To punch the whole, isn't there a TURN server or something? How do you establish a p2p connection if one of the devices is behind a NAT?
Exactly why it's called holepunch. It fuzzes firewall protocols with certain packets and timing to convince firewalls that it's an acceptable stream of data regardless of the firewall settings. I saw a conference talk on it a while ago. It was super interesting
I don’t know the details well enough to explain it, but it’s got something to do with a rapid two-way port guessing game to trick your way through the firewall because both sides are participating. Mafintosh tried to explain it but I couldn’t follow exactly. I just have found that it seems to work every time, it connects really fast, and everything suggests nobody is running any specific server and that I’m not connecting to any in order to make it work. The only thing I’ve seen is that some people behind really unusual combo of business networks, firewalls and VPN have reported some issues before, but I’ve not experienced it personally. In fact it’s the only thing that still works even if both of my machines are on separate VPNs. RustDesk, which has a central server, fails to connect when my Linux is behind a VPN.
No! Do not invite people to decrease their privacy levels please... If @ZEUS users connect their node over Tor they first need to understand the limitations and of course do the proper documetation reading. But IMHO Zeus needs a revision in its Tor integration. The fail attemps are big, which force me to use a 3rd app (InviZible VPN) for a good experience. @KoalaSat has a very well known reputation and good solution for Tor integrations, he has done fantastic job at #Robosats and #Bluewallet recently. Perhaps he could help!
Indeed. I know @ZEUS did a great job with the Tor library they are using, but it was the same used by #Robosats and #Bluwallet, and I'm aware of some connection problems this library has. We have been testing with extremely great results an alternathve in #Robosats for the past 3 months for Android and we are workig on making it work for iOS to include it on #Bluwallet. It was part of my master plan to knock at @ZEUS door after that 😁 if you are curious right now, I can start sharing great stuff with you!
Thanks for stepping-in and welcome a possible collaboration with @ZEUS. There i always room to make the best LN wallet greater!!
Super happy to help! The compatibility of this library with iOS is still in development and closed to beta, but as I said, it already goes really smoth for Android. I was thinking on doing something similar to what I did for Bluewallet (https://github.com/BlueWallet/BlueWallet/pull/6665) and try to create an Android POC so you can take a look
Having a direct connection option does not mean you cannot use Tor, and it’s far better than Tailscale. Just use a VPN if you are worried about someone getting your IP address and knowing that you connect to your IP at home… but I don’t know why you would care that those are associated, they literally are already connected probably 100 different ways.
I got rugged on hundreds of dollars on Mutiny for Start OS. In their defense there’s prob weird interop but they still put their name on it. I like what those guys stand for but Christ I’m not trying to throw away sats like that.
tried Volt Wallet? Also, is Phoenix the only wallet that uses EClair's implementation?
Time to partner with AI and start issuing pull requests @TheGuySwann Also. As users we really need #bolt12
I’m genuinely considering it. Not trying to use Ai for something this sensitive, but considering throwing away more bitcoin to solve the problem
I've never had a failed transaction with @AQUA Wallet. You get all the benefits of lightning without needing to "trust" that it's going to work. nostr:note1zhu6l45wghuaesj4azpp2jya2v5cyyurp6wdxg4eamxdq0mgt7ksqvj07a
You. An still use phoenix over a Tor encrypted router. Still using WOS with no problem. https://www.amazon.com/GL-iNet-GL-SFT1200-Secure-Travel-Router/dp/B09N72FMH5/ref=asc_df_B09N72FMH5/?tag=hyprod-20&linkCode=df0&hvadid=693601922380&hvpos=&hvnetw=g&hvrand=18130212833858043043&hvpone=&hvptwo=&hvqmt=&hvdev=m&hvdvcmdl=&hvlocint=&hvlocphy=1014485&hvtargid=pla-1818888792632&psc=1&mcid=eb5b1a09a91d379a9bf636bb476ed0f6&gad_source=1
I know I could do that, and that would be great for my personal setup. But I like to run the vanilla versions of popular wallets that I could actually recommend to someone to onboard them to bitcoin/lightning. So I know it’s just going to work. And I also know how *their* interactions with it could run into problems or hiccups. I had been using Phoenix as my main onboarding wallet for quite a while. The alternatives are fine for me, just because I’m used to using 80% alpha or beta level software and dealing with the pain (and fun) of it all. But I never try to get friends and family onto those tools until they feel as seamless and simple as Phoenix did.
Yeah, Seems Muun is the closest alternative. Google partner and lightning/onchain swap make it the easy wallet to use. I wish there was more invoice programmability, And fees get high sometimes, But I usually recommend Muun.
I basically won’t onboard normies until it gets easier, or unless they’re determined. It’s humiliating to try right now.
Just so I understand correctly. The main issue you’re facing with Cash App, appears to be the handling of Lightning Network invoices that are for zero satoshis (sats) as Cash App generates invoices without specifying an amount, which means the user must input the desired amount manually and many Lightning wallets do not support this functionality, which requires an amount to be specified in the invoice prior to sending to process the payment which creates difficulties in completing transactions with Cash App invoices. Does that sum it up accurately?
Yeah. There are a handful of incompatible invoice types depending on the service or wallet.
https://m.primal.net/IwMw.png Is so hard for you to find which LN wallets support LNURL-withdraw? https://github.com/lnurl/luds Maybe this guide will help you find out more: https://darth-coin.github.io/wallets/lightning-wallets-comparison-en.html
If you are just looking for interoperability and being able to withdraw from ZBD, I have had great success with the @primal built in wallet. I also don’t get enough sats from ZBD or Fountain that I am not alright zapping them. So convenient enough to send to Nostr. #v4v
Is that it you think? Is it just the insane position and liquidity they have? I was thinking there had to be something in the software ability to “intercept” a payment and then forward it into the opening of a new channel. I had it work seamlessly the first time I did it with Mutiny and was super jazzed, but tried it again a few times specifically to test and it got hung up every time.