pocketnetteam / pocketnet.core

Decentralized social network based on the blockchain
https://pocketnet.app
Apache License 2.0
115 stars 28 forks source link

arm64 architecture support #13

Open sexylust opened 3 years ago

sexylust commented 3 years ago

Is your feature request related to a problem? Please describe. arm64 is becoming prevailing architecture over x64. Not only Raspberry Pi, but with Apple M1 chip it's becoming a de-facto new standard. Some (many) users would love to use Raspberry Pi to run their nodes and given low cost it's a great and important part of the scalability and decentralization.

Describe the solution you'd like Provide the arm64 release binary. .deb would be a good start.

andyoknen commented 3 years ago

We are leaning towards spreading in the future through docker. Are you considering this option? What devices do you need an arm64 for?

sexylust commented 3 years ago

@andyoknen

What devices do you need an arm64 for?

In the description: Raspberry Pi. Apple M1. And I think many more to come as it's becoming more dominant architecture.

We are leaning towards spreading in the future through docker. Are you considering this option?

Docker is fine. I like and use it myself. But in my opinion it is a good complementary option and not a replacement for a standalone binaries. Not many people are capable of running simple node as instructed. I'm sure even less would be willing to deal with Docker.

walkjivefly commented 3 years ago

Even an RPi4 8Gb doesn't have enough storage to run a pocketcoin node. I tried a couple of days ago and got an OOM within a couple of minutes of startup.

nnmfnwl7 commented 3 years ago

Working on some build helper scripts. Build pocketcoin "default" and also "sqlite dev" version, should work on ARM architecture too. Right now only readme has been published, all other files will be published right after success testing. More at: https://github.com/pocketnetteam/pocketnet.core/issues/39 https://github.com/nnmfnwl7/cc.setup.helper.debian Cheers.

the-real-vortex-v commented 3 years ago

I've compiled the v0.20.x source on my devuan 3.0 install which is a dual core atom eeebox with 1gb of ram. That's a 32bit system and it's working fine. What's wrong with the ARM compile? Have you tried it from source?

andyoknen commented 1 year ago

This script is designed to build any platform using a Makefile in Docker container. More information on the cross platform assembly can be obtained here.

https://github.com/pocketnetteam/pocketnet.core/blob/c8091b59198085dcad0b0fd8323230b494b4ca5e/.github/workflows/build.all.yml#L1-L5

Help needed to build missing platforms

jkaldon commented 1 year ago

Even an RPi4 8Gb doesn't have enough storage to run a pocketcoin node. I tried a couple of days ago and got an OOM within a couple of minutes of startup.

I had it working on my RPi4 8GB kubernetes cluster last year about this time. I had to abandon it because I was using NFS to hold the database and the higher latencies kept the node from ever catching up to the latest block. Every few hours I would check on it and it was falling further and further behind.

So, I loaded it onto a full x86 machine with 1TB SSD. It works great now :)

andyoknen commented 1 year ago

So, I loaded it onto a full x86 machine with 1TB SSD. It works great now :)

Could you share the way you compiled the code?

jkaldon commented 1 year ago

So, I loaded it onto a full x86 machine with 1TB SSD. It works great now :)

Could you share the way you compiled the code?

Sure, I keep everything I deploy to my cluster in git repositories. This Dockerfile contains everything you need, but might require a few updates since I abandoned using RPi4.

https://github.com/jkaldon/arm64v8-pocketcoind/blob/main/Dockerfile

bulrush15 commented 1 year ago

Even an RPi4 8Gb doesn't have enough storage to run a pocketcoin node. I tried a couple of days ago and got an OOM within a couple of minutes of startup.

Are you talking about storage or memory?

What about using a 2TB+ USB 3.0 drive with the RPi? It might be a bit slow but would it work?