Cryptocurrency Research Lab.

Cryptocurrency関連技術についての調査・研究

【Ethereum】はじめてのSolidity

Ethereumイーサリアム上でSmartスマート Contractsコントラクトを実行するために、Smartスマート Contractsコントラクト用のプログラミング言語の一つである『Solidityソリディティ』について触れてみたいと思います。

Ethereum Virtual Machine

Ethereumイーサリアムは、『Ethereumイーサリアム Virtualバーチャル Machineマシン』と呼ばれるプログラム実行環境を持っており、専用のバイトコードを実行します。このバイトコードは人にとって可読性が高いものではないため、一般的には『[Solidityソリディティ』などの高級言語で書かれたプログラミングをコンパイルして、バイトコードへ変換した上で実行します。

もしプログラミングの経験がある方でしたら、Javaジャバ言語で書かれたプログラムをコンパイルして、Javaジャバ Virtualバーチャル Machineマシン上で実行することと同様と考えればよいでしょう。

Remix

Solidityソリディティでプログラムを書いて、コンパイルして、Ethereumイーサリアムへ配備するという一連の作業を行うのに便利な統合開発環境として『Remixリミックス』というWebアプリケーションがあります。本記事でも、Remixリミックスを使用して解説してきます。

1. Webサイトへのアクセス

以下のWebサイトへアクセスします。 https://remix.ethereum.org
f:id:halifax:20200729082902p:plain

2. ソースファイル作成

画面左上のf:id:halifax:20200730002712p:plainをクリックして、新しいソースファイルを作成します。
本記事では『hello.sol』というファイル名としました。
f:id:halifax:20200729083921p:plain

まずは、簡単なサンプルプログラムを書いてみましょう。
「Hello, world」と返すだけのプログラムです。
f:id:halifax:20200729194309p:plain

pragma solidity ^0.6.6;

contract HelloWorld {
  function speak() public pure returns (string memory) {
    return 'Hello, world';
  }
}

3. コンパイル

画面左側のf:id:halifax:20200730002921p:plainアイコンをクリックすると左ペインに[SOLIDITY COMPILER]が表示されます。
f:id:halifax:20200730002949p:plain

[Compile hello.sol]ボタンをクリックしてコンパイルしてください。

4. 配備

画面左側のf:id:halifax:20200730003017p:plainアイコンをクリックすると左ペインに[DEPLOY & RUN TRANSACTIONS]が表示されます。
f:id:halifax:20200730003037p:plain

まずは、実際のEthereumイーサリアムブロックチェーン上ではなく、ブラウザ内の仮想環境上で動作確認してみたいと思いますので、ENVIRONMENTが[JavaScript VM]であることを確認して、[Deploy]をクリックして下さい。

配備が完了すると、[Deployed Contracts]にエントリーが追加されます。
f:id:halifax:20200730003111p:plain

5. 実行

[Deployed Contracts]のエントリーのf:id:halifax:20200730003130p:plainをクリックすると、以下のようにプログラム中の関数名に対応するボタン(本例では[speak]ボタン)が表示されます。 f:id:halifax:20200730003143p:plain

[speak]ボタンをクリックすると、プログラムが実行され、[speak]ボタンの下に実行結果が表示されます。
f:id:halifax:20200730003156p:plain