Taylor joins me to talk about his project myNode which may be one of the easiest, cheapest and feature rich methods to run your own full node and connect to your own hardware wallet. We talk through the process, and some of the challenges that newbies face today, in setting up their own bitcoin full node.
Taylor Helsper myNode Links:
- Twitter: https://twitter.com/mynodebtc
- myNode website: http://mynodebtc.com/
- myNode telegram: https://t.me/mynode_btc
- Kraken: http://www.kraken.com/?utm_source=podcast&utm_medium=stephanlivera
- Unchained Capital: https://www.unchained-capital.com/?utm_source=Stephan%20Livera&utm_medium=Referral&utm_campaign=Affiliate
- Bitcoin Outlet: https://bitcoinoutlet.com/ use code: LIVERA for 21% off
Stephan Livera links:
- Show notes and website: https://stephanlivera.com/
- Follow me on twitter: https://twitter.com/stephanlivera
- Subscribe to the podcast: https://plinkhq.com/i/1415720320
Podcast Transcript by GiveBitcoin.io:
Stephan Livera: Taylor, welcome to the show.
Taylor Helsper: Hey, thanks Stephan for having me on. I really appreciate the opportunity to be here today and talk to you a little bit about a project that I started a few months ago called myNode.
Stephan Livera: Yeah, that’s great. I really liked, the project and I was basically chatting with my business co-founder for Ministry of Nodes and we’re doing like an Australian Bitcoin education company and the idea is we’re trying to help people teach them how to run a node. Right. And so I was chatting with Ketan and he was telling me about your project and, another actually one of my listeners also tagged me showing your project as well. And I thought, Oh, this is pretty cool. So a bunch of us, me and my co founder were experimenting with it. But look, why don’t you give us a bit of an intro on yourself?
Taylor Helsper: Okay thanks. So, I am a software engineer. Um, I have been involved and kind of followed the Bitcoin community for awhile. I was incredibly excited by some of the different, um, technological aspects of Bitcoin. Enlightening that have been just making huge, increases lately with the lightning network and the growth that it seen. So earlier this year, I kind of wanted to start, and set up my own lightning node and the project basically started from there. I looked at the various options that were out there and they all seemed rather expensive or they didn’t offer as many features. And I thought, well, I’ve kind of put something together that I’m pretty proud of and I really liked. And I started to, look into ways to share that and then potentially monetize it by, selling various aspects or selling the physical hardware.
Taylor Helsper: But I did want to make sure that it was open source and it was, freely available through some sort of community edition. And one of my goals, like you said, is with your Bitcoin education stuff that you’re doing and the podcast you’re doing and everything else, I’m helping get people caught up on Bitcoin and I wanted to make it as easy to use as possible. I wanted to make sure that somebody who kind of understands what Bitcoin is, but, uh, doesn’t have the background to go set up all these software projects. I wanted to make sure they have access to kind of using Bitcoin lightning network and make it as easy as possible to onboard them.
Stephan Livera: Excellent. And so I think let’s just set some context for listeners who may be more at a beginner level. So intermediate and advanced listeners, I’m sure you’re already familiar, but Taylor, can you just tell, say, a beginner listener, why should they care about running a full node and what does that full node verify?
Taylor Helsper: Yeah, so a Bitcoin user would want to run a full node, because it, it lets them verify and validate the entire Bitcoin blockchain and all the transactions that have occurred, with a lot of things that a beginner might run into or might see called light wallets and things like that. You can download those, and their custodial wallets and it really means other people might be in control of your Bitcoin. For example, if you’re using, what they would call a custodial wallet. Like, if you’re storing your Bitcoin on Coinbase or an exchange or something like that, you’re not really in control of those coins. You’re trusting a third party or another company to manage those for you. And that’s what we’ve seen in the past with Mt. Gox and other exchanges, hacks will occur and they’ll end up losing your Bitcoin and the Bitcoin that you thought you had, weren’t actually in your possession.
Taylor Helsper: And so, when these big exchanges, which are targets for hackers because they control so many Bitcoin, if one of those exchanges gets hacked, then your Bitcoins disappear and you don’t get them back. But with running your own full node, you’re validating the entire blockchain and you can store Bitcoin yourself, which helps, I think, decentralize the storage of Bitcoin, which is, um, another important aspect to sort of think about because if these, if there are these large exchanges that hold incredibly large amounts of Bitcoin and they happen to accidentally do it in an insecure way, a large amount of Bitcoin can be lost. Whereas every individual is a smaller target. And they aren’t publicizing like what it is that they store and what they have, then I think it’s actually a much more secure way to store your Bitcoin.
Stephan Livera: Right. And I like the explanation there. And I think just for newbies to Bitcoin, you’ve probably heard many of the rules within the community if you will. And rule one is your not your keys, not your coins. And then rule two might be something like not your node, not your rule set and like rules in some sense that your full node is how you detect a fake Bitcoin. But the difficulty has been for many people that they have to learn command line. And that’s not easy for people who have a job and they’re not a software developer or they’re not a tech person. And then there are some GUI tools, but then you might not have the same functionality. So for example, if you run Bitcoin core, right now we don’t have hardware wallet interface. So it’s a bit difficult for a newbie to connect their hardware wallet with their own full node.
Stephan Livera: So the reason I thought this setup was really interesting is that it actually makes it quite easy for a user to do that. And I think there’s a certain, um, I’m going to call it the trifecta, if you will, because there are, what I’ve found with myNode is that it was, there was a certain ease of set up and at a low cost and a certain level of features. And I think if you look at some of the different options out there, it might be really cheap, but then it requires high technical competence or might be more expensive and have a lot of features and not and be easy to use. But then it’s, the downside is it’s expensive. Um, so can you just tell us about some of the different options that are available with the myNode?
Taylor Helsper: Um, yeah. So first though, I think I wanna kind of dive into what the community edition is. I think that is really sort of three core components and the community edition, which are all totally available, for free. There are minor features as well. The three core components that I kind of see people using the most are, um, Bitcoin core itself, which lets you run the full node, the lightning network, which we use lnd internally so that people can participate and um, kind of party. Yeah. Participate inside the lightning network. And then Electrum server, which is an unbelievably popular feature that, everyone says they like. And that’s kind of one combo that I’m not sure all of the other like full node or lightning in a box distributions have, they don’t have Electrum server. So it’s a little bit more difficult to um, pair Bitcoin only light wallets like the electronic wallet and others, um, with your device.
Taylor Helsper: And so with Bitcoin core LND and electrum server, I think that really kind of hits on, um, the three major areas and the three major things that people are gonna use. And all three of those are completely available in the community. You don’t have to pay anything. If you have a Raspberry Pi, which a lot of people do, you have a rock 64, um, and the Raspberry Pi can be three or four. You can go download an image from mynodebtc.com and install it, write it on a flash card or a micro SD card, um, stick it in your device and then you’re up and running with all three of those. You just have to follow the, the web GUI interface and it will walk you through, all the different steps to getting my nodes set up.
Taylor Helsper: And then you’ll be running with a Bitcoin core lightning wallet and Electrum server. We also have a block Explorer Ride The Lightning and LND admin, which are two, well, all three of those are different web interfaces that are available within the app. The Block Explorer lets you kind of go look at different transactions and you can kind of see what transactions have occurred on the Bitcoin network. So you can check and make sure that like maybe a recent transaction that you made has actually been, validated and included in a block. Um, so you can check the number of confirmations on those transactions, and then ride the lightning and LND admin Are two different GUI interfaces for using the lightning network. So once you get into, well first what you would have to do is within my note, there is another set of pages to go set up your lightning wallet. And it does what most people have probably seen. It’ll show your different seed phrase. You can write it down or we’ll encourage you to back it up of course, and then make you confirm it. And then it will get you set up with a lightning wallet. And, from there, then you can use the different interfaces to, kind of control lightning funds and open channels and, add peers and all that kind of stuff. Yep.
Stephan Livera: Great. Let’s talk that through a little bit. So, uh, I guess let’s just summarize the options first. So you’ve got the community edition and then once you’ve got the community edition, there is the premium edition as well. And then there’s also, you’ve got a premade device version, but I think it might be interesting to just talk through for the listeners, actually, I’ll just talk through my process and we can just sort of walk through how, uh, how easy I found it. So essentially I started with just a community edition. So I went to the myNode website, I downloaded the Raspberry PI 4 image. Then you’ve got to preorder some parts and stuff, right? So I guess listeners might want to just, write this down or have the list of things that you need. So it’s essentially a Raspberry Pi
Stephan Livera: Four, I got the four gigabyte RAM version in Australian dollars. That was about $150 for the pack, which comes with a little case. I bought a 16 gig micro SD card. That’s like 15 bucks. And I bought a one terabyte USB hard drive, uh, and, and just ethernet cable. Right? So just to plug it to my router. Right? And so if you sum all of that up, and then also if you add the cost for the premium, myNode premium that takes it to a total of around 450 AUD and I think in US Dollar terms, that’s about 300 bucks, right? So if you are just using the community edition, you can pretty much get this set up for $200. Right? So it’s really cheap. I love all the different options, right? I’ve got a Casa node I use, I have a nodl.
Stephan Livera: Um, uh, so there’s lots of different options out there, but I think this may be one of the cheap options that actually achieves a certain level of functionality with Electrum Rust Server and so on. So anyway, just talking through the process, I then used that program that you’ve listed. I think it’s Balena Etcher basically what that does is you burn the image to the micro SD. Or writes the image to the microSD is probably more a correct term to use, and then you basically put all the pieces together, you plug in the microSD card into that raspberry pi and you plug in the one terabyte hard drive and you plug the ethernet of that raspberry PI into your router and then basically you turn it on and just let it sync. Do you want to just talk through that process there and then syncing up your blockchain and the Electrum indexing?
Taylor Helsper: So, um, yeah, that’s a really good explanation of how to get set up. And one other thing that I kind of wanted to point out there is I think of the, some of the like more premium, full featured full node options or Bitcoin and lightning in a box options. I think this is one of the only ones that, has support for letting people, like you, go set up a community edition totally for free. You can set it up on your own hardware and then you can purchase a license if you want access to the premium features, which include easier upgrades, VPN access, TOR access and things like that. So, um, it kind of lets people get started with it and you can see if you like it and evaluate it completely for free and then go ahead and purchase the premium upgrade if you want to or if you’re happy with the community edition, you can continue using that for as long as you want.
Taylor Helsper: So for setting up a note and just setting up a brand new one, I think that was a really good explanation. You’re basically just using Balena Etcher flash a micro SD card, with the software image that you’ve downloaded from the website, put it in and then, um, access the web GUI or access to the graphical interface that myNode provides, uh, through a web browser that you have. It can be Chrome, Firefox, in any, web browser that you have. You can go connect to the IP address or my node dot local once it’s set up and connected to your home network. And then it will walk you through the steps that, um, it begins doing. So you won’t really be able to interact with your notes for maybe one to two days, something like that because it does have to fully sync the Bitcoin blockchain.
Taylor Helsper: And so, for people that are running on a raspberry PI and using an external hard drive, we’ll automatically use a feature called quick sync and it will download a pre-validated copy of the blockchain up until roughly a month ago at this point. And then it starts validating beyond that. And if there were any errors it would, it would catch those, but your wallet would have been set up with blocks that your node has completely personally validated at that point. And so, quick sync helps save roughly when I was testing with raspberry pi threes and an external USB hard drive, it would take like four to six weeks to fully sync a note, which was going to lead to a terrible user experience. So using quick sync that can actually get down to one to two days. And, if you have a solid state drive, that’s one of the largest bottlenecks, for syncing the blockchain.
Taylor Helsper: So you can always disable a quick sync and completely fully validate everything yourself if you wanted to go that route as well. But it’s really just a time trade off, but it’ll walk you through those steps in the stages that quicksand is going through. And then you’ll see the Bitcoin blockchain itself, um, sinking from roughly about a month ago up until the current point in time. And then at that point you’ll be presented with the full web GUI and all of the different options. So Electrum Server, at that point you’ll have the option to enable it. And it does take maybe a day, a couple days depending on the hard drive you’ve using and, and the device itself, because like a raspberry PI four is obviously quite a bit faster than a raspberry PI three. So, um, depending on the speed of your device and things like that, Electrum Server will start syncing and it will walk you through with status updates of where it is and how it’s, um, doing its own processing of all the different walks.
Taylor Helsper: Then it will have to do a compression stage where it kind of compresses everything. And that tends to take about a day where it doesn’t give you a whole lot of updates, but within another day or two, um, Electrum server will have totally processed everything and you can use it to, be the trusted backend for any of the light wallets that you want to run, whether it’s on your phone or your computer or anywhere you can run Electrum. You can now point that at your mind node device and then you’ll be using an Electrum server that is backed by a fully validated and trusted, instance of a Bitcoin core.
Stephan Livera: Right? Yeah, I love that. And so let me just break that down again. For the listener who might be a bit more of a beginner, let’s say they have left their Bitcoins on an exchange, or if you’re a listener who is maybe at the level where you’re just using a hardware wallet. So let’s say you have a Trezor or a Ledger or a Coldcard, but you haven’t learned how to set it up with your own full node. I think this is a great option that you should look into. And so, basically the way this setup is working is that you’re running Bitcoin core, the full node, and then on top of that, think of that like you’re running this Electrum rust server. And what that’s doing is it’s like indexing all the blockchain for you. And then now that’s the server. Now you need to set up a client for that.
Stephan Livera: So, for example, once you’ve set up this myNode on your raspberry PI, then on your laptop or on your desktop, you would go and download Electrum client, which is like the wallet software. And what you could do then is interact with Bitcoin using your client and say you can even like plug in your hardware wallet to your computer. And then what you’re doing is you’re using the Electrum client, which is connecting back to your own Electrum Raspberry Pi server, if you will. And you can do like air gap with the Coldcard or you can just directly plug the Trezor or the Ledger. And, just for the listeners who are not so familiar, Electrum has this, okay. So you can configure it. I think there’s a config file and you can set it up to go, to your own node basically.
Stephan Livera: And there’s a line, which basically makes it a little bit easier. So it’s not command line, but you do need to amend the config file. Or the other way is if you just open your Electrum and in the bottom right you’ll see that little, it’s like a red light or a green light and you click that. And then if you type in the IP of your myNode, so it might be like 192.168.1.6 or whatever your IP is, then it will connect to your own node. And so that’s the cool thing of how you can get a hardware wallet connecting to your own node as opposed to trusting Trezor’s server or Ledger’s server to feed you that information. So that’s just a bit of a breakdown for the listeners,
Taylor Helsper: Right and there’s a lot of advantages to running an Electrum server, on your own. I think that it was maybe a few months ago, there were just an unbelievable number of malicious Electrum servers that were out there. And what they would start doing was they would return just invalid. If you happen to connect to one, they would return an error message and it was a custom error message back to a user. And it, it was really scary for new users because they would see this message saying, Hey, a transaction failed or you tried to do something that that didn’t work right. Quite right. And it would say, “Hey, click this link, click here and go upgrade to the latest version because there’s a security vulnerability.” Well, it turns out it was a complete lie. It was a malicious server that was trying to get you to upgrade your Electrum client to be one that they controlled.
Taylor Helsper: And so the problem with that was then a user would click on it, they would go see the website, it would look exactly like Electrum’s normal website, which is electrum.org. So make sure you only download from there. But it would look identical. You’d click the download link, you’d install the update that happened to be fake, and then you would have a malicious wallet on your computer that had the ability to just steal all your funds or whatever it was in your wallet when you first logged in. And so, by running your own Electrum server, you can pull in all your light wallets, that one that you totally trust and you don’t have to worry about some of the security vulnerabilities that, could exist in the communication channel between an Electrum client and the Electrum server when it’s running on your node and you know, you’ve installed it and it’s a good copy. You don’t have to worry about your own server kind of sending you those malicious messages that, any server out on the internet could be sending.
Stephan Livera: Yeah, I love the point you’re making about that. And how it basically helps keep Bitcoin more decentralized if everybody is, again, running off their own full node with their own keys, et cetera. But I think part of it, it might be interesting to talk about the difficulty of setting it up on your own with command line. Right? So if the listener is more technical, they might’ve tried to do this themselves. Right. I’ve done, I’ve managed to get Electrum Personal server working like with, with a lot of wrangling, right? But I’ve had issues trying to run Electrum Rust Server on my own. So it’s actually, I found it really easy because everything is all just kind of done in that Raspberry Pi. You just plug it in and off it goes. So there is some difficulty that listeners might face if they’re trying to run it all on their own. Did you want to just also compare the different types of Electrum servers and how you chose Electrum Russ server for the minor?
Taylor Helsper: Right. So yeah, that’s a really good point about the difficulty in setting it up. Um, one of my goals was to make this as easy as possible for like the average person or a person who’s maybe interested in Bitcoin from a financial perspective or an economic perspective that doesn’t have like a computer science background or an engineering background where setting up, Electrum rust server can be very difficult. You have to, set it up so that it can communicate and authenticate with your own Bitcoin core, running it is completely a command line thing. So, um, if you want to run it in certain ways, it’s, it’s easier to kind of run things under Linux and a lot of people don’t have Linux experience or command line experience. And so there, there can be a whole lot of difficulty in setting up some of these utilities, but they’re just so incredibly powerful and full of so many features that, I think every one in the Bitcoin community can take advantage of them.
Taylor Helsper: But if there’s a big hump in, or big learning curve in getting them set up with it, I kinda wanted to try to take that away as much as possible. And so the reason I chose Electrum rust server was, um, some of the performance tests that I did, it looked like it performed very well. And then compared to running, Electrum personal server that requires a user configuring their own public keys and putting them in the config files and things like that. And I felt like that was just going to be too difficult for the average person. So the only real trade off I think is disc space and storage on the hard drive, but hard drive, like large one terabyte hard drives now are getting so inexpensive that you’re going to need a relatively large one to store the full blockchain anyway.
Taylor Helsper: So you might as well go up to one terabyte or something like that. And then you have plenty of room for the Bitcoin blockchain and the Electrum server data stores and things like that. And so since it wasn’t really going to be that large of a hit to the hard drive space on the device that I just said, I can make this the easiest for users as compared to running Electrum Personal Server or something else. I didn’t want people to have to go look up what their, like Xpub key was and things like that and paste that in the config file. That was just going to be too difficult. And my goal was to onboard people who might not understand what the various types of public keys are and all that.
Stephan Livera: Yeah, let me just break that down again just for the sort of more beginner level. So one of the difficulties with trying to run your own Electrum server is obviously as we were mentioning, the command line difficulties and you might make you might mess up a setting somewhere and the point you’re making there around Xpub or I guess the technically correct term is extended public key of which Xpub is one of those types, right? And there’s like Xpub, Ypub, Zpub, et cetera. But basically what that is is like Bitcoin wallet, it needs that so that it can read what are your balances. And, that’s what when we talk about like watching only wallets or you might’ve seen in your Trezor settings or in your Ledger settings there’s an Xpub, uh, that you can copy. It’s like a string of texts and you’d have to, if you’re using Electrum personal server, you would have to put that into the config file.
Stephan Livera: Um, so the tradeoffs there are, as I understand it, is that Electrum personal server is more lightweight because it’s only indexing for the, the transactions and balances and so on associated to that extended public key for the time that you scanned it back til. Whereas ElectrumX and Electrum Rust Server are basically just fully indexing the whole thing. But as you said, it’s like a usability trade off, where essentially Electrum Rust server enables the user to sort of get the best of both worlds, or not the best of both worlds, but like a reasonable trade-off essentially. Now another thing that I think is really interesting for listeners is you don’t necessarily have to, it doesn’t have to be every literal person you are doing their own myNode. You could even do like one per household, right? Like if you’re family and you might have one myNode and then everyone can off their own computer, run their own Electrum client. And then as I mentioned, you go down to the bottom right and you can change the address to make it go to your own myNode node and then you can share that cost amongst your household or your family.
Taylor Helsper: Yeah, so that’s another good point because you’re running light wallets on all of your different devices. You could share that myNode and the keys to that wallet are actually being stored, on the client PC or the client phone or whatever. But they can all share that Electrum server and you only really need one copy of the blockchain, per household or even you could potentially share it with friends or something else and connect over Tor, or VPN. If it’s someone that you trust and you want to give them access to your home network and that would allow you to connect, from like a whole family’s set of devices could connect back to a myNode, and store their Bitcoin or validate their Bitcoin that is on that wallet from pretty much anywhere they are.
Stephan Livera: Right. And, uh, let’s talk about the Tor component of that as well. So, I think this is a premium feature, but can you just tell us, talk us through the process of setting up the Electrum Tor and then how somebody could connect to your myNode from say outside your house, not on your normal house wifi.
Taylor Helsper: Yeah, Tor is a premium feature, but it offers, um, a fantastic advantage in that when you’re connecting to a device over Tor, you don’t really have to deal with the complexities of VPN, which are, would be the alternative method of accessing your myNode from anywhere. And what it does is, effectively Tor will go your phone or device will connect to the Tor network. And it will send encrypted traffic a number of different hops throughout the internet. And, um, since everyone is since your phone or your laptop or whatever is opening a Tor connection and the premium version of myNode, it is also opening up the Tor connection to the internet. Um, it will automatically generate a password. And if you continue the password on your mobile client, it will connect those two devices together, no matter where they are in the world. And so that’s a really huge advantage because if you have a wallet, say on your phone or your laptop and you want to spend from it, well all of a sudden, if you’re not on the same network or you’re not on your home network, by default, the typical setup would, prevent you from accessing it when you’re not your home network. And so using Tor, you can continue to use your mind out and rely on the trust that it provides you. But you can do it from wherever you are.
Stephan Livera: Right. And, can you just walk through in terms of the panels that you would go through? So as I understand, there’s an Electrum panel and you can say, here there’s an Electrum Tor command. So what would be the process around that? Like they would just copy / paste the command there?
Taylor Helsper: Yeah, so on my website. I’ve got a number of different guides because as easy as I try to make it, things still aren’t unbelievably easy for users in the Bitcoin world yet. So, we have a guide for setting your device up with, tor access and then remote Electrum access via Tor. Um, and if you go there, it kind of walks you through the steps to access your Electrum server, via the Tor network. So the first thing you obviously would have to do is enable Electrum. And then, on the Tor page it will give you the onion URL. And that onion URL is, it’s like a URL that you would go to. It looks a lot like, um, google.com or something, but instead of it saying Google, it will be a random string of characters. And in dot.
Taylor Helsper: Onion. And then those are the URLs that you put in when you’re considering tor to connect, from your mobile device back to your myNode device. So once you have configured tor on your myNode, you can, uh, there’s a, a special page that will show you the onion link or onion URL that indicates your specific device. And then it will also show you a password that goes with it. And that helps authenticate that service so that not anyone in the world can go connect to that onion URL if they were to happen to figure it out or find it or attempt to connect to it. And so it’s a way of basically like saying, I have something that is publicly accessible. I have a link that means my specific, mynode device, but then it is authenticated with a password.
Taylor Helsper: So, um, if you were going to do it, say on your Android phone, the first thing you would do is download a program called Orbot. And that’s what lets your phone connect to the Tor network. So that would be step one. You would download the Orbot application, turn it on. And then there’s a couple of little steps in there where, you have to go into settings and you have to add a client cookie. And that’s basically what lets you connect to your myNode in authenticated manner. So you put in the onion URL that corresponds to your mynode in that config, and then you put it in the authentication cookie, which is your Tor password effectively. And so once you’ve done that and configured that, through Orbot, you can click start and it will connect to the Tor network. And if you ever access that onion URL, it’ll automatically use that password.
Taylor Helsper: So you won’t have to put that password in any other application Orbot will be handling that for you every time an application tries to connect to your mynode via the Tor network. And so, um, after that, then you can download the Electrum app for Android and, create a wallet or import a wallet or, get a wallet on your device. And then in the settings there, it will let you, uh, connect via, Socks five proxy. And then at that point you can put in, the host, which is your, um, your onion link. And then port, 50002, which is the typical authenticated, um, Electrum port. So that sounds like that’s a number of steps. But on our website we have a guide that lets or that shows you how to go configure all that and there’s screenshots of what to click in the app and where to enter the different URLs and links and ports and things like that. So at that point though, you would just go exit out of the config and your Electrum wallet would sync. And, because it’s going over Tor, it doesn’t matter where you are as long as you have Orbot running on your phone or mobile device, turn on orbit, open up the Electrum app and you’re connected to, your myNode, no matter where you are.
Stephan Livera: Right. And so this is a way that a Bitcoin enthusiast can help onboard their friends as well. Right? So they could run their own myNode, run their own Electrum server and then get their friends to use Electrum and tor and tor into their own Electrum, Rust Server on their myNode. And that way their friends can still use a hardware wallet with Electrum client and still validate against at least your friends node instead of trusting a big company about it. So that way again is decentralizing people further. And I think we were touching on this Block Explorer point earlier. I’d like to touch on that as well. So there are some privacy benefits as well. So right now if you look up a transaction on a public block Explorer, you are doxing, some component of yourself to that, right? Because that server knows that your IP accessed and it was interested in this address. Can you touch on some of the privacy benefits there for the users using the myNode block Explorer instead?
Taylor Helsper: Right. Yeah. So there’s definitely a privacy component to running your own block Explorer where, imagine these like big tech companies today, they’re pretty much monitoring everything you do, websites you go to. And, um, I mean there can be benefits you end up getting, um, ads that are targeted more towards you, but basically the amount of data that is gathered on every person and every website they go to is completely unbelievable. Um, and so depending on some of the other security aspects of it, maybe not even the remote server that is, um, providing the block Explorer. But anyone in the middle could say, Hey, here’s a, here’s an IP address and it looks like it’s going to, um, I dunno, blockchain.info or something like that and trying to go look up a, um, an address. And if that’s not encrypted via HTTP, anyone in the middle could also go see, Hey, this IP addresses interested in, um, in these specific Bitcoin addresses. And they could be monitoring for, Oh wow. That, that looks like it has a moderately large balance. And then you’re kind of exposing that information to, um, people out on the internet that you wouldn’t want to expose. So by running your own block Explorer. You can also kind of query and look at all of the information about your own transactions. And do it locally without kind of exposing, any information about yourself to the rest of the world or the network that you’re kind of viewing the blockchain explorers on.
Stephan Livera: Right. And so for the listeners who want to quickly look up a transaction or, let’s say they broadcast a transaction, they can see whether it’s still in the mempool or it has been confirmed into a block and they can go to the, you know, mynode.local and then they can click the BTC RPC Explorer, click the Explorer tab, and then it’s like a little website that’s got their own personal block Explorer. So that’s another, I think, a pretty cool feature because again, that might be difficult for a user to do unless they’re quite experienced at doing their own command line stuff as well.
Taylor Helsper: Right, yeah. And setting that up actually requires, um, Electrum to be running as well. So most of those block explorers are actually using electrum server as the back end to look up those transactions. And so, to really get that working on your own, you would have to run Bitcoin core yourself. You’d have to get Electrum server set up yourself and then you’d have to download and install a Block Explorer and then point that at Electrum and then get that hooked up to Bitcoin. And it just gets very, very complicated very quickly. And by bundling them all together, I think it’s providing some really cool services that, would be very difficult for most people to set up on their own. And it would just be too time consuming, I think for people to kind of be required to do this on their own. Right.
Stephan Livera: Yeah. And I, the other thing is really people have jobs and families and other things, they don’t have the time, to like sit there banging your head against the wall trying to configure these things. I mean, I’ve spent some time doing it myself and I, you know, found a difficult, I’ve, I’ve gotten some success and a lot of failure and trying to do these things as I’m sure many, other Bitcoiners have had. Let’s talk a little bit about, I mean, we were talking about it before with Tor, but maybe if we could touch on VPNs and Tor and the idea of people using that so that they can use their phone as the remote control for their lightning node back home. Can you just touch on that?
Taylor Helsper: Yeah, so, one of the things that I started after I started setting up this project, I realized that adding VPN and Tor would be, I think to me a huge advantage. So say you have like effectively a lightning network or a little Bitcoin checking account kind of thing on your phone. Like it’s just a little bit that maybe you want to spend or use when you’re out and about. What you can do is not have to store, especially if it’s the lightning network. What you can do is not store the keys on your phone necessarily, but securely connect back to your myNode device and all the other advantages that it provides. But, you can use it all from absolutely anywhere. And so by using the VPN option, you sort of get a little bit more powerful access back to your myNode device because it pretends like the device that you’re using wherever you are is actually on your home network.
Taylor Helsper: So, that does enable a little bit more. There are some difficulties with like gRPC going over Tor due to HTTP headers and some other complexity that I haven’t fully dug into yet. But if you use VPN, we also have a guide for that on our website. But basically you download the openVPN app, you download a little file on your phone that is accessible via the myNode GUI and then you can open that in the openVPN app. And then you just get a button that says, Hey, I want to connect back to my home network. So again, no matter where you are, what you can do is open your VPN app, click the button, and then all of your information and any kind of searching or web access or whatever that you do will actually be totally encrypted and protected and going over your home network connection.
Taylor Helsper: So it can actually be a sort of a privacy feature, not only for Bitcoin but for pretty much all network access that’s happening on your device at that time. If you’re on like a public wifi network, maybe you don’t want people to be able to see the traffic that is being transmitted via your phone to the wifi endpoint. And so, there are additional privacy concerns just outside of the Bitcoin transactions that can sort of be alleviated. If you’re using a VPN back to your home and now you’re still trusting your home ISP to, to not do anything malicious then, but at least you kind of alleviate a lot of the security concerns about being on a shared network with a lot of other people that might be trying to spy on different connections or different wifi connections that are on that network.
Taylor Helsper: Um, and so basically everything that you would want to do if you’re connected to VPN, you can use, you can use Zap or something. So if you have this app wallet on your phone or the lightning wallet, what you can do is connect that to your myNode. And, um, if you’re out and about, you can flip on your VPN connection, open Zap up and it’ll work. It’ll work wherever you are, just like it would if you were sitting at home on your, kind of your local network where it’s talking via one of the IP addresses that, um, and I guess what I’m saying, local network, some people might not understand what I’m saying, but, basically when you’re on a home network, devices can communicate a lot easier with each other. They don’t have to get routed over the internet. So you might see IP addresses like 192.168.1.100 or something might end up being the IP address that your, mynode gets. And your phone will have another IP address that ends in something like dot 101. And they can communicate because they’re sort of nearby. There is no internet in between them. But when you’re out and about, you’re connected to a mobile network like 4G or something, then you’re going to have a totally different IP address. And those, those two devices don’t know how to communicate with each other and tell something like VPN is enabled.
Stephan Livera: And I think one other complexity that is involved is if people want to connect back to their home node while they’re out and about or get their friends to connect to their, say Bitcoin core, there is some potential security concern around exposing a port to the outside world. So can you touch on some of that, around how to mitigate that risk?
Taylor Helsper: Right. Yeah. Um, so that’s a really good point. One of my goals was to limit the number of exposed ports. I don’t want to go take every cool thing you can do on your mind. No device, which there’s something like, I don’t know, 20 or 25 ports at this point that has to be, opened up, but not to the whole world. They’re just opened up to your local network, which is considerably a lot more secure. You don’t have everyone on the internet trying to attack those ports. So while there, while I said something like there’s 20 ports open on a myNode device, they’re not exposed to the internet. Once you expose the port to the internet, you’re immediately subjected to a number of potential attacks. It could be someone happens to guess a bad password or an incorrect password or something that you, a default password that you had to set up, right?
Taylor Helsper: Or there could be a flaw in the service that is running on that exposed port. And so when you open yourself up to the internet like that, you’re really making yourself a target. And so one advantage of VPN is that it’s incredibly well tested and it lets you, create, I’d look at it like a secure tunnel that goes between your phone or your mobile device, wherever you are and your myNode device. And so if you imagine that secure tunnel in between them, nothing is going out from your phone to the rest of the internet. It’s going back to your local network. And since all of the traffic between those two devices is completely encrypted, um, you don’t have to worry about opening up ports and exposing them to the, the external world. You only have to open up one port at that point, which is the port that VPN is running over and then access all of the different services that myNode provides, like you’re running on a local network.
Taylor Helsper: And so, opening up one port is significantly safer than opening up a large number of them. And, VPN is an incredibly well tested and secure piece of software that has been around for ages and ages and it’s open source. So, basically, I mean it uses, I don’t know, corporate grade encryption, government grade encryption for the connection that is going, between those two devices. And so it would be incredibly hard to break in because it’s open source. It’s, can be audited by pretty much anyone and a number of people trust it and have trusted it for years.
Stephan Livera: Great. Yeah, so that’s a little bit on, the difficulty of kind of setting it up yourself, but potentially what, uh, the myNode can help the user do with this myNode. So it’s a relatively new project as I understand you’ve been going for a few months. Uh, how long has the project been going?
Taylor Helsper: So I started the project, I guess back in March, but at that point it was more of just sort of a, a hobby. I wanted to get the lightning network setup and things like that. And as I started adding more features, I thought, you know, maybe this would be useful for other people. So I thought of different ways to share it and then monetize a little bit. And I guess, so it started back in about March and then maybe three to four months later I really started kind of publicizing it and starting to share it on the internet. And the community is, um, still relatively small, but it’s growing quickly and there are a number of very enthusiastic people out there that seem to be enjoying it. And, I am always excited to hear their feedback and kind of get different feature requests and help drive the direction of the project.
Stephan Livera: Great. Thinking more defensively, people might be concerned that, let’s say there is malicious code, let’s say there is something in there that might steal someone’s private keys or perhaps report the balances or things like that. But how do you think about trying to help allay that fear or concern?
Taylor Helsper: Right. So, um, I had obviously expected those concerns because those are the things that I think about whenever I download any kind of a Bitcoin project. And so, there, there are several ways to alleviate the concerns. The first is that it is entirely open source. Um, I have published, uh, so the code can be inspected and reviewed and you can go look at it and see what it’s doing. But then I have also published sort of some instructions on how to set it up yourself. You can see what the setup device scripts are and you can go look at that. And if you wanted to, you could completely build myNode from scratch on your own. You don’t have to trust my, my downloaded images which are there to make it easier. But you, you could totally go completely build it on your own and then compare, Hey, are the scripts the same and are the processes the same on the one that you built versus the ones that I’ve provided.
Taylor Helsper: You could always cross check that, to alleviate other concerns about maybe the server had gotten hacked or something and there was a corrupt image that had gotten put on my website. What would happen is I also have a public key that’s posted to get hub. And on the download page there are instructions for validating like the authenticity of that image. So you know, that it came from me and it’s not anyone else that managed to sort of hijack the download and make you download something that was malicious or if somebody happened to, hopefully no one does this. But if somebody started saying, Hey, go download myNode over here, but it’s not the correct link to my website, um, you can still follow the download instructions and validate that the image was an image that definitely came from us.
Stephan Livera: Gotcha. Okay, great. And now the other thing is Bitcoin is moving very quickly. There are a lot of different pieces of software. There’s a lot of updating going on. Is it a lot of work there in terms of your work to try and follow the different projects and make sure that nothing breaks in updating?
Taylor Helsper: So yeah, it hasn’t been that big of a problem so far. It really doesn’t take me that long to go, try a new instance of Bitcoin core or upgrade LND or something like that. Um, I just follow the projects and if I noticed that there’s a new image out there, I download it and test it locally and if it seems to work, then I go publish a new image with it. And I’ve automated a whole lot of that. So if I need to go update the version of Bitcoin core or LND that’s being included, um, it’s, it’s really an easy change for me to make. Um, so I’ve really taken a lot of the time out of it there. Um, but really what I have to mostly do is testing and make sure that, Electrum server can still connect to a new Bitcoin core and lightning can connect to a new Bitcoin core and things like that.
Taylor Helsper: But, so the most part, they, the projects have been pretty compatible and I haven’t had a whole lot of issues trying to manage the different versions of software that are getting released. But I do like doing that testing first. Um, and I have gotten requests from several people to say, “Hey, can I go update it myself? Can I go like put the new lightning beta on there and myself?” And my answer is, yeah, you can absolutely do that. Like, there’s no problem with it. Um, it is open, you can connect to it, you can install whatever software on it that you want. Um, it just might not work or might not be supported. I like making sure that I test it before I publish any new images that would automatically go update LND or Bitcoin core, or RTL to the new version.
Stephan Livera: Gotcha. And so what can you tell us in terms of what’s coming up, what are some potential other pieces of software that you would want to build into the mynode stack, if you will?
Taylor Helsper: Right. So, um, there’s a whole lot on my coming soon list. Um, so, so I think there’s a lot of work and a lot of exciting things that can get included. Um, of course one of the highly requested features has been adding BTCPayserver to it. Um, some of these have small difficulties that I’m going to have to get figured out because a lot of them also want to run their own instance of Bitcoin core. So I have to figure out how to tie that back into the instance of Bitcoin core that I’m running because we don’t want two copies of the blockchain doing validation. That would cause way too much strain on these like small embedded devices. And so I have to do some figuring out there, but I do want to go get BTCPayserver added. Um, I’m also kind of looking at adding, uh, the Samourai Dojo backend that has been requested a couple of times.
Taylor Helsper: It would be really interesting, um, as well as looking at adding JoinMarket, which would let people participate in coin joins and they can actually, I think generate small fees and actually make small amounts of Bitcoin by helping other people do these coin transactions. And so that’s another interesting project that I’ve been looking at and I would love to be able to add. But um, on top of that, of course I need to continue publicizing it and get more people involved so that I could get more feedback and, help determine the right direction. And then I also need to go write a whole lot more guides and make sure that people understand and know how to use each of the features. So I think there’s a lot of like publicity and training and making sure that when people do go download mynode and install it, they have a good feeling. Or if they have any questions, they have a way to go find a guide that will help walk them through whatever difficulties they might have.
Stephan Livera: Gotcha. And with, um, so for example, with dojo, which is also a full node, I guess you would just have to figure out how to again point it to the full node that’s already running and the data that’s already there rather than setting up a whole new instance. Right?
Taylor Helsper: Exactly. Right. And so, um, dojo actually looked like it had a pretty good path for doing that. Um, BTCpayserver, what, like that one might be a bit more difficult but not too bad. But those are, um, some features that, um, I’m hoping to be able to look at in the coming weeks and months.
Stephan Livera: Cool. And with, dojo, would that also include the associated like Samourai Whirlpool or would you be looking to do join market mixing for that?
Taylor Helsper: So I haven’t looked at it into that level of detail yet. I mean at that point maybe both of them would be potential options. So yeah, I don’t know about exactly what features would work or not work or would be enabled. I’d have to do a little bit more detailed research before I can answer some of those.
Stephan Livera: And with joinmarket, does join market have a daemon service thing that’s running or is it more like like an all in one gooey sort of application? I haven’t actually had the chance to use it yet.
Taylor Helsper: It looks like there’s both, there is a gooey that you can run and that’s what I’m, I was trying to get set up the other night to just kind of play around with it. But then there is like a daemon back end that seems to be running as well. And so that’s what I would, I would put on my node because their GUI was like a graphical QT application or something that I wouldn’t be able to run on a raspberry PI because I don’t have a full like GUI, I don’t know, QT or whatever. I’m running. And so I, I would probably, I would just get the Daemon running and then maybe add an interface through the web GUI that I have and then let people participate and use it that way.
Stephan Livera: Excellent. And so also just you mentioned BTCPayserver as well. So I think the other difficulty, and we were talking about this earlier with if you were to self host your own BTCPayServer, because again, you are exposing your own IP or report out to the world. So can you just touch on how, what are the potential ways you might do that or the user might use a mind node BTC with potentially BTCPayServer while limiting the risk of exposing the port to the outside world.
Taylor Helsper: Yeah. That would have to be something that was really looked at and analyzed and making sure that we would be opening up as few ports as possible. And then of course, making it optional. And I think that would help alleviate a lot of the risks. But don’t open the ports up by default, make it so that only when BTCpayserver is enabled, do you open things up out to the internet and then open up absolutely. As little as possible.
Stephan Livera: Gotcha. Um, so yeah, I, I think it’s well worth, listeners if you haven’t already got a node running and maybe for you the hurdle has been the difficulty in running your own full node and connecting your own hardware wallet with it. I think this is well worth considering as I mentioned, it’s pretty cheap in terms of my experience with it. I mean, I, I found it pretty simple. I, you know, as I mentioned, I downloaded the image, I put it in and I left it to go. I think it took me maybe two or three days to do the initial block download of Bitcoin. And then another, maybe two or three days to do the Electrum rust server indexing. So it might be a good thing, maybe if you’re listening and you order the parts when you get home tonight or whatever and then set it up on a weekend, spend a couple hours, it’s like a Sunday afternoon project or whatever and you put it together, do the initial setup of it and then come back to it in a few days to enable the Electrum part. And then after a few days you’ve basically got your own full node with Electrum going. So although that was really cool. Um, is there anything else you wanted to mention, for the listeners at this point? Taylor?
Taylor Helsper: So let me just go over real quick about the different options that we provide. Again to summarize. So of course there’s a community edition that you can download and use for free on your own hardware that you’ve pulled together. If you don’t want to do that, we also do have some hardware options available. You can buy a physical device for 199. And that does not come with a hard drive. It’s basically a, it’s a rock64 device with the premium myNode software preloaded on it for $279. You can also order, that same device that would come with an external hard drive. But if you had purchased just the device yourself, you can use any hard drive that you have land around your house, any external hard drive and you can find them on Amazon easily. And so, those are both options as well. And then again, if you have the community edition and you want to upgrade to the premium software, you can always do that. And buy a premium product key license and it’s available on our website for $99. And um, it’s really easy to upgrade. You can pay with PayPal or credit card or of course Bitcoin and the lightning network. So we have all those payment options available as well.
Stephan Livera: Yeah. And also for me personally, I found it really interesting. I thought, okay, I’ll just give the community one ago, and I just bought the raspberry pi and I ran it. And then, yeah, I just paid 99 because I thought look, it’s worth it. You’re making it easy for people. I’ll just, and it was quite easy to then just take that upgrade pathway. Yeah. So look, lastly Taylor, just tell the listeners, where can they find you and where can they find myNode?
Taylor Helsper: Right. So, they can find us on Twitter @mynodeBTC and then on our website at mynodebtc.com.
Stephan Livera: Fantastic. Well, thanks for joining me today, Taylor. Thanks again.