Zer0Galaxy 2 187 Опубликовано: 16 апреля, 2015 (изменено) На сервере Information Technology начинает работу глобальная сеть OpenNet. В отличии от децентрализованной сети CraftNet, новая сеть построена на компактно расположенных серверах. Связь клиента с одним из серверов осуществляется при помощи пары связанных плат, одна из которых установлена в сервер, другая находится у клиента. Каждый сервер способен обслуживать до трех клиентов. Таким образом связь защищена от прослушивания, а покрытие Сети полностью охватывает все доступные миры сервера Information Technology. Что может и чего не может сеть OpenNet?Если вы думаете, что подключившись к Сети вы получите все мыслимые и немыслимые блага, то вы ошибаетесь. Сеть это просто средство обмена информацией между двумя и более компьютерами. Как будут запрограммированы эти компьютеры и какого рода информацией будут обмениваться, зависит только от вас (ну и от меня, в какой-то мере) Что необходимо, чтобы подключиться к сети OpenNet?Во-первых, ОС-компьютер с установленной операционной системой.Во-вторых, библиотека opennet.lua, которую можно найти под спойлером local component=require("component") local event = require("event") local opennet = {} local ONcard local LocalIP function opennet.getIP() if not component.isAvailable("tunnel") then ONcard=nil return nil, "OpenNet-карта не обнаружена" end ONcard=component.tunnel local ok,err=ONcard.send("", "", "getip") if not ok then return ok, err end local ev, addr, _, mess repeat ev, addr, _, _, _, LocalIP, _, mess = event.pull(3,"modem_message") if not ev then return nil, "Нет ответа от proxy-сервера" end until addr == ONcard.address and mess=="setip" return LocalIP end function opennet.send(recIP, ... ) if not ONcard then return nil, "OpenNet-карта не инициализирована" end return ONcard.send(recIP, LocalIP, ...) end function opennet.receive(timeout) local ev repeat ev = {event.pull(timeout,"modem_message")} if not ev[1] then return nil end until ev[2] == ONcard.address return table.unpack(ev,7) end function opennet.sendrec(recIP, ... ) local ok,err=opennet.send(recIP, ... ) if ok then return opennet.receive(3) else return ok,err end end ----------------------------------------------------------------------- return opennet или скачать при помощи команды pastebin get VYqtYAXL opennet.lua В-третьих, OpenNet-плата. Где взять OpenNet-плату?Количество плат, которые могут быть подключены к Сети, ограничено. Поэтому, массовых раздач я устраивать не собираюсь. Людям, которые проявили себя в программировании, я готов предоставить платы при личной встрече на сервере. Остальным, возможно, придется приобретать их в банке. Очень рассчитываю при этом на помощь наших банкиров: Тоторо и Алекса. Какие функции предоставляет библиотека opennet?getIP() - осуществляет инициализацию компьютера в Сети. В случае удачной инициализации, возвращает IP-адрес компьютера. В случае ошибки, возвращает два значения: nil и строку, содержащую информацию об ошибке. Следует отметить, что IP-адрес статический. Это значит, что при помощи одной ON-платы вы всегда получите один и тот же IP-адрес. Но это не избавляет от необходимости вызывать getIP всякий раз в начале работы с Сетью.send(recIP, ... ) - отправляет данные на адрес recIP. Одним пакетом можно отправить несколько значений, которые должны быть числами, строками и/или логическими величинами. Суммарный объем данных, отправляемых в одном пакете, не должен превышать 8 кБ. Функция возвращает true, в случае удачной отправки или nil и сообщение об ошибке, в противном случае. Если функция вернула true, это означает, что данные были отправлены, но еще не означает, что они были приняты получателем.receive([timeout]) - ожидает приема данных. Если задан параметр timeout, время ожидания ограничивается. В случае приема данных, возвращает первым значением адрес отправителя, затем - принятые значения. В случае таймаута, возвращает nil.sendrec(recIP, ... ) - это просто объединение функций send и receive. Отправляет данные и возвращает полученный ответ. Очень удобно при работе из интерактивного интерпретатора. А можно пример работы с библиотекой?Пожалуйста.На принимающем компьютере выполним следующие команды: После этого компьютер переходит в режим ожидания. Запомним (или, в моем случае, запишем) IP-адрес. На другом компьютере выполним команды для передачи данных на этот адрес: Теперь посмотрим на принимающий: К стати, если отправить данные на несуществующий адрес, в ответ от сервера будет получено сообщение: Каковы перспективы развития Сети?1. Для начала планирую сделать DNS-сервер, чтобы можно было отправлять данные на удобочитаемые имена.(реализовано)2. Создание чата, в котором школьники смогут материться не рискуя навлечь на себя гнев администрации (реализовано).3. Организация доступа к OpenNet через обычную сеть путем установки роутеров в местах проживания игроков. (реализовано)4. WEB-сервера с полезной или просто интересной информацией. Благо теперь на русском (требуется наполнение web-страниц).5. Служба pastebin для доступа к известному ресурсу в условиях отсутствия интернет-платы (реализовано)6. Да и много еще чего. Изменено 5 июня, 2015 пользователем Zer0Galaxy 2 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 16 апреля, 2015 (изменено) 3. Организация доступа к OpenNet через обычную сеть путем установки роутеров в местах проживания игроков. 5. Служба pastebin для доступа к известному ресурсу в условиях отсутствия интернет-платы Хотеть!! Вот это то, чем я бы пользовался. Но нужно что бы платы как то выдавались пока тебя нет в сети. Иначе гениальная мысль придет, и нужно будет ждать пока ты в онлайне будешь. Еще, добавь пожалуйста в список реализовать функционал всех трех карт в одну (сеть, линк, интернет). То есть купил on-карту (или вставил безпроводную в зоне сети) и у тебя и интернет в придачу. Но всё равно буду следить за развитием сети. Особенно интересно как будут пользоваться игроки. Изменено 16 апреля, 2015 пользователем Krutoy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 16 апреля, 2015 Можно было сказать, я бы добавил в свою тему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 апреля, 2015 Хотеть!! Вот это то, чем я бы пользовался. Боюсь, не смогу реализовать всё сразу. Рассчитываю на помощь. Но нужно что бы платы как то выдавались пока тебя нет в сети. Иначе гениальная мысль придет, и нужно будет ждать пока ты в онлайне будешь. Планирую реализовывать платы через банк. Но на то нужна воля банкиров. >>Можно было сказать, я бы добавил в свою тему. Я подумал, эта информация должна быть в начале темы вот и завел новую. Хочешь, перенеси в свою, а эту закроем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 апреля, 2015 Планирую реализовывать платы через банк. Но на то нужна воля банкиров. Там же так просто не получить пару плат, даже магией креатива. Их только нужно реально крафтить, чтобы вышло две связанные карты с одним адресом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 17 апреля, 2015 Там же так просто не получить пару плат, даже магией креатива. Их только нужно реально крафтить, чтобы вышло две связанные карты с одним адресом. И в этом сложность? Есть же CCC, роботы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 апреля, 2015 Я даже больше скажу, любая даже скрафченая плата не подойдет. Нужна плата, подключенная к Сети. И у меня таких есть несколько штук. Могу предоставить их в банк для реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 17 апреля, 2015 Да в чем проблема. Поставьте раздатчик в первую кабинку или робота, в нее засуньте этих карт. В банке кнопочку нажал - деньги снялись, редстоун сигнал и раздатчик или робот кинул 1 штучку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 апреля, 2015 Я даже больше скажу, любая даже скрафченая плата не подойдет. Нужна плата, подключенная к Сети. И у меня таких есть несколько штук. Могу предоставить их в банк для реализации. То есть есть, например 10 реальных уже существующих на руках у тебя, плат-сестер, которые надо продать? А их близнецы уже запиханы куда-то и зарегистрированы в сети? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 апреля, 2015 Совершенно верно. Только есть проблемка - они не стакаются Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Krutoy 1 169 Опубликовано: 17 апреля, 2015 Совершенно верно. Только есть проблемка - они не стакаются У робота может быть 48 слотов если не ошибаюсь. 48 карт будешь век продавать, если выдавать по 1-3 на руки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 апреля, 2015 Совершенно верно. Только есть проблемка - они не стакаются Это верно. И вторая проблемка, что через любой механизм продажи, будь то воронка, раздатчик, банк, робот-всасывальщик-алмазов-и-выплевывальщик-плат-в-цикле и прочая лабудень не застраховывает нас от того, что какой-то шутник, у которого денег куры не клюют, не купит ради прикола все платы сразу и потом не выбросит их в лаву. И нам снова придется сидеть, крафтить новые платы и прописыавть их IP в базе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 апреля, 2015 Прописываются они автоматом. Но, вставлять их в сервер придется руками. Да и как мы узнаем, какие платы реально используются, а какие выброшены в лаву? Поэтому цена платы не должна быть слишком маленькой и если возможно надо ограничить выдачу плат в одни руки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 апреля, 2015 Прописываются они автоматом. Но, вставлять их в сервер придется руками. Да и как мы узнаем, какие платы реально используются, а какие выброшены в лаву? Поэтому цена платы не должна быть слишком маленькой и если возможно надо ограничить выдачу плат в одни руки. Это даааа. Сильно маленькой то да, не должна. Но не дороже, чем ее себестоимость, а стоит она там копейки. Иначе кому она нужна будет. Мы плавно подходим к тому, что нужен не просто ванила-раздатчик простенький, а целый сервисный центр, где игрок регистрируется, получает аккаунт, ему выдается плата на руки, IP, или чего там, пароль. Две платы он купить не может уже на свой ник и т.д. и т.п. Редстоуном с ванила-раздатчиком тут явно не обойтись. Надо городить целый Датацентр провайдеровский. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 17 апреля, 2015 а лучше пользоваться системой роутеров,не нужно с картами баловаться. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 17 апреля, 2015 Нео, сделаешь такой роутер? Пока Сеть ничего из себя не представляет, покупать платы все равно никто не будет. Сейчас Крутой работает над интернет-сервисом, я думаю над DNS. Со временем сделаем WEB-сервер, напишем браузер, может тогда спрос на ОН-платы появится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 17 апреля, 2015 Нужно посмотреть на вашу систему. Нео, сделаешь такой роутер? Пока Сеть ничего из себя не представляет, покупать платы все равно никто не будет. Сейчас Крутой работает над интернет-сервисом, я думаю над DNS. Со временем сделаем WEB-сервер, напишем браузер, может тогда спрос на ОН-платы появится. Для Web-браузер можно использовать инфо-панель от Тоторо. Там есть теги. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 апреля, 2015 (изменено) Хочу рассказать об изменениях, произошедших в развитии OpenNet. Во-первых создан и функционирует DNS-сервер. Во-вторых реализована служба, позволяющая пользователям OpenNet получать доступ к сети Интернет. Чуть ниже по порядку. Что такое DNS-сервер и зачем он нужен? Предположим, два пользователя Сети, Петя и Вася, обмениваются ON-сообщениями. Как это выглядело до сих пор: Петя, чтобы послать сообщение Васе, должен знать его IP. Именно на этот IP и отправляется сообщение. Вот так это можно представить графически Сообщение проходит через ряд роутеров, которые и определяют путь прохождения. Как видим, в самом сообщении присутствуют IP-адреса получателя и отправителя. Но, запомнить Васин IP в виде набора букв и цифр довольно сложно. Да и что делать если Вася сменил IP и не успел предупредить Петю? На помощь приходит DNS-сервер. Он позволяет зарегистрировать в сети уникальное имя и связать его с определенным IP. Начинается всё с регистрации имени Как видно из рисунка, для регистрации DNS-имени, Вася посылает на сервер определенную посылку, в которой указывает желаемое имя, связанный с ним IP и пароль, который потребуется в случае необходимости внесения изменений. На рисунке я изобразил, что клиентский компьютер направляет сообщение прямо в DNS-сервер. Это конечно не так. Сообщение пройдет как минимум через роутер ef4. Мне просто не хотелось затемнять рисунок. После регистрации имени, Петя может отправлять сообщение не на "ef4.d69", а на зарегистрированное имя "Vasya". Вот так это будет выглядеть: Роутер 7e3, получив сообщение для получателя "Vasya", запрашивает IP у DNS-сервера и заменяет адрес получателя на этот IP. Но это не всё. Какое то время роутер продолжает помнить этот IP и последующие сообщения для получателя "Vasya" будет отправлять без обращения к DNS-серверу. Время это составляет ~25 минут. Изменено 22 апреля, 2015 пользователем Zer0Galaxy 4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 22 апреля, 2015 Дмитрий! Сеть пока так вся и состоит только из соединенных плат? Не планируется ли в будущем гибридная связь с использованием Wi-Fi? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy Автор темы 2 187 Опубликовано: 22 апреля, 2015 Сейчас это первоочередная задача. Крутой сделал доступ из OpenNet в Internet, но прикол в том, что связанная плата в крафте дороже чем интернет-плата. Нужно упрощать доступ к ON, а это можно сделать только через WiFi или проводные роутеры Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах