aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-12-10 22:47:18 +0800
committerchriseth <c@ethdev.com>2015-12-10 22:47:18 +0800
commitca10971291710038662c74660dd07249d5be8bf5 (patch)
tree99083c0bfeb2cf733abf75318329776f8fee2e23 /docs
parent19b10460d102672eb039ee7fdc83dda50d0fa2bc (diff)
parent3ce73e0bd34f1de8874e39ee6511b72728b869ed (diff)
downloaddexon-solidity-ca10971291710038662c74660dd07249d5be8bf5.tar.gz
dexon-solidity-ca10971291710038662c74660dd07249d5be8bf5.tar.zst
dexon-solidity-ca10971291710038662c74660dd07249d5be8bf5.zip
Merge pull request #293 from chriseth/doc_index
Documentation index page and build instructions.
Diffstat (limited to 'docs')
-rw-r--r--docs/index.rst38
-rw-r--r--docs/installing-solidity.rst140
2 files changed, 169 insertions, 9 deletions
diff --git a/docs/index.rst b/docs/index.rst
index 92cf24e3..efe82ff9 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,13 +1,34 @@
-Welcome to Solidity's documentation!
-====================================
-
-See also `Russian version (русский перевод) <https://github.com/ethereum/wiki/wiki/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-Solidity>`_.
+Solidity
+========
Solidity is a high-level language whose syntax is similar to that of JavaScript
and it is designed to compile to code for the Ethereum Virtual Machine.
As you will see, it is quite easy to create contracts for voting,
crowdfunding, blind auctions, multi-signature wallets and more.
+.. note::
+ The best way to try out Solidity right now is using the
+ `Browser-Based Compiler <https://chriseth.github.io/browser-solidity/>`_
+ (it can take a while to load, please be patient).
+
+Useful links
+------------
+
+* `Ethereum <https://ethereum.org>`_
+
+* `Browser-Based Compiler <https://chriseth.github.io/browser-solidity/>`_
+
+* `Changelog <https://github.com/ethereum/wiki/wiki/Solidity-Changelog>`_
+
+* `Story Backlog <https://www.pivotaltracker.com/n/projects/1189488>`_
+
+* `Source Code <https://github.com/ethereum/solidity/>`_
+
+* `Gitter Chat <https://gitter.im/ethereum/solidity/>`_
+
+Language Documentation
+----------------------
+
On the next pages, we will first see a :ref:`simple smart contract <simple-smart-contract>` written
in Solidity followed by the basics about :ref:`blockchains <blockchain-basics>`
and the :ref:`Ethereum Virtual Machine <the-ethereum-virtual-machine>`.
@@ -22,19 +43,18 @@ The last and most extensive section will cover all aspects of Solidity in depth.
If you still have questions or ideas for improving Solidity or this documentation,
please feel free to come to out `gitter channel <https://gitter.im/ethereum/solidity/>`_.
-Index and Search
-==================
-
-* :ref:`genindex`
-* :ref:`search`
+See also `Russian version (русский перевод) <https://github.com/ethereum/wiki/wiki/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-Solidity>`_.
Contents
========
+:ref:`Keyword Index <genindex>`, :ref:`Search Page <search>`
+
.. toctree::
:maxdepth: 2
introduction-to-smart-contracts.rst
+ installing-solidity.rst
solidity-by-example.rst
solidity-in-depth.rst
style-guide.rst
diff --git a/docs/installing-solidity.rst b/docs/installing-solidity.rst
new file mode 100644
index 00000000..83c7ac18
--- /dev/null
+++ b/docs/installing-solidity.rst
@@ -0,0 +1,140 @@
+###################
+Installing Solidity
+###################
+
+Browser-Solidity
+================
+
+If you just want to try Solidity for small contracts, you
+can try `browser-solidity <https://chriseth.github.io/browser-solidity>`_
+which does not need any installation. If you want to use it
+without connection to the Internet, you can also just save the page
+locally or clone http://github.com/chriseth/browser-solidity.
+
+NPM / node.js
+=============
+
+This is probably the most portable and most convenient way to install Solidity locally.
+
+A platform-independent JavaScript library is provided by compiling the C++ source
+into JavaScript using Emscripten for browser-solidity and there is also an NPM
+package available.
+
+To install it, simply use
+
+::
+
+ npm install solc
+
+Details about the usage of the nodejs package can be found in the
+`repository <https://github.com/chriseth/browser-solidity#nodejs-usage>`_.
+
+Binary Packages
+===============
+
+Binary packages of Solidity together with its IDE Mix are available through
+the `C++ bundle <https://github.com/ethereum/webthree-umbrella/releases>`_ of
+Ethereum.
+
+Building from Source
+====================
+
+Building Solidity is quite similar on MacOS X, Ubuntu and probably other Unices.
+This guide starts explaining how to install the dependencies for each platform
+and then shows how to build Solidity itself.
+
+MacOS X
+-------
+
+
+Requirements:
+
+- OS X Yosemite (10.10.5)
+- Homebrew
+- Xcode
+
+Set up Homebrew:
+
+.. code-block:: bash
+
+ brew update
+ brew install boost --c++11 # this takes a while
+ brew install cmake cryptopp miniupnpc leveldb gmp libmicrohttpd libjson-rpc-cpp
+ # For Mix IDE and Alethzero only
+ brew install xz d-bus
+ brew install llvm --HEAD --with-clang
+ brew install qt5 --with-d-bus # add --verbose if long waits with a stale screen drive you crazy as well
+
+Ubuntu
+------
+
+Below are the build instructions for the latest versions of Ubuntu. The best
+supported platform as of December 2014 is Ubuntu 14.04, 64 bit, with at least 2
+GB RAM. All our tests are done with this version. Community contributions for
+other versions are welcome!
+
+Install dependencies:
+
+Before you can build the source, you need several tools and dependencies for the application to get started.
+
+First, update your repositories. Not all packages are provided in the main
+Ubuntu repository, those you'll get from the Ethereum PPA and the LLVM archive.
+
+.. note::
+
+ Ubuntu 14.04 users, you'll need the latest version of cmake. For this, use:
+ `sudo apt-add-repository ppa:george-edison55/cmake-3.x`
+
+Now add all the rest:
+
+.. code-block:: bash
+
+ sudo apt-get -y update
+ sudo apt-get -y install language-pack-en-base
+ sudo dpkg-reconfigure locales
+ sudo apt-get -y install software-properties-common
+ sudo add-apt-repository -y ppa:ethereum/ethereum
+ sudo add-apt-repository -y ppa:ethereum/ethereum-dev
+ sudo apt-get -y update
+ sudo apt-get -y upgrade
+
+Use the following command to add the develop packages:
+
+.. code-block:: bash
+
+ sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libedit-dev libz-dev
+
+Building
+--------
+
+Run this if you plan on installing Solidity only, ignore errors at the end as
+they relate only to Alethzero and Mix
+
+.. code-block:: bash
+
+ git clone --recursive https://github.com/ethereum/webthree-umbrella.git
+ cd webthree-umbrella
+ ./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project solidity # update Solidity repo
+ ./webthree-helpers/scripts/ethbuild.sh --no-git --project solidity --all --cores 4 # build Solidity
+
+If you opted to install Alethzero and Mix:
+
+.. code-block:: bash
+
+ git clone --recursive https://github.com/ethereum/webthree-umbrella.git
+ cd webthree-umbrella && mkdir -p build && cd build
+ cmake ..
+
+If you want to help developing Solidity,
+you should fork Solidity and add your personal fork as a second remote:
+
+.. code-block:: bash
+
+ cd webthree-umbrella/solidity
+ git remote add personal git@github.com:username/solidity.git
+
+Note that webthree-umbrella uses submodules, so solidity is its own git
+repository, but its settings are not stored in `.git/config`, but in
+`webthree-umbrella/.git/modules/solidity/config`.
+
+