Linear
Linear

Reputation: 45

What does ordering service do?

I'd like to ask you some things about ordering service(ordering service nodes).

I understand what ordering service is for and how they work(BFT-SMaRt). However, what I'm confused with is...

  1. Ordering service is for fault-tolerance. I have no idea which kind of fault they should be tolerant of. Are they only for ordered transactions in a block? If so, what happens if transactions in a block are not ordered chronologically?

  2. Forged transactions and invalid transactions in a block will be detected by peers and they will never update the ledger with those transactions. Why do we then need ordering service? If they are not able to detect them without ordering service, how does ordering service help peers discover them?

  3. This is what I am actually confused with. Do ordering service nodes validate something? Could you please tell me what does ordering service do?(what can we get from ordering service? or what does ordering service ensure?)

I think these are such basic questions, but I'm still having a hard time understanding these.

Could you please tell me the answers to what I asked? I would really appreciate if you answer me. Thank you!

Upvotes: 1

Views: 1422

Answers (2)

Artem Barger
Artem Barger

Reputation: 41222

  1. Ordering service is for fault-tolerance. I have no idea which kind of fault they should be tolerant of. Are they only for ordered transactions in a block? If so, what happens if transactions in a block are not ordered chronologically?

Nope, ordering service is not for fault-tolerance, it's required to establish total order of transactions. It collects transactions from the clients, order them and group them into a blocks chained one after another. As a matter of fact transactions doesn't have to be ordered chronologically, what really matters is the deterministic total order of all transactions submitted to the ordering service.

  1. Forged transactions and invalid transactions in a block will be detected by peers and they will never update the ledger with those transactions. Why do we then need ordering service? If they are not able to detect them without ordering service, how does ordering service help peers discover them?

We need ordering service, to impose total order of transactions. Also ordering service is not really need for peers to detect invalid transactions/forged transactions. Peers running multi value concurrency control to detect concurrent modifications based on current state db to be honest transactions order is also matters here. In addition peers checks fulfillment of endorsement policy.

  1. This is what I am actually confused with. Do ordering service nodes validate something? Could you please tell me what does ordering service do?(what can we get from ordering service? or what does ordering service ensure?)

Ordering service nodes (OSN) validates whenever clients has appropriate read/write channels writes. And again to finalize, ordering service required to identify total order semantics on transactions submitted to it. Ordering service is pluggable component and one can actually use any of available consensus algorithms. Currently there is Kafka based ordering service which provides CFT (Crash-Fault-Tolerant) guaranties, there is work in progress to provide BFT (Byzantine-Fault-Tolerant) enabled implementation of ordering service.

Upvotes: 2

tiennv
tiennv

Reputation: 356

The ordering service manages multiple channels. On every channel, it provides the following services:

(1) Atomic broadcast for establishing order on transactions, implementing the broadcast and deliver calls.

(2) Reconfiguration of a channel, when its members modify the channel by broadcasting a configuration update transaction

(3) Optionally, access control, in those configurations where the ordering service acts as a trusted entity, restricting broadcasting of transactions and receiving of blocks to specified clients and peers.

You can refer to http://vukolic.com/fabric.pdf

Upvotes: 0

Related Questions