ブロックチェーンエンジニアはじめました

最近ブロックチェーンおじさんしてる。

Solidity書いたり、ローカルにイーサリアムネットつくったりしてるんだけど、なんか世に出してみたくなったのでKaleidoというものを使ってみたりしてる。

技術的なもろもろはGithubにのせたので、ちと思ったことをつらつらと。

Solidity

日本語の情報より英語の情報みたほうがよかった。やっぱり書き方は本家のほうがちゃんとしてる。バージョン低いとコンパイル通らなかったりする。簡単なSolidityコードだけどSPDXのコメントは必要で、その箇所を取り除くと使えない。だがそれが日本語のドキュメントにはない。

unlicensedではどうかとおもうので、ここになにか書くんだとおもうけど、とにかくこのSPDXをコメントでいれないとコンパイルしてもらえない。

brew install ethereaumしたあとRemixを使うとSolidityのデバッグはいくらでもできるので、トライアンドエラーを続けるしかないね。

上は0.5.0とかに落としたけれど、現行の0.6.10では使えないメソッドがあふれかえっているので注意が必要。Railsもそうだけど、使うなら最新版。

Kaleido

イーサリアムへの接続を仲介してくれるプラットフォーム。それぞれの動作に対するAPIを提供してくれる。

それなりに軽いコードでもセキュアに動かしてくれているようなのでいいんだけど、以下の部分が気になった。

  • ドキュメント間違いが多い
  • APIのエンドポイントが分かりづらい
  • AWSかAzureがないと使えないような感じを受けてしまう

管理画面は見づらいのは今後改善していくのだろうけれど、Kaleidoにエラーがでたり、トランザクションがなぜ発生していないのか、みたいなところは一切でないし、もちろん使ってるところも少ないので情報もない。管理画面とドキュメント、PRだせるなら出したいのだがどこに送ればいいだろうか。

マスタリングイーサリアム

読んだ。

ブロックチェーン、イーサリアムを学ぶなら読んでおけば大体わかりそう。ただ、所々和訳が……ていうのを除けばとてもいい書籍。あと最後のコンセンサスで息切れしてるっぽかったのがクスっとした。そこはあとで別な形で学ぼう。

用語集が最初でてくるんだけど、用語の説明になっているようななっていないような印象だったので、どこかの資料だったりと読み合わせは必要。

現状

とりあえずSolidityでコードを書いてコンパイル〜Kaleidoを経由してトランザクションをはったあとブロックを作る、レシート受け取りまではできた。

一通りの流れは実装できるようになったので、もうすこしイーサリアムについて学ぶ&Solidityで深いコードをかけるようになりたい。

今のステータスはGithubに載せてる。

srockstyle/smart_contract

ちなみになんでブロックチェーン?

知り合いに教えてもらって興味がわいてきたのと、あとやっぱり自分のエンジニアとしての市場価値とか、そういうのを考えるようになったから。

なんだろーなーつぎーと思ってたし、機械学習とかAIとか、なんかああいうのは興味がもてなかった。データいっぱいあるのが前提での技術だからなのかなあ。前知り合いに画像分析のアプリを作ろうと言われたけど、やっててあまり楽しくなかった。どうやら僕は分析とかそういう系のは向いてないらしい。

あとリクルートとかで「SREの仕事が〜」っていうのは割とくるんだけど、今個人的にSREの仕事にフルで入る気になれない。多分今は、ということなのかもしれないけど。

Webで生きててもいいんだけど、僕がWebだけで生きるにはすこし限界を感じていて、もういっこ武器というか、分野を広げたかった。

こういった案件、海外にもおおいみたい&海外展開が普通みたいなところがおおいらしいんで、英語からもいよいよ逃げられなくなってきた感じが強い。