Solidityによるコントラクトの作成(2) - オプション取引

前回はSolidityの使い方について説明しました。

sendeetech.hatenablog.com

今回はSolidityを用いてオプション取引を実装してみましょう。

コントラクト概要

今回はコール・オプションを実装します。コール・オプションとはある資産を買う権利のことです。(ちなみにある資産を売る権利をプット・オプションといいます)。

コール・オプションのカラムは以下のようにします。

key value
資産 ビットコイン
数量 1
権利行使価格 ¥50,000
プレミアム ¥5,000
期日 1463127335
売り手 0xfffe72483eb0bc804295af2416d2aeb4fa15a8bc
買い手 0x0e7b3774402f2f19a05e7a279238a4a1fe5e2bc0

14631273352016/05/13 8:15am(UTC)UNIX TimeStampです

以下が完成形のコードです。

Read more

Solidityによるコントラクトの作成(1) - 基礎

今回はSolidityを用いたコントラクトの作り方について説明致します。

開発環境 OS : OSX 10.11.4

Ethereumインストール

Ethereumをインストールしていない方は、インストールしてください。
Consoleで以下のコマンドを叩けばインストールされます。

bash <(curl https://install-geth.ethereum.org -L)

その他のインストール方法についてはこちらを参考にしてください。

Ethereum立ち上げ

続いてEthereumをを立ち上げましょう。今回はテスト用に使うため、Private_netを立ち上げます。

Read more

Elements Alpha-Sidechain構築方法

Alpha-sidechainの構築方法です。
起動する部分までの方法を記します。

環境
ubuntu14.04(vagrantでOSX10.11.3上に構築)

コンパイル

1) build-essentialパッケージをインストールします。

sudo apt-get install build-essential

2) ツールをインストールします。

sudo apt-get install libtool autotools-dev autoconf pkg-config

3) 依存関係にあるパッケージをインストールします

sudo apt-get install libssl-dev libboost-all-dev libdb4.8-dev libdb4.8++-dev

注意:libdb5.1ではなくlibdb4.8を使ってください。libdb5.1では動かない可能性があります。

Read more

Boilerplateを使ったDapps(分散型アプリケーション)の作成(4)

最終回です。

これまでの記事

sendeetech.hatenablog.com

sendeetech.hatenablog.com

sendeetech.hatenablog.com

最後に

  • Mongoに登録されたコントラクト一覧を表示する機能
  • その契約の詳細を表示する機能

を実装したいと思います。

Read more

Boilerplateを使ったDapps(分散型アプリケーション)の作成(3)

続きです。

sendeetech.hatenablog.com

sendeetech.hatenablog.com

この連載の最後に、ContractやViewを簡単にカスタマイズして、独自のDappを作成してみたいと思います。
テストネットに接続してマイニング中、MeteorでBoilerplateを起動中、ということを前提とします。
この辺りの詳しい話は、第1回と第2回に記載しています。

成果物

今回最終的に目指すのは、下記3つの画面(と機能)を作成することです。

  1. 契約作成(金利スワップの契約)画面を作成
    ・ SmartContractの契約情報をブラウザから入力可能
    ・ MongoDBにも契約情報を保管
    ・ マイニングにより契約がブロックチェーン(テストネット)に埋め込まれる
    ・ マイニングが完了するとContractのアドレスが取得可能になる

  2. 契約一覧画面
    ・ 作成した契約のサマリが一覧表として取得できる
    ・ 3の契約詳細画面へ動的リンクが貼られる

  3. 契約詳細画面
    ・ 登録された商品のIDを動的なURLとして、契約商品の詳細画面を表示する

Ethereumだけでなく、Meteorを使ったアプリケーションの基本的な作成の流れも理解出来るようになると思います。

Read more