What are Monero nodes and how they work in Monerujo

The latest version of Monerujo (v1.10.x) introduces a long awaited reworked nodes management screen, and rethinks how decentralized nodes could be married with an elegant enough UX. First, let’s have a quick look at what nodes are.

What are nodes?

The Monero network is a web of computers connected to each other. It looks something like this:

Each dot is a computer running Monero node software

Each of these computers is a node. They communicate with each other so everybody keeps a decentralized copy of the ledger, and maintain consensus about who has how much. To be a proper, working node, it needs:

  1. To be running the Monero node program (to know what to do)
  2. To be connected to the Internet (so it can receive and broadcast transactions)
  3. Have an updated local copy of the Monero blockchain (which is like 60 gigabytes and growing)

So if you run the Monero official wallet on your computer, you can be a node! It will download the whole blockchain (which is the list of all past transactions) and connect to the internet and that’s all. But if you’re using a light wallet like Monerujo on a smartphone, you’ll need to connect to a node that can tell you if you received moneroj and how much is associated to your addresses. Something like this:

Monerujo interacts with the Monero network through the node it’s connected to.

Currently it makes sense for a smartphone not to be a full node, but in the future, who knows. For now, they’re a necessity. Let’s see now how they work in Monerujo.

How do they work in Monerujo?

Monerujo saves an encrypted file of your wallet on your phone that contains the keys to prove what’s yours is yours. That’s why it needs your password to open it, but when it opens it needs to connect to a node that is part of the Monero network to be able to interact with that network.

When you open the newest Monerujo, you’ll see something like this:

Above your wallets, there’s a Node display. It shows the node Monerujo will try to connect to the next time you open your wallet. If you click on that node, Monerujo will test all your bookmarked nodes and automatically pick the fastest to reply. This is intended so your experience using the wallet is as fast as possible. If it’s a fresh, new Monerujo install it will be empty.

Click on the search icon on the right, and you’ll get to this screen:

Pull down and Monerujo will ask your known, bookmarked nodes for more nodes that they see around. You will see your screen populating with found nodes. Here’s kind of what’s happening:

Monerujo ask its know nodes for more nodes, and then those and so on…

See newly discovered nodes in orange, connected to your saved purple ones. As you may notice, it grows big pretty fast, so your chances of finding fast, responsive nodes are pretty big.

On the right of each node you can see a little “signal” meter telling you how fast the node replied to our ping. If you click on a node on that list it will show you the technical details of it, but don’t pay attention to it if you don’t know what it is for.

Down there there’s also a + ADD NODE button. Use that to manually enter a node that you want to use, like your own for example. You can also use a couple of nodes provided by the community to bootstrap the whole thing if you want.

The important thing is that you have at least one bookmarked node, so when you go back to the main screen, Monerujo knows who to connect to.

You can do this only once and call it a day, or use the node search periodically to discover and save the best nodes, so you get the best everyday experience using Monero.

Very nice… but why? Why?

Because we believe in decentralization, and try to achieve a usable, comfortable enough experience so we don’t end up falling back to centralized solutions just by convenience. How could all this be simplified for the user? Well, we could set up a Monerujo node and have it the default, mandatory option for Monerujo:

That would get rid of all the node management but at the cost of serious centralization, and diminished privacy for all users. Many popular Bitcoin mobile wallets work like that, for example. Instead, we aim to make it as easy and organic as possible for people to find convenient, different nodes to use, thus the famous decentralization. Very much in the Monero tradition.


We believe to be making small but important steps in the right direction. If you use Monerujo, please provide feedback and get in touch. Ideas are welcomed, and donations even more so, you ungrateful bastards!™

Address:
4AdkPJoxn7JCvAby9szgnt93MSEwdnxdhaASxbTBm6x5dCwmsDep2UYN4FhStDn5i11nsJbpU7oj59ahg8gXb1Mg3viqCuk
OpenAlias:
monerujo.io