Albatross: What topic do you want a video about?

Hey,

Pascal and I already recorded a few videos over the last couple of days, but we are leaving Costa Rica tomorrow and want to film a last video while we are still here.

I’m a little bit clueless what could be an interesting topic. So I ask you: What do you want to hear about? Here are some ideas from me:

VRFs

I worked on a cleaner implementation of the Verifiable Random Function that we use for validator selection and slot selection. They’re also used to distribute any reward that can’t be split between validators.

New client API & client binary

I reworked the Rust API that abstracts all the internals of the Albatross client code. Now it’s much easier to use our code as a Rust library (called crate in the Rust ecosystem). It also simplified the code that we use to start up a client.

I used this interface to e.g. write a simple Albatross explorer for debugging.

But I’m not really sure what I would talk about here, since it’s just a programming interface.

Slashing

We changed slashing, so that there is no inherent need for a minimum stake anymore. We already did a video about it, but it’s not released yet. We finished the changes after the video. So another video about this makes only sense, if you want us to go into detail. You can take a look at the wiki[1] for this too.

Hybrid UTXO

We started preparations to implement a hybrid UTXO model. We will still have accounts trees, as they’re very useful for light nodes. But to have privacy features in the future, we will need support for UTXOs too.

MacroBlockSync

Pascal implemented a sync mode that speed up syncing full nodes. Albatross produces blocks so fast that it’s hard to catch up. We thought up a method to only sync macro blocks. This method saves a lot of bandwidth that would otherwise be used for transmitting micro block headers.

Overview of Albatross

Maybe just an overview of how the Albatross consensus works? The wiki[1] already mentions some details and the technical specification is in the Albatross paper[2]. But we could talk through a whole epoch in Albatross. E.g.:

  • What are validators?
  • What are stakes? (in the protocol)
  • What are slots?
  • Who produces a micro block?
  • What happens if a validator is offline, when he should produce a block?
  • How is a macro block produced and agreed upon?
  • How are rewards distributed?
  • How is malicious behavior handled?

Other ideas?

If you have any wishes for a video, let use know! We wrote some specifics about Albatross into the Wiki[1] on GitHub. Are there maybe some things you want us to talk about?

[1] https://github.com/nimiq/core-rs-albatross/wiki
[2] https://medium.com/nimiq-network/research-collaboration-albatross-63599386a7c9

1 Like

Looking forward to the video guys. :slight_smile: I like all of the questions in the overview part, they are good for people that don’t have a lot of technical knowledge. I have two further questions:

  1. Will there be a simple and safe way for people to stake NIM that avoids the danger of having their stake slashed?

  2. If a stake is slashed, how much will it be slashed by?

2 Likes

Seeing the conversation happening on Telegram I realize it may be too early to be asking these questions, so I understand if they don’t get answered.

If my opinion is worth, I’d like to see a overview of how the Albatross consensus works. And if it’s not too late.

4 Likes

I concur, an overview of Albatross and what happen chronologically during an epoch would be neat.
All other topics seem very interesting but it makes more sense to have an overview of the protocol before digging into the details.

1 Like

I already did a video with @paberr about UTXOTree @jgraef :slight_smile:

How exactly are you going to process and store 1000 tx/s in a browser?

1 Like

When are we seeing any of these videos?

Probably in a couple of weeks. They are being edited right now and we have a couple more to release first.

The txs are validated by the validators, browsers only validate their own transactions by connections to the blockchain and reaching consensus. All the transactions are stores in History Nodes, specifically designed for that purpose.