Choosing a client
Why are there multiple Ethereum clients?
From the earliest days of the project there have been multiple client implementations across a range of different operating systems. That client diversity is a huge win for the ecosystem as a whole. It lets us verify that the protocol (specified in the Yellow Paper) is unambiguous. It keeps the door open for new innovation. It keeps us all honest. However, it can be very confusing for end-users, because there is no universal "Ethereum Installer" for them to use.
|:ref:`ethereumH`||Haskell||BlockApps||no Homestead release yet|
What should I install on my desktop/laptop?
Most users will likely just install Mist / Ethereum Wallet and that will be enough for their needs.
The Ethereum Wallet is a "single dapp" deployment of the Mist Browser which will be the centerpiece of the Metropolis phase of development, which comes after Homestead.
Mist comes with bundled :ref:`go-ethereum` and :ref:`cpp-ethereum` binaries and if you are not running a command-line Ethereum client when Mist starts then it will start syncing the blockchain using one of the bundled clients (defaulting to geth). If you want to use Parity with Mist, or to run Mist against a private network, just start your node before Mist, and Mist will connect to your node rather than starting one itself.
Work is underway to add Parity and other clients as "first-class entities" to Mist too.
If you want to do mining then Mist will not be sufficient. Check out the :ref:`mining` section.
What should I install on my mobile/tablet?
We are at the very beginning of our support for mobile devices. The Go team are publishing experimental iOS and Android libraries, which some developers are using to start bootstrapping mobile applications, but there are not yet any mobile Ethereum clients available.
The main hindrance to the use of Ethereum on mobile devices is that the Light Client support is still incomplete. The work which has been done is off in a private branch, and is only available for the Go client. doublethinkco will start development of Light Client for the C++ client in the coming months, following grant funding.
What should I install on my SBC?
You have some choice here depending on your skill level, and what you are looking to do.
- Download a fully prepared image(link to page with detailed download & install instructions)
- If you are new to Ethereum AND SBC boards such as the Raspberry Pi then this is for you! Simply download the image specific to the dev board you are working with, burn it to an SD card, boot your device, and run Ethereum!
- Download a pre-compiled application(link to page with detailed download & install instructions)
- If you already have an SBC running and have a specific, preferred OS or setup that you want to keep, then this is your best option! Depending on the platform, you can simply download the apropriate executable, and with minimal linking of libraries and setting of PATH you can have Ethereum running in your existing environment!
- Build from source using customizable scripts(link to page with more detail and individual SBC links to https://github.com/ethembedded)
- Looking to perform a custom install? We have scripts available to compile from source "on device". Our scripts contain auto-install of dependencies as well as the client itself. This will allow you to install a specific version of the Ethereum client(i.e.-"develop", "master", etc.), compile your own forked version of a client, and generally play around with the intricacies of the build process.
Interacting with Clients
In order to interact with Ethereum clients programmatically, please refer to the :ref:`Connecting to Clients` section.