Lisk SDK v6を使ったブロックチェーンアプリの作り方 その3
はじめに
こんにちは万博おじです。
その1では環境構築、その2ではLisk SDKを使ったブロックチェーンアプリを作るうえで覚えておくこと、考えておくことを書きました。
ということで、今回から公式ドキュメントを参考にしながら開発を行っていきます!
開発の前に
エディタのインストール
コマンドラインのみで開発するのはとてつもなく苦労するので、Visual Studio Codeなどのエディタをインストールしましょう。
Visual Studio CodeはUbuntu Softwareアプリからもインストールできます。
Gitの設定
ファイルのバージョン管理をするために以下のコマンドを実行してGitの設定を行いましょう。
git config --global user.email あなたのメールアドレス
git config --global user.name あなたの名前
開発開始
1. ブロックチェーンアプリを作成
ベースとなるブロックチェーンアプリを作成するため、以下のコマンドを実行します。
cd ~
lisk init hello
コマンドを入力すると、以下の内容を入力するように求められます。
Application name
ブロックチェーンアプリの名前を入力します。
Chain ID
ブロックチェーンのIDを入力します。
設定ルール
・サイドチェーンにする場合はLiskを含めたすべてのチェーン内で一意になるIDであること。
・16進数で4バイト(00000000~ffffffff)で設定すること。
・前1バイト(前2桁)は以下に従うこと。
00:メインネット
01:テストネット
02:ベータネット
※開発中やサイドチェーンにしない場合はあまり気にする必要はありません。
※16進数表記を表す 0x は不要です。
Application description
ブロックチェーンアプリの説明を入力します。
Author
ブロックチェーンアプリの作成者を入力します。
License
ラインセンス形態を入力します。
ここまで行いエラーがなければコマンドを実行した場所に「hello」というフォルダが作成されているはずです。
2. ブロックチェーンアプリを実行
エディタで作成した「hello」というフォルダを開きます。
以下のコマンドを実行します。
cd ~/hello
./bin/run start
しばらく見ていると10秒ごとにブロック生成のログが出力されると思います。
ということで、動作確認が出来たら CTRL+C でアプリを停止します。
3. ダッシュボードプラグインの導入
以下のコマンドを実行し、ダッシュボードプラグインをインストールします。
cd ~/hello
npm i @liskhq/lisk-framework-dashboard-plugin
hello/config/直下にcustom_config.jsonを作成し、以下を記述します。
{
"rpc": {
"modes": ["ipc", "ws"],
"allowedMethods": ["*"]
},
"modules": {},
"plugins": {
"dashboard": {
"applicationName": "hello",
"applicationUrl": "ws://localhost:7887/rpc-ws",
"port": 4005,
"host": "127.0.0.1"
}
}
}
hello/src/app/plugins.tsを以下のように修正します。
/* eslint-disable @typescript-eslint/no-empty-function */
import { Application } from 'lisk-sdk';
import { DashboardPlugin } from '@liskhq/lisk-framework-dashboard-plugin';
export const registerPlugins = (app: Application): void => {
app.registerPlugin(new DashboardPlugin());
};
以下のコマンドを実行してアプリケーションをビルドします。
cd ~/hello
npm run build
ビルド後に以下のコマンドを実行します。
cd ~/hello
./bin/run start --config config/custom_config.json --overwrite-config
ブラウザで以下にアクセスします。
http://localhost:4005
画面左上のcurrent heightが10秒ごとに増えることを確認したたら CTRL+C でアプリを停止します。
4. PM2の導入
以下のコマンドを実行します。
npm i -g pm2
hello/直下にpm2_config.jsonを作成し、以下を記述します。
{
"name": "hello",
"script": "./bin/run start --config config/custom_config.json --overwrite-config"
}
また、PM2でログ出力の管理を行うpm2-logrotateも以下のコマンドを実行して導入しておきましょう。
pm2 install pm2-logrotate
以下のコマンドでブロックチェーンアプリを実行します。
cd ~/hello
pm2 start pm2_config.json
ダッシュボード(http://localhost:4005)を開き、画面左上のcurrent heightが10秒ごとに増えることを確認したたらpm2 stopのコマンドでアプリを停止します。
5. ブロックチェーンアプリのデータを削除
とりあえずここまで行ったら以下のコマンドでデータを消しておきましょう。
rm -rf ~/.lisk/hello/data/
おわりに
今回から開発開始ということでしたがいかがだったでしょうか?
開発開始といっても開発らしい開発はやっていないので微妙だったかもしれませんね…
次回はモジュールやコマンドあたりを作るところまで出来たらいいなと思っています。
おつかれさまでした。