Поездка, которую совершает транзакция:
- Клиент (точка отправления)
- Служба заказа
- кластер кафки
- Служба заказа
- Передающий узел
Где:
- Этапы 3 и 4 применяются только в том случае, если вы используете службу заказов на базе Kafka
- Транзакция проверяется на этапе 5 перед ее фиксацией в бухгалтерскую книгу
Только после того, как все эти этапы пройдены, вы можете увидеть транзакцию, зафиксированную в бухгалтерской книге, поэтому обычно транзакция не отображается мгновенно.
Что касается 3-секундной задержки, я подозреваю, что это происходит из-за того, что для вашего Orderer.BatchTimeout
установлено значение по умолчанию, равное 2 секундам, а для вас Orderer.BatchSize.MaxMessageCount
установлено значение больше 1 (значение по умолчанию равно 10).
Это означает, что служба заказа не будет отрезать блок (и доставит его отправляющим партнерам) до тех пор, пока не будет выполнено или из этих двух условий. Вы отправляете менее Orderer.BatchSize.MaxMessageCount
транзакций, поэтому службе заказа необходимо подождать Orderer.BatchTimeout
секунд, прежде чем она обрежет блок.
Чтобы уменьшить время, необходимое для отображения транзакции в вашей бухгалтерской книге, установите Orderer.BatchTimeout
на небольшое значение (скажем, 1 мс), а Orderer.BatchSize.MaxMessageCount
на 1.