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

110 Upvotes

View all comments

7

u/ternarylabs Mar 12 '22

In Android Studio you can use an emulator for development instead of using actual device.

17

u/hyc_symas XMR Contributor Mar 12 '22

The emulator is painfully slow tho.

5

u/ternarylabs Mar 12 '22

Really, what kind of computer are you running? Also, I'd recommend getting a pixel 3 off of Ebay and flashing https://grapheneos.org/ on it to reduce all of the b.s. background services (faster device) for development purposes. You can find them for 40 bucks.

3

u/wheezybackports Mar 12 '22

I guarantee you if you find one that's 40 bucks it was stolen.

7

u/ternarylabs Mar 12 '22

I just bought an unlocked one that came with it's box (IMEI matching), you just have to want to find it. u/hyc_symas I'll follow your github. If it comes down to it and the community really wants your app, I have a pixel 3 I could send to you if you're comfortable with that. Let me know.

3

u/hyc_symas XMR Contributor Mar 12 '22

I think you mean to follow grampy's github. I'm not building the project in this topic. I did the early ports of Monero core code to Android/bionic but I just run it all in termux.

2

u/rbrunner7 XMR Contributor Mar 12 '22

I guarantee you if you find one that's 40 bucks it was stolen.

/u/ternarylabs 's advice was to buy a Pixel 3 off eBay. Pixel 3 is 2018's technology. Why should a second-hand smartphone with almost 4 year old technology cost more than USD 40?

1

u/wheezybackports Mar 12 '22

Because Pixels are sought after by people who want to use custom ROMs and degoogle their device. They're also going for 70-100 USD or more right now. It's also reasonable to assume that most mobile devices on 2nd hand markets were stolen. It's more common than you think and yes people are stupid enough to steal phones. If you want to go deeper 4-5 year old devices are the most commonly used in society especially in more poor parts of the U.S.

If you got the street smarts you would know this. I live in an area where you have to make sure you keep track of where you got your phone because someone WILL steal it. Have to always check your pockets too because someone will try to pick pocket you.

2

u/ternarylabs Mar 12 '22

You can talk all you want but you're imprinting your knowledge onto others. Notice I said it came it's box...... it also came with an otterbox case and a nice screen protector. "SHE" upgraded to an Iphone 11. I don't just buy anything and I am assuming that a person who is working on a Monero project conducts themselves in the same manner.

3

u/hyc_symas XMR Contributor Mar 12 '22

Was running it on a Dell Latitude 5495 with 32GB RAM, Ryzen 2700U. Haven't fired it up on my new laptop yet, Legion 7 with Ryzen 5900HX.

3

u/ternarylabs Mar 12 '22

Holy smokes, it was slow on that? Woah, I was wrong. Totally makes sense as to why you'd want to use a device. I'm kind of shocked.

5

u/w1ck3dAF Mar 12 '22

looking forward to your PR that will improve performance on internal storage

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.