Перейти к публикации
Totoro

Телепорты Quantum Link

Рекомендованные сообщения

Вчера читал форум, и внезапно меня посетила мысль написать менеджер телепортов для нового сервера на OpenComputers.

Так появилась программа Quantum Link.

 

Фичи (+ - готово, - - в планах):

+ Терминал с интерфейсом выбора телепорта.

+ Возможность телепортироваться в выбранное место.

+ Бесплатные и платные телепорты. Платные телепорты могут иметь разную стоимость. Оплата наличными (пока - алмазами).

+ Промежуток между телепортами - 30 сек. При этом телепорт на экране меняется на рандомный (анти-шпион =)

+ Возможность временной блокировка телепортов (тех обслуживание и т.д.)

+ Добавление/обновление списка телепортов через удаленный доступ (беспроводная сеть).

- Безналичный расчет через RFID карту игрока.

- "Избранная" станция телепорта. Если игрок из этой локации часто перемещается в одну определенную, он может телепортироваться не выбирая ее из списка, просто одним кликом. (Либо вообще просто встав на платформу телепорта. При этом пригодится безналичный расчет.)

 

Изображение

 

Изображение

 

Изображение

 

Изображение

 

Изображение

 

Техническая часть - это компьютер OC с алмазным экраном на два блока (можно и золотой) и два адаптера, на командный блок и ME Controller. Платные телепорты принимают валюту через площадку из Transition Plane. Во первых, это быстрее чем через воронку, во вторых эстетичнее и со спецэффектами =) (В принципе - можно сделать и воронку. Или вообще - сундук.) В-третьих, такую систему будет трудно сломать, к примеру набив приемник до отказа булыжником. Да и инкассатору удобно - забрал картридж (диск из ME Drive), вставил новый, пошел дальше. Или вообще дистанцинно переслать все добытое.

 

Я знаю, что сеть AE не приватится, и эти плейны можно будет свернуть и унести. Но. Во-первых - сервер хардкорный. Скоммуниздили телепорт - летайте бесплатными маршрутами =) Во-вторых, можно изменить конструкцию и сделать ее безопаснее.

 

 

В планах - сделать безналичный рассчет. Дополнение Immibis добавляет такую интересную штуку, как RFID карты. Карта хранит 80 символов. Запись - одноразовая. Если записать на нее уникальный ключ, и хранить в базе пары "Ник игрока" - "Ключ карты", получится удобная система идентификационных карт. Осталось только сделать сеть, где хранится количество финансов для каждой карты и автоматы, которые материальные ценности меняют на виртуальные.

Карточки читаются прямо из инвентаря игрока, на расстоянии 5 блоков от ридера. Игрок кликает платный телепорт, система отправляет запрос в банк и снимает со счета стоимость телепорта.

 

P.S. Исходники не выкладываю, могу скинуть, кому интересно. Они еще не дописаны, с ошибками и багами, комплект фич - не полон.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вчера читал форум, и внезапно меня посетила мысль написать менеджер телепортов для нового сервера на OpenComputers.

Так появилась программа Quantum Link.

[...]

Вау! Звучит здорово! :)

Я знаю, что сеть AE не приватится, и эти плейны можно будет свернуть и унести. Но. Во-первых - сервер хардкорный. Скоммуниздили телепорт - летайте бесплатными маршрутами =) Во-вторых, можно изменить конструкцию и сделать ее безопаснее.

В АЕ 2 добавили систему безопасности. Теперь там нужно будет в терминале биологическую карту вставить, чтобы настроить игроку доступ. Но на 1.7.10 переходить Дэн200 не собирается, так что придётся обходиться без новых плюшек :(. Кстати, воронки принимают предметы через полублоки, так что можно над хоппером поставить плиты из Абиссального камня — получится такая же красивая штука. А если поиграться с командой Партиклес, то вообще будет зашибенчик:).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вау! Звучит здорово! :)

 

