アドベントカレンダー
この記事はSRE Advent Calendar 2023 2日目の記事です。
1日目はしょっさんのGitHubのorganization移行をやったお話でした。
転職しました
2023年11月30日で、暗号資産交換業者ビットバンクを退職し、12月1日にスリーシェイクに入社しました。
ビットバンクでは関係各位お世話になり、ありがとうございました。
スリーシェイクでは、皆様お世話になります。
SRE構築総合支援サービスを行うSreake事業部にて、これからガッツリとSREの世界で頑張っていきます!
日本のSREを盛り上げていきたいと思います。SREの皆様、よろしくお願いいたします!
これまでやってきたブロックチェーンのキャリアについて
私は、ビットバンクの前は、フレセッツという暗号資産交換所向けウォレットベンダーにいました。途中買収により、HashPortに。
暗号資産業界にかれこれ5年いて、ウォレットの新規開発フェーズだったフレセッツでの最初の1年を除いて、4年間はブロックチェーン領域のEmbeded SREをやってました。
この記事を書いているときは、スリーシェイクに入って1日目が終わったところであり、スリーシェイクでの経験で書くのが無理なので、 自分のキャリアの棚卸しも兼ねて、これまでのブロックチェーンのことを振り返ろうかな、と思います。
ブロックチェーンノード構築、運用はインフラエンジニアの仕事であり、SREの皆さんもやる機会があるかもしれないので、参考になれば幸いです。
ブロックチェーンノード
ビットコインやイーサリアムなどの暗号資産(仮想通貨)について名前は聞いたことあるかな、と思いますが、 トランザクションやブロックのデータを蓄えている分散台帳です。
「フルノード」という言葉を聞いたことがあるかもしれません。ビットコインのフルノードの場合は、過去から全てのトランザクションとブロックデータを持っています。
イーサリアムなどの通貨によってはフルノードでも全てのデータを持っておらず、アーカイブノードが全てのデータを持っているなど名前が異なったりしますw
ここではブロックチェーンノードということにします。
ブロックチェーンノード運用の何が大変か
フレセッツに在職していた当時、同僚が書いたブロックチェーン徒然日記も併せてご覧ください。
インスタンスとコスト
ブロックチェーンノードというのはアプリケーションとデータベースを持っており、特殊なシステムと言えるかな、と思います。
CPU、メモリをくうて、でかいサーバーが必要です。
ブロックチェーンデータが大きすぎるため、AWSでいうとFargateは使えず、EC2を使う必要があります。
m5.xlargeとかxlarge、2xlargeなどでかいインスタンスを使用してコストもすごいです。
コストを少しでも抑えるため、適切なインスタンスサイズを模索するのも大事な仕事でした。
ビットバンクにいたときは、通貨数もどんどん増えて、通貨ごとに異なるブロックチェーンノードの種類もどんどん増えていきました。
個人でブロックチェーンノードを利用する際、ノード内のウォレットを使用したりしますが、 商用利用する際は、安全性を考えて、安全な設計のウォレットをノードの外部で動かします。
ブロックチェーンノードは参照のみでよいため、複数の開発環境のノードを1台にまとめて、 複数環境のウォレットからアクセスするなど、コスト削減も推進しました。
最近話題のFinOpsを実践できたとも言えます。
Gethが高負荷で落ちたり同期遅延
イーサリアム(Ethereum)のノードgo-ethereum(通称Geth)を2019年とかに運用していたときは、品質も悪く、 高負荷でプロセスが死んだり、ブロックの同期遅延が起こったりして大変だったな、と思い出しました。
あとは、Ver.の違いでチェーンの分岐が起こる事故起こったり、致命的なバグのHot-Fix版が出た数日後にバグを突かれてチェーンの分岐が起こったり。
なかなか大変でしたね。
ビットコインと同じくマイニングしてブロックを生成するPoWから2022年9月にステーキングしたバリデータノードがブロック生成するPoSに移行した後は安定したと思います。
Web3のプロジェクトとかやるとなると、Geth使うかもしれませんが、今はマシです。
Polygonなどのノードではデータが6TB
同じくWeb3のプロジェクトで、Polygonノードの運用とかやるなら大変ですよ。
ブロックチェーンデータが6TBとかあるので。。。
Gethの場合は初期から同期しても、インスタンスのサイズによりますが、1週間とかでできるものの、 Polygonの場合は永遠に終わらないので、 公式が配布しているSnapshotをダウンロードして展開してからプロセスを起動するのですが、 Snapshotのダウンロードだけで丸一日かかったりします。
これだけデータがでかいと途中でダウンロード失敗することもあり、やり直しが何回も発生して大変でした。
振り返って
ブロックチェーンノードの稼働自体は難しくないのですが、ブロックチェーンネットワーク自体がおかしくなると、 ウォレットの入出金を止める必要があったり、外乱も大きなシステムでした。
こんなじゃじゃ馬と格闘したのもいい経験です。
これからは
一旦ブロックチェーンは一区切りで、これからはスリーシェイクのSreakeにて、 kubernetes等を使用したクラウドネイティブなアーキテクチャを構成していき、効率的に信頼性を高める仕事をしていきます。
はてなブログを開設して1記事目が今回でしたが、今後も記事を増やしていきたいと思います。
ブロックチェーンでマニアックだったかと思いますが、最後までお読みいただきありがとうございました。
次回は
SRE Advent Calendar 2023 3日目はみゅーみくすさんのゆるやか成長スタートアップのEnabling SRE的活動です!