Minetest server on Erlang.

hummermania
New member
 
Posts: 3
Joined: Sun Apr 01, 2012 17:44

Minetest server on Erlang.

by hummermania » Sun Apr 01, 2012 18:08

Hello guys. I started writing minetest server on the Erlang language for future heavy loads for thousands of users (I hope it is will). To implement the data transfer protocol I read the doc/protocol.txt, and read the source code of connection.cpp, server.cpp and others. But it is very slow to understand all the protocol and packet buffers realization, and writting algorithm on the functional language.

So I ask the people to describe the protocol spec in the wiki, include sequence of different packet type, full list of control and command byte and others... Also I can help to correct this pages.

And the new architecture idea for store the map in the NoSQL DB like the Riak, wich can easy scale on the N servers and populate the map changes as a DHT using in the torrent. Maybe this features can join the many world from different servers...

Thanks.
 

kahrl
Member
 
Posts: 236
Joined: Fri Sep 02, 2011 07:51

by kahrl » Sun Apr 01, 2012 19:59

You could make a packet trace with wireshark and look at it with the dissector minetest/util/wireshark/minetest.lua. The dissector hasn't been updated for 0.4 yet but it might give you an idea how the protocol works. Also look at clientserver.h, it has a comment about each command.
 

hummermania
New member
 
Posts: 3
Joined: Sun Apr 01, 2012 17:44

by hummermania » Mon Apr 02, 2012 14:09

Well thanks! I will see the packet trace and command description. And in the v 0.4 protocol maybe have more chages?
 

hijera
Member
 
Posts: 36
Joined: Sun Jun 19, 2011 13:04

by hijera » Mon Apr 09, 2012 23:05

multiserver world could be interesting - it will be as grids in Second Life.
 

User avatar
jordan4ibanez
Member
 
Posts: 1865
Joined: Tue Sep 27, 2011 18:44
GitHub: jordan4ibanez
IRC: jordan4ibanez
In-game: jordan4ibanez

by jordan4ibanez » Fri May 04, 2012 14:17

hope to see this updated..would love a faster server
If you can think it, you can make it.
 

hummermania
New member
 
Posts: 3
Joined: Sun Apr 01, 2012 17:44

by hummermania » Fri Jun 22, 2012 06:45

Hello. I have some time paused of working on server. Also I have some trouble to translate some algoritms for the networking subsystem. When I'm reading the C code in connection.cpp I can't answer on few questions:
1) When the server make new thread for the new client?
2) How different threads get they own UDP packet?
3) How many thread get the UDP packet from one socket? And how this realize in Erlang (I still learning this language)
4) How many time UDP packet read from socket and write it to the memory in their buffer? I ask this question because Erlang haven't shared memory between processes and threads and we will find some another ways to resolve this cases. In the Erlang I can use the ETS tables to write binary data from the packet, but I don't know how many time in this process - maybe clear C++ do it faster.

When I will have answer on this question I can work further.

Sorry of my English. Translate from Russian.
 


Return to Minetest Engine

Who is online

Users browsing this forum: No registered users and 13 guests

cron