В АЕ 2 добавили систему безопасности. Теперь там нужно будет в терминале биологическую карту вставить, чтобы настроить игроку доступ. Но на 1.7.10 переходить Дэн200 не собирается, так что придётся обходиться без новых плюшек :(. Кстати, воронки принимают предметы через полублоки, так что можно над хоппером поставить плиты из Абиссального камня — получится такая же красивая штука. А если поиграться с командой Партиклес, то вообще будет зашибенчик:).

OpenComputers зато обновляется, можно программу и на 1.7.10 запустить. =) Хотя без ComputerCraft будет печально.

А команда /particles же совсем недавно добавлена. В версии 1.8, вроде. Под нее еще даже Forge исходные коды не расковыряли =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OpenComputers зато обновляется, можно программу и на 1.7.10 запустить. =) Хотя без ComputerCraft будет печально.

А команда /particles же совсем недавно добавлена. В версии 1.8, вроде. Под нее еще даже Forge исходные коды не расковыряли =)

1.8? Я думал, что 1.7... Вот что значит год ждать 1.8. Я разочарован.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Totoro, совсем забыл, в ОпенКомпутерс же русский язык добавили! Может русифицировать программу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1.8? Я думал, что 1.7... Вот что значит год ждать 1.8. Я разочарован.

:D Точно, 1.8. Вот пруф: ссылка.

 

Русифицировать кстати реально. Я просто ленюсь раскладку туда-сюда переключать, когда код пишу. Машинально все на своем "пиджин-инглишь" пишу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это очень просто. OpenComponents позволяет через адаптер обращаться к ME Controller'у. Я при запуске запрашиваю количество алмазов в сети и сохраняю его.

Раз в секунду происходит обновление программы. Она проверяет количество алмазов в ME сети. Если значение изменилось - вычисляет разницу. Если разницы хватает на выбранный телепорт - хватает игрока и телепортирует. :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня вопрос, по удаленному администрированию телепортов. А точнее по безопасности.

Я придумал два варианта, обеспечивающих безопасность данный от перехвата и подделки:

 

1) Сделать таблицу адресов всех телепортов, и передавать не broadcast'ом, а точными сигналами по адресам. Тогда хакер просто не сможет получить данные. (Если конечно не будет пытать администратора, и вызнавать таблицу адресов. Перебором адреса получить нереально)

 

Проблема: радиус беспроводной связи ограничен. Надо делать либо несколько "офисов" для управления, на локальную группу телепортов. И менять таблицы поочереди в каждом "офисе". Либо, сделать сеть ретрансляторов, каждый из которых будет знать только адреса ретрансляторов более низкого уровня. Тогда можно будет дать сигнал с "главного" ретраснлятора, и он разбежится по дереву передающих станций, и дойдет до каждого телепорта.

 

Безопасно, но требует точной ручной настройки.

 

2) Шифровать передаваемые данные асинхронным шифрованием. Администратор посылает вызов, телепорт его принимает и высылает одноразовый ключ для шифрования. Администратор шифрует данные и посылает телепорту. Тот принимает данные и выполняет действия.

 

Проблема: хакер может перехватить первоначальный вызов и начать "ДДОС-атаку" посылая вызов снова и снова. Формата необходимой команды он не знает, поэтому послать свои данные не сможет. Однако телепорт будет вынужден постоянно генерировать ключи и посылать их в ответ.

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

И опять стоит вопрос централизации управления.

 

 

Я склоняюсь к первому варианту. Что думаете по этому поводу?

 

https://lh3.googleusercontent.com/WUtrSIdSnGOQ8oq2YjmABHOmrz6BjuNiPJZWFk1FUyE=w925-h530-no

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я тоже за первый вариант. Дополнительные офисы и коммуникации на сервере будут выглядеть прикольно. Плюс, система будет более надежна - от ДДОС даже ebay падал.

Кстати, забыл сказать, что терминал телепорта выглядит шикарно. Черный матрасик, огромный понятный текст на мониторе и цветные буковки. У тебя очень хорошо получается.Like

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я тоже за первый вариант. Дополнительные офисы и коммуникации на сервере будут выглядеть прикольно. Плюс, система будет более надежна - от ДДОС даже ebay падал.

