Как собрать сообщение Hedera Consensus Service из частей

Одно логическое сообщение HCS может быть отправлено несколькими транзакциями. Простая склейка соседних сообщений топика может смешать публикации разных отправителей.

Сгруппируйте части до склейки

Группируйте записи по сети, ID топика и полному initialTransactionID из метаданных частей. Сверьте общий total и наличие одной части с каждым номером от единицы до total. До завершения храните исходные байты частей.

topic: 0.0.700
initialTransactionID: SAME_ID
arrivals: [ {number: 2, total: 3}, {number: 1, total: 3}, {number: 3, total: 3} ]
assembly order: 1, 2, 3

Обработайте повторы и неполные наборы

Для показанных трёх частей восстановите порядок по number и только потом декодируйте прикладные данные. Повтор одинаковой части можно устранить, расхождение содержимого или total требует разбора. Если часть 2 отсутствует, отметьте неполное сообщение и позиции полученных частей в консенсусном порядке.

Источники