TCP-подобный потоковый протокол через ADNL. ADNL, будучи ненадежным (небольшого размера) протоколом дейтаграмм, основанным на 256-битных абстрактных адресах,
может использоваться в качестве основы для более сложных сетевых протоколов. Можно
построить, например, потоковый протокол, подобный TCP, используя ADNL в качестве абстрактной
замены IP. Однако большинству компонентов проекта TON
такой потоковый протокол не нужен.
3.1.9. RLDP, или Надежный протокол больших дейтаграмм по ADNL.
Надежный протокол датаграмм произвольного размера, построенный на ADNL, называемый RLDP,
используется вместо протокола, подобного TCP. Этот надежный протокол дейтаграмм может
использоваться, например, для отправки RPC-запросов удаленным хостам и получения
от них ответов (см. 4.1.5).
3,2 ТОННЫ DHT: Распределенная хэш-таблица, подобная Kademlia
Распределенная хэш-таблица TON (DHT) играет решающую роль в сетевой части проекта TON, поскольку используется для определения местоположения других узлов в
сети. Например, клиент, желающий совершить транзакцию в цепочку сегментов, может захотеть найти валидатор или сортировщик этой цепочки сегментов, или в
по крайней мере, какой-то узел, который мог бы ретранслировать транзакцию клиента в систему сортировки. Это
можно сделать, посмотрев специальный ключ в TON DHT. Другое важное применение TON DHT заключается в том, что его можно использовать для быстрого заполнения
таблицы соседей нового узла (см. 3.1.7), просто путем поиска случайного ключа
или адреса нового узла. Если узел использует проксирование и туннелирование для своих входящих дейтаграмм, он публикует идентификатор туннеля и его точку входа (например,,
IP-адрес и UDP-порт) в TON DHT; затем все узлы, желающие отправить
дейтаграммы на этот узел сначала получат эту контактную информацию от DHT.
TON DHT является членом семейства распределенных
хэш-таблиц, подобных Kademlia [10].
3.2.1. Ключи от тонны DHT. Ключи TON DHT - это просто 256-
битные целые числа. В большинстве случаев они вычисляются как sha256 сериализованного объекта TL
(см. 2.2.5), называемого прообразом ключа или описанием ключа. В некоторых
случаях абстрактные адреса узлов сети TON (см. 3.1.1) также могут
84
3.2. ТОННА DHT: Распределенная хэш-таблица, подобная Kademlia
быть использованы в качестве ключей TON DHT, потому что они также 256-битные, и они
также являются хэшами TL-сериализованных объектов. Например, если узел не боится
публиковать свой IP-адрес, его может найти любой, кто знает его абстрактный
адрес, просто посмотрев этот адрес в качестве ключа в DHT.
3.2.2. Значения DHT. Значения, присвоенные этим 256-битным ключам, по
сути, являются произвольными строками байтов ограниченной длины. Интерпретация
таких байтовых строк определяется прообразом соответствующего ключа;
обычно это известно как узлу, который ищет ключ, так и узлу
в нем хранится ключ.
3.2.3. Узлы DHT. Полупостоянные сетевые идентификаторы. Сопоставление
ключ-значение TON DHT хранится на узлах DHT, по
сути, всех участников сети TON. С этой целью любой узел
Сеть TON (возможно, за исключением некоторых очень легких узлов),
помимо любого количества эфемерных и постоянных абстрактных адресов, описанных
в 3.1.1, имеет по крайней мере один полупостоянный адрес, который идентифицирует ее как
члена TON DHT. Этот полупостоянный или DHT-адрес не должен
их следует менять слишком часто, иначе другие узлы не смогли бы найти
ключи, которые они ищут. Если узел не хочет раскрывать свою истинную личность,
он генерирует отдельный абстрактный адрес, который будет использоваться только для
участия в DHT. Однако этот абстрактный адрес должен быть общедоступным,
поскольку он будет связан с IP-адресом и портом узла.
3.2.4. Расстояние Кадемлия. Теперь у нас есть как 256-битные ключи, так и 256-битные
(полупостоянные) адреса узлов. Мы вводим так называемое расстояние XOR
или расстояние Кадемлии dk на множестве 256-битных последовательностей, заданное
DK(x, y) := (x ⊕ y) интерпретируется как 256-разрядное целое число без знака (25)
Здесь x ⊕ y обозначает побитовое исключающее ИЛИ (XOR) двух битовых последовательностей
одинаковой длины.
Расстояние Кадемлиа вводит метрику на множестве 2
256 из всех 256-битных
последовательностей. В частности, у нас есть dK(x, y) = 0 тогда и только тогда, когда x = y, dK(x, y) =
dK(y, x) и dK(x, z) ≤ dK(x, y) + dK(y, z). Другим важным свойством является то
, что на любом заданном расстоянии от x есть только одна точка: dK(x, y) = dK(x, y0
)
подразумевает , что y = y
0 .
3.2.5. DHT, подобные Kademlia, и DHT TON. Мы говорим, что распределенная хэш-таблица (DHT) с 256-битными ключами и 256-битными адресами узлов является
85
3.2. ТОННА DHT: Распределенная хэш-таблица, подобная Kademlia
DHT, подобный Kademlia, если ожидается, что значение ключа K на s ближайших узлах Kademlia будет равно K (т.е. s узлов с наименьшим расстоянием Kademlia от
их адресов до K.)
Здесь s - небольшой параметр, скажем, s = 7, необходимый для повышения надежности
DHT (если мы будем хранить ключ только на одном узле, ближайшем к K,
значение этого ключа будет потеряно, если этот единственный узел отключится).
ТОН DHT является DHT, подобным Кадемлии, в соответствии с этим определением. Он
реализован по протоколу ADNL, описанному в 3.1.
3.2.6. Таблица маршрутизации Kademlia. Любой узел, участвующий в DHT, подобном Kademli, обычно поддерживает таблицу маршрутизации Kademlia. В случае с ТОННОЙ
DHT, он состоит из n = 256 ведер, пронумерованных от 0 до n − 1. I-я
корзина будет содержать информацию о некоторых известных узлах (фиксированное число t
лучших узлов и, возможно, некоторые дополнительные кандидаты), которые находятся на
расстоянии Кадемлии от 2
i
до 2
i+1 − 1 от адреса узла a.
32 Эта информация
включает их (полупостоянные) адреса, IP-адреса и порты UDP, а также
некоторую информацию о доступности, такую как время и задержка последнего пинга.
Когда узел Kademlia узнает о любом другом узле Kademlia в результате
какого-либо запроса, он включает его в подходящую корзину своей таблицы маршрутизации, сначала в
качестве кандидата. Затем, если некоторые из лучших узлов в этом сегменте выходят из строя (например,
долгое время не отвечают на запросы ping), их можно заменить некоторыми
кандидатами. Таким образом, таблица маршрутизации Kademlia остается заполненной.
Новые узлы из таблицы маршрутизации Kademlia также включены в таблицу
соседей ADNL, описанную в 3.1.7. Если часто используется лучший узел из корзины
таблицы маршрутизации Kademlia, может быть установлен канал в смысле, описанном
в 3.1.5, для облегчения шифрования дейтаграмм.
Особенностью TON DHT является то, что он пытается выбрать узлы с
наименьшими задержками в оба конца в качестве лучших узлов для сегментов таблицы
маршрутизации Kademlia.
3.2.7. (Сетевые запросы kademlia.) Узел Kademlia обычно поддерживает
следующие сетевые запросы
может использоваться в качестве основы для более сложных сетевых протоколов. Можно
построить, например, потоковый протокол, подобный TCP, используя ADNL в качестве абстрактной
замены IP. Однако большинству компонентов проекта TON
такой потоковый протокол не нужен.
3.1.9. RLDP, или Надежный протокол больших дейтаграмм по ADNL.
Надежный протокол датаграмм произвольного размера, построенный на ADNL, называемый RLDP,
используется вместо протокола, подобного TCP. Этот надежный протокол дейтаграмм может
использоваться, например, для отправки RPC-запросов удаленным хостам и получения
от них ответов (см. 4.1.5).
3,2 ТОННЫ DHT: Распределенная хэш-таблица, подобная Kademlia
Распределенная хэш-таблица TON (DHT) играет решающую роль в сетевой части проекта TON, поскольку используется для определения местоположения других узлов в
сети. Например, клиент, желающий совершить транзакцию в цепочку сегментов, может захотеть найти валидатор или сортировщик этой цепочки сегментов, или в
по крайней мере, какой-то узел, который мог бы ретранслировать транзакцию клиента в систему сортировки. Это
можно сделать, посмотрев специальный ключ в TON DHT. Другое важное применение TON DHT заключается в том, что его можно использовать для быстрого заполнения
таблицы соседей нового узла (см. 3.1.7), просто путем поиска случайного ключа
или адреса нового узла. Если узел использует проксирование и туннелирование для своих входящих дейтаграмм, он публикует идентификатор туннеля и его точку входа (например,,
IP-адрес и UDP-порт) в TON DHT; затем все узлы, желающие отправить
дейтаграммы на этот узел сначала получат эту контактную информацию от DHT.
TON DHT является членом семейства распределенных
хэш-таблиц, подобных Kademlia [10].
3.2.1. Ключи от тонны DHT. Ключи TON DHT - это просто 256-
битные целые числа. В большинстве случаев они вычисляются как sha256 сериализованного объекта TL
(см. 2.2.5), называемого прообразом ключа или описанием ключа. В некоторых
случаях абстрактные адреса узлов сети TON (см. 3.1.1) также могут
84
3.2. ТОННА DHT: Распределенная хэш-таблица, подобная Kademlia
быть использованы в качестве ключей TON DHT, потому что они также 256-битные, и они
также являются хэшами TL-сериализованных объектов. Например, если узел не боится
публиковать свой IP-адрес, его может найти любой, кто знает его абстрактный
адрес, просто посмотрев этот адрес в качестве ключа в DHT.
3.2.2. Значения DHT. Значения, присвоенные этим 256-битным ключам, по
сути, являются произвольными строками байтов ограниченной длины. Интерпретация
таких байтовых строк определяется прообразом соответствующего ключа;
обычно это известно как узлу, который ищет ключ, так и узлу
в нем хранится ключ.
ключ-значение TON DHT хранится на узлах DHT, по
сути, всех участников сети TON. С этой целью любой узел
Сеть TON (возможно, за исключением некоторых очень легких узлов),
помимо любого количества эфемерных и постоянных абстрактных адресов, описанных
в 3.1.1, имеет по крайней мере один полупостоянный адрес, который идентифицирует ее как
члена TON DHT. Этот полупостоянный или DHT-адрес не должен
их следует менять слишком часто, иначе другие узлы не смогли бы найти
ключи, которые они ищут. Если узел не хочет раскрывать свою истинную личность,
он генерирует отдельный абстрактный адрес, который будет использоваться только для
участия в DHT. Однако этот абстрактный адрес должен быть общедоступным,
поскольку он будет связан с IP-адресом и портом узла.
3.2.4. Расстояние Кадемлия. Теперь у нас есть как 256-битные ключи, так и 256-битные
(полупостоянные) адреса узлов. Мы вводим так называемое расстояние XOR
или расстояние Кадемлии dk на множестве 256-битных последовательностей, заданное
DK(x, y) := (x ⊕ y) интерпретируется как 256-разрядное целое число без знака (25)
Здесь x ⊕ y обозначает побитовое исключающее ИЛИ (XOR) двух битовых последовательностей
одинаковой длины.
Расстояние Кадемлиа вводит метрику на множестве 2
256 из всех 256-битных
последовательностей. В частности, у нас есть dK(x, y) = 0 тогда и только тогда, когда x = y, dK(x, y) =
dK(y, x) и dK(x, z) ≤ dK(x, y) + dK(y, z). Другим важным свойством является то
, что на любом заданном расстоянии от x есть только одна точка: dK(x, y) = dK(x, y0
)
подразумевает , что y = y
0 .
3.2.5. DHT, подобные Kademlia, и DHT TON. Мы говорим, что распределенная хэш-таблица (DHT) с 256-битными ключами и 256-битными адресами узлов является
85
3.2. ТОННА DHT: Распределенная хэш-таблица, подобная Kademlia
DHT, подобный Kademlia, если ожидается, что значение ключа K на s ближайших узлах Kademlia будет равно K (т.е. s узлов с наименьшим расстоянием Kademlia от
их адресов до K.)
Здесь s - небольшой параметр, скажем, s = 7, необходимый для повышения надежности
DHT (если мы будем хранить ключ только на одном узле, ближайшем к K,
значение этого ключа будет потеряно, если этот единственный узел отключится).
ТОН DHT является DHT, подобным Кадемлии, в соответствии с этим определением. Он
реализован по протоколу ADNL, описанному в 3.1.
3.2.6. Таблица маршрутизации Kademlia. Любой узел, участвующий в DHT, подобном Kademli, обычно поддерживает таблицу маршрутизации Kademlia. В случае с ТОННОЙ
DHT, он состоит из n = 256 ведер, пронумерованных от 0 до n − 1. I-я
корзина будет содержать информацию о некоторых известных узлах (фиксированное число t
лучших узлов и, возможно, некоторые дополнительные кандидаты), которые находятся на
расстоянии Кадемлии от 2
i
до 2
i+1 − 1 от адреса узла a.
32 Эта информация
включает их (полупостоянные) адреса, IP-адреса и порты UDP, а также
некоторую информацию о доступности, такую как время и задержка последнего пинга.
Когда узел Kademlia узнает о любом другом узле Kademlia в результате
какого-либо запроса, он включает его в подходящую корзину своей таблицы маршрутизации, сначала в
качестве кандидата. Затем, если некоторые из лучших узлов в этом сегменте выходят из строя (например,
долгое время не отвечают на запросы ping), их можно заменить некоторыми
кандидатами. Таким образом, таблица маршрутизации Kademlia остается заполненной.
Новые узлы из таблицы маршрутизации Kademlia также включены в таблицу
соседей ADNL, описанную в 3.1.7. Если часто используется лучший узел из корзины
таблицы маршрутизации Kademlia, может быть установлен канал в смысле, описанном
в 3.1.5, для облегчения шифрования дейтаграмм.
Особенностью TON DHT является то, что он пытается выбрать узлы с
наименьшими задержками в оба конца в качестве лучших узлов для сегментов таблицы
маршрутизации Kademlia.
3.2.7. (Сетевые запросы kademlia.) Узел Kademlia обычно поддерживает
следующие сетевые запросы
Пн Мар 04, 2024 8:47 am автор Admin
» Как майнить Notcoin Not подробное описание
Сб Фев 03, 2024 12:04 am автор Admin
» Кто придумал Toncoin
Ср Янв 31, 2024 3:38 am автор Admin
» Недельный дайджест???? Криптовалюты
Вт Янв 23, 2024 8:06 pm автор Admin
» Notcoin как играть подробное описанин
Вт Янв 23, 2024 7:03 pm автор Admin
» Что такое Not coin токен подробнее
Пн Янв 22, 2024 2:23 pm автор Admin
» Что такое not coin как в него играть. Подробнее.
Сб Янв 20, 2024 11:39 pm автор Admin
» Notcoin от Павла Дурова как заработать
Сб Янв 20, 2024 8:37 am автор Admin
» Новая криптовалюта на Телеграм Notcoin
Пт Янв 19, 2024 3:34 am автор Admin