Кстати, забыл сказать, что терминал телепорта выглядит шикарно. Черный матрасик, огромный понятный текст на мониторе и цветные буковки. У тебя очень хорошо получается.Like

Спасибо :D

 

Адреса длинные только, вводить долго. Зато безопасно. Уже делаю. Программа-менеджер телепортов пока будет консольной. Она будет слушать эфир и передавать команды подконтрольным телепортам. В новых версиях OpenComputers должен появиться компьютер-планшетник (будет собираться из запчастей в ассемблере). Тогда и офис строить не надо - ходи себе с планшетом и обновляй данные =)

 

А во втором варианте мне особенно нравятся криптографические блоки от Immibis (на скриншоте сверху - похожие на стойки дата-центра).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что отличает тру-девелопера от кодера

Вчера читал форум, и внезапно меня посетила мысль написать менеджер телепортов для нового сервера на OpenComputers.

Так появилась программа Quantum Link.

 

...и написал :)

 

 

Разные офисы или нет, но обновлять таблицы все равно теоретически придется.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо вроде выглядит, пусть будет на ОС. Просто он пока вроде не всегда поддерживает все периферию толком из аддонов КК. Плюс багулек очень много, провода отпадают, крашат чарджеры сервер и прочее. Мне пока из ОС только роботы нравятся. Долго будет городить эти схемы из ОС, блоки питания, винчестеры и прочее, плюс еще и АЕ. Целая лаборатория под каждым телепортом получиться:)

 

Я думал, что для одной команды для ТП игрока хватит ПК из КК, комблока и 3 метра трубы из билдкрафта. Монетка пролетает через фильтр БК-шный и улетает в пустотную трубу. Все остальное тоже туда же, но только сразу отбрасывается фильтром. Какой-то гейт при пролете монетки дает редстоун сигнал - выполняется команда ТП согласно выбраной станции и этим же редстоун-сигналом через задержку подаем команду на ПК о стирании команды из ком.блока. Все. Схема проще в 10 раз. Разве нет?

 

Изъятие монеток из телепортов? Не думаю, что у меня будет желание этим заниматься:)

 

П.С. А что, поверхность перехода тоже в привате снимается?:confused:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Можно сделать и то - и то. Пусть хакеры развлекаются :D

Теоретически - удачливый хакер получает доступ к командному блоку. Ого-го стимул.

 

Хорошо вроде выглядит, пусть будет на ОС. Просто он пока вроде не всегда поддерживает все периферию толком из аддонов КК. Плюс багулек очень много, провода отпадают, крашат чарджеры сервер и прочее. Мне пока из ОС только роботы нравятся. Долго будет городить эти схемы из ОС, блоки питания, винчестеры и прочее, плюс еще и АЕ. Целая лаборатория под каждым телепортом получиться:)...

Согласен, я слегка увлекся =)

С OC телепорты придется снабжать энергией. Получится, что содержать телепорт может позволить себе достаточно крупный клан/поселение, который может круглосуточно его поддерживать. Тогда часть оплаты может уходить на его поддержку, тем кто генерит энергию. Суровый реализм (капитализм, и частное предпринимательство =))

 

В принципе действительно достаточно трубы и гейта. А если поставить флаг в файле конфигурации OpenComponents, который позволит адаптеру работать с ID блоков в инвентарях - можно сократить все до воронки и пустотной трубы.

 

Мне показалась интересной система, когда платные телепорты имеют разную стоимость. Телепортироваться на дачу к админу, или на соседнюю улицу - совсем разные вещи. Для этого нужен был более тонкий контроль.

В принципе, можно (если поставить вышеупомянутый флаг) подсчитывать предметы прямо в воронке, а затем (после телепортации, пока идет cooldown) врубать сигнал редстоуна на деревянную трубу и редстоун-двиг из BuildCraft'а и вынимать предметы в ту же пустотную трубу.

