Sign inSign up

fiftysix/core-geth

By fiftysix

•Updated about 1 month ago

A Golang client that supports both Ethereum and Ethereum Classic.

Image
0

1.4K

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.tech⁠.

Tag summary

Content type

Image

Digest

sha256:74eec1b6b…

Size

218.8 MB

Last updated

about 1 month ago

docker pull fiftysix/core-geth