Перейти к содержанию

Учет трафика и времени

Система учета трафика и времени просмотра лежит в основе Ace Network. В этом разделе описана архитектура данной системы.

Данные по объемам трафика и времени просмотра формируются клиентскими узлами на третьем уровне. Эти данные представлены в виде транзакций для каждой пары взаимодействующих узлов. Каждая такая транзакция подписывается обеими сторонами и хранится в локальной базе данных каждой из сторон до момента регистрации в блокчейне второго уровня. Также каждая транзакция передается части других клиентских узлов по принципу random gossip. Этот механизм используется для последующей защиты от фальсификации данных (https://github.com/Tribler/tribler/issues/4634)

По мере накопления данных клиентские узлы выполняют агрегацию - создают сводные транзакции, которые объединяют предыдущие. Каждая сводная транзакция также подписывается двумя сторонами взаимодействия. Такая архитектура позволяет минимизировать количество транзакций, передаваемых на обработку на второй уровень.

Сводные транзакции передаются на второй уровень в виде пакетов транзакций. Отправка выполняется периодически. Интервал отправки настраивается автоматически в зависимости от нагрузки сети .

Второй уровень - это набор блокчейнов (шард). Каждая пара клиентских узлов закреплена за определенной шардой и отправляет данные только в нее. Каждая шарда хранит данные по текущему балансу трафика между парами узлов, а также по времени просмотра.

Задача второго уровня - на основе данных по обмену трафиком генерировать транзакции в основном блокчейне (снятие токенов с потребляющей стороны, начисление токенов отдающей стороне), а также хранить информацию о трафике и времени просмотра. Если транзакция по оплате трафика не принимается основным блокчейном, то она также отклоняется вторым уровнем. На этом факте построена основная защита сети от фальсификации данных - весь трафик должен быть оплачен.

На втором уровне используется отложенная обработка - полученные от третьего уровня транзакции накапливаются в очереди и периодически пакетно обрабатываются. Задача алгоритма пакетной обратки транзакций - свести транзакции от третьего уровня к одной транзакции на узел за фиксированный интервал времени. Это позволяет снизить количество транзакций на первом уровне.