Solidity¶
Solidityはスマートコントラクトを扱えるオブジェクト指向の高級言語です。スマートコントラクトはEthereum内でアカウントの動作を制御するものです。
SolidityはC++、Python、JavaScriptを参考に、Ethereum Virtual Machine(EVM)の操作を目的に作られています。
Solidityは静的言語で継承やライブラリ、ユーザーが定義した複雑な型をサポートします。
Solidityで投票やクラウドファンディング、匿名のオークションやマルチシグウォレットを作成することができます。
コントラクトをデプロイする際には最新バージョンのSolidityを使うことが推奨されています。これは新しい機能やバグ修正に加えbreaking changesが定期的に導入されているためです。現在0.xバージョンです[これはこの早い変化を示しています。](https://semver.org/#spec-item-4)
Language Documentation¶
もしスマートコントラクトという概念が初めてなのであればSolidityで書かれた スマートコントラクトの例 を推奨します。もっと詳細な情報が欲しい場合は "Solidity by Example" と "Solidity in Depth" セクションを読むことをお勧めします。
ヒント
Remix IDE でいつでもサンプルコードを試すことができます。RemixはブラウザベースのIDEでSolidityでスマートコントラクトが書け、デプロイしてスマートコントラクトを動かすことができます。しばらく時間がかかる場合もありますが、気長にお待ちください。
警告
人間がコードを書いていますのでバグが発生する可能性があります。スマートコントラクトを書く際にはソフトウェア開発のベストプラクティスを参照することをお勧めします。このベストプラクティスはコードレビュー、テスト、audits、correctness proofsを含んでいます。スマートコントラクトのユーザーは時に作成者よりコードそのものを信用します。そしてブロックチェーンとスマートコントラクトはそれぞれ注意すべき特有の問題を抱えているため、production codeに取り掛かる前に Security Considerations セクションを参照してください。
もし疑問があれば、Ethereum Stackexchange か gitter channel で検索もしくは質問してください。
Solidityやこのドキュメントをより良くするアイデアはいつでも大歓迎です。詳細は contributors guide を参照ください。