Trinity Q&A: Разница между режимами маршрутизации Trinity и Celer

Yan Markevich
3 min readSep 27, 2018

--

Trinity использует алгоритм кратчайшего пути для маршрутизации транзакций. Как Trinity будет реагировать на сетевую перегрузку и дисбаланс, вызванные этим алгоритмом, на что было указано в белой бумаге Celer Network?

Алгоритм маршрутизации Trinity реализован на основе теории графов. Граф может хорошо описывать связи распределенной сети и визуализацию маршрута.

Самый короткий маршрут у Trinity определяется по правилу минимальной стоимости полного маршрута. Действительно, этот метод, вероятно увеличит сетевую перегрузку и дисбаланс. Trinity добавит алгоритм ребалансировки маршрута для обеспечения бесперебойной работы и баланса сети.

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

В сети Trinity, алгоритмы выбора маршрута принимают во внимание только два фактора, а именно, время маршрута и нагрузка на ноду.

Строго говоря, режим маршрутизации Celer аналогичен существующему режиму работы маршрутизаторов. Режим маршрутизации Trinity похож на оптимизацию Биг Дата.

Мы можем изобразить модель для сети Celer:

У нас есть сообщение для отправки от A до G. Предположим, что P соединяется с C, когда A отправляет сообщение, и что RTT (Round Trip Time, круговая задержка) между C и P является минимальной. Когда C получает сообщение, он не знает, где в этой модели находится G. Согласно алгоритмам, P, вероятно, будет следующим переходом после C, и, после получения сообщения, P отправит его обратно на C.

В этой модели существует большая вероятность, того, что передача данных отдельными нодами внезапно увеличится, что приводит к перегрузке сети. См. рисунок ниже:

Математической модели требуются определенные параметры. Предположим, что ноды на приведенном выше рисунке имеют подходящие параметры, необходимые для модели (за исключением RTT). RTT — единственный параметр, принимаемый во внимание. Если C хочет отправить 100 сообщений в G, то 100 сообщений поступят в G по маршруту C -> A -> B -> D. Баланс сети сломан. Если C отправляет больше данных, то A, B, D, G образуют узкое место.

В сети Trinity, основываясь на текущем принципе маршрутизации, предполагая, что сборы всех нод одинаковы, мы получим тот же самый маршрут C -> A -> B -> D -> G. Т.к. C знает все маршруты до G, все что нам надо сделать — это изменить правила маршрутизации (например, добавить прогноз нагрузки на ноду), чтобы некоторые данные были перенаправлены через другие ноды, для восстановления сетевого баланса.

Что касается наглядного представления каналов состояний, команда Trinity, в настоящее время имеет ряд предложений по улучшению, и они будут выпущены на Github. Мы будем внимательно выслушивать мнение сообщества. Однако, на данном этапе есть разрыв между текущим уровнем реализации каналов состояний и идеальным вариантом. Многие детали требуют корректировки. Так что наглядное представление каналов состояний будет сделано позже, в надлежащее время.

Маршрутизация в Celer: каждая нода в сети взаимодействует только со своими соседями и вычисляет следующую лучшую ноду по маршруту, в соответствии с математической моделью. А также, процесс ребалансировки канала встроен в процесс маршрутизации без какой-либо дополнительной координации. (Информация из интернета).

--

--