Go-ethereum (Geth)

Geth, or go-ethereum, is one of the Ethereum implementations. Like all Ethereum implementations, Geth is compliant with the formal specification, the yellow paper. It has been running in the public Ethereum networks, both the Mainnet and testnet Rinkeby, since early 2015. Geth is the most popular implementation in terms of the number of nodes participating in the Mainnet and it also powers the popular test net, Rinkeby.

The Geth binary used inside Kaleido is under the GPL v3.0 license. The source code is supported by the Ethereum community and maintained by a group of core Ethereum developers including one of the original Ethereum founders, Jeffrey Wilcke, as well as Péter Szilágyi.

For consensus algorithms, Geth supports Proof-of-Work which is appropriate when running in the Mainnet, and clique Proof-of-Authority, which is more suitable for a by-invitation-only, or permissioned, blockchain.

All Geth nodes running inside Kaleido are configured to be full nodes, so they all have the full blockchain maintained locally and are able to validate blocks and state transitions.

On Kaleido, the only consensus algorithm available for Geth is clique Proof-of-Authority (PoA). Block period is set to 5 seconds by default for all Geth+PoA environments. The block period is configurable when creating the environment via the Kaleido API, but not when creating in the Kaleido UI console. When setting a block period in the API call, the value must be in the range of 5 to 10 seconds inclusive.

Geth supports a full range of APIs for deploying smart contract, submitting transactions, querying states, as well as administrative operations. Both HTTP and WebSocket transports are supported.