感谢 @b24333666 的教学, 这两天也用 Raspberry Pi 4(4GB) 试着建构
为了节省内存的使用, 再加上我喜欢 headless 的部署方式,
我没有安装桌面系统, 而是采用 SSH 进机器操作.
## 默认开启 SSH Server
第一次开机前在SD卡的 system-boot 分割中,
产生一个命名为 ssh 的档案(空的即可)
之后开机会自动叫起 SSH Server.
## Firefox/MetaMask
主要是当 Goerli ETH 的钱包, 可以直接在一般电脑上跑.
跑 Beacon Chain/Validator Client 建议可以使用 tmux 以避免断线.
PS. 记得 MetaMask 切换到 Goerli Test Network, 在右上角
## Beacon Chain
跑 Beacon Chain 大约会花 2~3 小时做 init-sync, 这时候会吃非常多内存
建议可以在 SSD 上面暂时先开一个 swap 档, init-sync 完可以关掉
作法如下
```
# 档名路径可自选一个 SSD 的空间, 8x1G 可以更大没关系
$ sudo dd if=/dev/zero of=/var/swapfile bs=1G count=8
$ sudo mkswap /var/swapfile
$ sudo swapon /var/swapfile
$ free
total used free shared buff/cache
available
Mem: 3884376 2322780 47260 3916 1514336
2924320
Swap: 8388604 1024 8387580
```
完成 init-sync 后如不使用可以透过 `sudo swapoff /var/swapfile` 关闭
PS1.如果不使用 SWAP 的话, 有可能会遇到 Kernel Out-of-memory 的问题,
beacon chain 的程式就会被 Kernel 关掉, 而且会 hang 好一段时间..
oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=beacon-chain-v1,pid=2522,uid=1001 Out of memory: Killed process 2522 (beacon-chain-v1)
total-vm:5812104kB, anon-rss:3570120kB, file-rss:0kB, shmem-rss:0kB, UID:1001 pgtables:7652kB oom_score_adj:0
oom_reaper: reaped process 2522 (beacon-chain-v1), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
PS2.beacon chain可以不需要以 sudo 权限执行
## Validator Client
当 Beacon chain init-sync 跑完后,
Validator 会需要一段时间等你的 deposit 被处理到..(约一个多小时)
此时 Log 讯息会有 status=DEPOSITED 的字样,
只要等到 expectedInclusionSlot == slot 就会开始分派工作了!
PS.Validator Client 可以不需要 sudo 权限执行
## 结论
- Validator 跑了约 18 小时, 总共收到 0.008 ETH 的奖励..
请参阅 https://bit.ly/2WaQ2Py
- SSD 共额外吃了 1GB (刚刚算错空间了 XD)
- 我的Pi4 在 init-sync 时, CPU 48度, USB 52度, 只有贴散热片
- 离线会有 penalty, raspberry pi4 的可靠度老实说我打个问号...
- 要考虑 SSD 寿命(保固?) vs 奖励划不划算
- 路由器 13000/tcp 做 NAT
小费箱
ETH: 0xf92512467cF72b249e621DB334391F7d11FAFcB1
simpleledger:qq2c29w68qkre380j4fc9s53a9cnnmt2uvdq5l87hd