【Umbrel】Node-REDで最新ブロックハッシュを受信するには
結論
bitcoindのblocknotifyを使ってcurlでnode-redへ送信。
<手順>
1.ビットコインノードとNode-REDの両方をインストール
スタンドアローンでもOK。
2.ビットコインノードにblocknotify設定を追加
Advanced Settingに以下を追加。
スタンドアローン版なら1880ではなく1881とすること。
blocknotify=curl "http://<UmbrelマシンのIPアドレス>:1880/blocknotify?block_hash=%s"
3.ビットコインノードコンテナにcurlをインストール
シェルで以下コマンドを実行。
docker exec -it -u root bitcoin_app_1 bash -c "apt update && apt install curl -y"
Node-REDにブロックハッシュを送信するコマンドcurlがないので入れておく。ビットコインノードアプリを再起動すると消えるので注意。
4.Node-REDで受信用http-inノードとhttp-responseノードを追加
http-inノードはメソッドをGET、URLは/blocknotify
http-responseノードはステータスコードを200

msg.payload.block_hashに文字列としてブロックハッシュが入る。
以下が書き出したノード。これをコピーして読み込みすると良い。
[
{
"id": "8c54b0db52544bba",
"type": "http in",
"z": "e4ec3c455db6ecef",
"name": "",
"url": "/blocknotify",
"method": "get",
"upload": false,
"skipBodyParsing": false,
"swaggerDoc": "",
"x": 260,
"y": 60,
"wires": [
[
"4dbfddfc2658447d",
"1df1ee8021c24fe8"
]
]
},
{
"id": "4dbfddfc2658447d",
"type": "http response",
"z": "e4ec3c455db6ecef",
"name": "",
"statusCode": "200",
"headers": {},
"x": 440,
"y": 60,
"wires": []
},
{
"id": "1df1ee8021c24fe8",
"type": "debug",
"z": "e4ec3c455db6ecef",
"name": "ブロックハッシュ受信",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 480,
"y": 100,
"wires": []
}
]
受信するとデバッグではこう見える。

おわり
<メモ>
・blocknotify設定は1つだけのようだ。複数飛ばしたいならシェルスクリプトを作成してそこに複数curlを書いて実行させればよい。
例)
~/umbrel/app-data/bitcoin/data/bitcoinにblocknotify.shを作る。
内容は
#! /bin/bash
curl http://node-red_web_1:1880/blocknotify?block_hash=$1
curl http://<ADDR>:<PORT>/blocknotify?block_hash=$1
bitcoinの設定は
blocknotify=bash /data/bitcoin/blocknotify.sh %s




