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

How to read moles? How to read moles?

As one of the traditional physiognomy techniques, ...

Analysis of different shapes of men's shoulders

As one of the traditional physiognomy techniques, ...

Is it good for a man to have big cheekbones? Where are the cheekbones located?

The mandibular angle, commonly known as the cheek...

Does a mole on the genitals affect our fortune?

There are moles on many parts of our body. Depend...

Palmistry: Love Line

Palmistry: Love Line The emotional line, also kno...

Facial features of extremely selfish people

Facial features of extremely selfish people Every...

Stremio Selects WINGS DAO Management Platform for AdEx Crowdfunding Campaign

WINGS Foundation is a Swiss blockchain company th...

WAVES Token Platform ICO Raises 5,000 Bitcoins in First Week

Rage Review : Blockchain token platform WAVES has...

I always don't know how to reject other people's faces

Some people are just nice guys and are very thin-...

What kind of people will find a good partner and have a good relationship?

We will meet all kinds of people in our lives. It...