<p>This appears to be your topology file. You're probably running the p2p enabled config, but using the old topology format. Edit config.json and set &quot;EnableP2P&quot;: false, or remove the parameter totally. If that's not enabled, post your topology file (hiding your IPs), so we can look at it. Your p2p local roots needs to look like the following:</p>
<pre><code>  &quot;localRoots&quot;: [{
    &quot;accessPoints&quot;: [
      {&quot;address&quot;: &quot;your blockproducer/relay IP or domain name&quot;, &quot;port&quot;: 6000}
    ],
    &quot;advertise&quot;: false,
    &quot;valency&quot;: 1
  },{
   &quot;accessPoints&quot;: [
     {&quot;address&quot;: &quot;if you have a second relay&quot;, &quot;port&quot;: 6000}
   ],
   &quot;advertise&quot;: false,
   &quot;valency&quot;: 1
  }],
</code></pre>
<p>If you're certain P2P is not enabled in your config, then you could try the old format (and by old I mean about 2 weeks old now and is still used by the majority).</p>
<pre><code>{
  &quot;Producers&quot;: [
    {
      &quot;addr&quot;: &quot;BP/Relay IP or domain name&quot;,
      &quot;port&quot;: 6000,
      &quot;valency&quot;: 1
    },
    {
      &quot;addr&quot;: &quot;If you have a second&quot;,
      &quot;port&quot;: 6000,
      &quot;valency&quot;: 1
    }
  ]
}
</code></pre>

CC BY-SA 4.0
2023-04-08T20:21:53.173Z
Thanks @PREEB, I didn't see anything about EnableP2P. I posted the contents of the topology file in the body of my original question. Thanks for having a look.
John Shearing
CC BY-SA 4.0
2023-04-09T12:16:51.870Z
@JohnShearing I updated my answer above. Looks like you're using the "preview" version of the config.json, which in fact does have   "EnableP2P": true,
PREEB
CC BY-SA 4.0
2023-04-08T18:30:57.267Z
2023-04-09T12:14:59.043Z
2023-04-09T12:14:59.043Z
PREEB
<p>Ultimately the following text in the topology.json file worked when setting <code>EnableP2P&quot;: false</code> in the config.json file all as @PREEB suggested.</p>
<pre><code>{
  &quot;Producers&quot;: [
    {
      &quot;addr&quot;: &quot;preview-node.world.dev.cardano.org&quot;,
      &quot;port&quot;: 30002,
      &quot;valency&quot;: 1
    }
  ]
}
</code></pre>
<p>The URL to use was <a href="https://book.world.dev.cardano.org/environments/preview/topology.json" rel="nofollow noreferrer">found here</a> and it had to be pasted into a file of the format suggested by @PREEB</p>
<p>So I followed the directions in the course correctly but the file topology.json file I was directed to use was not correct and the P2P setting in the config.json file was set to true when it must be set to false.</p>
<p>I hope this can be corrected in the documentation so that others will not have the same problem when working through the course. Otherwise I am really enjoying the course and learning a lot.</p>
<p>I see the <a href="https://github.com/carloslodelar/cardano-course" rel="nofollow noreferrer">GitHub repository is here</a>.
I will reach out to the creator.</p>
<p>Much thanks.</p>

CC BY-SA 4.0
2023-04-10T03:10:55.207Z
2023-04-10T04:06:51.727Z
2023-04-10T04:06:51.727Z
John Shearing
<p>I am following along with the new Official IOG Cardano Node Course:</p>
<pre><code>https://cardano-course.gitbook.io/cardano-course/
</code></pre>
<p>I am stuck at Video 3 at 6 minutes and 8 seconds in.</p>
<pre><code>https://youtu.be/YlUljmlCPYs?t=368
</code></pre>
<p>I started with a new WSL setup with Ubuntu 22.04.
I used the nix setup method shown in video 2.
There was no indication of any problems.
Then I ran the following command to start the node.</p>
<pre><code>js@LAPTOP-NGQPLDGT:~/preview$ cardano-node run --topology topology.json --database-path db --socket-path node.socket --port 3001 --config config.json
</code></pre>
<p>This produced the following error message:</p>
<pre><code>cardano-node: FatalError {fatalErrorMessage = &quot;Cardano.Node.Run.handleSimpleNodeP2P.readTopologyFile: Is your topology file formatted correctly? Expecting P2P Topology file format. The port and valency fields should be numerical. If you specified the correct topology file make sure that you correctly setup EnableP2P configuration flag. Error in $: key &quot;LocalRoots&quot; not found&quot;}
</code></pre>
<p>It should work if I followed the directions exactly because I used the topology file that was supplied with the course. I am reporting the issue here because if I followed the directions accurately then there is an issue with the course materials which must be fixed.
I am curious to know if there is anyone else using Windows Subsystem for Linux setup with Ubuntu 22.04 who has followed video 2 in the series and what was the result?
Any ideas?
Much thanks.</p>
<blockquote>
<p>The following is the contents of the topology file. It was retrieved using the following command as per course instructions <a href="https://cardano-course.gitbook.io/cardano-course/handbook/module-1-build-and-run-the-node/running-the-node-and-connecting-to-a-network" rel="nofollow noreferrer">found at this link here</a>.</p>
</blockquote>
<pre><code>wget https://book.world.dev.cardano.org/environments/preview/topology.json

