Choose your platform for changing a node's peer discovery Linux macOS Windows Containers
Linux Record the node's block number geth attach --exec 'eth.blockNumber' ~/.ethereum/classic/geth.ipcKeep what this prints: "Confirm the node holds peers" compares the block number with it. The command uses the default data directory. For Mordor, use ~/.ethereum/mordor; if you pass --datadir, use yours. On the unit in the Linux run guide , the geth user owns /var/lib/core-geth, so attach as sudo -u geth -H geth --classic attach --exec 'eth.blockNumber' /var/lib/core-geth/geth.ipc instead, here and in every later attach line.
Stop the node cleanly Press Ctrl-C once in the node's terminal and wait, or stop the systemd unit you wrote, for example sudo systemctl stop core-geth. Wait until the log prints Blockchain stopped and the process exits. If it exits without that line, the stop was not clean: the node recovers at its next start, and its block number can start lower than the one you recorded. Under systemd, journalctl -u core-geth shows that log.
Recorded on Linux, on v1.12.20 One Ctrl-C in the node's terminal: the node writes its state to disk and logs Blockchain stopped.If the node starts from a config file, update it If the node starts with --config, edit that file while the node is down. Under [Eth], put the three lists in place of the values of these two lines:
[Eth]
EthDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]
SnapDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]Under [Node.P2P], delete any BootstrapNodes and BootstrapNodesV5 lines: they hold the v1.12 release's bootnodes, and the --bootnodes flag in the next step takes their place. Leave --discovery.dns off the start line: it sets only EthDiscoveryURLs, and the file now sets both. For Mordor, use the three all.mordor. lists. Using the trees shows the same file.
Start it with the v1.13 line's lists and bootnodes From a terminal, with the node's other flags added to this line: a node on --datadir that runs it as it stands starts an empty chain in the default directory.
geth --classic \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network" \
--bootnodes "enode://5c1f4f1c8036879c3186f0632ce0fdf3514e67679f0b5e1814335f5093a21c6c2fda20266ca2b54aac3305085fa46d9711493da1b564489ecec7b37d1aebb5f6@178.104.220.119:30303,enode://82100619a51fed73bce973a5f7ead3a9468535bdd4c87488037f99bf53b741e4701c5909b7c92897c863c23e494e27c83470a2fcbcc51f8b49655ed377dbd962@135.148.46.64:30303,enode://d77bc6696fc2a1419871c8819baef44089cd1847b1b895266382892fd04571cc01a97c45d4df6cbe4c37004195a3c578a76e706d12548916ca5c4341768b1972@62.72.47.101:30303"Under systemd, put the two flags and their values on the unit's ExecStart line instead, then run sudo systemctl daemon-reload && sudo systemctl start core-geth, where core-geth stands for your unit. If the line already has --discovery.dns or --bootnodes, put these values in place of theirs. If you updated a config file, leave out --discovery.dns and its value. The node then reads these three lists in place of the one its release reads, and starts from the v1.13 line's bootnodes in place of its own. It needs no working bootnode to use the lists, because it dials the nodes in them directly.
Recorded on Linux, on v1.12.20 Started from a terminal with the step's line and --syncmode full, the node's other flag. It advertises 203.0.113.10, an address reserved for documentation, set with GETH_NAT for this recording in place of the node's own, and logs Block synchronisation started 8 seconds after its P2P networking starts, then imports blocks.On Mordor, start it with this line instead Mordor, Ethereum Classic's test network, has lists and bootnodes of its own:
geth --mordor \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.network" \
--bootnodes "enode://d6f2e535a2d183f930bd780913d1d4169d3479f22c2941117d10184d65adbb614866db83049438c17657d1b24a53f3560280f563305426e93868a9a98a02c5fc@2.29.31.123:30303,enode://b0b8da5708a22a0bc92e993c6fb93801d1bc5956efaf3ef7cafcd3af2167f634a2147abb6913a719d61ed03e180aa2045ffea7bd2e367db589165e83058df487@40.160.140.180:30303"The notes under "Start it with the v1.13 line's lists and bootnodes" apply to this one too.
Confirm the node holds peers In another terminal:
geth attach --exec 'net.peerCount' ~/.ethereum/classic/geth.ipc
geth attach --exec 'eth.blockNumber' ~/.ethereum/classic/geth.ipcIf an attach line cannot connect, wait a minute and run it again. The peer count climbs within minutes. If it is still zero after five minutes, see Why does the node have no peers? , and if the lists and bootnodes have gone dark, start it once from the node records . The block number starts near the one you recorded, or lower after an unclean stop, and climbs to the network's head.
macOS Record the node's block number geth attach --exec 'eth.blockNumber' ~/Library/Ethereum/classic/geth.ipcKeep what this prints: "Confirm the node holds peers" compares the block number with it. The command uses the default data directory. For Mordor, use ~/Library/Ethereum/mordor; if you pass --datadir, use yours.
Stop the node cleanly Press Ctrl-C once in the node's terminal and wait, or unload the launchd job. Stop it cleanly has the command for the run guide's agent. Wait until the log prints Blockchain stopped and the process exits. If it exits without that line, the stop was not clean: the node recovers at its next start, and its block number can start lower than the one you recorded.
If the node starts from a config file, update it If the node starts with --config, edit that file while the node is down. Under [Eth], put the three lists in place of the values of these two lines:
[Eth]
EthDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]
SnapDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]Under [Node.P2P], delete any BootstrapNodes and BootstrapNodesV5 lines: they hold the v1.12 release's bootnodes, and the --bootnodes flag in the next step takes their place. Leave --discovery.dns off the start line: it sets only EthDiscoveryURLs, and the file now sets both. For Mordor, use the three all.mordor. lists. Using the trees shows the same file.
Start it with the v1.13 line's lists and bootnodes From a terminal, with the node's other flags added to this line: a node on --datadir that runs it as it stands starts an empty chain in the default directory.
geth --classic \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network" \
--bootnodes "enode://5c1f4f1c8036879c3186f0632ce0fdf3514e67679f0b5e1814335f5093a21c6c2fda20266ca2b54aac3305085fa46d9711493da1b564489ecec7b37d1aebb5f6@178.104.220.119:30303,enode://82100619a51fed73bce973a5f7ead3a9468535bdd4c87488037f99bf53b741e4701c5909b7c92897c863c23e494e27c83470a2fcbcc51f8b49655ed377dbd962@135.148.46.64:30303,enode://d77bc6696fc2a1419871c8819baef44089cd1847b1b895266382892fd04571cc01a97c45d4df6cbe4c37004195a3c578a76e706d12548916ca5c4341768b1972@62.72.47.101:30303"If the node runs under the run guide's launchd agent, add the two flags and their values to the agent's ProgramArguments instead, each as a <string> of its own, and start the agent as Keep it running shows. If the line already has --discovery.dns or --bootnodes, put these values in place of theirs. If you updated a config file, leave out --discovery.dns and its value. The node then reads these three lists in place of the one its release reads, and starts from the v1.13 line's bootnodes in place of its own. It needs no working bootnode to use the lists, because it dials the nodes in them directly.
On Mordor, start it with this line instead Mordor, Ethereum Classic's test network, has lists and bootnodes of its own:
geth --mordor \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.network" \
--bootnodes "enode://d6f2e535a2d183f930bd780913d1d4169d3479f22c2941117d10184d65adbb614866db83049438c17657d1b24a53f3560280f563305426e93868a9a98a02c5fc@2.29.31.123:30303,enode://b0b8da5708a22a0bc92e993c6fb93801d1bc5956efaf3ef7cafcd3af2167f634a2147abb6913a719d61ed03e180aa2045ffea7bd2e367db589165e83058df487@40.160.140.180:30303"The notes under "Start it with the v1.13 line's lists and bootnodes" apply to this one too.
Confirm the node holds peers In another terminal:
geth attach --exec 'net.peerCount' ~/Library/Ethereum/classic/geth.ipc
geth attach --exec 'eth.blockNumber' ~/Library/Ethereum/classic/geth.ipcIf an attach line cannot connect, wait a minute and run it again. The peer count climbs within minutes. If it is still zero after five minutes, see Why does the node have no peers? , and if the lists and bootnodes have gone dark, start it once from the node records . The block number starts near the one you recorded, or lower after an unclean stop, and climbs to the network's head.
Windows Record the node's block number In PowerShell, in the folder that holds the node's geth.exe:
.\geth.exe attach --exec 'eth.blockNumber' \\.\pipe\geth.ipcKeep what this prints: "Confirm the node holds peers" compares the block number with it.
Stop the node cleanly Press Ctrl+C once in the node's console window and wait. A window opened from the Startup folder then asks Terminate batch job (Y/N)?; type Y. Under a service wrapper, stop it with that tool. Wait until the log prints Blockchain stopped and the process exits. If it exits without that line, the stop was not clean: the node recovers at its next start, and its block number can start lower than the one you recorded.
If the node starts from a config file, update it If the node starts with --config, edit that file while the node is down. Under [Eth], put the three lists in place of the values of these two lines:
[Eth]
EthDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]
SnapDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]Under [Node.P2P], delete any BootstrapNodes and BootstrapNodesV5 lines: they hold the v1.12 release's bootnodes, and the --bootnodes flag in the next step takes their place. Leave --discovery.dns off the start line: it sets only EthDiscoveryURLs, and the file now sets both. For Mordor, use the three all.mordor. lists. Using the trees shows the same file. Save the file as UTF-8 with no byte order mark. A byte order mark, or UTF-16, stops the start with invalid TOML syntax.
Start it with the v1.13 line's lists and bootnodes In PowerShell, in the folder that holds the node's geth.exe, with the node's other flags added to this line: a node on --datadir that runs it as it stands starts an empty chain in the default directory.
.\geth.exe --classic --discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network" --bootnodes "enode://5c1f4f1c8036879c3186f0632ce0fdf3514e67679f0b5e1814335f5093a21c6c2fda20266ca2b54aac3305085fa46d9711493da1b564489ecec7b37d1aebb5f6@178.104.220.119:30303,enode://82100619a51fed73bce973a5f7ead3a9468535bdd4c87488037f99bf53b741e4701c5909b7c92897c863c23e494e27c83470a2fcbcc51f8b49655ed377dbd962@135.148.46.64:30303,enode://d77bc6696fc2a1419871c8819baef44089cd1847b1b895266382892fd04571cc01a97c45d4df6cbe4c37004195a3c578a76e706d12548916ca5c4341768b1972@62.72.47.101:30303"If the node starts from the Startup folder, as the run guide's Keep it running sets up, put the two flags and their values on the line in that command file instead, and run it. If the line already has --discovery.dns or --bootnodes, put these values in place of theirs. If you updated a config file, leave out --discovery.dns and its value. The node then reads these three lists in place of the one its release reads, and starts from the v1.13 line's bootnodes in place of its own. It needs no working bootnode to use the lists, because it dials the nodes in them directly.
On Mordor, start it with this line instead Mordor, Ethereum Classic's test network, has lists and bootnodes of its own:
.\geth.exe --mordor --discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.network" --bootnodes "enode://d6f2e535a2d183f930bd780913d1d4169d3479f22c2941117d10184d65adbb614866db83049438c17657d1b24a53f3560280f563305426e93868a9a98a02c5fc@2.29.31.123:30303,enode://b0b8da5708a22a0bc92e993c6fb93801d1bc5956efaf3ef7cafcd3af2167f634a2147abb6913a719d61ed03e180aa2045ffea7bd2e367db589165e83058df487@40.160.140.180:30303"The notes under "Start it with the v1.13 line's lists and bootnodes" apply to this one too.
Confirm the node holds peers In a second PowerShell window, in the same folder:
.\geth.exe attach --exec 'net.peerCount' \\.\pipe\geth.ipc
.\geth.exe attach --exec 'eth.blockNumber' \\.\pipe\geth.ipcIf an attach line cannot connect, wait a minute and run it again. The peer count climbs within minutes. If it is still zero after five minutes, see Why does the node have no peers? , and if the lists and bootnodes have gone dark, start it once from the node records . The block number starts near the one you recorded, or lower after an unclean stop, and climbs to the network's head.
Containers Record the node's block number, image and restart policy docker exec core-geth geth attach --exec 'eth.blockNumber' /root/.ethereum/classic/geth.ipc
docker inspect core-geth --format '{{.Config.Image}}'
docker inspect core-geth --format '{{.HostConfig.RestartPolicy.Name}}'Keep what these print: "Confirm the node holds peers" compares the block number, the new container runs the same v1.12 image, and it takes the old container's restart policy. These commands use a container named core-geth with its data at /root, so put your own name in its place. For Mordor, use .ethereum/mordor in the path.
Check where the container keeps its data docker inspect core-geth --format '{{range .Mounts}}{{.Destination}} {{end}}'This prints /root, or /root/.ethereum, when the data is in a host directory or a named volume, which the new container takes over. If it prints neither, the data is inside the container itself: after the stop, take the copy step below, or the new container starts with no chain and resyncs.
Stop the node cleanly docker stop -t 300 core-geth
docker logs --tail 50 core-geth 2>&1 | grep 'Blockchain stopped'The second command prints Blockchain stopped after a clean stop. If it prints nothing, the node did not stop cleanly: it recovers at its next start, moving its head back and importing those blocks again (After an unclean stop ), so its block number can start lower than the one you recorded. Use -t 300: a plain docker stop kills the node if it has not stopped within 10 seconds.
If the data is inside the container, copy it out If the check printed neither, run this. It copies the data out of the stopped container, which needs as much free space as the chain takes:
mkdir -p $HOME/core-geth-data &&
docker cp core-geth:/root/. $HOME/core-geth-data/The chain comes with the copy, so the node does not resync.
If the node starts from a config file, update it If the node starts with --config, edit that file while the node is down. Under [Eth], put the three lists in place of the values of these two lines:
[Eth]
EthDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]
SnapDiscoveryURLs = [
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net",
"enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network",
]Under [Node.P2P], delete any BootstrapNodes and BootstrapNodesV5 lines: they hold the v1.12 release's bootnodes, and the --bootnodes flag in the next step takes their place. Leave --discovery.dns off the start line: it sets only EthDiscoveryURLs, and the file now sets both. For Mordor, use the three all.mordor. lists. Using the trees shows the same file. For a container, edit the file its --config names, on the host it is mounted from.
Replace the container with one that reads the v1.13 line's lists and bootnodes A container cannot take a new flag, so this block replaces it with one from the same image, on the same data. Before you run it, put the old container's flags in its last lines, after --classic, and its GETH_ variables in as -e options: docker inspect core-geth --format '{{json .Args}} {{json .Config.Env}}' prints both. Keep its port mappings, and put the restart policy you recorded in place of unless-stopped. If the old container ran with --network host, run this one that way too, without the -p options and with --http.addr 127.0.0.1. If you copied the data out, put -v $HOME/core-geth-data:/root in place of --volumes-from core-geth-old.
IMAGE=$(docker inspect core-geth --format '{{.Config.Image}}') &&
docker rename core-geth core-geth-old &&
docker update --restart no core-geth-old &&
docker run -d --name core-geth \
--restart unless-stopped --stop-timeout 300 \
--volumes-from core-geth-old \
-p 30303:30303 -p 30303:30303/udp -p 127.0.0.1:8545:8545 \
"$IMAGE" \
--classic --http --http.addr 0.0.0.0 --http.port 8545 \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.classic.ethereumclassic.network" \
--bootnodes "enode://5c1f4f1c8036879c3186f0632ce0fdf3514e67679f0b5e1814335f5093a21c6c2fda20266ca2b54aac3305085fa46d9711493da1b564489ecec7b37d1aebb5f6@178.104.220.119:30303,enode://82100619a51fed73bce973a5f7ead3a9468535bdd4c87488037f99bf53b741e4701c5909b7c92897c863c23e494e27c83470a2fcbcc51f8b49655ed377dbd962@135.148.46.64:30303,enode://d77bc6696fc2a1419871c8819baef44089cd1847b1b895266382892fd04571cc01a97c45d4df6cbe4c37004195a3c578a76e706d12548916ca5c4341768b1972@62.72.47.101:30303"If the old container's command already has --discovery.dns or --bootnodes, put these values in place of theirs. If you updated a config file, leave out --discovery.dns and its value. The node then reads these three lists in place of the one its release reads, and starts from the v1.13 line's bootnodes in place of its own. It needs no working bootnode to use the lists, because it dials the nodes in them directly.
On Mordor, run this block instead Mordor, Ethereum Classic's test network, has lists and bootnodes of its own:
IMAGE=$(docker inspect core-geth --format '{{.Config.Image}}') &&
docker rename core-geth core-geth-old &&
docker update --restart no core-geth-old &&
docker run -d --name core-geth \
--restart unless-stopped --stop-timeout 300 \
--volumes-from core-geth-old \
-p 30303:30303 -p 30303:30303/udp -p 127.0.0.1:8545:8545 \
"$IMAGE" \
--mordor --http --http.addr 0.0.0.0 --http.port 8545 \
--discovery.dns "enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethclassic.net,enrtree://APDLRZ2T7ERXPWXX4D5USB32NIFYHXMFVZQ3DZALK6JJJ5L4VSYIQ@all.mordor.ethereumclassic.network" \
--bootnodes "enode://d6f2e535a2d183f930bd780913d1d4169d3479f22c2941117d10184d65adbb614866db83049438c17657d1b24a53f3560280f563305426e93868a9a98a02c5fc@2.29.31.123:30303,enode://b0b8da5708a22a0bc92e993c6fb93801d1bc5956efaf3ef7cafcd3af2167f634a2147abb6913a719d61ed03e180aa2045ffea7bd2e367db589165e83058df487@40.160.140.180:30303"The notes under "Replace the container with one that reads the v1.13 line's lists and bootnodes" apply to this one too.
Confirm the node holds peers For Mordor, use .ethereum/mordor in the paths:
docker exec core-geth geth attach --exec 'net.peerCount' /root/.ethereum/classic/geth.ipc
docker exec core-geth geth attach --exec 'eth.blockNumber' /root/.ethereum/classic/geth.ipcIf an attach line cannot connect, wait a minute and run it again. The peer count climbs within minutes. If it is still zero after five minutes, see Why does the node have no peers? , and if the lists and bootnodes have gone dark, start it once from the node records . The block number starts near the one you recorded, or lower after an unclean stop, and climbs to the network's head. The old container stays, stopped, as core-geth-old. Once the new one holds peers, remove it with docker rm core-geth-old, which leaves the volumes the new container uses.