1

I'm trying to follow the instructions on this blog to get a private Ethereum network running on my Windows machine. https://btcblockchain.wordpress.com/2017/09/27/how-to-run-private-ethereum-blockchain-on-windows/ Maybe later I'll try Docker in the future, but for now I just want to follow this blog. This example requires having two chain in two different folders; I ran the command to setup the genesis.json on each, and that ran fine.

Error:

Fatal: Error starting protocol stack: listen udp :30303: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

I've seen variations of this issue on this site, but usually with Mist wallet.

My directories are slightly different from that blog, so these are the two commands I ran.

 geth -datadir="e:\Ethereum\ParityWinDev\node1" -verbosity 3 –port 30301 –rpcport 8101 –rpc –rpcapi eth,web3,personal,net –identity “MyNode” –networkid 2001 console

This is still running in a command window when I try the second one below.

 geth -datadir="e:\Ethereum\ParityWinDev\node2" -verbosity 3 –port 30302 –rpcport 8102 –rpc -rpcaddr "0.0.0.0" -ipcdisable -networkid 2001 console

I don't understand why it's complaining about port 30303 when I specified 30302. I've seen other samples where people use --port as well, so not sure why this sample had just one dash in front of the word "port".

There is no ipc file in any of the node1 subdirectories.

Note: I was running Parity Wallet on the production node at the same time. I killed those processes, and got same error.

Update 1: Adding screenshot from Resource Monitor showing ports: enter image description here

  • I tried on windows 7 with geth v1.7.3 and it works as expected. I'd suggest to use process explorer or similar and search for port 30303, perhaps another process has it open. – Ismael Jan 8 '18 at 20:28
  • But why 30303 when I specified 30301 and 30302? – NealWalters Jan 8 '18 at 21:24
  • The geth on Node1 is the problem. I used Resource Monitor to see the ProcessID and then saw the ProcessID was Geth. When I did Cntl-Break to stop geth.exe the ProcessID went away. I could then start Node 2, but would get same error when I start Node 1. So I still don't understand how to correct this. – NealWalters Jan 8 '18 at 21:40
  • Added screenshot from Process Monitor to bottom of original question. Does node even need a Listener? Is that what -ipcdisable is supposed to do, not run a listener? – NealWalters Jan 8 '18 at 21:46
1

Solved. I believe there was a web formatting/copy-paste problem with the double-dashes. The two dashes were being treated as a slightly different character. I replaced with double-dashes and now both nodes running.

geth --datadir="e:\Ethereum\ParityWinDev\node1" --verbosity 3 --port 30301 --rpcport 8101 --rpc –rrpcapi eth,web3,personal,net --identity “MyNode” --networkid 2001 console

  geth --datadir="e:\Ethereum\ParityWinDev\node2" --verbosity 3 --port
 30302 --rpcport 8102 --rpc --rpcaddr "0.0.0.0" --ipcdisable
 --networkid 2001 console

Apparently datadir works fine with one dash or the other character. I'm using a tool called "cmdr" as well. When changing the copy/paste dash and typing a real dash, I saw the character shape was actually different, as shown here: enter image description here. So most likely, my port overrides were being totally ignored. And now in Resource Manager I see geth.exe using 30301 and 30302.

  • Geth also accept a single dash before parameters. It is odd that geth doesn't complain when feed that character. – Ismael Jan 8 '18 at 23:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.