Running node on OpenWRT router?

Hi, I’m new here. I first tried storagenode on Windows 10. It was great but keeping my computer online all the time started to give me anxious and it was not optimal for a home compute. So I’ve decided to stop it for that time. Month later, I got the idea to give it a try on my router. I bought an external 2.5inch 5TB hard drive for that and my router is an WRT3200ACM where I suppose it’s far good enough for the job. My router is always on all the time unlike my computer. After that, I realized that it is not the same architecture than my computer, so I may need to compile myself the source. I don’t even know if it will work at all and it is where I need help.

What I need if possible is straight direction on how to do that. My skill on linux is between basic to medium. I just need some starting point where to begin like, in the git site what source I need to download to begin with? There is so much branch I can’t get my mind to it so which one I need to get? And to compile it, it is like “make” in the source directory? The docker, I didn’t know what it was for and after a little reading about it I was “why storj force us to use a VM like container like that withing an open source community?”. The docker to be honest I don’t think it has his place here. About how to manage security it’s only privacy or policy concern only (meaning individuals or enterprises).

I just need to know what I have to compile (identity, storagenode and anything else like docker if it is really needed) and from which branch. Thank you.

Welcome,

Its not as simple as just running a git to compile to run, I highly doubt you will be able to run a storagenode on a router with low specs that arent really designed to do. You have a better chance to run on a rpi or a nas. Routers arent really designed to run any kinda compute.

I would still like to try it. So please help me so I can show you if it is working well or not.

Did you look at my router specs first before replying like that?

Yes I did. here https://www.linksys.com/us/p/P-WRT3200ACM/
Its nothing special its just a normal residential router.

ok sorry but I still think it could do the job. So I want my question answered about what I should compile still.

You would be wasting your time and effort to try if it had an arm processor id be curious to know if its possible but the cpu isnt really much of anything really.

storjstorage don’t use much cpu resource and my router have a dual core processor and when I monitor it it use very low usage. I still think it can work.

About my time and effort it’s me to decide…

Yeah but your comparing a desktop processor to a router cpu which they arent created equal. Your router isn’t doing much. You need at least 512mb to 1gig of ram, and at least an Arm cpu.

Like deathlessdd said, its probably not a great idea to do that on a router. The processing power of the router will be better used for, you know, routing. Running a node on it will most probably impact your whole network speeds.

You want us to look at the router spec, why not post them here or at least a link to the detailed spec? I couldn’t find how much RAM it has after a quick search, and I think that’s the part most router lack for this type of job.

Now if you still want to try it, you have to understand that this isn’t a clear path, I doubt anyone has a clear guide or answer for you. You will need advanced linux and go knowledge in order to build the storagenode. It will also most likely be a pain to update. You can look at this blueprint, which outlines the challenges of distributing on linux : https://github.com/storj/storj/blob/92efffb48a90cba8430c4e02ca292a0227dd7b7f/docs/blueprints/linux-setup.md .

How much is your time worth? A RasperryPi4 already has clear guides on how to run a node and even the biggest model is still cheap (under 100$).

My time isnt worth teaching someone how to compile a storagenode on a router though. If you want to learn how to complie just watch a few videos and read up on it. Its very complicated when you need to compile for a linux kernel that is for a router and a unknown cpu.

I have all the requirement you have just said.

Well you just don’t have to answer to begin with.

1 Like

Thank you. But still I need to know what I need to compile. Don’t worry about my knowledge I can get through it myself. I don’t need full explanation but just the basic stuff and after that I can deal with that. It’s the same than asking what I have to compile for linux. It’s just I can’t tell myself with all the branch in the storj git site. I just need the right one and do my stuff. How much time it will take it’s me to decide. It’s a pass time for a fan that’s all. And if I can run it on a router? The future will bring more powerful routers with external storage ability anyway. It’s already here. And it’s good for storj to be able to run on them. Running storj on personal computer will too affect the network in the same way on router.

If you can run Docker…

you should probably be able to spin up a storagenode container.

However, create your key on your regular PC. It would probably take a year on a router processor.

2 Likes

I mean, your router uses the memory and processing power for your network. Using part of it for a storagenode will most likely impact your network more than only using bandwidth from another computer. I think that 300mb free memory is not really enough for this. But fair enough, you can try it.

I get that you already found the Github repo. I would suggest you first take a look at the Makefile. It is used to build every component of storj, including the storagenode.

For your use case, you would probably just need to run make storagenode_linux_arm64 and fix whichever dependencies fail and try again. Note that it seems to use docker for building the binaries.

If the make command does not work directly, all the build steps are in the makefile. For example, if you start at the storagenode_% target, it will depend on the storagenode-console target (for the dashboard) and then build the storagenode binaries. You just need to adapt each command depending on your target architecture.

Good luck, and if you are ever successful, keep us posted!

1 Like

oh well sometimes you just want to try if something works, even if you spend multiple days trying to figure it out (and could have just worked a few more hours for real money and just bought an RPI instead :smiley:)
So good luck. We all sometimes spend time on things that sound unreasonable or might not yield the result we expect. But you’ll learn a lot by doing so :smiley: (hopefully something that’ll be useful in the future)

5 Likes

Most probably an SMR drive, as I haven’t heard of any 2.5" HDD that would be >2TB and non-SMR. Consult PSA: Beware of HDD manufacturers submarining SMR technology in HDD's without any public mention Summary: it is discouraged to run a storage node on a drive like that, performance will be abysmal.

On the other hand, this router might be indeed capable of running a storage node, it’s comparable to weaker RPis.

2 Likes

I made it running on my router finally. After trying to compile what I tough to be the right branch, try and error. I did not need to compile the source after all. The image used for arm for raspberry work for my router too.

It’s simple after knowing what to do. Create identity the normal way, download the appropriate docker image and extract the storagenode binary. Copy it to the router (on the mounted drive if it lack of free space). Copy the created identity to the router too. Execute it with “setup” and edit the config.yaml. Finally run the storagenode. Need some setup to the router too like formating the drive to ext4, I created a 1G swap partition juste in case, but storagenode alone use very little memory so it’s not a problem. And I had to add a traffic rule entry for the service to be reachable from the internet.

It does not autoupdate though and it’s too soon to tell if my router will keep it up over time because request will increase. I’ll keep close monitoring to it.

I didn’t know about Raspberry and look very interesting. Later I’ll think about it when I want to upgrade my storagenode setup.

About the drive to be SMR, it’s probably true. First time I eared about it. Hope it will do fine.

Thank you to all.

13 Likes