⛓️

パブリックブロックチェーン 上に 日本 をあげる話

2022/07/15に公開

まえがき

ビットコインブロックチェーン 上に、 オープンストリートマップ(OSM) の タイル をあげる 企画 を 2年位前 にためしました。
その時は、 アップロード はできても 費用が高く 現実的ではありませんでした。コンニチではどうだろうと 風邪もひいた し、気分転換に 再始動 しました。


MapSV いいます

安からず、高からず

タイル画像は 1枚 256x256 です。海だけの画像と街中の画像では容量が異なります。ざっくりと海だけのときは、こんなトランザクションです。
https://whatsonchain.com/tx/1f8a39e6a7d4025a9544b410aae890f9e6e8b0f3c6d67e9ee9f2bd87352c99ad

24 satなんで 0.0017 円 でアップロードされました。

どちゃくそ安い。円安だから(円安なら高いだろ)?いえ、以上に安い。
ロンドン?だかどっかのちょっとした街中ですと、
2,395 sat です。軽く100倍容量が違います。このときは 0.17 円かかる訳です。

タイルサーバいうのは、タイルが617,515,264枚あります。6億枚超えです。Avg.0.1円でアップしたとして、6千万円です。
これなら、タイルサーバを普通に運営したり、参加者に寄付した方がいい。
https://wiki.openstreetmap.org/wiki/Tile_disk_usage

ただこれ、実際に海の真ん中を巷の人類がみてるかというとみません。じつは使われているのは1.79%くらいらしいです。

6億 の 2% は、 1200万枚 です。そのコストが 0.2円 だとして、 240万円 です。
で、これを 日本 だけにすると 0.28% 。 7,200円です。

https://www.jice.or.jp/knowledge/japan/commentary02#:~:text=また、世界の面積は,はたったの0.28%25です。

7,200円 !? うそだろ、おい。

おい、嘘だろ。おい...ぉぃ。ってことで、試しに1000円分上げてみることにします。なんとなくタイルの範囲を絞ってあげていきます。

試しに淡路周辺の300枚をアップしてみます。ウォレットのutxoを確保してバッチでちまちまアップしていきます。「Column(列)」は横方向...なので

です。ウォレットの残高は 24,980,581 sat です。1,800円くらいなんで残高800円くらいまで走らせてみたい。テストしてたら、ちょいだふったり細切れになりましたが、 7000 - 7300 までをブロックチェーンにあげました。これは海も多いし都会でもないので、割安なはず。ちなみにzoom13では四国どころか、九州越えて韓国に上陸しそうなくらい横一列でした。逆は和歌山を遥かに越え千葉の下あたりまで横断するタイル数でした。

ちなみに txn-mempool-conflict とかでちゃうので、ゆっくりあげます。これは同じアドレスで Unconfirmed 状態でどんどん積み上げているからかなと思います。utxoがちゃがちゃつかいまくって、一旦落ち着け的な、たぶん。都度都度違うアドレスにすればutxoの懸念はなくなるんでしょうけど、めんどいのでやりません。

タイルサーバですが、ブロックチェーンにあがると、そこから取得して表示され、アップされてないタイルは灰色の404ステータスのタイル画像を表示しています。ブロックチェーンへのアップロードは、サーバでバッチ処理しています。mapsv自体は表に設置してある moneybutton でもアップできますが、これは 0.5sat/b 設定なので 10倍コスト が変わります。2年でビットコインブロックチェーンも成長しています。

300枚あげおえたところで、一旦すべてが Confirmed になるのを待ちます。 24,827,242 sat でした。※待たなくても残高は確定でした

\begin{align*} 24,980,581 sat - 24,827,242 sat &= ...? 153,339 sat !! \end{align*}

11円 ですね。 7,200円 のうち 11円 で 300タイル なら、まぁ妥当な気がする。しかし 1,000円 消費するための時間の方がかかるな...

とりあえずもくもくと淡路島を攻め続けます。ある程度上がったらまた記事を起こしたいと思います。ブロードキャストするにも物理的に?時間がかかるので...

しかしいらん海ばっかりあげてしまった。たまに航路?とか引かれているので、必要な人もいるんでしょうけど。。。

あとがき

これは一応暗号復号処理を入れています。そのため 生データ ならもうちょい 軽く なるはずです。一応権利など考えてダメな場合は、復号させずに使えないように配慮しています。さらには、もしいたずらに変な画像を差し込まれても、一定のルールで復号化されなければ表示もされません。そのため暗号復号を挟むことは理にかなっています。

地図は時代と共に変化します。その場合は、条件を上書きするようにデータをブロードキャストし、最新のもの1枚を取得してきます。そういう仕組みにしてるつもりですが、そこまで検証してません。

あとこのシステムはデータベースは存在しません。ブラウザのjsと、ブロックチェーン上のデータを引っ張ってくるマイナー的なポジション(API群)を、 mapsv が仲介しているだけです。仲介に クラウドフレア と、 mapsv のサーバでキャッシュ機能は活用しています。

※mapsvはラボプロジェクトなので、しょっちゅう実験とかして重くなったり、停止します。

連載

https://zenn.dev/dokokade/articles/198781033af0b0

https://zenn.dev/dokokade/articles/5b8a9a7ec4a8d6

https://zenn.dev/dokokade/articles/06f412a032433a

Discussion