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