これは、Web3Loom.jsを使ってLoom DAppチェーン上にソーシャルネットワーキングを構築するサンプルである。 このシンプルなソーシャルネットワークでは、ユーザーは投稿及び投稿へのコメントができる。 ソースコードはGithubで利用可能。

コンパイルされたこのサンプル用のスマートコントラクトは、 Solidity version 0.4.24 (SimpleSocialNetwork.sol)を使用している。

開発

1.) 自分のDAppチェーンを起動しよう

前提条件に記されているように、Golangをインストール済みか確認すること。

git clone https://github.com/loomnetwork/solidity-social-example

cd solidity-social-example

cd dappchain
wget https://private.delegatecall.com/loom/osx/stable/loom
chmod +x loom

# 設定
./loom init
cp genesis.example.json genesis.json

# 起動
./loom run

2.) ElasticSearchとRedisのスタート

両サービスは、起動の修正とアプリケーションとの対話のために必要であることに注意しよう。

# macOS
brew tap homebrew/services
brew install elasticsearch
brew install redis

# macOSでサービスをスタート
brew services start elasticsearch
brew services start redis

3.) インデクサーをスタート

インデクサーは、スマートコントラクトから全イベントを受け取り、それをメッセージキューと高速データベース上に構築されたキャッシュレイヤーへと保存するサービスである。 このサービスによって蓄積されたデータは、http://localhost:8081/posts及びhttp://localhost:8081/commentsにて提供される。

注:これはNode8 で最も良く機能する。

brew install node@8
# 2つ目のターミナルで
cd solidity-social-example/webclient
yarn
node indexer.js

4.) webサーバーのスタート

WEBサーバーは、ユーザーがLoom DAppチェーン上のスマートコントラクトと対話可能となるフロントエンドを提供する。

# 3つ目のターミナルで
cd solidity-social-example/webclient

# インストール
yarn

# デモのスタート
yarn start

5.) 起動

ウェブブラウザでhttp://localhost:8080を開いて、シンプルなソーシャルネットワークを使ってみよう。