Sign inSign up

fiftysix/core-geth

By fiftysix

Updated 22 days ago

A Golang client that supports both Ethereum and Ethereum Classic.

Image
0

1.3K

fiftysix/core-geth repository overview

Fiftysix Core-Geth Docker Image

Maintainer: [email protected]

Overview

This Docker image provides a fully functional Core-Geth client built using the Fiftysix base image. Core-Geth is the execution engine for the Ethereum Classic (ETC) network, responsible for processing transactions, executing smart contracts, and maintaining the state of the Ethereum Classic blockchain. Core-Geth can also be used to run the Ethereum network, as documented here. This image is ideal for developers, blockchain enthusiasts, and institutions looking to participate in the Ethereum/Ethereum Classic networks. The code can be viewed on the Fiftysix Github.

Tags
  • latest: Points to the latest version of Core-Geth.
  • <version>: Points to a specific version of Core-Geth. For example, 1.12.19, 1.12.20.
What is Core-Geth?

Core-Geth is an Ethereum client implemented in Go, operating as the execution engine in the Ethereum or Ethereum Classic networks. Core-Geth is responsible for transaction processing, smart contract execution, and maintaining the state of the Ethereum/Ethereum Classic blockchains. It supports various Ethereum chains, including Ethereum Mainnet, Ethereum Classic, Mordor testnet, and more.

Usage
Prerequisites

To run Core-Geth effectively as an execution engine, you'll need a system with sufficient storage and memory. Core-Geth is designed to work as a standalone execution engine for the Ethereum Classic network, or as an execution engine for the Ethereum network.

Basic Usage

To run a Core-Geth node:

docker pull fiftysix/core-geth
docker run --name core-geth -d fiftysix/core-geth

This command will start the Core-Geth container, exposing the default RPC and P2P ports.

Directory Structure

In this Docker image, the following directories are used:

  • Data Directory (/node/core-geth/data): This is where Core-Geth stores blockchain data and other related files. This directory is specified in the Dockerfile and should be mounted if you want to persist data across container restarts.
  • Config Directory (/node/core-geth/configs): This directory is used for storing configuration files for Core-Geth. The Dockerfile copies a default config.toml configuration file here, which can be customized.
  • Scripts Directory (/node/core-geth/scripts): This directory contains the entrypoint script (core-geth-entrypoint.sh) and any other scripts that may be needed for starting or managing Core-Geth.
Mounting Directories

You can mount host directories to the container’s data, config, and scripts directories to customize the behavior of the Core-Geth software.

Mounting the Data Directory: To persist Core-Geth data across container restarts, you can mount a host directory to the container's data directory:

docker run --name core-geth -v /path/to/local/data:/node/core-geth/data -d fiftysix/core-geth

This command mounts the /path/to/local/data directory on your host to /node/core-geth/data in the container, ensuring that blockchain data is preserved between container instances.

Mounting a Config File: To use a custom Core-Geth configuration file, mount your configuration file to the container’s config directory and specify it using the --config flag:

docker run --name core-geth -v /path/to/local/config.toml:/node/core-geth/configs/config.toml -d fiftysix/core-geth \
  --config="/node/core-geth/configs/config.toml"

This command mounts your custom config.toml file to the container’s config directory and instructs Core-Geth to use it.

Mounting the Scripts Directory: If you have custom scripts you want to include, you can mount them to the scripts directory. For example, to replace the entrypoint script:

docker run --name core-geth -v /path/to/local/scripts:/node/core-geth/scripts -d fiftysix/core-geth

This command mounts your local scripts directory to /node/core-geth/scripts in the container, allowing you to customize the startup behavior.

Logging Core-Geth
docker logs core-geth --tail 100
Using Core-Geth
Starting Core-Geth with Custom Options

To start Core-Geth with custom options, such as enabling RPC or specifying network parameters, you can pass additional flags to the geth command:

docker run --name core-geth -d \
  -p 8545:8545 -p 8546:8546 -p 30303:30303 -p 30303:30303/udp \
  fiftysix/core-geth \
  --classic --http --http.addr "0.0.0.0" --http.port 8545 --http.corsdomain "*" --http.api "eth,net,web3" \
  --syncmode "fast" --networkid 1

This command starts Core-Geth with the HTTP RPC server enabled, listening on port 8545, with fast synchronization mode and connected to Ethereum Classic mainnet.

Exposing Ports

The following ports are commonly used by Core-Geth and are exposed in this Docker image:

  • 8545: HTTP-RPC server
  • 8546: WebSocket-RPC server
  • 30303: P2P communication (TCP and UDP)
Docker Compose

Core-Geth can also be run using Docker Compose. A Docker Compose file is available to run Core-Geth for Ethereum Classic. Example Compose files can be found on the Fiftysix Github.

Support

For support, please contact [email protected].

About Fiftysix

Fiftysix is committed to making blockchain technology accessible, efficient, and reliable through robust decentralization. Learn more at fiftysix.xyz.

Tag summary

Content type

Image

Digest

sha256:74eec1b6b

Size

218.8 MB

Last updated

22 days ago

docker pull fiftysix/core-geth