「Linera」で実現する高速Dapps開発 〜孤独のグルメ風エンジニア解説〜
孤独のグルメ風に解説しますね。
ふぅ、今日も一日お疲れさん。取引先との打ち合わせも終わったし、この後は少し自分だけの時間だ。新しい技術の情報を漁るのが、最近のささやかな楽しみになっている。
(PCをパチパチ...)
ん?なんだこれは...Linera...。Linera protocol...。リネラ?リネラか。
どうやらこれは、WebAssembly (Wasm) を使って動く、高速なブロックチェーンプロトコルらしい。
ブロックチェーンといえば、遅くて手数料が高い...そんなイメージだったが、こいつは違うって言うのか?
「マイクロチェーン」なるものが、ユーザーごとに作られる...。ほほう...。まるで、一人ひとりに専用の通路が用意されているようなもんか。これなら渋滞知らずだ。
よし、ちょっと調べてみるか。この空腹を満たす前に、まずはこの知的な空腹を満たさなければ。
さて、Lineraの技術的な部分を紐解いていくか。どうやら、これがソフトウェアエンジニアにとって、かなりいいツマミになりそうだ。
Lineraの最大の特長は、マイクロチェーン (Microchains) だ。 一般的なブロックチェーンは、全てのトランザクションを一つの大きな鎖に記録する。だが、Lineraはユーザーごとに独立した小さな鎖を作る。
これはまるで、大通り(メインチェーン)から、各家庭(ユーザー)に繋がる専用の細い道(マイクロチェーン)を作るようなものだ。大通りを歩かなくても、自分の道だけで用事が済む。これにより、トランザクションの処理が格段に速くなるし、手数料も劇的に安くなる。
五郎
なるほどな。俺の腹も、大通りで皆が信号待ちしてる時に、横道からサッと店にたどり着くようなもんだ。これは、いい。
Lineraでは、スマートコントラクトをRustで書いて、Wasmにコンパイルして動かす。 これは、エンジニアにとっては馴染みやすい環境だ。
Wasmは、様々なプログラミング言語からコンパイルできるバイナリフォーマットだ。これを使うことで、Rustだけでなく、将来的にはGoやC++、TypeScriptなど、好きな言語でブロックチェーンアプリを開発できる可能性を秘めている。
五郎
ほう...。俺はRustを勉強してるが、他の言語でも書けるようになるのか...。まるで、いつも行く定食屋のメニューが、どんどん増えていくようなもんだな。これも、いい。
マイクロチェーンのおかげで、Lineraは高いスケーラビリティを持つ。 つまり、ユーザーが増えてもパフォーマンスが落ちにくい。
さらに、複数のマイクロチェーン間でアセットやメッセージをやり取りできる相互運用性 (Interoperability) もある。
五郎
そうか...。俺が買った商品を、別のチェーンの友達に送ったりできるわけか。これは、いい。まるで、店の軒先で買ったお土産を、そのまま手渡しで友達に渡すようなもんだ。
よし、腹も満たしたし、いよいよLineraを触ってみるか。導入は意外と簡単そうだ。
Rustのインストール まずは、Rustをインストールしておく必要がある。
# rustupをインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
LineraのCLIツールをインストール Linera SDKのCLIツールをインストールする。
# Lineraのビルドに必要な依存関係をインストール
# macOSの場合
brew install pkg-config openssl
# Ubuntuの場合
sudo apt-get install pkg-config libssl-dev
# linera-sdkをインストール
cargo install linera-sdk --locked
新しいプロジェクトを作成
linera-sdkを使って新しいアプリケーションプロジェクトを作成する。
linera new my-first-app
五郎
ふむ...。まずは材料を揃えるってわけだな。
このLineraというやつ、ただのブロックチェーンじゃなかった。 高速で、安くて、開発者にも優しい。まるで、俺の知らない間に、行きつけの定食屋がミシュランの星を取っていたような驚きだ。
この技術は、ゲーム、SNS、フィンテックなど、多くの分野で使われる可能性を秘めている。
五郎
…しかし、この話は長くなりそうだ。さて、そろそろ、次の店を探しに行くか。腹が減った。
(店を出て、一人夜の街を歩き出す五郎...)