bitbus2.0を使う

_unwriter氏が直近推している。というか他が手に回らないので、最新のツールを使ってくれという感じでいつも言っている。
性能もいいみたいだから使おう。なによりクエリーで$gtとか仕様上は使えるはずなのにgenecisで今は使えないので、bitbusでいけるか試す必要がある。まぁ使えなくても何とかなる気がするからいいんだけども。

docs.bitbus.network

これまで通りトークンを取得して、APIなのでどんなプラットフォームでもいけますよという超便利なビットコインクローラーです。
ドキュメントでいきなり"blk.i": { "$gt": 609000 }とあって動いてるgifがあるのでまぁーいけるでしょう!!

というかいままで

https://genesis.bitdb.network/q/1FnauZ9aUH2Bex6JzdcV4eNX7oLSSEbxtN/...

だったのを

https://txo.bitbus.network/block

にすればいいくさい?

GET形式からPOSTになったので地味に取得コーディングを変えんといけん。でも以前やった。curlを使えばいい。
何でやったかと思えばmoneybuttonのoauthだ。サンプルを公開したいがライブラリを使用しているので、ライブラリ毎公開する気はないので、今回もやりましたよー記事です。

しかしできねぇ!{"error":"invalid query"}になる!

・・・
・・・
・・・

おかしいぞ!って思って、nodejsのサンプル実行したら動いたので、何かしらcurlの送り方がおかしいっぽい。クッソ!!!!
でもnodejsのサンプルで「$gt」は動いた。小さな目的達成。そもそもドキュメントにaggregate以外使えるとある。まぁバグとかこれまでのはあったんすよ。
とりまPHPでもいけるように頑張る。世界はPHP眼中にない(笑)

・・・
・・・
・・・

ぎゃー、わかった。javascriptのサンプルqとかfindがなぜか囲いがねぇ。「"」で囲ったら余裕だった。ざけんな!

それ以外にもPOSTデータって大抵複数あるので、大方キーバリューの配列構成なんだけど、jsonのクエリー一つで完結しているのでPOSTデータを配列でいれてはいけない。
PHPのhttp_build_queryでだいたいエンコードするもんだけど、それもやるとおかしくなるのでやらない。無駄を極限まで省くためかは謎。まぁ動けばいい。

取れたと思ったら、大きなデータはBitFSに託されたみたいで一遍にとれない。うーむ、仕方ない。
bitfsやってなかったのでよくわからんけど、バイナリデータを持ってこなくても取得したアドレスを指定すれば描画されるっぽい。
これはこれで画像とかなら自前のサーバに負荷が掛からなくていいかも?暗号化とかしたら取得して復号化しないといけないけどね。

bitfs.network


そんな感じで、bitbus2.0 + bitfsでございました。最近外部jsとかチェーンにあげてそれを読むとかしてる人とかいてサーバレス近づいてきてます。しかし進展早いからキツイ。かといって遅れて入れば入るほど過程が飛びまくって分からんかもしれんね。