This evening, EOS Dublin was working with the Scholar testnet to get online with their DAWN v3 testnet. A seemingly innocuous run to standup another test net, nothing we haven’t done before. Yet still I hit some minor bumps in the road. Luckily they were embarrassingly obvious so the fix was trivial.
Well, how about it? Here’s an extract of the config I was working with that wasn’t, well, working. Can you spot the three erroneous lines?
get-transactions-time-limit = 3
genesis-json = “genesis.json”
block-log-dir = “blocks”
max-reversible-block-time = -1
max-pending-transaction-time = -1
http-server-address = 127.0.0.1:8888
access-control-allow-origin = *
access-control-allow-headers = Content-Type
access-control-allow-credentials = true
p2p-listen-endpoint = 127.0.0.1:9876
agent-name = “eos.dublin”
allowed-connection = any
log-level-net-plugin = info
max-clients = 25
connection-cleanup-period = 30
network-version-match = 0
sync-fetch-span = 10000
enable-stale-production = false
required-participation = 33
producer-name = REPLACE
private-key = [“<REPLACE>”, “<REPLACE>”]
plugin = eosio::producer_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
plugin = eosio::net_api_plugin
plugin = eosio::account_history_plugin
plugin = eosio::account_history_api_plugin
Two of them should be pretty obvious. Those big ‘REPLACE’ strings clearly need to be filled with their proper values!
Then the third issue reared its ugly head. If you haven’t spotted it yet, here’s a clue
The last issue can be a little tricky if you don’t know the rest of the setup. For the P2P connectivity, I’m not forwarding any traffic, relying on the nodeos plugin to handle that for me. Based on that knowledge, notice this line:
p2p-listen-endpoint = 127.0.0.1:9876
I’m telling the EOS networking plugin to serve on the local loopback interface 127.0.0.1. Without configuring a route from the outside world to that interface, no traffic will flow! Whoops, I must’ve changed this thinking I was changing the HTTP server address. Switching over to 0.0.0.0 ensures that the plugin will listen on all available interfaces.
Boom! There we go.
What’s the takeaway here? A single configuration issue can trip you up and cost you big time by taking your node offline. Configuration is a key element to your setup and should be treated accordingly. Automate what you can and keep your configuration files in version control! What did I do wrong? I copied the file from a default config, edited it in haste and didn’t check the results. Tut tut.
Till next time — Sam Noble — EOS Dublin