-
Notifications
You must be signed in to change notification settings - Fork 37
Description
I've been using chatgpt to help me out to build my own mining pool using ubuntu+miningcore,
when I run the command sudo nano logs emark --follow, anything happens, I've got already my minig pool fixedcoin, when I adding emark config.json, the pool goes into "maintenace", I konow something is wrong there, but I can't find any solution
Perfect! Let’s create a full Docker Compose stack that runs:
- eMark daemon (
eMarkd) - Miningcore
- Configured for a solo mining pool
- Persistent volumes, auto-restart, ready to connect miners
Here’s a production-ready setup.
Step 1: Create the project folder
mkdir emark-pool && cd emark-poolStep 2: Create docker-compose.yml
version: "3.9"
services:
emarkd:
build: ./emarkd
container_name: emarkd
restart: unless-stopped
ports:
- "7777:7777" # RPC port
- "7778:7778" # P2P port
volumes:
- ./emark-data:/root/.eMark
command: >
eMarkd
-rpcallowip=0.0.0.0/0
-rpcuser=demrpc
-rpcpassword=ChangeMeStrongPassword
-server=1
-daemon=0
miningcore:
image: ghcr.io/coinfoundry/miningcore:latest
container_name: miningcore
restart: unless-stopped
depends_on:
- emarkd
volumes:
- ./config:/config
ports:
- "4000:4000" # Stratum port
- "4001:4001" # Optional Stratum port
command: >
dotnet Miningcore.dll -c /config/config.jsonStep 3: Create Dockerfile for eMarkd
Folder: emarkd/Dockerfile
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y \
git build-essential libssl-dev libdb++-dev \
libboost-all-dev libprotobuf-dev libqrencode-dev \
libminiupnpc-dev curl \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /opt/emark
RUN git clone https://github.com/emarkproject/eMark.git .
WORKDIR /opt/emark/src
RUN make -f makefile.unix
RUN cp eMarkd /usr/local/bin/
VOLUME ["/root/.eMark"]
WORKDIR /root/.eMark
EXPOSE 7777 7778
CMD ["eMarkd", "-rpcallowip=0.0.0.0/0", "-rpcuser=demrpc", "-rpcpassword=ChangeMeStrongPassword", "-server=1", "-daemon=0"]Step 4: Create Miningcore configuration
Create folder: config/coins/
File: config/coins/emark.json
{
"name": "emark",
"symbol": "DEM",
"family": "bitcoin",
"hash": "sha256d",
"rpcPort": 7777,
"blockTime": 120,
"blockReward": 25,
"p2pPort": 7778,
"targetSpacing": 120,
"maxMoney": 210000000,
"addressPrefixes": {
"pubKey": [34],
"script": [5]
},
"magic": "0xFBC0B6DB"
}File: config/config.json
{
"logging": { "level": "info", "console": true },
"pools": [
{
"id": "emark-solo",
"enabled": true,
"coin": "emark",
"address": "YOUR_PAYOUT_ADDRESS",
"poolFeePercent": 0.0,
"blockRefreshInterval": 500,
"jobRebroadcastTimeout": 10,
"connection": { "port": 4000, "bind": "0.0.0.0" },
"daemons": [
{ "host": "emarkd", "port": 7777, "user": "demrpc", "password": "ChangeMeStrongPassword" }
],
"paymentProcessing": { "enabled": true, "minimumConfirmations": 10, "payoutInterval": 600 }
}
],
"api": { "enabled": false },
"stratum": { "enabled": true }
}🔹 Replace
YOUR_PAYOUT_ADDRESSwith your actual eMark address.
🔹 ThemagicandaddressPrefixesmatch the DEM chain defaults. If your chain differs, adjust accordingly.
Step 5: Start the stack
docker compose up -deMarkdwill sync the blockchain in./emark-dataMiningcorewill start a solo pool listening on port 4000 for miners
Check logs:
docker logs -f emarkd
docker logs -f miningcoreStep 6: Connect a miner
cpuminer -a sha256d \
-o stratum+tcp://YOUR_SERVER_IP:4000 \
-u YOUR_PAYOUT_ADDRESS -p x✅ You now have a complete eMark solo mining pool stack in Docker.
It’s persistent, auto-restarting, and ready for miners.
If you want, I can also add a monitoring dashboard with Grafana + Prometheus so you can see live pool stats and miner shares inside the same Docker Compose.
Do you want me to add that?