Raspberry Pi 4B로 증인노드를 돌려본다? - 성공 흔적을 찾아서!

in hive-101145 •  3 years ago 

이전글 - 라즈베리파이로 증인노드를 돌려본다? - Tutorial - 일단 실패

왜 이 짓을 하는가?

이전글에서 야심차게 라즈베리파이4로 증인노드를 돌리려는 시도를 했었습니다. 왜 이걸 시도하냐? 그것은 바로 증인노드를 누구나 집에서 돌릴 수 있기 때문입니다. 아마 증인노드가 되면 풀노드, 시드노드도 돌릴 수 있을거란 생각이 들었습니다. 노드가 많아지면 네트워크은 그만큼 안정적이 됩니다!

라즈베리파이4B의 대기 전력소모는 2W이고, 증인노드 동작시 전력소모는 4W 수준입니다.

4W로 잡으면 하루 4W x 24h = 96Wh이고, 1년에 35kW정도입니다. 지금 옆에서 돌고 있는 선풍기의 제일 낮은 속도일 때 소비 전력이 30W입니다. 10시간만 돌려도 30W x 10h = 300Wh입니다.

전기세는 아래표를 참고하시면 됩니다. 1년 돌려도 전기세는 거의 없는 수준입니다.
image.png

그래서 시도 결과는 아쉽게 실패했습니다. 원인은 steem 소스코드가 arm 아키텍처를 지원하지 않기 때문입니다.
그래서 누군가 해놓지 않았을까 해서 열심히 찾아봤습니다. 그 기록을 따라가 보겠습니다.

추적

Steemd on a low end ARM?
Yes!
… but not yet.
I was able to build and run a slightly modified steemd v0.20.10 on a 32bit ARMv7 Processor (v7l)
… at least for a while.
You can get a binary steemd-v0.20.10-armv7l here: https://gtg.steem.house/get/steem/

그러나, 자료는 남아 있지 않다.

그렇다면 방법은?

해결할 수 있는 방법은 실마리를 찾았습니다. steem 소스에서 arm을 지원하지 않는 명령, 설정은 없애는 것입니다. 단, 없애더라도 문제 없이 돌아가야 하구요.

자료를 찾다 찾다 나올만한데 없어서, 포기 상태였습니다.

그 날 밤. 자기전에 명상을 했습니다.
그러자 바로 생각이 떠오릅니다.

블러트

https://gitlab.com/blurt/blurt
image.png

블러트에서는 이미 수정해서 라즈베리에서 증인노드를 돌리고 있고, 그 히스토리를 따라가면 스팀도 가능하겠단 생각이 번뜩 들었습니다!

그래서 찾아봤더니 그 흔적이 고스란이 남아 있습니다.
https://gitlab.com/blurt/blurt/-/commit/17b2b0f1793accd0c01fadac638d2e19a2fb9a6f

논란이 됐던 equihash 부분을 삭제하는 부분이 포착됐습니다.
image.png

가능성을 보다. 그럼 이젠?

가능성은 보았습니다. 라즈베리파이 성능으로 증인노드 돌릴 수 있는가? 충분히 가능하다고 봅니다. 최근 증인노드의 상태를 볼 일이 있었는데, AWS에서 4G 램으로 동작하고 있었습니다. 그리고, 자료를 찾아보면 8G에서 가능하다는 몇 분 답변을 들었고, AWS와 라즈베리 파이 비교해보니 라즈베리가 더 빨랐다는 얘기도 들었습니다. 결론적으로 가능하다고 판단했습니다. 사실 증인노드는 동기화만 되면 지정된 시간에 채굴을 하는 역할이 주요 역할이라 고사양의 하드웨어가 필요없습니다. 필요한 것은 대용량 스토리지와 최근 블록 파일입니다. 이건 라즈베리에서도 충분히 가능합니다.

자, 이제 남은 것은 steem 소스를 수정하여 arm에서 빌드할 수 있게 만드는 것입니다. 좀 더 한다면 docker 이미지로 만들어서 누구나 쉽게 증인노드를 돌릴 수 있게 하는 것이구요.