Однако может появиться проблема переполнения, когда злоумышленник вывалит over9000 булыжника в приемник. Это тоже придется отслеживать и включать процедуру очистки (телепорт будет уходить в cooldown).

 

P.S. Насчет того, что снимается - я предположил =) У меня еще не снимали, а я сам не пробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

П.С. А что, поверхность перехода тоже в привате снимается?:confused:

Всё из AE снимается "засекреченным" предметом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вообще то в шифровании наоборот, алгоритм открыт, а ключ спрятан.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изображение

 

Quantum Link Alpha by Totoro

Итак, готова альфа версия программного обеспечения для квантовой телепортации Quantum Link =)

Пакет состоит из трех частей.

 

1) QL Terminal

http://pastebin.com/jNbXzm43

Это программа для компьютера - телепорта. Обладает простым интерфейсом (список станций, кнопка [Teleport]). В списке могут быть платные и бесплатные станции.

 

2) QL Manager

http://pastebin.com/hRQxXD0b

Это - управляющая программа. Управление строится по древовидной схеме. Несколько станций телепортов в радиусе доступности для связи подключаются к компьютеру-менеджеру. Далее, если необходимо, компьютер-менеджер (и другие в окрестностях) подключаются к другому менеджеру, становясь таким образом "ретрансляторами" от него к телепортам. В свою очередь этот последний менеджер может подключаться к следующему и т.д. Пока все "нити управления" не окажутся у одного - администраторского - менеджера.

Администраторский менеджер сможет контролировать таблицу станций на всех своих подчиненных "клиентах", и - вниз по цепочке - на всех телепортах сети.

При этом программа для всех звеньев одинакова (по ссылке выше).

 

3) QLinker

http://pastebin.com/p0nE5z9r

Вспомогательная утилита. Служит для составления таблицы "клиентов" (телепортов, или менеджеров уровнем ниже). Устанавливается на дискету. Файл должен называться autorun.

Дискета поочередно вставляется в компьютеры-"клиенты" и подается команда get. Затем дискета вставляется в компьютер-менеджер и дается команда set. В процессе составляется таблица адресов, которая в конце устанавливается как таблица клиентов для менеджера.

Благодаря этому, нет необходимости запоминать и переписывать вручную длинные адреса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На сколько я понял структура сети, по которой управляются телепорты - древовидна. Типа такой

[ATTACH]165[/ATTACH]

На рисунке я изобразил телепорты квадратами, компьютеры менеджеры - треугольниками. Красным цветом - старший менеджер.

Выходит, каждая пара компьютеров, между которыми есть связь, должна находится на расстоянии не более дальности модема (не знаю какая она в ОС). Кроме того, не только телепорты, но и менеджеры должны находится в подгруженных чанках. Лично я делал бы обновление либо с носимого компьютера (Алекс обещал, что они будут) либо через более глобальную сеть.

Не понятно как осуществляется пинг удаленных телепортов со старшего менеджера. Трансляция ведь односторонняя.

Могу помочь с шифрованием. Давай пересечемся в РК

post-6-14160784064463_thumb.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, именно такая структура.

Сетью можно (и для этого не надо переписывать программу) управлять с переносного ПК. Они должны появиться в следующем апдейте OpenComputers. Единственное - для этого придется посетить все станции телепортов лично, с КПК.

 

Для того, чтобы телепорты могли связаться через более глобальную сеть - надо чтобы она существовала. И это тоже будет сеть подгруженных точек в радиусе досягаемости сигнала.

Либо изготовить большое количество связных плат (по числу телепортов) и их пары собрать в большом серверном центре. Тогда будет нужна незначительная модификация программы (другой компонент будет использоваться).

 

Или есть еще варианты? Я сделал самый простой способ централизации управления.

 

Пинга нет. Пакеты уходят в одну сторону. Передаются менеджерами по цепочке, пока не дойдут до каждого телепорта и не обновят его таблицу.

