[Evaporation Project] Система дистрибуции файлов

Для тех, кто хочет сделать мир лучше.

Как передавать файлы от сервера к клиенту

Через простые сокеты
22
39%
Через HTTP/FTP протокол
27
47%
Другое (отписать)
8
14%
 
Всего голосов: 57

Сообщение
Автор
Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#16 Сообщение 08.05.2009, 17:18

eldest
ссылку на профайл в стиме скинь в лс...
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

Red_Man
VIP
VIP
Сообщения: 1437
Зарегистрирован: 27.04.2008
Благодарил (а): 42 раза
Поблагодарили: 40 раз

#17 Сообщение 08.05.2009, 17:25

MOZGIII
[spoiler=""перевод""]I want to discuss ways to distribute files of games. Namely, how will the transfer of data be.

At the moment, I considered the possible use of available protocols, namely, Direct Connect and BitTorrent. I've come to the conclusion that they both have some useless features and are quite complicated in implementation. And they don't have something, that I need. So, they were both pushed away as not suitable, but, if I won't find another option, I will use them.
Briefing completed:)

So, let's write our own protocol. Most likely from pieces of existing ones, but this is not particularly important.
And now, my questions:
First of all - what we want to get?
My thoughts on this subject:
1. Files are downloaded not from central server, but only from special additional servers.
2. Information about all files on all additional servers is on the master server. For him, we can probably use torrent term "tracker".
3. Files can be placed on several add. servers at once, so you can download from all available servers at once (with mirrors).
4. You can download one file at a time (one copy of the client can download only one file at the same time - that is not like uTorrent). Although the implementation of the protocol is not important. %)
5. Each file will have a unique identifier, that will be known on the master server. Perhaps this will be md5 hash file, but anyway it will be based on the content of the file.
6. To send multiple files or folders in the same alias, we will use archive or our own file format (no compression, just many files attached to each other).

That's all for now. I'm looking forward to your ideas, additions, disagreements, or even your own structure of the protocol ;)

UPD 07.05.09
I chose how we will transfer aliases, so paragraph 6 had already been determined. They will be transferred in the files with extension ".elib". The structure of these files is simple:
Code: [format identifier] [size of the overall title] [overall title - indicates the size of each file, the names of files and folders, and where they are, (subfolders, etc.)] [file1] [file2] [file3] [fileN][/spoiler]
И большая просьба, перед тем как дать задание на перевод с русского - исправляйте грамматические ошибки и правильно указывайте термины (например, вместо "скачка" - "скачивание")

popoffka666
VIP
VIP
Сообщения: 2463
Зарегистрирован: 13.12.2007
Откуда: Latvia
Поблагодарили: 2 раза

#18 Сообщение 08.05.2009, 17:27

Не стал ждать твоего ответа на ЛС и создал тему в разделе переводчиковю
[spoiler=""Перевод от RedMan""]I want to discuss ways to distribute files of games. Namely, how will the transfer of data be.

At the moment, I considered the possible use of available protocols, namely, Direct Connect and BitTorrent. I've come to the conclusion that they both have some useless features and are quite complicated in implementation. And they don't have something, that I need. So, they were both pushed away as not suitable, but, if I won't find another option, I will use them.
Briefing completed:)

So, let's write our own protocol. Most likely from pieces of existing ones, but this is not particularly important.
And now, my questions:
First of all - what we want to get?
My thoughts on this subject:
1. Files are downloaded not from central server, but only from special additional servers.
2. Information about all files on all additional servers is on the master server. For him, we can probably use torrent term "tracker".
3. Files can be placed on several add. servers at once, so you can download from all available servers at once (with mirrors).
4. You can download one file at a time (one copy of the client can download only one file at the same time - that is not like uTorrent). Although the implementation of the protocol is not important. %)
5. Each file will have a unique identifier, that will be known on the master server. Perhaps this will be md5 hash file, but anyway it will be based on the content of the file.
6. To send multiple files or folders in the same alias, we will use archive or our own file format (no compression, just many files attached to each other).

That's all for now. I'm looking forward to your ideas, additions, disagreements, or even your own structure of the protocol ;)

UPD 07.05.09
I chose how we will transfer aliases, so paragraph 6 had already been determined. They will be transferred in the files with extension ".elib". The structure of these files is simple:
Code: [format identifier] [size of the overall title] [overall title - indicates the size of each file, the names of files and folders, and where they are, (subfolders, etc.)] [file1] [file2] [file3] [fileN][/spoiler]
The Planet is fine. The people are fucked. — George Carlin
Science is interesting, and if you don't agree you can fuck off. — Richard Dawkins

Мой рогалик на JavaScriptМой профиль на GitHub

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#19 Сообщение 08.05.2009, 17:42

Red_Man, popoffka
Спасибо конечно, но нельзя же просто вот так без предыстории выкладывать такую тему на rin например. Они ничего про Evaporation Project незнают (я только тут постил)

Добавлено спустя 3 минуты 59 секунд:
А насчёт протокола - план действий таков. Надо выбирать что делать - писать таки свой протокол или использовать уже существующие. Можно, также, подождать пока andreil допишет сервер стандартного стимовского протокола и от него плясать. Но это, как сам andreil писал, будет не раньше чем через месяц.

Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#20 Сообщение 08.05.2009, 17:44

