コンセンサス・ベイスブロックチェーン技術のポータルサイト。ビジネスに関する記事や技術メモ、最新のSNSでシェアされたニュースも見ることができます。会社紹介はじめにConsenSys社から、イーサリアム開発用ツールリスト(GitHub)が公開されています。ConsenSys社は、ブロックチェーン技術として主にイーサリアムベースの分散型アプリケーションの開発を幅広く手掛ける企業で、UPort、Balanc3、Gnosis、Singular等の開発に寄与するなど、世界規模のブロックチェーンベンチャー企業です。本記事では、そんなConsenSys社が公表したイーサリアム開発に使用するツールを把握する事で、世界のイーサリアム開発手法トレンドを学ぶ一助となるべく作成しました。本記事は、過去にコンセンサス・ベイスが主宰していたオンラインサロンの記事です。記事は2017年~2018年にかけて執筆されたため、一部は、既に古くなっている可能性があります。スマートコントラクト用言語スマートコントラクト用のプログラミング言語はSolidityが広く使われていますが、他にもスマートコントラクト用のプログラミング言語がいくつか存在し、現在開発が進められている状態です。SoliditySolidityは現在最も主要なスマートコントラクト開発言語です。言語構文がJavascriptに似ており、静的型付言語となっています。Machine)コードに変換しEVM上でプログラムが実行されます。Solidityは他のコントラクト言語と比べ、実利用が進んでおり、様々なイーサリアム上で動作するアプリケーションで利用されています。Solidityhttps://solidity.readthedocs.io/en/latest/BambooBambooは、Solidityに代わる新しいスマートコントラクト開発言語です。デフォルトで回避できるとされています。コンパイラにバグが残っているらしく、今後の安定板リリースに期待です。githubhttps://github.com/pirapira/bambooVyperVyperはプログラミング言語Pythonのようなシンプルで書き易い新たなスマートコントラクト開発言語です。Vyperの指針と最終目標はセキュアなスマートコントラクトの開発、言語仕様・コンパイラのユーザービリティの向上、コードの可読性の向上(実装のミスを減らすため)です。inheritanceですが、その自由度により複雑なコントラクトを作成する原因となっている側面があります。その複雑さがコントラクトの脆弱性を引き起こします。VyperではModifiersなどを削除し、脆弱性の解消に尽力しています。Language)は、関数型言語Lispの構文を踏襲したコントラクト開発言語です。Solidityより低レベルの言語で、すべてのEVMコードに直接アクセスできる為、より小さなバイトコードにコンパイルできる等の特徴があります。gas節約の為、局所的にLLLを導入するといった選択肢もありうるでしょう。mediumhttps://media.consensys.net/an-introduction-to-lll-for-ethereum-smart-contract-development-e26e38ea6c23FlintFintは安全性の高いスマートコントラクトの記述を可能にする静的型付けされたプログラミング言語です。integersなどによるものです。Fintはコントラクト内のセンシティブな関数を誰が利用できるか設定することが可能であったり、不可分操作をアセットに適用しアセットの作成や複製を不可能にし、それにより二重支払いやRe-entrancy関連の攻撃を防ぎます。現在、開発が進められている状態です。Flinthttps://docs.flintlang.org/フレームワークフレームワークは、開発を行う際に必ず必要な機能(画面遷移、汎用ライブラリ等)をまとめて提供してくれるものです。ソフトウェア開発にフレームワークは不可欠ですが、イーサリアム用フレームワークも複数種類用意されています。TruffleConsensysによって開発されたスマートコントラクトの開発、テスト、デプロイのためのフレームワークです。アプリケーション開発に特化したもので、オープンなネットワークを使用する際には主にgethを使用します。特徴として、スマートコントラクトのコンパイル、リンク、デプロイ、バイナリ管理が挙げられます。拡張可能なフレームワークや対話式のコンソールの使用が可能です。truffleを利用している企業としては、ZEPPELINなどが挙げられます。SUITEhttps://truffleframework.com/EmbarkEmbarkはDappsを簡単に開発・デプロイ可能にするフレームワークです。)、Swarmや分散型コミュニケーションプラットフォームであるWhisperなどでデプロイが可能です。Embarkは自動でコントラクトをデプロイし、JSコード内のコントラクトを利用可能とします。変更を監視しユーザーがコントラクトに変化を加えると、自動でコントラクトとDappsを再度デプロイしてくれます。githubhttps://github.com/embark-framework/embarkDappDappフレームワークは、DAppleフレームワークの後継です(分散型アプリケーションDappsとは違う意味なので注意)。バックボーンとして”DappHub”(GitHubのDapps版)を展開する様です。現在、GitHubリポジトリは移動され参照できない状態となっており、まだ開発段階の様です。得意なイーサリアム開発者が楽しく作業できる様に設計された、統合スマートコントラクト用フレームワークです。SolidityやVyperに対応しており、デプロイやテストコードをPythonで記述する事が出来る特徴を持っています。Populushttps://populus.readthedocs.io/en/latest/EtherlimeEtherlime(イーサ・ライム)は、ethers.js(JavaScriptイーサリアムライブラリ)をベースとして作られた、開発・デプロイを支援するフレームワークです。他のweb3.jsベースのフレームワークに代わる、開発者自身でコントロールが出来るフレームワークを目指しています。開発におけるデプロイ・コンパイル・ユニットテストの煩雑さを緩和し、安定した動作を提供します。マイルストーンによると、トランザクションのデバッグ機能等、まだ完全には実装されていません。今後の発展に期待です。Etherlimehttps://etherlime.readthedocs.io/en/latest/ParasolParasolはテスト、INFURAでのデプロイなどを備えているアジャイルのスマートコントラクト開発環境です。自由なカスタマイズができる柔軟で特定の設定に固執しない設計になっています。Concerns)」、「自由」、「アジャイル」の三つを指針に掲げています。ABI使用のmarkdownコントラクトドキュメンテーション」などが挙げられます。Parasolhttps://developer.lamarkaz.com/parasolIDE(統合開発環境)IDE(統合開発環境)は、開発に必要なエディタ、静的解析ツール、コンパイラ、デバッガ、テストツール、バージョン管理ソフト(git等)を一つに組み合わせ、同じ操作画面で便利に操作できる様にしたツールです。チームでのソフト開発に導入する事で、学習コストを大幅に抑える事ができます。以前、Browser-Solidityという名前でした。JavaScriptで書かれたイーサリアムのVM上でコントラクトを動作させ、デバッグを行うこともできます。ローカルのGethにアクセスして本番用のネットワークにデプロイすることも可能です。Remixでは「GUIによるデプロイ済みコントラクトの取得」、「トランザクションの送信」、「コントラクトのデバッグ、コンパイル、デプロイ」、「リアルタイムシンタックスチェック(Linter)」などが可能です。WEBベースで使えるスマートコントラクト統合開発環境です。ドキュメント(英語)が充実しており、WEBベースなのでで環境構築の手間もありません。コーディングからデベロップまで開発の全てを網羅できると宣伝されています。搭載されておりスタンドアロンでテスト実行する事もできます。Etheratomなどのパッケージを利用してSolidityを利用した開発を行ないます。Etheratomはイーサリアムブロックチェーン上のノードとやり取りするためにweb3jsを利用します。Etheratomの利用にはGanacheの利用あるいはgethのインストールが必要です。IDE(統合開発環境)で、スマートコントラクト用の自動生成インターフェースでもあります。簡単にスマートコントラクトの記述・デプロイを可能にする開発環境であり、自分のユーザーと共有できるUIを取得できます。作成したコントラクトのイベントログの閲覧も可能です。solidityLinux環境で使い慣れている方も多いVimテキストエディタに、Solidityのシンタックスハイライトを追加できて便利です。コントラクトのコンパイル・デプロイ等の機能はありません。Codeの拡張機能です。codeはMac、Windows、Linuxどれからでもスマートコントラクトの開発が可能です。Codeはシンタックスハイライト、スニペット、コントラクトのコンパイルをサポート出来ます。Theme」をインストールしてください。機能としてコントラクトのコンパイル・デプロイは出来ません。ToolsはEclipseベースのIDEです。「コード補完」、「クイックフィックス」、「コードナビゲーション」などの特徴を持っている。「クリックフィックス」はプログラマーが記述するであろうコードを推測します。「コードナビゲーション」は簡単にプログラム内の別の場所で定義された関数、変数に移動することを可能にします。関数のオーバーロードや拡張メソッドの混在時に便利です。FiddleのSolidity版です。ブラウザ上でコントラクトの記述が可能であるため、スマートコントラクトのテストとデバックが行い易いです。コードのパーマリンクの共有はURLを貼るだけで出来ます。チャット機能がついていてコードなどについての質問などが出来ます。Fiddleを利用してみても良いかもしれません。Fiddlehttps://ethfiddle.com/テスト用ブロックチェーンネットワークブロックチェーンネットワーク(メインネット)には金額的価値が発生している為、テスト不十分なDappsをいきなり動かすにはリスクがあり、一般的な開発ではまずテスト用ネットワークの構築が行われます。ネットワークを円滑にセットアップする為の構築手法は複数用意されており、一からセットアップせずにこれら支援スクリプト等を活用することで、テスト開発環境をを素早く円滑に構築できます。GanacheGanacheは、ビジュアルUIとログを備えているイーサリアムブロックチェーンのテストネット構築サービスです。簡単にローカルでスマートコントラクトのテストを行なうことが出来ます。トランザクションなどを参照することが出来ます。それによりDappsの動きをチェックすることが出来ます。採用しており、企業独自のブロックチェーンを簡単に構築でき実証実験を行う事が出来ます。単一ノードを包括したDockerコンテナを提供します。起動時に、テスト用ETHが振り込まれたいくつかのイーサリアムアカウントが自動的に用意される等、ちょっとしたテスト目的でイーサリアムローカルネットワークを立ち上げる為の最適な選択肢かもしれません。テストする為のローカル環境です。使うよりも簡単に実験出来る事を目標としています。Raidenは開発者プレビュー段階にある為、利用には注意が必要です。Authority)プライベートネットワークを構築する事ができるスクリプトです。PoAはマイニングを行わないコンセンサスアルゴリズムです。高速な承認を行うプライベートネットワークを素早く構築し、開発効率を高める事が期待できます。NetworkプライベートPoWネットワークを利用可能とするためのすぐに使える構築手順です。gethのインストール、イーサリアムノードの初期化、他のイーサリアムノードとの通信、EOAの作成、マイニング、etherの送金、他のローカルネットワークノードへの接続方法が書かれています。ツールキットを使用することで、C・C++・Rust等の開発言語を追加し、Solidityを理解している開発者が少ない現状を克服できる環境を提供しています。Azurehttps://docs.microsoft.com/ja-jp/azure/blockchain/templates/ethereum-poa-deploymentテスト用faucets開発時は、まずテスト用ネットワークで十分にテストを行うのがセオリーですが、テスト用ネットワークでのみ使えるETHが別途必要です。場合テストネット上で使用するETHを無償で供給してくれるサイトが用意されており、それらはfaucetsと呼ばれています。faucetsとは蛇口の事で、蛇口をひねる様にテストネット用のETH通貨を入手できる事からこの様に名付けられています。各テストネットはそれぞれ独立しており、ETHを相互交換する事は出来ません。faucetイーサリアムテストネットのひとつ”Rinkeby”で使えるETHを貰う事ができます。貰う為には手順が必要で、Twitter・Google+・FacebookのいずれかにETHアドレスを含む記事を投稿し、そのリンクを下記リンクに張り付ける必要があります。一度に3~18.75ETHまで取得することが出来ますが、もう一度貰う場合は8時間~3日間待たなければなりません。Ether)を無料でもらうことができます。KEtheには金銭的価値はなく、テストネットでの利用に限られます。Kovanネットワークでは少量のgasでトランザクションを実行できることから、ユーザーは1~3KEthまで取得することが可能となっています。https://faucet.kovan.network/にアクセスし、自らのkovanのアドレスを送信することで24時間ごとに1KEthを取得することができます。移行する予定ですが、各テストネットは異なるコンセンサスアルゴリズムが使われています。Authority)とは、承認(登録)されたノードのみがイーサリアムブロック生成の承認を行うアルゴリズムです。PoWとは異なりマイニング競争が無い為、高速動作が期待できます。テストネットKovanは、ブロック生成間隔が4秒に設定されているので(メインネットは15秒程度)、複雑で時間がかかるテストを自動化し素早く実施するのに向いています。サイトを使うと便利ですが、このサイトは全てのテストネットに対応しています。下記リンクを参考にして下さい。以降をお送りする予定です。本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。つきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。弊社(コンセンサス・ベイス株式会社)は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。会社ホームページhttps://www.consensus-base.com/この記事の著者block-chain.jp編集部ブロックチェーン技術の専門企業が運営するブロックチェーンのメディア。掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。つきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。(ブロックチェーン技術書籍)本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。BYコンセンサス・ベイスはブロックチェーン技術の専門企業です。国内でブロックチェーン実証実験を初めて行い、その後、大企業を中心に実績多数。ビジネス・STOコンサル・システム開発などのソリューションを提供しています。WordPress.。