Как выделить города и магистрали в графе не спрашивая географических адресов узлов?
Планета земля состоит из географических областей, находящихся под чьим-либо управлением.
В географических областях есть подобласти для преобразования энергии (поля, леса, шахты),
и подобласти потребления энергии (поселки/деревни , города/кирпични).
структура сети интернет в принципе такая же - есть сети населенных пунктов,
а есть магистральные линии (кабельные, спутниковые).
магистральные линии контролируются операторами (которые согласовывают их с властями),
местные сети контролируются провайдерами локального интернета (которые согласовывают их с владельцами зданий, пожарными, СЭС)
из-за разных процедур согласования (видов оборудования, типов строительтсва кабельной инфраструктуры) у них вырабатываются разные скиллы
допустим, некоторая совокупность людей организует p2p-сеть поверх сети интернет.
Они платят провайдерам за аренду интернет-линий, трафик.
так как пользователи p2p-сети это простые жители, они все подключаются через локальных операторов
и оплата соединений с любой точкой мира для них стоит одинаково.
Если кто-то поднимает узел p2p-сети в датацентре, то он будет тратить другие деньги (вероятно - больше в абсолютном исчислении).
Допустим, вы разрабатываете p2p-систему типа ripple и решили ввести несколько типов вознаграждений:
- за подписывание блока
- за распространение транзакции (передачу трафика), как предлагала microsoft
- за вычисление пути транзакции (амортизация процессоров + плата за аренду места)
Т.е. если в биткоине узел сам создает транзакцию и распространяет её,
то я предлагаю разделить создание запроса на передачу
и создание решения по определению пути исполнения запроса.
(точнее не предлагаю разделять, а подумать о введении в дополнение к профессии "майнера"
двух других профессий - "взаиморасчетчика" и "транспортного узла").
Представителей всех профессий надо заставить конкурировать между собой
с целью обеспечения рыночности формирования цен.
Логично предположить, что будут преобладать взаимозачеты:
а) внутри населенного пункта (например в Москве могут и 20 миллионов узлов оказаться)
б) с вышестоящим региональным центром
в) с соседними пунктами
(например две деревни рядом с поселком городского типа (ПГТ) могут иметь взаимозачеты между собой напрямую, а не через ПГТ )
(причем для территориально-смежных деревень это более вероятно, чем для несмежных)
Вопрос - какие алгоритмы могут пригодиться для вычисления путей организации взаимозачетов (чтобы не хранить образ всей p2p-сети на каждом узле)?
(по всей очевидности, это должны быть модификации алгоритмов для поиска путей установления TCP-соединений)
Или я излишне заморачиваюсь, и надо стартовать с алгоритма, в котором все узлы равноправны,
а потом уже дорабатывать для масштабирования?
UPD 2012-10-17
Вот тут из зала посказывают, что уже часть придумали:
https://en.wikipedia.org/wiki/Coral_Content_Distribution_Networkтам есть круги - близкие и дальние