MOZGIII
а как мой вариант? взять ядро от старого Tracker'a и модифицировать его.
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

Аватара пользователя
Megalan
Разработчик
Разработчик
Сообщения: 335
Зарегистрирован: 02.04.2007
Благодарил (а): 1 раз
Поблагодарили: 29 раз
Контактная информация:

#21 Сообщение 08.05.2009, 18:30

nALLITeT

Эх, хоть он и называется tracker, но никак не относится ни к передаче данных, ни к битторент. Это friends, загляни в тему openvgui и сам убедись если не веришь. И тот протокол который он использует уж точно не подойдет для передачи файлов

по теме:

Идея конечно хорошая, если будете реализовывать на c# то я готов помочь.

Аватара пользователя
nALLITeT
Полковник
Полковник
Сообщения: 2560
Зарегистрирован: 01.08.2008
Откуда: 127.0.0.1
Поблагодарили: 2 раза
Контактная информация:

#22 Сообщение 08.05.2009, 19:05

Megalan
обрезки кода стима взять?
Изображение
JIEGOKOJI писал(а)::lol: Steamworks это паблишер вальв лол.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#23 Сообщение 08.05.2009, 19:40

Megalan
Релизовывать планирую на Delphi

nALLITeT
Кажется это не так актуально - штуку с этим-же функционалом уже делает andreil. А насчёт перевариваня ядра старого стима - лучше туда не соваться :)

Аватара пользователя
x_000
Полковник
Полковник
Сообщения: 4889
Зарегистрирован: 25.02.2008
Откуда: Deutsches Reich
Благодарил (а): 6 раз
Поблагодарили: 18 раз

#24 Сообщение 08.05.2009, 22:16

MOZGIII писал(а):Надо выбирать что делать - писать таки свой протокол или использовать уже существующие.
смысл изобретать велосипед?

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#25 Сообщение 09.05.2009, 01:12

x_000
...дабы нам не подгонять самолёт под нужды велосипеда.

Аватара пользователя
x_000
Полковник
Полковник
Сообщения: 4889
Зарегистрирован: 25.02.2008
Откуда: Deutsches Reich
Благодарил (а): 6 раз
Поблагодарили: 18 раз

#26 Сообщение 09.05.2009, 01:15

MOZGIII
дополнительные возможности никогда не помешают.. конечным пользователям нравятся дополнительные возможности

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#27 Сообщение 09.05.2009, 01:33

x_000
А разрабам не очень %) Это ж надо интерпритировать много кода, вставлять туда свой код. А потом ещё и прописывать лишние элементы интерфейса... Например у DC нужен чат, поиск итд. А от торрентов - .torrent файлы.

Добавлено спустя 1 минуту 17 секунд:
А при написании своего протокола - гораздо больше свободы.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#28 Сообщение 09.05.2009, 08:15

"Свобода - это ответственность"
Это не всегда легко - начинать с нуля -, но если "цель оправдывает средства", то твоя воля.
Я стою на своём.

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#29 Сообщение 12.05.2009, 16:54

[spoiler=""от Snake 6""]I suggest to discuss ways of distribution of files of games. Namely as there will be a data transmission.

At present I have considered possibilities of use of already finished protocols, namely Direct Connect and BitTorrent. Also has come to conclusion, that both of them have superfluous functionality and are difficult enough in realisation. To that in them something is not present. Therefore both of them have been rejected by me as not approaching, that is on an extreme case.

The introduction is finished
Well here, means, we write our own protocol. Most likely from pieces of already existing, but it is not especially important
And now, actually, that I was going to discuss. First of all - that we wish to receive?
My thoughts about this:
1. Files downloading occurs not from the main server, but from special additional servers.
2. The information about all files on all additional servers is available on the main server. Probably for it we can use the term "tracker" from torrents system. For those whom don't like may speak the main server. %)
3. Files can be placed not on one additional server, but on several at once that it was possible to use downloading from several servers at once (with mirrors)
4. It will be made downloading of one file simultaneously (one copy of the client can download only one file - that is not as, for example the same uTorrent, and with turn in one file). Though for realisation of that protocol this is not important %)
5. Each file will be have the unique identifier under which it will be known on the main server. Possible it will be MD5 file hash, but in any case it will be based on file contents.
6. For folders transfer or several files in one alias it will be used either the archiver, or own format of files (without compression, it is simple integration several files in one).

For now, its all. I wait for your ideas - additions, critics or in general your own structure of protocol.

UPD 07.05.09
I have chosen how we can transfer aliases, so point 6 is already defined. They will be passed in type files.elib. Structure of these files will be simple:

Code:
[The format identifier] [the size of the general heading] [the general heading - the sizes of each file, names of files and folders and where they are, in meaning subfolders etc.] [file1] [file2] [file3] [fileN][/spoiler]
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Milkyway
Полковник
Полковник
Сообщения: 4470
Зарегистрирован: 19.11.2008
Благодарил (а): 62 раза
Поблагодарили: 133 раза
Контактная информация:

#30 Сообщение 12.05.2009, 17:48

impulse666 писал(а):Snake 6
60 же

Ответить