===== Ethereum: Clients ===== [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:start| return to the Ethereum Standards ]] Source: [[https://ethereum.stackexchange.com/questions/269/what-exactly-is-an-ethereum-client-and-what-clients-are-there | What exactly is an Ethereum Client ]] //An 'Ethereum client' is a term referring to any [[dido:public:ra:xapend:xapend.a_glossary:n:node|node]] able to parse and verify the [[dido:public:ra:xapend:xapend.a_glossary:b:blockchain|blockchain]], its smart contracts and everything related. It also allows you/provides interfaces to create transactions and mine blocks which is the key for any blockchain interaction.// ==== Official reference implementations (CLI) ==== There are currently three reference Command Line Interfaces (CLI) implementations available, as you already highlighted: * eth - C++ client of the webthree project. It was formerly known as cpp-ethereum: https://github.com/ethereum/webthree-umbrella * geth - Golang client of the go-ethereum project: https://github.com/ethereum/go-ethereum * pyethapp - Python client of the pyethereum project: https://github.com/ethereum/pyethapp All [[dido:public:ra:xapend:xapend.a_glossary:c:client|clients]] should work the same, from the user's perspective. They provide the same interfaces and so on. For example, if you launch a DApp or the Ethereum [[dido:public:ra:xapend:xapend.a_glossary:w:wallet|Wallet]] or a DApp browser [[dido:public:ra:xapend:xapend.a_glossary:i:instance|instance]], it should not note any difference in communicating with the client. ==== Official reference implementations (GUI) ==== Graphical clients available to the [[dido:public:ra:xapend:xapend.a_glossary:e:ethereum|Ethereum]] core developers are: * mist which works on top of geth or eth and aims to be a DApp browser and currently implements the ethereum-wallet-dapp. https://github.com/ethereum/mist * alethzero is internally called the hardcore client but it's being deprecated. https://github.com/ethereum/alethzero ==== Third party implementations (CLI) ==== Non-official clients implementing the yellow paper specification are: * parity - Rust client by ethcore: https://github.com/paritytech/parity * ethereumj - Java client by the ether.camp team: https://github.com/ethereum/ethereumj * ethereumjs-vm - [[dido:public:ra:xapend:xapend.a_glossary:e:evm|Ethereum Virtual Machine]] in Javascript: https://github.com/ethereumjs/ethereumjs-vm * ethereumH - Haskell client from consensys, but it's not developed anymore: https://github.com/jamshidh/ethereum-client-haskell * ruby-ethereum - Ruby client: https://github.com/janx/ruby-ethereum * node-blockchain-server - simple Javascript server: https://github.com/ethereumjs/node-blockchain-server /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~