[Pool Update] Epoch 254

Hey people,

Welcome to the pool update for epoch 254. We have had a few turbulent days, but basically there is a lot of good news to report at the moment. In times of heavy fluctuation, you just have to stay calm and remember what the vision of this project is. We have a long road ahead of us that will be rocky at times, but in the end it will be worth it.

Coinbase and Bloomberg

First of all, I would like to mention the listing of ADA on Coinbase Pro! After the announcement, the price initially experienced a massive increase, only to drop again briefly. But much more important than the current price development is the additional exposure and easy access to Cardano through Coinbase. While ADA is not yet available on the regular platform, this is now only a matter of time.

This is the official announcement for your reference again: Cardano (ADA) is launching on Coinbase Pro

Also make sure to check out the article on the IOHK blog about this topic: Momentum continues as Coinbase lists ADA and Bloomberg adds Cardano

Or listen to it via soundcloud:

Upcoming Crowdcasts

The following two crowdcasts are dates you should definitely keep in mind. The best thing is to register right away 😉

Cardano, The Research-First Blockchain

Cardano360 March edition – monthly Cardano update!

Performance for 253

|======================================================================================|
| Leader | Ideal | Luck    | Adopted | Confirmed | Missed | Ghosted | Stolen | Invalid |
|======================================================================================|
| 48     | 40.12 | 119.64% | 46      | 46        | 0      | 1       | 1      | 0       |
|======================================================================================

Lets take a brief look at the last epoch. We were assigned 48 blocks and produced all 48 but only 46 were adopted at the end. One block was stolen by another pool due to a slot battle. I mentioned it in past updates: Slot battles occur from time to time when two pools are eligible to produce a block for the same slot. Those slot battles are decided by chance and there is nothing a pool can do to increase their chance.

The other block which is listed as ghosted is more interesting. I have not seen this before in my pool so I had to investigate what it was ultimately due to. I looked at the logs and found the following lines there (only the important parts are shown):

{"at":"2021-03-12T11:13:39.00Z","env":"1.25.1:9a733","ns":["cardano.node.Forge"],"data":{"credentials":"Cardano","val":{"kind":"TraceNodeIsLeader","slot":23981328}},"app":[],"msg":"","pid":"20005","loc":null,"host":"v2202011","sev":"Info","thread":"72"}

{"at":"2021-03-12T11:13:39.00Z","env":"1.25.1:9a733","ns":["cardano.node.ChainDB"],"data":{"kind":"TraceAddBlockEvent.AddedToCurrentChain","newtip":"4db7f940bca8c4ae822c3b641792d8bf95105304bf3166e92b72faa2eed7c6fa@23981328"},"app":[],"msg":"","pid":"20005","loc":null,"host":"v2202011","sev":"Notice","thread":"62"}

What this basically tells us is, that our node successfully produced the block for slot 23981328 at the shown time and I can also confirm that it was propagated to the network successfully and in time (e.g. by looking at the orphans tab in pooltool.io for epoch 253 and observe the corresponding block).

{"at":"2021-03-12T11:13:39.37Z","env":"1.25.1:9a733","ns":["cardano.node.ChainDB"],"data":{"kind":"TraceAddBlockEvent.TrySwitchToAFork","block":{"hash":"b3afa68cfaea6bbb33748cfffd0b6e1ebb7856809241a4f017081c0bd8decc06","kind":"Point","slot":23981308}},"app":[],"msg":"","pid":"20005","loc":null,"host":"v2202011","sev":"Info","thread":"62"}

{"at":"2021-03-12T11:13:39.37Z","env":"1.25.1:9a733","ns":["cardano.node.ChainDB"],"data":{"kind":"TraceAddBlockEvent.AddBlockValidation.ValidCandidate","block":"b3afa68cfaea6bbb33748cfffd0b6e1ebb7856809241a4f017081c0bd8decc06@23981308"},"app":[],"msg":"","pid":"20005","loc":null,"host":"v2202011","sev":"Info","thread":"62"}

{"at":"2021-03-12T11:13:39.37Z","env":"1.25.1:9a733","ns":["cardano.node.ChainDB"],"data":{"kind":"TraceAddBlockEvent.SwitchedToAFork","newtip":"b3afa68cfaea6bbb33748cfffd0b6e1ebb7856809241a4f017081c0bd8decc06@23981308"},"app":[],"msg":"","pid":"20005","loc":null,"host":"v2202011","sev":"Notice","thread":"62"}

What happened there is that the node received a block for slot 23981308 and then decided to switch to that chain as this block was for a slot before our block. So why does this happen? There were about 20 seconds difference between those two blocks, but the propagation time of the block before ours was so slow that it reached us after our block was already produced. To put this into perspective: Blocks should be propagated to the network within a second not 20 seconds. If we look at our reported propagation delays you can see that our blocks are propagated to the network in less than 0.5s!

I also contacted some of my SPO colleagues and it turned out that Chris from STR8 faced the same problem and already created an issue in the cardano-node repository: https://github.com/input-output-hk/ouroboros-network/issues/2913

I will add my report in the next few days to push this issue up again, as I really think a pool and its delegators should not be punished for the slow propagation of blocks from other pools. Propagation times are something we can actually improve by having enough relays, sufficient computing power and fast, reliable connections to other nodes in the network. Its important to note, that I do not want to blame other SPOs here, but problems need to be addressed so that we can improve steadily.

Assigned Slots for 254

|======================================================================================|
| Leader | Ideal | Luck    | Adopted | Confirmed | Missed | Ghosted | Stolen | Invalid |
|======================================================================================|
| 45     | 0     | 101.95% | 0       | 0         | 0      | 0       | 0      | 0       |
|======================================================================================|

In epoch 254 we were assigned 45 slots which leaves us at ~102% luck. But we were unlucky and got a slot which lies within the impact time of the 48h bug (2021-03-18 21:45:52 UTC), which means that we won’t be able to produce this block and again there is nothing we can do about it. This bug will hopefully be fixed in one of the next releases of the cardano-node. For the technically interested people see this issue about the 48h bug: https://github.com/input-output-hk/cardano-node/issues/2205

That’s all I have for you today! Talk to you soon 🙂