LINUX.ORG.RU

Ответ на: комментарий от Klymedy

По очериди перебираются случайны ip пока на десятке другом не будут найдены p2p ноды(а то мало ли что там на стороне первого ответившего).

torvn77 ★★★★★
()
Ответ на: комментарий от Klymedy

Не знаю, где они в toxcore, но если там нету libastral.so, то изначальный список пиров он должен получать откуда-то. Либо подключаться к какому-то серверу по другому протоколу и запрашивать его, либо держать список известных пиров и подключаться к ним, либо перебирать IP (но это вряд ли эффективно), либо спрашивать у пользователя.

proud_anon ★★★★★
()
Ответ на: комментарий от Klymedy

они заранее спискок пиров таскают с собой

toxcore

Эти не таскают.

https://github.com/irungentoo/toxcore/blob/master/docs/updates/DHT.md

Boostrapping: The first time you install the client we bootstrap it with a node. (bandwidth should not be a problem as the client only needs to be sent one reply.)

IP-адрес ноды передается как аргумент командной строки:

https://github.com/irungentoo/toxcore/blob/master/testing/tox_shell.c#L74

printf("Usage: %s [--ipv4|--ipv6] ip port public_key (of the DHT bootstrap node)\n", argv[0]);

И потом используется для бутстрапа:

https://github.com/irungentoo/toxcore/blob/master/testing/tox_shell.c#L105

int res = tox_bootstrap(tox, argv[argvoffset + 1], port, binary_string, 0);

Как видишь, никакой магии.

edigaryev ★★★★★
()
Ответ на: комментарий от torvn77

По очереди перебираются случайные ip пока на десятке другом не будут найдены p2p ноды

Больше похоже на дополнительный механизм выживания для P2P-ботнета, чем на принцип работы какой-нибудь популярной P2P-технологии типа BitTorrent.

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

IP-адрес ноды передается как аргумент командной строки

Я вроде не передавал, когда запускал.

Буду пытаться понять, что такое DHT и как оно работает.

Klymedy ★★★★★
() автор топика

So in order to connect to an existing network you must have a way to get an
address of another member. It doesn't have to be the first node but needs
to be a node in the network.

https://pypi.python.org/pypi/gevent_dht/0.1.3

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

Klymedy ★★★★★
() автор топика
Ответ на: комментарий от Klymedy

So in order to connect to an existing network you must have a way to get an address of another member.

Ну, и чем не децентрализованная система? Необходимость получения точки входа не обязательно подразумевает наличие какой-либо централизованной структуры, это может быть тот же random address probing aka вышел на улицу и начал искать людей с футболкой «Sharing Is Caring».

https://en.wikipedia.org/wiki/Decentralised_system

A centralised system is one in which a central controller exercises control over the lower-level components of the system directly or through the use of a power hierarchy (such as instructing a middle level component to instruct a lower level component).

A decentralised system, on the other hand, is one in which complex behaviour emerges through the work of lower level components operating on local information, not the instructions of any commanding influence.

edigaryev ★★★★★
()
Ответ на: комментарий от Klymedy

Это если ничего из ранее описаннрого не вышло.

torvn77 ★★★★★
()
Ответ на: комментарий от Klymedy

Получается, совсем децентрализованных систем не бывает?

В каком смысле «совсем децентрализованных»?

Ведь и сам клиент же ты откуда-то должен взять. Или, даже если ты его сам написал, описание протокола.

proud_anon ★★★★★
()

Почитай как был устроен первый Bitcoin клиент, когда там ещё работала опция irc=1.

Это как в бот-нетах, C&C находится не в web а в irc.

Можно даже использовать пучок сетей, самых популярных, таких как Freenode, irc.quakenet.org, irc.dal.net, irc.ubuntu.com, irc.oftc.net, и т.д.

В каждой сети создаёшь и регистрируешь канал на себя, с названием #My_P_TO_P_C0mmand_C3nt3r.

Все адреса этих каналов хардкодишь в p2p-клиента, дальше каждый клиент будет стучаться в канал, и спрашивать всех кто на нём сидит ip-адреса для пиров.

Таким образом хард-кодяца не ip-адреса, которые могут пропасть, а пачка irc-сетей / каналов, которые пропадут лишь вместе сразу с 5-10 irc-сетями.

Вероятность в разы меньше. Ну ещё тебя могут забанить irc-operatorы если боты будут сильно флудить.

Зато центр больше становится не нужен вообще. Не нужна мастер нода и т.д.

Так был устроен первый биткоин протокол. А теперь `irc` выпилили, все клонирующие фигляры слепо пошли за баранами из dev-команды битка, и теперь ни для одного из форков-битка ты не найдёшь себе ноды, по-крайней мере без лишних движений. А так, включил irc=1, и вперёд.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.