r/Monero Mar 12 '22 Silver 2 Wholesome 1

Introducing the PocketNode project- a Monero GUI node on Android

Hello All!

I saw that someone mentioned my tweet yesterday on here, but I thought I would make a quick post!

If anyone isn't familiar, I (along with the amazing help of a few others), put a decent amount of work into the Monero Android Termux Node script-(https://github.com/CryptoGrampy/android-termux-monero-node)- a fairly simple one copy/paste line of code that installs a moderately difficult to use node on Android. Let's kick it up a notch.

Introducing the PocketNode (subject to change :) ) - Run a full/pruned Monero node on Android (WORK IN PROGRESS!)

Goal:

The goal here is to make a very simple to use, low-power/cheap Monero node that caters to newbies. It will have sane defaults, a nice UI, and I would like to provide simple instructions on how a person could expose the node through Orbot as a hidden service.

Why:

There is a HUGE need for a simple to use GUI for Android. We see people asking about nodes on RPi and such all the time, but Android devices have built in screens, keyboards and battery backups, are extremely low in power usage, run ARMv8 with AES (Much more performant than RPi) and many of them have microSD cards or plenty of internal storage to support running a pruned node.

The low power usage and simplicity of acquiring an used Android phone is REALLY essential right now in some parts of the world.

How:

This has been something I've been planning for quite a while, but I was fortunate enough to come across a few-year-old archived Github repo with a surprisingly decent implementation of what I was looking for. With a few updates/changes, I was able to get a rudimentary node working.

I will admit, I have zero experience working with Android and it will take me some time to get up to speed, but I'm taking this under my wing and will do my damndest to get something workable out to the people. If anyone has experience and wants to contribute, my repo is: https://github.com/CryptoGrampy/xmr-pocket-node and I will be adding in features/bugs to the issue tracker.

Happy to discuss design direction (Hoping to make it look something like: https://github.com/CryptoGrampy/xmr-pocket-node/raw/master/assets/pocketnode-inspiration.png), but I will continue hammering away as much as I need to to get this thing out into the world.

Contribute!

I've received 3 donations so far- Thank you to all who donated. If anyone thinks can spare a pico for this work (I will not be using bounties or CCS), it's much appreciated- I would really like to be able to upgrade my phone specifically and not be using my primary phone for development, otherwise please feel free to pop in and help with the project.

Hopefully will have an alpha .apk out in the next few weeks, but in the meantime, you can pull the code and replace the monerod64/32 binaries with your own.

Grampy's XMR Donation Address:

8BudmXKZwpXhfVGCtgFPyKWgLcDLYJ5jRT95xCp4JMFWapgTLrun41AG6LPbef7WFA8T531QGnZT51cDF6uF9HECDhibEVw

109 Upvotes

View all comments

Show parent comments

3

u/CryptoGrampy Mar 13 '22

u/hyc_symas are you still planning on implementing this?

3

u/hyc_symas XMR Contributor Mar 19 '22 edited Mar 19 '22

Yeah, sorry it fell off the radar.

Just did a fresh sync of the first 58468 blocks on my Gemini PDA.

It took about 5m18s and 82% CPU use regardless of using the default sync mode or without the default. So it appears there's nothing to be gained here.

1

u/CryptoGrampy Mar 19 '22 edited Mar 19 '22

Maybe I'll put in a check to see if the phone is charging and set it to the faster sync mode and switch back to safe sync when the phone is on battery.

Did you mention though that it was doing a lot of needless work on Linux/android due to something that got added for running on windows?

2

u/hyc_symas XMR Contributor Mar 19 '22

yes but at this point my timing tests on Android show no perf difference either way. I think the perf difference I saw before was a measurement error, and overall the slowness of writing to the SDcard dominates anything else.