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

Top 10 Bitcoin Predictions for 2016

Charlie Woolnough, co-founder of Bitcoin business...

Don't believe me, verify it yourself

The author, jl2012, is a Bitcoin technology enthu...

The way you speak reflects your personality

The way you speak reflects your personality Do yo...

Whether you have good luck in studying can be seen from your face

To see whether a person is smart, just look at th...

Rare palm lines for women with a rich destiny

There are verses describing beauties in The Book ...

Is it good for a woman to have a mole on her left ear?

In mole physiognomy, it is generally believed tha...

I plan to leave with the flagship S9

Text | Huang Xuejiao Editor | Mandy Wang Mengdie ...

Crypto experts discuss miners' non-voting claims on Twitter

Bitcoin expert Steve Patterson appealed to the BC...

Let others do things that you can do first.

When doing something, some people's principle...

A man who is loyal to his wife

A man who is loyal to his wife 1. Big front teeth...

PoW may seem outdated, but innovation has not stopped

Kaspa, a new PoW project, has performed well rece...

A stubborn palm! Palmistry love line diagram analysis

How to read the love line diagram in palmistry? T...

Bitcoin and Trust from the Perspective of a French History Teacher

Hello everyone, I am French, and I am a member of...