Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Loom NetworkのDappチェーンにtruffleからコントラクトをデプロイする

More than 1 year has passed since last update.

Cryptozombiesで有名なLoom Networkが、Loom SDKのBeta版を公開した。
Loom SDK Beta
LoomSDKBeta.png

本投稿の内容

とりあえずDappチェーンを動かして見たい人のために、
『truffleを使って、シンプルなコントラクトをDappチェーン上にデプロイする』最短手順をメモしておく。
デプロイしたコントラクトには、truffle consoletruffle execなどでアクセスできる。

対象

truffleを使ってコントラクトをデプロイしたことがある人。
ganacheでもテストネットワーク(ropsten, rinkebyなど)でもメインネットでもOK。

テストした環境

  • OS: macOS Sierra 10.12.6
  • Truffle v4.1.11 (core: 4.1.11)
  • Solidity v0.4.24 (solc-js)

手順

基本的には公式のドキュメントに従っていくが、コントラクトのデプロイが目的なので不要なところは飛ばして進む。

必要なものをインストール

brew install wget
brew install go
brew install protobuf

Loom SDKのインストール

wget https://storage.googleapis.com/private.delegatecall.com/loom/osx/build-155/loom
chmod +x loom
cp loom /usr/local/bin/loom

Dappチェーンの起動

mkdir dapp-chain
cd dapp-chain
loom spin weave-blueprint
cd blueprint
make deps
make
cd build
loom init
cp ../genesis.example.json genesis.json
loom run

自分のコントラクトをデプロイする

シンプルなコントラクトを用意した。
https://github.com/ryokomy/loom-truffle-test

SimpleStore.sol
pragma solidity ^0.4.22;

contract SimpleStore {
    uint value;

    event NewValueSet(uint _value);

    function set(uint _value) public {
        value = _value;
        emit NewValueSet(value);
    }

    function get() public view returns (uint) {
        return value;
    }
}

1. 別のターミナルを開いて適当なディレクトリにリポジトリをクローンし、packageをインストールする。

git clone git@github.com:ryokomy/loom-truffle-test.git
cd loom-truffle-test
yarn install

2. 秘密鍵と公開鍵を作る。

loom genkey -a public_key -k private_key

3. デプロイする

truffle migrate --network loom_dapp_chain --reset

4. コントラクトにアクセスする
今回は以下のtruffle exec用のファイルを用意した。truffle consoleを使っても慣れた方法でアクセスできる。

# for set
truffle exec --network loom_dapp_chain tools/exec_set.js
# for get
truffle exec --network loom_dapp_chain tools/exec_get.js

まとめ

『truffleを使って、シンプルなコントラクトをDappチェーン上にデプロイする』ことができた。
また、そのコントラクトにtruffleのコマンドでアクセスできることを確認した。
このDappチェーンはローカルで動作している。

参考

LoomNetwork, Dappチェーンについて
- CryptoZombiesはフォークします!
- DAppチェーン 〜サイドチェーンを通したイーサリアムDAppのスケーリング〜
- Loom Network SDKアルファ版登場!
- Loom Network(ルームネットワーク)とは?-ゲームdAppsに特化したプラットフォーム-
- Loom Network – Zombieチェーンとは? 既存のチェーンとの違い
- Loom SDKベータ版をパブリック公開!!

その他
- WebSocketプロトコル
- ProtocolBuffersについて調べてみた

ryokomy
🏔Kyuzan (http://kyuzan.com)🏔 UI・UXにフォーカスしたブロックチェーンプロダクトを作ります / エグリプト (http://eggrypto.com) をリリースしました / 全ての新しい技術に興味があります / ▼ex Rhizomatiks Research ▼ex 東大 暦本研
http://ryokomy.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away