Blockstream Satellite APIで配信されたデータを衛星から受信する!
前回、Blockstream Satelliteをセットアップしてビットコインのブロック情報をダウンロードするところまで書きました。
今日は、Blockstream Satellite APIを使って配信したデータを人工衛星経由で受け取ってみようと思います。
【2021/6/2 追記】ソースコードダウンロードできました。
基本はblocksat-cli
今回もblocksat-cliのお世話になります。ターミナルの新しいタブを開き、
blocksat-cli api listen --plaintext --save-raw --echo
を実行します。たくさんオプションを指定していますが、オプションについて詳しくはblocksat-cli api listen -hで確認できます。GPGを使ってデータを暗号化したい場合などは要確認です。

↑開始したあと、配信されたテキストデータを受信するとこのようになります。
2回失敗して自分がたどり着いたこれらのオプションについて解説すると:
--plaintext : これを指定しないと、指定した秘密鍵を使って解読できるデータしか受信完了(保存)されません。
--save-raw : plaintextを指定しても、これを指定しないと"Trying to decapsulate a non-encapsulated message"などというエラーが出ます。受信できたデータがそのままの状態で、その都度保存されます。
--echo : これは指定しなくてもいいですが、指定すれば受信したテキストデータの内容が上記スクショのようにコマンドラインに出力されます。
Blockstream Satellite APIでデータを配信
Blockstream Satelliteから任意のデータを配信するには、ブラウザでこのページにアクセスするか、APIを直接利用するか、インターネットに接続されたデバイスからblocksat-cliを使用することになります。
ブラウザ版はわかりやすいので説明を省略しますが、最大1MBのテキストまたはファイルがアップロードでき、最安で1バイトあたり1ミリサトシで配信できます。(最低料金は1サトシ)
例として、8192バイトのデータを配信するのに8.192サトシということです。
blocksat-cliを使用して配信を依頼する場合は、
blocksat-cli api send : テキストデータを配信する場合blocksat-cli api send -f [file] : ファイルを配信する場合
を実行して案内に従いましょう。これらにも、鍵を指定して暗号化する等のオプションが存在しますが今回は使用しません。
ファイルの配信
さて、先程のスクショにてテキストの受信は試せたので、次は画像ファイルを配信してみたいと思います。テキストにせよファイルにせよ、--no-saveオプションを指定しない限り、テキストもファイルも受信の都度ファイルとして保存されます。
このぺぺ画像を配信してみることにしました。(サイズ60,725バイト)

ディスク上のサイズで料金がかかるため、61.440サトシ支払いました。
…
…
…が。
全く反応なし。受信できなかった模様です。
アンテナの位置を買えてから"Signal Quality"がせいぜい80%台で、受信帯域幅も0.9Mbps程度 (理想の80%くらい)のため、大きな連続したデータの受信が苦手なのかもしれません。
実際にblocksat-cli api listen --btc-srcでビットコインのソースコードをダウンロードするのもなかなか上手くいきません。たぶん大きいファイルだからだと思われます。もっと受信環境を整える必要がありそうですね。
というわけで、縮小したより小さなぺぺで試すことにしました。(7,886バイト)

およそ8サトシを支払い、数秒待つと…


さっきの"test no.3"というテキストファイルの隣に保存されていました!
他にもこんなことができる
blocksat-cli api listenにはもう1つ、強力かつ恐ろしいオプションが存在します。
それは--exec EXECです。ファイルを受信するたびに、任意のシェルコマンドを実行することができます。ただし安全のため、--insecureを指定しない限りは--sender SENDERで送信者の公開鍵を指定する必要があります。--insecureを指定しない限りは…。
ヘルプでは使用例として--exec 'cat {}'で受信したファイルをコマンドラインに出力できるよ、としています。特定の主体経由での配信時になにかを作動させたい場合などに便利そうです。
今度真面目になにか作るときにテストしてみたいと思います。
追記 (2021/6/2)
ついにBitcoin Coreのソースコードをダウンロードできました!