{
  &quot;localRoots&quot;: [
    {
      &quot;accessPoints&quot;: [],
      &quot;advertise&quot;: false,
      &quot;valency&quot;: 1
    }
  ],
  &quot;publicRoots&quot;: [
    {
      &quot;accessPoints&quot;: [
        {
          &quot;address&quot;: &quot;preview-node.world.dev.cardano.org&quot;,
          &quot;port&quot;: 30002
        }
      ],
      &quot;advertise&quot;: false
    }
  ],
  &quot;useLedgerAfterSlot&quot;: 322000
}
</code></pre>

<cardano-node><node>
Official IOG Cardano Node Course Documentation Error - Node Won't Start
# Official IOG Cardano Node Course Documentation Error - Node Won't Start

(Asked by: username_0 on 2023-04-08)

I am following along with the new Official IOG Cardano Node Course:
https://cardano-course.gitbook.io/cardano-course/

I am stuck at Video 3 at 6 minutes and 8 seconds in.
https://youtu.be/YlUljmlCPYs?t=368

I started with a new WSL setup with Ubuntu 22.04.
I used the nix setup method shown in video 2.
There was no indication of any problems.
Then I ran the following command to start the node.
js@LAPTOP-NGQPLDGT:~/preview$ cardano-node run --topology topology.json --database-path db --socket-path node.socket --port 3001 --config config.json

This produced the following error message:
cardano-node: FatalError {fatalErrorMessage = "Cardano.Node.Run.handleSimpleNodeP2P.readTopologyFile: Is your topology file formatted correctly? Expecting P2P Topology file format. The port and valency fields should be numerical. If you specified the correct topology file make sure that you correctly setup EnableP2P configuration flag. Error in $: key "LocalRoots" not found"}

It should work if I followed the directions exactly because I used the topology file that was supplied with the course. I am reporting the issue here because if I followed the directions accurately then there is an issue with the course materials which must be fixed.
I am curious to know if there is anyone else using Windows Subsystem for Linux setup with Ubuntu 22.04 who has followed video 2 in the series and what was the result?
Any ideas?
Much thanks.

The following is the contents of the topology file. It was retrieved using the following command as per course instructions found at this link here.

wget https://book.world.dev.cardano.org/environments/preview/topology.json

{
  "localRoots": [
    {
      "accessPoints": [],
      "advertise": false,
      "valency": 1
    }
  ],
  "publicRoots": [
    {
      "accessPoints": [
        {
          "address": "preview-node.world.dev.cardano.org",
          "port": 30002
        }
      ],
      "advertise": false
    }
  ],
  "useLedgerAfterSlot": 322000
}

**Tags:** cardano-node, node

---

## 2 answers

### Answer by username_1 on 2023-04-08. Score: 1 | Accepted answer

This appears to be your topology file. You're probably running the p2p enabled config, but using the old topology format. Edit config.json and set "EnableP2P": false, or remove the parameter totally. If that's not enabled, post your topology file (hiding your IPs), so we can look at it. Your p2p local roots needs to look like the following:
  "localRoots": [{
    "accessPoints": [
      {"address": "your blockproducer/relay IP or domain name", "port": 6000}
    ],
    "advertise": false,
    "valency": 1
  },{
   "accessPoints": [
     {"address": "if you have a second relay", "port": 6000}
   ],
   "advertise": false,
   "valency": 1
  }],

If you're certain P2P is not enabled in your config, then you could try the old format (and by old I mean about 2 weeks old now and is still used by the majority).
{
  "Producers": [
    {
      "addr": "BP/Relay IP or domain name",
      "port": 6000,
      "valency": 1
    },
    {
      "addr": "If you have a second",
      "port": 6000,
      "valency": 1
    }
  ]
}

> **Comments:**
> **username_0**: Thanks @PREEB, I didn't see anything about EnableP2P. I posted the contents of the topology file in the body of my original question. Thanks for having a look.  
> **username_1**: @JohnShearing I updated my answer above. Looks like you're using the "preview" version of the config.json, which in fact does have   "EnableP2P": true,  

---

### Answer by username_0 on 2023-04-10. Score: 0

Ultimately the following text in the topology.json file worked when setting EnableP2P": false in the config.json file all as @PREEB suggested.
{
  "Producers": [
    {
      "addr": "preview-node.world.dev.cardano.org",
      "port": 30002,
      "valency": 1
    }
  ]
}

The URL to use was found here and it had to be pasted into a file of the format suggested by @PREEB
So I followed the directions in the course correctly but the file topology.json file I was directed to use was not correct and the P2P setting in the config.json file was set to true when it must be set to false.
I hope this can be corrected in the documentation so that others will not have the same problem when working through the course. Otherwise I am really enjoying the course and learning a lot.
I see the GitHub repository is here.
I will reach out to the creator.
Much thanks.


---

