большинство уровней сетевого взаимодействия пропускают, потому что они не звучат так, будто действительно важны, но kadcast делает кое-что принципиально отличное от того, что используют большинство блокчейнов.
в большинстве блокчейнов полагаются на протоколы gossip (сплетен), где сообщение просто рассылается случайному набору узлов и надеется, что распространение будет происходить эффективно. kadcast заменяет это.
вместо этого — структурированная оверлей-сеть. узлы не выбираются случайно: у сети есть фактическая форма.
именно эта структура сокращает использование пропускной способности и делает задержку предсказуемой вместо вариативной.
согласно собственному репозиторию kadcast от Dusk, каждому узлу...
присваивается 128-битный id, который генерируется путем хэширования порта и ip, а этот id определяет ровно то, где узел находится в бинарном дереве маршрутизации. позиция не назначается вручную.
она вычисляется непосредственно из хэша.
что бросается в глаза: здесь, похоже, главная цель — предсказуемость, а не просто максимальная скорость. это не случайный gossip.
сеть может распространять данные быстро в среднем, но с высокой вариативностью; структурированная оверлей, в свою очередь, жертвует частью средней скорости ради стабильности.
оказывается, что churn (частые отключения/подключения) обрабатывается тоже намеренно. устаревшие бакеты периодически обновляются, а прежде чем узел будет исключен, сеть отправляет ping и только.
удаляет его, если pong так и не возвращается. репозиторий прямо утверждает, что это делает протокол смещенным в сторону более старых, более стабильных узлов...
если сеть по дизайну отдает предпочтение долгоживущим узлам, не возникает ли при этом какого-то недостатка для совершенно нового узла, который пытается подключиться впервые??
#dusk @Dusk $DUSK
в большинстве блокчейнов полагаются на протоколы gossip (сплетен), где сообщение просто рассылается случайному набору узлов и надеется, что распространение будет происходить эффективно. kadcast заменяет это.
вместо этого — структурированная оверлей-сеть. узлы не выбираются случайно: у сети есть фактическая форма.
именно эта структура сокращает использование пропускной способности и делает задержку предсказуемой вместо вариативной.
согласно собственному репозиторию kadcast от Dusk, каждому узлу...
присваивается 128-битный id, который генерируется путем хэширования порта и ip, а этот id определяет ровно то, где узел находится в бинарном дереве маршрутизации. позиция не назначается вручную.
она вычисляется непосредственно из хэша.
что бросается в глаза: здесь, похоже, главная цель — предсказуемость, а не просто максимальная скорость. это не случайный gossip.
сеть может распространять данные быстро в среднем, но с высокой вариативностью; структурированная оверлей, в свою очередь, жертвует частью средней скорости ради стабильности.
оказывается, что churn (частые отключения/подключения) обрабатывается тоже намеренно. устаревшие бакеты периодически обновляются, а прежде чем узел будет исключен, сеть отправляет ping и только.
удаляет его, если pong так и не возвращается. репозиторий прямо утверждает, что это делает протокол смещенным в сторону более старых, более стабильных узлов...
если сеть по дизайну отдает предпочтение долгоживущим узлам, не возникает ли при этом какого-то недостатка для совершенно нового узла, который пытается подключиться впервые??
#dusk @Dusk $DUSK

