Solidity

Solidityは、スマートコントラクトを実装するための、オブジェクト指向の高級言語です。 スマートコントラクトとは、Ethereumのアカウントの動作を制御するプログラムのことです。

Solidityは、 Ethereum Virtual Machine (EVM)をターゲットに設計されている カーリーブラケット言語 です。 C++、Python、JavaScriptの影響を受けています。 Solidityがどの言語から影響を受けているかについては、 言語の影響 のセクションで詳しく説明しています。

Solidityは、静的型付け、継承、ライブラリ、複雑なユーザー定義型などの機能をサポートしています。

Solidityでは、投票、クラウドファンディング、ブラインドオークション、マルチシグネチャウォレットなどの用途に応じたコントラクトを作成できます。

コントラクトをデプロイする際には、Solidityの最新のリリースバージョンを使用すべきです。 例外的なケースを除いて、最新バージョンには セキュリティフィックス が施されています。 さらに、破壊的な変更や新機能も定期的に導入されています。 私たちは現在、 この速いペースでの変更を示すため に、0.y.zというバージョン番号を使用しています。

警告

Solidityは最近バージョン0.8.xをリリースしましたが、変更点が多くあります。 必ず その詳細なリスト を読んでください。

Solidityやこのドキュメントを改善するためのアイデアはいつでも歓迎します。 詳細は コントリビューターガイド を読んでください。

ヒント

このドキュメントは、左下のバージョン表示メニューをクリックして、希望のダウンロード形式を選択すると、PDF、HTML、Epubのいずれかでダウンロードできます。

はじめに

1. スマートコントラクトの基本を理解する

スマートコントラクトの概念を初めて知る方には、まず「スマートコントラクトの紹介」を掘り下げて読むことをお勧めします。 これには次のコンテンツが含まれています。

2. Solidityを知る

基本的な操作に慣れてきたら、 「Solidity by Example」や「言語仕様」にあるセクションを読んで、言語のコアコンセプトを理解することをお勧めします。

3. Solidityコンパイラをインストールする

Solidityコンパイラをインストールするには様々な方法があります。 好みのオプションを選択して、 インストールページ に記載されている手順に従ってください。

ヒント

Remix IDE を使えば、ブラウザ上で直接コードの例を試すことができます。 RemixはWebブラウザベースのIDEで、Solidityをローカルにインストールすることなく、Solidityスマートコントラクトの作成、デプロイ、管理を行うことができます。

警告

人間がソフトウェアを書くと、バグが発生することがあります。 そのため、スマートコントラクトを作成する際には、確立されたソフトウェア開発のベストプラクティスに従うべきです。 これには、コードレビュー、テスト、監査、およびコレクトネス(実装が仕様に沿っていること)の証明が含まれます。 スマートコントラクトのユーザーは、コードの作成者よりもコードを信頼している場合があります。 また、ブロックチェーンやスマートコントラクトには、注意すべき特有の問題があるため、本番のコードに取り組む前に、必ず セキュリティへの配慮 のセクションを読んでください。

4. さらに学ぶ

Ethereumでの分散型アプリケーションの構築について詳しく知りたい場合は、 Ethereum Developer Resources で、Ethereumに関するさらに一般的なドキュメントや、幅広い種類のチュートリアル、ツール、開発フレームワークを紹介しています。

疑問点があれば、検索したり、 Ethereum StackExchangeGitterチャンネル で聞いてみると良いでしょう。

翻訳

このドキュメントは、コミュニティのコントリビューターによって、いくつかの言語に翻訳されています。 これらの言語は、完成度と最新度が異なります。 正確な情報を得たい場合は、英語版を参考にしてください。

左下のフライアウトメニューをクリックし、好みの言語を選択することで言語を切り替えることができます。

注釈

私たちは、コミュニティの取り組みを効率化するために、GitHubのオーガナイゼーションと翻訳ワークフローをセットアップしました。 新しい言語での翻訳を始めたり、コミュニティの翻訳に貢献する方法については、 solidity-docsオーガナイゼーション にある翻訳ガイドを参照してください。

コンテンツ

キーワードインデックス, 検索ページ

言語仕様