Plz прочитал всю нить.
Я кодирование своего собственные одноранговой сети, и я заметил, что нет никаких хороших библиотек для самых простых задач. Что я имею в виду простых задач получения двух коллег, чтобы найти друг друга и надежного соединения. Это не так просто, как это звучит, потому что большинство сверстников за маршрутизатором, который делает NAT, и это означает, что вам нужно сделать перенаправление портов принимать входящие соединения, которые откровенно не является решением для среднего пользователя.
Так что я делаю в данный момент написания кросс-платформенного кода Python, который использует ряд методов для соединения двух коллег. Я уже написал простой класс пересылать произвольные порты с UPnP - все автоматизировано, без внешних зависимостей. Мой класс представляет собой единый модуль, который работает следующим образом: UPnP () forward_port (."TCP", 15666, "192.168.0.5") - (указать порт назначения в качестве четвертых пар, если его отличных от источника) - это не может быть проще. Я также включая код для NAT-PMP, который может использоваться для перенаправления портов некоторых маршрутизаторов, которые не поддерживают UPnP. Наконец, я хотел бы быть в состоянии создать простую реализацию TCP перфорирования для разработчиков, который работает кросс-платформенный и правильно документально. Этот метод хорошо документированы в научных работах и РЛК, но до сих пор широко используется в программном обеспечении.
Поэтому я начал эту тему, потому что мне нужна коробка, чтобы проверить свой код. NAT код обхода по определению требует более одного пэра позади NAT, и я только иметь доступ к моей домашней связи. Даже с несколькими серверами я не могу легко моделировать различные среды NAT, которая будет использоваться в дикой природе (или убедиться, что он работает даже когда дело доходит до реальной вещи.) Так что я прошу, если кто-то может внести свой вклад в свободное поле за NAT так что я могу работать над кодом. Мне нужен только доступ к оболочке позади NAT (любой NAT / маршрутизатор - чем больше, тем веселее), и я могу делать свою работу. Если доверие является вопрос, не стесняйтесь, чтобы отрезать все, что не нужно, и в значительной степени контролировать коробку.
Почему я должен помогать?
Если я успешно, эта работа может иметь последствия для улучшения связи в Bitcoin, а также в одноранговой сети в целом. Не говоря уже разработчики получат простую библиотеку для написания пиринговых программ, с потенциалом портов на другие языки и (возможно) в конечном итоге включение в Bitcoin Ядра (предполагающие основные разработчики думают, что это хорошая идея.)
Превышение слишком долго; Я отказался читать дальше
Написание библиотеки с открытым исходным кодом в Python для упрощения одноранговой связи, и мне нужно ящиков для тестирования. Если кто-то хочет помочь, то пожалуйста, держите эту тему врезались и / или сообщение мне с деталями узла.