Менеджер может пингануть непосредственного "клиента", чтобы определить, что он еще "живой".

 

P.S. Я буду в РК сегодня. Но без периферии я все равно только в чате писать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня вопрос, по удаленному администрированию телепортов. А точнее по безопасности.

Я придумал два варианта, обеспечивающих безопасность данный от перехвата и подделки:

 

1) Сделать таблицу адресов всех телепортов, и передавать не broadcast'ом, а точными сигналами по адресам. Тогда хакер просто не сможет получить данные. (Если конечно не будет пытать администратора, и вызнавать таблицу адресов. Перебором адреса получить нереально)

 

Проблема: радиус беспроводной связи ограничен. Надо делать либо несколько "офисов" для управления, на локальную группу телепортов. И менять таблицы поочереди в каждом "офисе". Либо, сделать сеть ретрансляторов, каждый из которых будет знать только адреса ретрансляторов более низкого уровня. Тогда можно будет дать сигнал с "главного" ретраснлятора, и он разбежится по дереву передающих станций, и дойдет до каждого телепорта.

 

Безопасно, но требует точной ручной настройки.

 

2) Шифровать передаваемые данные асинхронным шифрованием. Администратор посылает вызов, телепорт его принимает и высылает одноразовый ключ для шифрования. Администратор шифрует данные и посылает телепорту. Тот принимает данные и выполняет действия.

 

Проблема: хакер может перехватить первоначальный вызов и начать "ДДОС-атаку" посылая вызов снова и снова. Формата необходимой команды он не знает, поэтому послать свои данные не сможет. Однако телепорт будет вынужден постоянно генерировать ключи и посылать их в ответ.

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

И опять стоит вопрос централизации управления.

 

 

Я склоняюсь к первому варианту. Что думаете по этому поводу?

 

https://lh3.googleusercontent.com/WUtrSIdSnGOQ8oq2YjmABHOmrz6BjuNiPJZWFk1FUyE=w925-h530-no

http://minecraft-ru.gamepedia.com/OpenComputers/Связанная_плата

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Замечательная во всех отношениях штука. Но в данном случае сложноприменима.

Ибо связная плата умеет общаться только со своей личной парой. И больше ни с кем.

 

В принципе, можно положить по связной плате в каждый телепорт, а в управляющем центре поднять сервер (или несколько), каждый из которых будет обслуживать по две-три парные связные платы (общим числом - по числу телепортов).

Тут тоже нужна будет управляющая программа, которая сможет объединить эти сервера вместе.

 

Но для того, чтобы связать вместе далеко разнесенные узлы управляющей сети - связные платы вполне подходят.

Если бы программа реально где-то использовалась - сделал бы небольшой фикс для этого.

 

Сверху уже писал это -

Либо изготовить большое количество связных плат (по числу телепортов) и их пары собрать в большом серверном центре. Тогда будет нужна незначительная модификация программы (другой компонент будет использоваться).

P.S. В связи с последним обновлением, можно вообще не морочиться с сетью, а просто обновлять все с планшета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, тоннельные платы не подойдут. А вот с планшета или по сети CraftNet самое то. Только вот на ОС все громоздко немного, ну и баг с питанием(проводами) в принудительно подгруженных чанках пока есть и никуда не делся.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, тоннельные платы не подойдут. А вот с планшета или по сети CraftNet самое то. Только вот на ОС все громоздко немного, ну и баг с питанием(проводами) в принудительно подгруженных чанках пока есть и никуда не делся.

Можно держать в одном чанке все устройство.

Кстати говоря, у админов есть "админские" источники энергии?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати говоря, у админов есть "админские" источники энергии?

да есть вроде как читарморы и квантовые генераторы и прочее, не вопрос. Но даже впритык солярка не хочет питать блоки при принудительной загрузке чанков при старте сервера (далее ПЗЧПСС, уже надоело писать), надо блоки заново переустанавливать, и каким заклинанием снимается это проклятье, я не знаю пока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


×