Monero cryptocurrency node

On the chat there was a question last week how to run a Monero cryptocurrency node on a resin.io device :moneybag:. For my Hack Friday I’ve put together a basic setup for that. In general it’s a bad idea to run cryptocurrency software on these devices (as those usually really tax the hardware and wear it out, IMHO), but this seemed simpler, especially with no mining involved.

The main difficulty was that the stock Raspbian archives have too old boost for this project so need to compile that from scratch… Because of QEMU cross-compilation on the resin.io builders, that still takes a little bit long, whether or not using multithreading (and on the builders you can use, I think 36x multithreading, but @jack might be able to confirm that, so can use make -j 36 when available).

Other things needed for this application is adjusting the config to save its database on the persistent /data partition to keep it around for application restarts.

The code is available on Github:

https://github.com/resin-io-playground/resin-monero-node

There would be still things to do with this project, and pull requests are accepted! Though not sure how good idea the whole thing is in the first place. It’s not the worst project I’ve put on resin.io yet, but definitely not the most useful either. :stuck_out_tongue:

Anyone else deployed some kind of cryptocurrency application on a resin.io device?

Oh cool! I hadn’t even heard of Monero before.

How well does this run on something like a Raspberry Pi? Is all the slowness in the compilation step or does the actual service run slowly as well?

It seems to run fine on the device, the data it downloads when updates the chain is about 900MB at the moment, manages it in not too long time as well. Connecting to it with the monero-wallet-cli is pretty quick and updates well, just don’t have any monero to try :stuck_out_tongue: I guess as long as you are not running a mining node, and probably wouldn’t do that with the reference client anyways.

One thing is an issue, their systemd service is not perfect, have to figure out why the ports are blocked when the application is restarted, seems like the service is not really shut down. Work In Progress for sure :construction:

@imrehg It’s great to see you’ve taken this working!

By the way, the blockchain data is roughly 18GB now, so at least 32GB is required (64GB desirable).

Also, as cryptocurrency is very sensible on security, I would like to raise some questions I had that blocked me on the first day.
Monero node owners would like to have full control of their nodes, that means nobody can even have the possibility to snoop on their transactions, that’s the benefit of running a home node instead of a public one, managed by others. That being said:

  • Is resin.io capable of SSH into the host (Resin OS)?
  • The exposed port for monero is HTTP, that means transactions are not encrypted either. How can they be secured?

Even if those issues cannot be addressed at the moment, is a really cool way to deploy it indeed. Maybe a testnet version for developers would be useful :slight_smile:

Thanks for the info, wow, my database was around 900MB, so maybe it was still downloading at that time, will re-run it again later with a bigger SD card out of curiosity (after fixing the restart issue, probably, because that’s more important)

Regarding your questions:

  • by default, selected engineers can SSH into the host at the moment. This can be disabled, however, by removing or altering the contents of the authorized_keys file on host OS. You can burn the SD card, delete that file or add your own key in there and then we don’t have access to the device anymore. You can still have resin ssh into the container, which can be disabled by disabling the VPN (if I recall correctly), to lock your node down even further, while still having the ability to update the software remotely (which is initiated by the device, it’s a pull, so does not require device access). See more on the VPN settings in the network config for low bandwidth access docs.
  • securing the communication is probably not on the shoulders of resin.io, but how are you deploying the node, I think currently monerod trusts the local computer or the local network. Could possibly use SSH port forwarding + adding an SSH server into the container, with your known key deployed there (ie. node device runs SSH daemon on a port, your machine forwards a local port to that remote port, your wallet connecting to the local port). For the future, could also look at this thread on reddit if it’s still current state: https://www.reddit.com/r/Monero/comments/4atg0d/monero_rpc_no_password/

I’m guessing this would cover both of your changes for the moment :wink:

1 Like

I don’t know about Monero cryptocurrency? Is it same as that of bitcoin, Please help me?

Hey, here’s the link to the Wikipedia entry of Monero https://en.wikipedia.org/wiki/Monero_(cryptocurrency) Just to be clear, this is just an example project and proof of concept, not an entorsement of any cryptocurrency or such. :slight_smile:

MonetaVerde (MCN) was launched on January5, 2017 on the basis of Bytecoin, Cryptonight and Cryptonight Pow technologies. The uniqueness is that it allows creation of infinite coins.

but if we can create infinite coins its value will be less right??
less demand more supply = Less value…

When I was trying to set up some raspberry pi’s to mine Monero, I found it difficult with no guides or anything … What kind of results do you get with a Raspberry Pi 3? … It may work better there since you are running on a raspi

Hey @bakerlisa510, just pool mining (and not hosting a monero node), using cpuminer-multi, the average hash rate is about 7.5 Hash/s, so it’s not very effective. I was testing it deployed through this this rpi-xmr-pool-miner project.

2 Likes

Thanks.

With the emergence of Bitcoin and all the over 1,000 cryptocoins, financial transactions are being decentralized on a massive scale. These decentralized transactions have no recourse whatsoever to the US Dollar. This changes the dynamics of international trade, foreign relations, diplomacy, and the impact of economic sanctions. There have always been attempts to “de-dollarize” the global economy and cryptocurrencies seem to be a veritable means of achieving that goal.

Hey that’s cool. Do you have a resinOS repo available for testing?

Regarding @TonyMark comment on supply of Monero, if it were limited I’m guessing it would be less private.

Also, here’s a quick primer for anyone looking to get started with Monero CLI.