커뮤니티의 참여가 필요한 부분입니다.

어떤 의견, 아이디어도 환영합니다. 많은 의견 교환이 이루어지면 좋겠습니다.

Need communities to participate in building steem source code for arm (raspberry pi's cpu). It would be awesome to run a witness or seed node in a house! Please share your ideas.

@ety001
@steemchiller
@justyy
@steemitblog
@steemcurato01
@steemitblog

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

I don't have much knowledge about running a Steem witness node on an RPi. From what I've learnt so far from my own witness node is that it is very much dependant on the Ram as well as the CPU. If you don't publish a block in 3 seconds, someone else would publish it before you. This is why there are so many failed to push block messages in the logs.

That being said, this seems to be an exciting venture. Count me in! Let me know if and when you start working on this in a public repo. Would be happy to contribute and help build Steem.

Vote for @starlord28 as a witness
or search for @starlord28 here https://steemit.com/~witnesses

thank you for sharing your opinions. Even after sync, cpu and rams are critical to mine a block? I found the node of top witness was running c5.large of AWS which has 4g ram.
As you might know I am running the witness fir blurt in my rpi4 8g.

I found the node of top witness was running c5.large of AWS which has 4g ram

That's pretty strange. Maybe I can try and get in touch with him/her to understand this better. I went in for a trial and error method to find the bare minimum to run my node. So, I jumped from 4G to 8G to 16G ram. Finally, saw one of the witnesses running on a 30G ram so settled that for my backup node.

As you might know I am running the witness fir blurt in my rpi4 8g

I haven't personally checked out their code. But from a quick search, it seems like they have a much lower requirement than Steem. Need to check their post FORK changes to see what let them reach that point.

PS: The CPU usage by the container on my main node hits 65-70% regularly. So, there is definitely a lot of load on the CPU.

Just curious. Did you run your Blurt witness on an official build or a port by someone in the community?

Just curious. Did you run your Blurt witness on an official build or a port by someone in the community?

blurt community provides the docker image.I simply executed it.

Sigh! They officially support ARM architecture.

yep. and there are a few folks who successfully built steemd too.

Great. Will try it out on mine when I find some spare time.

interesting..

yay~

  ·  3 years ago (edited)

멋지네요. ARM에서도 가능하다니 놀라울 따름입니다.^^
꼭 성공하시길 기도드립니다.

가능은 할텐데.. 여유가 별로 없네요. 야레바데키루님 데키루?

우와... 흥미롭네요. 스팀에서도 구현되기를 기대해봅니다. ㅎㅎ

왠지 될거 같은 느낌이 드네요. 고맙습니다~

검색하다보니...
nas용 os로 OpenMediaVault가
arm을 지원하기때문에 라즈베리파이등의 SBC를 이용하는 경우에는 nas를 구축할때 이 OS를 선택한다는 글도 있네요

arm에서 여러가지 할 수 있는거 같네요. 고맙습니다.

대단한 능력자십니다. 라즈베리파이에서 구현되리라고는 생각도 못해봤습니다. 성공을 기원합니다.

아직 성공한게 아닙니다~ 커뮤니티차원에서 도전해보면 좋겠습니다~ 고맙습니다.

쓰신 글 보고 저도 조금 찾아보았는데 내용이 길어 별도로 포스팅하였습니다. 이미 아시는 내용일 수도 있는데, 제가 찾아본 바로는 equihash 부분을 전부 제거해도 아마도 문제 없을 것 같다는 생각이 듭니다.

성공을 기원합니다!

고맙습니다~ 블러트 코드를 봐도 그냥 제거한 걸로 보입니다. 일단 제거하고 빌드해보려구요.

음... 출근하면
제 라즈베리보드에다가도 한번 테스트는 해봐야겠네요

arm에서 그냥은 빌드가 안되고요, 좀 건드려줘야 합니다. 천천히 해보려고요~