Ethereum Series (10): Introduction to Ethereum Go, Java, Python, Ruby, and JS Clients

Ethereum Series (10): Introduction to Ethereum Go, Java, Python, Ruby, and JS Clients

go-ethereum

The go-ethereum client is commonly referred to as geth, which is a command-line interface that executes a complete Ethereum node implemented in Go. By installing and running geth, you can participate in the Ethereum front-end real-time network and perform the following operations:

  1. Mining real Ethereum

  2. Transferring funds between addresses

  3. Create a contract and send a transaction

  4. Explore Block History

  5. and many others

Link:

  1. Website: http://ethereum.github.io/go-ethereum/

  2. Github: https://github.com/ethereum/go-ethereum

  3. Wikipedia: https://github.com/ethereum/go-ethereum/wiki/geth

  4. Gitter: https://gitter.im/ethereum/go-ethereum

pyethapp

Pyethapp is a Python-based client that implements the Ethereum cryptoeconomic state machine. The Python implementation aims to provide a code base that is easier to cut and extend. Pyethapp uses two core Ethereum components to implement the client:

  1. pyethereum - core library, featuring blockchain, Ethereum simulator and mining

  2. pydevp2p - peer-to-peer networking library, featuring peer discovery and transport multiplexing and encrypted connections

Link:

  1. Github: https://github.com/ethereum/pyethapp

  2. Wikipedia: https://github.com/ethereum/pyethapp/wiki/Getting-Started

  3. Gitter chat: https://gitter.im/ethereum/pyethapp

ethereumjs-lib

As stated in the yellow paper, ethereumjs-lib is a javascript library for core Ethereum functionality. It is a simple meta-module that provides the following modules. Most of the JS modules are tracked on ethereumjs.

  1. Virtual Machine – Ethereum Virtual Machine and state handling functions

  2. Blockchain – Blockchain Management

  3. Blocks – Block schema definition and validation

  4. Transactions – Transaction model definition and verification

  5. Accounts – Account schema definition and validation

  6. rlp – cyclic length prefix serialization

  7. Trie – A modified Merkle Patricia tree

  8. Ethash – Ethereum Proof of Work Algorithm

  9. utils – various auxiliary functions

  10. devp2p – Network protocol

  11. devp2p-dpt – controversial peer table

Link:

  1. Github: https://github.com/ethereumjs/ethereumjs-lib

  2. Join the Gitter chat: https://gitter.im/ethereum/ethereumjs-lib

Ethereum(J)

Ethereum(J) is a pure Java implementation of the Ethereum protocol. It is provided as a library that can be embedded in any Java/Scala project and provides full support for the Ethereum protocol and ancillary services. Ethereum(J) was originally developed by Roman Mandeleil and is now funded by <ether.camp>.

Ethereum(J) supports CPU mining. It is currently implemented in pure Java and can be used on private and test networks. You can even mine on the live Ethereum network, but it is not economically viable.

Link:

  1. Blog: http://ethereumj.io/

  2. Github: https://github.com/ethereum/ethereumj

  3. Gitter chat: https://gitter.im/ethereum/ethereumj

ethereumH

This package provides tools written in Haskell that allow you to connect to the Ethereum blockchain.

Link:

  1. Github: https://github.com/blockapps/ethereumH

  2. BlockApps: http://www.blockapps.net/

Parity

Parity claims to be the fastest and lightest client in the world. It is written in Rust, which enhances reliability, performance, and code clarity. Parity is developed by Ethcore. Ethcore was created by several members of the Ethereum Foundation.

  1. Website: https://ethcore.io/parity.html

  2. Github: https://github.com/ethcore/parity

  3. Gitter chat: https://gitter.im/ethcore/parity

Arch Linux packages are community maintained by Afri Schoedon and quininer.

  1. https://aur.archlinux.org/packages/parity/ (stable, latest version)

  2. https://aur.archlinux.org/packages/parity-git/ (unstable, latest development)

Some people have reported success running Parity on a Raspberry Pi 2.

ruby-ethereum

ruby-ethereum is an implementation of the Ethereum virtual machine, written in Ruby.

Link:

  1. Github: https://github.com/janx/ruby-ethereum

  2. Gem: https://rubygems.org/gems/ruby-ethereum

Related:

  1. ruby-serpent: Ruby language bundled with Ethereum Serpent compiler.

  2. ethereum-ruby: A pure-Ruby JSON-RPC wrapper for communicating with an Ethereum node. To use this library, you need to have a running Ethereum node with enabled IPC support (default). Currently supports the go-ethereum client.

References:

For links to the list in the article, please refer to "Ethereum Homestead Documentation" page 41 1.2.4 go-ethereum

In the next article we will introduce "Ethereum Series (11): Ethereum Account Management"

Thanks to Azure and Bob from the Chaoxi team for participating in the translation and proofreading of "Ethereum Homestead Documentation".


<<:  Is there a secret behind Bitcoin mixing? Bitfury's research reveals the secrets of transactions

>>:  Samsung SDS invests in blockchain company

Recommend

People who can often see through other people's minds

Only those who are careful enough can see through...

Several major aspects of going to bed early every day

These days, many people like to stay up late, and...

The most popular palmistry of otakus among women

Nowadays, more and more otakus and housegirls nev...

US-Cuba Bitcoin Trade Breaks Ice

According to FX168, the price of Bitcoin fluctuat...

Are girls with tiger teeth blessed? Luxury and enjoyment

Teeth are something we care about more. It is sai...

What is the connection between the position of the mole on the chin and destiny?

From physiognomy, we can learn a lot of knowledge...

What does a mole on the sole of the foot mean?

There are many "moles" on each of our b...

Can I pull out the hair on a mole? Which moles cannot be plucked?

When a mole grows to a certain size, some hair wi...

A woman with a mole on the back of her neck has a backer

In Chinese physiognomy, moles are a part of the f...