Blockstream/esplora
最終更新日: 2025/07/16
2025/07/16: commit_id=52de3ccf39c56ff839e26829ccd6d18f169832f7
用途
Blockstream/electrsを使ったブロックエクスプローラー。
インストール
$ git clone https://github.com/Blockstream/esplora && cd esplora
$ npm install
Dockerコンテナ版もあるが、Bitcoin regtestで試したところBitcoinノードとElectrsも一緒に起動した。 私の用途に合わなかったのでそれ以上試していない。
実行
Elctrs の REST API が http://localhost:3002/
で動いている場合はこうなる。
環境変数の終わりは /
を付けること。
この設定だとSTATIC_ROOT
とAPI_URL
が同じlocalhost
ではあるもののポート番号が異なるためOriginが別と判断される。
ここではSTATIC_ROOT
からAPI_URL
を呼び出す経路に影響がある。
関連する設定で、esplora には環境変数CORS_ALLOW
が、electrs には --cors
がある。
どちらに対して設定するかというと、「アクセスを許可する」なのでAPIを提供するelectrsに--cors="http://localhost:5000"
などとして相手を許すようにしておく。
# Don't forget last "/"
$ export STATIC_ROOT=http://localhost:5000/
$ export API_URL=http://localhost:3002/
$ npm run dev-server
STATIC_ROOT
がブラウザでアクセスするURLである。
別PC だった場合はこれに IPアドレスなどを設定するとよさそうなのだが、”Unexpected token” で500エラーになる。
おそらくこのissueと同じだろうが、まだOPENのままだった。
Electrs を立ち上げたPC が headless の Raspberry Pi3 だったのでブラウザが使えないから外部からアクセスできるようにしようとしているのであった。
それをあきらめ、Electrs にアクセスするAPI_URL
を別PC で動かしている URL にして Esplora 自体はブラウザが使用できる PCで立ち上げようと考えた。
が、これはこれで CORS がうんぬんということでエラーになった。
開発サーバの設定にCORS_ALLOW
があるのでURLだったり”*“だったりを書いてみたのだが、どうにも解決しなかった。