Raspberry Pi 4 - Standalone Grin-Node PoC by Grinnode.live

We started working on a Raspberry Pi 4 standalone Grin-Node which can be build by anyone.

Anyone could should run a Grin-Node, therefore we are making this forum post and help you setup your own RPI4 Grin-Node

Parts-List:

  • RPI4 Model B 8 GB RAM
  • 3.5" Screen for RPI4
  • Case for RPI4 + FAN

It is important to use an active fan with the heatsink on RPI4.

Installation:
(Disclaimer: we are not showing how to basic-setup the RPI4 and setup the display, SSH etc)

  • Install RUST using https://rustup.rs/

  • Dependencies

    git ● tor ● clang ● ncurses and libs (ncurses, ncursesw5) ● zlib libs (zlib1g-dev or zlib-devel) ● pkg-config ● libssl-dev ● llvm ● linux-headers (needed on Alpine linux)

    For Debian-based distributions (Ubuntu, Mint etc):

    apt install build-essential git tor cmake git libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config libssl-dev llvm
    ``` (Credits: https://paouky.github.io/docs/getting-started/build/)
    
    
  • Clone the official Grin repository git clone https://github.com/mimblewimble/grin

  • Compile latest tag using the following script within the directory where you did clone the grin repo

compile-grin-node.sh

#!/bin/bash
/usr/bin/git checkout master
/usr/bin/git fetch --tags
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
/usr/bin/git checkout $latestTag
echo $latestTag
/root/.cargo/bin/cargo clean
/root/.cargo/bin/cargo build --release
  • setup grin-server.toml to use TUI

whether to run the ncurses TUI (Ncurses must be installed)
run_tui = true

To see the TUI on your 3.5" screen add the following to your .bashrc file:

[[ $(/usr/bin/tty) == "/dev/tty1" ]] && exec /usr/bin/screen -S display

Now SSH into your RPI4 and connect to your screen session and start grin-node and you should see your TUI on your 3.5" display.

We are thinking of Grin-branding a few RPI4 cases and ship them to users, e.g for our next Grin-Node Challenge or even for a donation we can send them to you :smiley:

Few more pictures of the build process


Thank you @johndavies24 for the ARM compilation help on Keybase from you.

19 Likes

Great have been waiting for this :+1:t2:

1 Like

Super nice! I also have been waiting for such a project. Add a custom 3D printed Grin casing and I would love to order one! Although I would wait unti the Grin price is a bit recovered😉.

What were the cost for the node including all the parts?

1 Like

This is awesome!

If anybody’s getting No such file or directory when running the script ($ ./compile-grin-node.sh) then switch the /root on the last 2 lines, to just ~.

1 Like

I have not yet contacting any company or person who might help me print some nice GRIN cases for the RPI4 with a display and fan.

If someone can recommend someone please let us know :+1:t2:

cost

  • RPI4 - aprox. 90€
  • 3.5" Display (Waveshare clone) + FAN + Case - aprox 30€
  • Setup GRIN-OS - priceless :innocent:
2 Likes

I asked around a bit about who to use for producing the custom Grin Pi4 cases.
The following were recommended to me:


to compare a few printing companies)

(superb quality but pricy)
-Argon alliminium case with integrated heat sync or adding a fan in case the node would be used for mining, which it won’t be. But it would further reduce the chance of overheating
1 Like

Thank you all for the great feedback. :smiley:

We are proceeding with the RPI4 project but we are running into consistency problems when running the ARM binary atm with TUI enabled. TUI would be nice to have enabled when you choose the RPI4 with a display.

We received the first RPI logos, which we could use on the RPI cases.
(Credits: liqd on Discord)

11 Likes

I like the yellow one :+1:t2:

1 Like

I like the red one! We need a Mimble Wimble Crumble. Damn… now I’m hungry

3 Likes

As we are seeing an slightly decrease of original GRIN nodes running 24/7 we are working hard on the RPI4 Grin-Node project.

Here you find a latest picture of another RPI4


.

Running GRIN v4.1.0-beta-1 on a Raspberry Pi OS (32-bit) Lite image with compiled grin-node.

4 Likes

Great! is this statically build? :thinking:

What do you mean by statically build?
As of now you have to start the Grin-Node manually but later it should include a cronjob which compiles the ARM binary every week and runs the service.

1 Like

could you ldd the binary?

	linux-vdso.so.1 (0xbee46000)
	/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb6480000)
	libncursesw.so.6 => /lib/arm-linux-gnueabihf/libncursesw.so.6 (0xb6443000)
	libtinfo.so.6 => /lib/arm-linux-gnueabihf/libtinfo.so.6 (0xb6412000)
	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb63ff000)
	librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb63e8000)
	libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb63be000)
	libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6391000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6243000)
	/lib/ld-linux-armhf.so.3 (0xb6eed000)
	libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb61c1000)
1 Like

Not sure how widespread the problem is but I run Grin++ as node which since the last hardfork has some stability issues. Grin++ keeps crashing every so many hours. If others have the same issue, this might affect a large number of nodes which will not be online 24/7. @david knows about the problem but I think he also has other tasks to work on, e.g. for the Litecoin mimble wimble implementation.

1 Like

The latest beta fixes those crashing issues, but I haven’t had time to thoroughly test and push the actual 1.1.4 release. https://github.com/GrinPlusPlus/GrinPlusPlus/releases/tag/v1.1.4-beta.4

EDIT: Litecoin’s first mimblewimble testnet is scheduled to go live the end of this month. Once it’s live, I’ll have a bit more time to focus on this release.

4 Likes

Possible logo to be engraved into the RPI4 any other ideas?

1 Like

We created a room #Grin-Pi on the Grin Discord Server.
Invitation link: https://discord.gg/zpqEFaS

If requested we could also move discussion to Telegram or Keybase.