Ethereum

Solidity(Ethereum上で実行可能な言語)の開発環境について

Solidityとは

JavaScriptに似た文法を持っている

高級言語でありコントラク志向であるSolidityはC++やPythonなどの影響を受け、JavaScriptに似た文法を持っています。また、Solidityは静的型や多重継承、ライブラリ、ユーザー定義などを備えています。 抽象度の高いコードが書くことも可能になる。

スマートコントラクト(smartcontract)が記述できる

Solidityの特徴としてEthereumブロックチェーン上でスマートコントラクトを記述することが出来ます。EVM(Ethereum Virtual Machine)という仮想環境上では、Solidityで書かれたスマートコントラクトをコンパイルしバイトコードに変え、Ethereumブロックチェーン上で実行することが出来ます。

他にもスマートコントラクト を開発できる言語

Vyper

VyperはPythonに似た文法を持っています。

Solidityと同じEthereumブロックチェーン上でスマートコントラクトを記述、デプロイすることが可能です。Vyperの特徴としては、セキュリティ性の高いスマートコントラクトを記述することが可能な点です。

Solidity開発環境の紹介

Remix(Browser-Solidity)

Remix(Browser-Solidity)はブラウザ上で動作するSolidityの統合開発環境(IDE)です。ローカルの開発環境としても利用出来ます。

1.コマンドラインでソースコードをコンパイル

2.Ethereumブロックチェーンにデプロイ

1.2のフローがRemix(Browser-Solidity)のみで行なうことが出来ます。

統合開発環境(IDE)とはソフトウェアの開発で必要となるエディターやコンパイラなどのソフトウェアを1つにまとめてある開発環境です。

 

Ethereum Studio(イーサリアム スタジオ)

Ethereum StudioはEthereumの統合開発環境で、Microsoft Azure上で動作可能です。
Ethereum Studioは機能として「Ethereum Sandbox 」、「EthereumベースシステムのUI(ユーザーインタフェース)」、「 単体テストが可能」、「 ワンクリックでスマートコントラクトがデプロイ可能」を備えています。

またEthereum Studioは、Cloud9というブラウザ上で動作するオンラインの統合開発環
境をベースとしています。

  • Ethereum Sandboxは本番用のEthereumネットワークであるライブネットワークの完全なエミュレーションとして動作し、柔軟な開発を可能にします。
  • Ethereum Studioはスマートコントラクトの統合開発環境である対話型UIを開発者向けに提供します。

 

Intellij-Solidit

テキストエディタです。Solidityで利用する場合、シンタックスハイライトのみでありコンパイルなどはsolcを利用しなくてはいけません。Javaなどsolidity以外の言語に対応しているので利用機会は増えるかもしれませんが、Ethereum専門に開発を考えている場合はRemixなどを利用した方が機能面で良いのではないでしょうか。

 

EthFiddle

EthFiddleはブラウザ上でコントラクトを記述できます。そのため、動作確認が簡単に行なえ、共有したい場合はURLを貼るだけで共有が行なえます。しかし、ブラウザ上では細かい設定が出来ないため注意が必要です。

また、チャット機能も備えています。

 

本格的な開発には向いていない側面があります。なぜならメインネットにはデプロイが出来ないためです。