Lisk SDK を使ってブロックチェーンアプリを作りたい ~作るアプリを考える編~
今回の内容
万博おじが作ろうとしているアプリの説明
やりたいこと
Lisk SDKを使ってクイズアプリを作りたい
正解したら報酬を渡す
問題作成時の手数料は報酬の合計
問題の答えは表示(SHA-256ハッシュ化したもの)
どんな機能が必要か
・問題を登録する機能
・問題に回答する機能
なので、Lisk SDKを使って最低限2つのカスタムトランザクションの作成が必要
問題の登録と回答はどのようにして行うか
ユーザーがブラウザ上から操作
ブラウザ上で入力した情報をカスタムトランザクションへ受け渡す
カスタムトランザクションは受け取った情報を元に結果を返却
LiskのCoreAPIは外部に提供したくないので、独自のAPIを作成する
それぞれの説明は以下を参照
WEBサイト
ユーザーがブラウザから操作する
一番大事で一番時間がかかる
問題作成時の入力項目
問題、答え、報酬、報酬を配る人数、パスフレーズ
問題回答時の入力項目
答え、パスフレーズ
使用言語など
HTML
JavaScript (Node.js)
CSS
※EJSを使うかもしれない
独自API
WEBサイトからの入力情報をチェック
カスタムトランザクションへ連携
(問題の答えはSHA-256ハッシュ化)
使用言語など
Node.js
Express
カスタムトランザクション
問題登録と問題回答の2つ
チェーンに書き込む為、受信情報に対して最大限のチェックを行う
(トランザクション手数料の適正チェックなど)
使用言語など
Node.js
LiskSDK
※TypeScriptで書くかもしれない
カスタムトランザクションに渡す情報
Liskのトランザクション情報のassetに以下を設定
問題登録時
asset: {
quiz: {
question: String,
answer: String,
reward: [String]
}
}
問題回答時
asset: {
data: 回答対象のトランザクションID,
quiz: {
answer: String
}
}
これが出来ると他に何ができそうか
WEB上での仕事の依頼について契約と報酬に信頼性を持たせることができるかもしれない。
例えば
仕事の依頼者-受諾者間で合意が取れた場合依頼内容を問題としてチェーン上に登録
依頼者は受託者に対して契約が完了した際、答えを教えることで支払いが完了する
(受諾者は依頼者の支払い能力が最低限あるかどうかがわかるしチェーン上に契約が残るため不正の防止になるかもしれない)
上記について考える必要があること
・契約が完了しなかった場合に依頼者に報酬を戻す方法
・契約が完了しても答えを教えないという悪い奴への対応
報酬が戻せると所得隠しや契約完了後に受託者に支払わないということも出来てしまう。(チェーン上に残るので足は付くが。。)
おわりに
というようなことを考えながらのんびり作ってます。
lisknonanika - LQuiz
万博おじが作る前に誰か作ってくれてもいいという気持ちでソース公開&noteを書いているのでどうぞご自由に(笑)
万博おじについて
万博記念公園と新しいものが好きなプログラムやさん
お金がなくていつもこまっているので支援おねがします(;^ω^)
Twitter:@ys_mdmg
github:lisknonanika
Discord:@mdmg
Lisk:mdmg(5380827711560203827L)
その他加入している非公式コミュニティ
・Lisk Japan
・Lisk 情報システム部 (Twitter内グループ)
・Lisk ゲーム部 (Twitter内グループ)
この記事が気に入ったらサポートをしてみませんか?