はじめに
みなさんはDFINITYとは何かご存じでしょうか?
DFINITYとは、ブロックチェーン技術を用いて分散型のクラウドプラットフォームを提供するプロジェクトです。簡単に言えばAWSやGCPのようなものを非中央集権的に使えるようにしよう!ってことです。(たぶん…)
仮想通貨バブルの真っただ中ですが私は乗り遅れたので、DFINITYで遊びたいと思います。
なお、この記事では公式のチュートリアル(https://smartcontracts.org/docs/quickstart/local-quickstart.html )に書かれていることをやるだけです。めちゃくちゃ易しく書かれているので、英語に抵抗がない方は公式を見ることを強くお勧めします。
実行環境
- Ubuntu 18.04 LTS(WSLで実行)
→ Ubuntu 20.04 LTSに変更
現在、DFINITY Canister SDKはmacOSまたはLinuxにしか対応していません。
環境構築
Node.jsのインストール
Node.jsが後で必要になるそうなのでインストールします。
Node.jsのパッケージ管理システムであるnpmもインストールします。
$ sudo apt install nodejs
$ sudo apt install npm
DFINITY Canister SDKの導入
DFINITY Canister SDKをダウンロードし、インストールします。
$ sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"
パスを通して
export PATH=$PATH:/home/user/bin
ちゃんと動くか確かめます。
$ dfx --version
これでdfxのバージョンが表示されれば良かったのですが、エラーが発生。
dfx: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by dfx)
GLIBCのバージョンが古いよ!って怒られてしまいました。一応今使っているバージョンが何か見てみます。
$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1.4) stable release version 2.27.
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 7.5.0.
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.
バージョンは2.27を使っていることが分かります。しかしGLIBCをアップデートするのは避けるべきとのことです。
Ubuntu 20.04に変更
色々と変にいじるよりもUbuntuのバージョンを上げてしまうのが一番お手軽です。
さくっとUbuntu 20.04 LTSをMicroSoftStoreからダウンロード&インストールします。
では、GLIBCのバージョンを確認します。
$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.2) stable release version 2.31.
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 9.3.0.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.
バージョンが2.31になり要件は満たせてそうです。
再び最初からDFINITY Canister SDKのインストールとパスの設定等を行い、今度はちゃんと動くか確認します。
$ dfx --version
dfx 0.8.3
しっかりとバージョンを表示することができました。
終わりに
とりあえずSDKが使用できる状態にはなりました。
次回は簡単なプロジェクトを作成し動かしてみたいと思います。
続き→ https://qiita.com/YakitoriBoyz/items/2bc3d15c069f5617d4db
参考
https://smartcontracts.org/docs/quickstart/local-quickstart.html
https://smartcontracts.org/docs/quickstart/newcomers.html