nextjs(reactjs) + bitsocketに決めた話

先に要点

nextjs9.4時点でwebsocketサンプルが少ない。
一旦なんちゃってchat風のプロトタイプは出来た。
nextjs関係ない実装になったけど。

はじめに

昨今のbitcoinエンジニアはnodejsを使います。
ライブラリなどのサンプルもnodejsかpython
Deno(デューノ) v1がでたけどフレームワーク
などもまだなので、Twetchも使っているnextjsを
使うことにした。

プログラミング言語の情勢(特にjavascript)

いくつかの記事をみました。
https://note.com/erukiti/n/na654ad7bd9bb
日本でシェアのあるPHP。これがWebsocket系に弱い。
まぁjsでやればいいんだけど...。それどころか情勢を見ると、
PHPでよくね?第一筆頭のRubyは超急速にシェアを失っている。
フルスタック型?のプログラムがもうオワコンのようだ。

nodejs(nextjs)について

こういう便利ライブラリの知識が皆無。
確かこういうのあるよね?みたいな知識を育まないといけない。

npm install eventsource
npm install classnames
npm install sass
npm install remark remark-html
npm install date-fns
npm install gray-matter

一見遠回りだが、nodejsを用いてブロックチェーンツールを使った方が非常に楽で便利になる。恐らく1か月後には開発スピードが追い付く。サンプルもあるし、質問を投げても当然答えてくれる人が多い...と思う。unwriterもまだ古いライブラリを使っていると度々アラートを流しますがnodejsで構築してないと、どうにもこうにもbitsocketは使えないんですよ。

雑談

そうそうなんでこう舵を切ったかというと、unwtiterのツールが古いものから徐々に障害起こしたり、復旧もしぶしぶやっている感があり、新しいの使ってくれと毎回アナウンスしていたからです。そう、もはや先月使ったものがまともに動かない事態に(笑)。あなたはこの世界に飛び込みますか?mbが作成したbsvライブラリはv2を開発中で、そこも結構なインパクトになると思う。もう学習予定が山積みになっているし、共有したところで来月には動かなくなっているかもしれない。

それにnodejsは序章でbitcoinエンジニアはその先のbitcoin scriptでマイナーというスーパーコンピュータにプログラム処理を極力預けなくてはいけない。そこまでできないと、ワイブロになる。それブロックチェーンでなくてもいいよね?と。セキュリティ確保もここが肝だと思う。学習最終到達地点だと思う。最初にここだけやっても何も作れないので、ある程度作ってから、こここれで置き換えられるんじゃね?というやり方で、皆やっていくんじゃないかと妄想している。

実際世の中にあるビットコインブロックチェーンサービスはブロックチェーン使っているから処理が遅いアプリと、ブロックチェーンはごく一部で、使ってる風だから処理が遅くないアプリがほとんどです。これはマイナーのスペック向上と、コンテンツがマイナーをうまく利用する必要があります。

今回冒頭に記載したチャットもどきのプロトタイプはTwetchの投稿をリアルタイムで取得して表示する感じです。あとはテストで何かしらnextjsでブロックチェーンにデータをアップできたら、やり取りは成立します。

ビジネスで考えると合理的にユーザへのサービスを向上(UX)させるのですが、趣味と思想と学習を兼ねて作りたいので、フルブロックチェーンを目指していきたい。

追記

勉強する前に宣言するからこうなるんだが、nextjsはサーバサイドjsなので、websocketやeventsourceとは相性が当然の事悪い。チャットなのが特にそうで、たまたまチャットで始めてしまったが、幸か不幸か早々壁にぶち当たった。ブログや掲示板程度ならよいが、相互疎通系非同期系はnextjsなしのreactでいくか、場合によってはjqueryの方が良い。