Back to Charts

⚠️ Repo Archive Notice

stable/ethereum/README.md

latest6.2 KB
Original Source

⚠️ Repo Archive Notice

As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.

ethereum

Ethereum is a decentralized platform for building applications using blockchain.

DEPRECATION NOTICE

This chart is deprecated and no longer supported.

TL;DR;

console
$ helm install stable/ethereum

Introduction

This chart deploys a private Ethereum network onto a Kubernetes cluster using the Helm package manager. This network is not connected to MainNet, and for further information on running a private network, refer to Geth's documentation. This chart is comprised of 4 components:

  1. bootnode: used for Geth node discovery
  2. ethstats: Ethereum Network Stats
  3. geth-miner: Geth miner nodes
  4. geth-tx: Geth transaction nodes with mining disabled whose responsbility is to respond to API (websocket, rpc) queries

Prerequisites

  • Kubernetes 1.8

Installing the Chart

  1. Create an Ethereum address and private key. To create a new Ethereum wallet, refer to this blog post which will walkthrough the following instructions in greater detail:

    console
    $ git clone https://github.com/vkobel/ethereum-generate-wallet
    $ cd ethereum-generate-wallet
    $ pip3 install -r requirements.txt
    $ python3 ethereum-wallet-generator.py
    
    Private key: 38000e15ca07309cc2d0b30faaaadb293c45ea222a117e9e9c6a2a9872bb3bcf
    Public key:  60758d37d431d34b920847212febbd583008ec2a34d00f907d48bd48b88dc2661806eb99cb6178312d228b2fd08cdb88bafc352d0395ae09b2fe453f0c4403ad
    Address:     0xab70383d9207c6cc43ab85eeef9db4d33a8ad4e8
    
  2. Install the chart as follows:

    console
    $ helm install --name my-release stable/ethereum
        --set geth.account.address=[PUBLIC_ADDRESS]
        --set geth.account.privateKey=[PRIVATE_KEY]
        --set geth.account.secret=[SECRET]
    

    using the above generated example, the configurations would equate to:

    • geth.account.address = 0xab70383d9207c6cc43ab85eeef9db4d33a8ad4e8
    • geth.account.privateKey = 38000e15ca07309cc2d0b30faaaadb293c45ea222a117e9e9c6a2a9872bb3bcf
    • geth.account.secret = any passphrase that Geth will use to encrypt your private key

Uninstalling the Chart

To uninstall/delete the my-release deployment:

console
$ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the vault chart and their default values.

ParameterDescriptionDefault
imagePullPolicyContainer pull policyIfNotPresent
nodeSelectorNode labels for pod assignmen
bootnode.image.repositorybootnode container image to useethereum/client-go
bootnode.image.tagbootnode container image tag to deployalltools-v1.7.3
ethstats.image.repositoryethstats container image to useethereumex/eth-stats-dashboard
ethstats.image.tagethstats container image tag to deploylatest
ethstats.webSocketSecretethstats secret for posting datamy-secret-for-connecting-to-ethstats
ethstats.service.typek8s service type for ethstatsLoadBalancer
geth.image.repositorygeth container image to useethereum/client-go
geth.image.taggeth container image tag to deployv1.7.3
geth.tx.replicaCountgeth transaction nodes replica count2
geth.tx.service.typek8s service type for geth transaction nodesClusterIP
geth.tx.args.rpcapiAPIs offered over the HTTP-RPC interfaceeth,net,web3
geth.miner.replicaCountgeth miner nodes replica count3
geth.miner.account.secretgeth account secretmy-secret-account-password
geth.genesis.networkIdEthereum network id98052
geth.genesis.difficultyEthereum network difficulty0x0400
geth.genesis.gasLimitEthereum network gas limit0x8000000
geth.account.addressGeth Account to be initially funded and deposited with mined Ether
geth.account.privateKeyGeth Private Key
geth.account.secretGeth Account Secret

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example, to configure the networkid:

console
$ helm install stable/ethereum --name ethereum --set geth.genesis.networkid=98052

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

console
$ helm install stable/ethereum -f values.yaml