Learning Lessons - 3#. Cardano

Hello Carlos,
thanks for your great courses. I could follow them so far but now at lesson 3 I encountered something I don’t understand.

https://developers.cardano.org/docs/stake-pool-course/lesson-3/

As in the first video on the page told, I created the paymentwithstake.addr file. (I thought that should be the address that gets registered on the blockchain.)

But in the second video I should use the payment.addr to register it in the blockchain? Wasn’t the paymentwithstake.addr supposed to get registered in the blockchain?

(The same problem in the written version.)

That really confuses me. (I thought that paymentwithstake.addr gets registered and not payment.addr because of security reason.)

As feedback overall:
I really like the school (and the new design). I only had some issues to understand the TxIx in the written version of lesson 2. Your video really helped me out to understand that the transaction index is found in query of the address.

Another difficulty I have is that the tutorial is split over different pages, even when they are for the same lesson. I had to use 3 tabs to complete lesson 2 and the same goes for lesson 3.
It would be easier for beginners to have everything in one place.

IMHO
It would help to have shorter videos, more accurate on the topic. Or to have only a written tutorial with a lot of information in it.

EDIT: Just an idea. Only explain the reason of the lesson in the video without executing any commands or such. The commands and what should be done can be found then on the same lesson page below. This gives a beginner (like me) an overview and basic understanding. Doing it like that you don’t have the problem that the commands in the video could be outdated and you can update the written version easily.

I am not sure if Lesson 4 is already complete, but the referenced written documentation here

differs from the content of the video demonstration.

The topology video

does tell about a github link to all relay nodes for the topology file, but the written documentation misses that. Should be used the 3rd party guild sh script instead?

EDIT: It would be nice to have some more information about the velocity value inside the topology file.

The Producer should have only the Relays inside the topology file (but til the node will be 100% synced keep the IOHK nodes inside)

The Relays will run a script called topologyUpdater which will add automatically other nodes + the Producer inside the topology file

Thanks for your explanation Alexd.

Dumb questions – since i get a little confused that the first entry in the topology has to be Producer: How does the topology file looks like if I have 2 Producers and 2 Relay nodes? Is this even possible or is only one Producer allowed?

If there are more Producers allowed: How should the topology.json look like in this scenario?

Producer 1 IP : 10.0.0.1
Producer 2 IP : 10.0.0.2
Relay 1 IP : 10.0.0.3
Relay 2 IP : 10.0.0.4

topology.json of Relay 1 & 2:

{
    "Producers": [
      {
        "addr": "10.0.0.1", // Producer 1
        "port": 3001,
        "valency": 1
      }
      {
        "addr": "10.0.0.2", // Producer 2
        "port": 3001,
        "valency": 1
      }
      // Don't have to write anything after that because
      // Relays will be automatically populated by topologyUpdater
    ]
}

topology.json of Producer 1 and 2:

{
    "Producers": [
      {
        "addr": "10.0.0.3", // Relay 1
        "port": 3001,
        "valency": 1
      }
      {
        "addr": "10.0.0.4", // Relay 2
        "port": 3001,
        "valency": 1
      }
    ]
}

Would that be correct?

About Velocity:
What I’ve read is that higher numbers of velocity only working if DNS is used. If this is correct: Is this some kind of load balancing?

You can use more Producers but I believe u can’t run 2 nodes as Producer same time … u will need to implement mechanism for failover (auto or manually)

But the topology file has no limitations

1 Like

The correct format

},
{

Thanks Alexd. I was confused by the object array name Producers. Your explanation helped me to understand:

  1. Producer: Put relays inside the object array
  2. Relays: Put Producer on the first position inside the object array and then use topologyUpdater.

The correct format

I missed that by copy&paste. Thanks for highlighting this out.

1 Like