Dirtsand Early 2018

Announcements and discussion regarding any projects related to Cyan Worlds' Plasma Engine including (but not limited to) CyanWorlds.com Engine, Drizzle, OfflineKI, PyPRP, and libHSPlasma.

Re: Dirtsand Early 2018

Postby J'Kla » Fri May 11, 2018 3:41 am

I followed the suggestion of trying bin/dirtsand dirtsand.ini and Linux spat out it’s dummy (pacifier) and gave me the response.

/bin/dirtsand: no such file or directory

Now I remembered from creating the RC4 keys that the bin folder for the “interactive console” was actually located in /opt/dirtsand/dirtsand So I tried

Code: Select all
dirtsand/bin/dirtsand dirtsand.ini


This time I got the following

Code: Select all
[SDL] Warning: No SDL descriptors found!
[Game] Warning: No age descriptors found!
[Lobby] Running on 0.0.0.0/14617
[Status] Running on 0.0.0.0/8080
ds-918> Error connecting to postgres: FATAL:  password authentication failed for user "dirtsand"
FATAL:  password authentication failed for user "dirtsand"


I decided to have a deeper look at dirtsand.ini at the bottom I found the following.

Code: Select all
# Paths to server data
File.Root = /opt/dirtsand/data
Auth.Root = /opt/dirtsand/authdata
Sdl.Path = /opt/dirtsand/SDL
Age.Path = /opt/dirtsand/ages

# Postgres options -- You need to add a user before this will work
Db.Host = localhost
Db.Port = 5432
Db.Username = dirtsand
Db.Password = MySuperSecretPassword
Db.Database = dirtsand


From this I see that I probably need to change the line MySuperSecretPassword to match my postgresql password for the user dirtsand.

Also that the paths to the server data are looking for sub folders of /opt/dirtsand named:

data
authdata
SDL
ages

So I changed the Db.Password and created the four sub folders figuring I will figure what they need down the line and this time when I try the command “dirtsand/bin/dirtsand dirtsand.ini”

This time I get a ds918> prompt and addacct returns to the prompt after it has been fed some data.

Previously it had been a green hanging cursor waiting for some input that I could only escape with [Ctrl][c]

Now I recon all I need is something to stuff those four folders.

I have to feel I am getting ever closer. ;)
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby Deledrius » Fri May 11, 2018 4:13 am

J'Kla wrote:I followed the suggestion of trying bin/dirtsand dirtsand.ini and Linux spat out it’s dummy (pacifier) and gave me the response.

/bin/dirtsand: no such file or directory

bin/dirtsand and /bin/dirtsand are not the same path. Be careful about adding or removing that initial slash, as it carries much power and meaning in Linux!

The former is a path relative to the current working directory, and the latter is absolute, starting from the filesystem root. This is why I said "I have mine in /opt/dirtsand/, and I start the server in that directory with the command bin/dirtsand dirtsand.ini". Assuming you followed the directions as given, this should match your setup as well. The executable's full path is /opt/dirtsand/bin/dirtsand for the server.


J'Kla wrote:Now I recon all I need is something to stuff those four folders.

I have to feel I am getting ever closer. ;)

Hooray! You are nearly there!
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1075
Joined: Mon Oct 01, 2007 1:21 pm

Re: Dirtsand Early 2018

Postby J'Kla » Fri May 11, 2018 6:46 am

Doh!

Typo I missed a directory level in the creation of the copy of dirtsand.sample.ini so it was created in /opt/dirtsand and not where it should have been /opt/dirtsand/dirtsand

but I am I right in thinking the folders

data
authdata
SDL
ages

Should be in /opt/dirtsand because that is what I am picking up from the paths that I am seeing in dirtsand.sample.ini and in the github notes.
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby Deledrius » Fri May 11, 2018 11:37 am

J'Kla wrote:but I am I right in thinking the folders data, authdata, SDL, ages, should be in /opt/dirtsand because that is what I am picking up from the paths that I am seeing in dirtsand.sample.ini and in the github notes.

Correct. It's your /opt/dirtsand/dirtsand that seems to be incorrect.
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1075
Joined: Mon Oct 01, 2007 1:21 pm

Re: Dirtsand Early 2018

Postby J'Kla » Sun May 13, 2018 1:55 am

I am a lot closer Now I am getting a login and the spining dots then a popup window that says.

Code: Select all
Network error 5,Network Connection Failed.
protocol: Game Server


I am satisfied I am a lot closer and that at least I am getting a login. :)
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby Korovev » Mon May 14, 2018 9:04 am

I got curious, so I’m trying too :) (On a VirtualBox Lubuntu).

I used Deledrius’ commands, except I used

Code: Select all
cmake -DCMAKE_INSTALL_PREFIX=/opt/dirtsand ..


otherwise cmake tries to install it in /usr/bin .

However, when it comes to generate the RC4 keys, I get:

Code: Select all
error while loading shared libraries: libstring_theory.so.2: cannot open shared object file: No such file or directory


But I do have libstring_theory.so.2 in /usr/local/lib .
Gehn #137074, Deep Island #194197. Gahreesenomee biv keneet pishoeet b’set!
Want to know what’s going on in the Cavern? Get tweets from the GoMe.

MacOS wrappers, D’ni Lessons, DniTools, goodies.
User avatar
Korovev
 
Posts: 140
Joined: Sun Jan 27, 2013 5:18 am

Re: Dirtsand Early 2018

Postby J'Kla » Tue May 15, 2018 1:28 am

I am a lot closer I am well past the RC4 keys I will have a set of instructions soon I believe what I actually need is the SDL files for the server something in the latest instructions posted my Deledrius contained the following

Provide data for the client to use:

The most important data for the client are the auth server provided files -- specifically, the SDL and python.pak. External Plasma clients require these files in order to function, so you will need to provide them unless you are planning on making your server only work with Internal client builds.

Generating or acquiring these files is currently outside the scope of this document, but you can find more information on that process at the moul-scripts github project page.


I don't think this was actually written by Deledrius I think Deledrius was only posting a link however saying something is outside the scope of a document when it is a requirement makes for a frustrating document.

I followed the link provided and I have grabbed the moul-scripts and I will try stuffing these into the folder I suspect I need to use.

[edit]
OK I followed the link to the moul-scripts grabbed the data as a zip and unpacked this data

I got three folders

dat
SDL
Python

plus three files

.gitignore
COPYING.txt
Licence.txt

There is no issue about where I stuff the SDL files

The problem comes with the dat folder this contains .age and .fni so I am unsure if this goes in data or in ages or should I split this into .age and .fni and put them in different locations

The documentation seems to suggest the Python folder should be a sub directory of /opt/dirtsand and this also talks about NTD encrypted but gives no instructions on how to achieve that encryption.

As it happens I am in the process of another clean build I will post anything I discover here.
[/edit]
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby J'Kla » Tue May 15, 2018 3:28 am

Here is my install Method

Building a Dirtsand Shard
Ok I grabbed the latest images of Ubuntu Server 18.04.

I started to build my shard and had real problems till I spotted you were no longer allowed to use upper case letters in the computer name and if you tried to tab to the next field it took it that you were finished with that page. I solved that by changing all the upper case to lower case (go figure).


For the purposes of clarity in this document I am using the following users and passwords and you can use a replace to personalize the document.

Server name floatingpencil
Server user Sidney Milkman
Login sid
User password milkbottle
User dirtsand password soilgrit
Dirtsand database password laundrymarker

I built the server as flotingpencil with a user Sidney Milkman with a login user name sid and a password of milkbottle (these are sample names not actual I am not that stupid)

So the server is built. By default, the server version installs with ssh automatically and I can reboot switch off the monitor and then log in remotely from my main workstation using putty.

Before I run the apt-get install line provided by Deledrius I do the flowing two commands sudo obviously needs my milkbottle password after the first and that lasts for the duration of the session.
The $ symbol shows these are Linux shell command line entries.

Code: Select all
$ sudo apt-get update
$ sudo apt-get upgrade


I don't know if these are necessary but I figure I will be told if this is wrong. Even though this is a recent download of Ubuntu there are still some upgrades that appear to download and upgrade.
Following the instructions provided by Deledrius:

Code: Select all
$ sudo apt-get install build-essential git cmake libpq-dev libssl-dev libreadline-dev zlib1g-dev postgresql postgresql-contrib apache2 php7.2


I get a message saying git is already the latest version but I am not worried about this as I have seen this many times before it does no harm to leave it in the command. I have added postgresql and postgresql-contrib because after multiple re-installs to prepare this document I have realised I will need these later on in the installation so we might as well add them here, apache2 has been added because I needed a quick way to see if the reboot had completed on those times it was used and php7.2 because at some point I need to have status.php added. Those two are your choice.

This will take a while to load and at some points it will appear to have stalled I assure you there are times it waits for a while particularly during the man.db data grab.
We are now going to build a new user that will be the dirtsand user and give that new user a home directory that will reside in the /opt folder.

Code: Select all
$ sudo useradd dirtsand -d /opt/dirtsand -m -s /bin/bash -g sudo


Here I create a user called dirtsand the -d option creates and sets the home directory as /opt/dirtsand, -m grabs the default settings for a start-up, the -s sets the shell prompt to the /bin/bash type, -g the g option adds dirtsand to a user group in this case the sudoers this allows the dirtsand account to use the sudo prefix and gain super user access, the -p option that was in the original version of the load used to add a password is no longer valid in Linux the user is created but the password is not. With this new user created I use the following to add a password to our new dirtsand account.

Code: Select all
$ sudo passwd dirtsand


Then follow the prompts and add a password soilgrit for this new dirtsand account.
My work done I enter

Code: Select all
$ sudo reboot


This reboots the server and log in from my main workstation using putty as dirtsand with the new password soilgrit.
Logged in I use the command pwd (print working directory). This confirms that the dirtsand login has a home directory of /opt/dirtsand and that directory is now our working directory.

Deladrius suggested creating a sub-directory in that home directory in this case "/opt/dirtsand" called development and then moving to make this the working directory. I have dropped this option for tidiness. Plus I reinstall multiple times and in a server that is not used for anything else it is a step that’s just not required.

Code: Select all
$ git clone https://github.com/zrax/string_theory.git


Here we are making a clone copy of the sub-directory from the github called string_theory this will sit in the /opt/dirtsand directory.
Code: Select all
$ git clone https://github.com/H-uru/dirtsand.git

Here we are making a clone copy of the sub-directory from the github called dirtsand this will also sit in the /opt/dirtsand directory.

Code: Select all
$ mkdir string_theory/build && mkdir dirtsand/build
$ mkdir ages
$ mkdir data
$ mkdir authdata
$ SDL


This adds sub-directories called build in each of these cloned directories the double ampersand links two commands into a single command line that will stop if one fails. The other four directories will be required later.

Code: Select all
$ cd string_theory/build


Here we are changing directory so our working directory is the newly created build directory in the string_theory sub-directory.

Code: Select all
$ cmake ..


Here we run the cmake command using as its source the stuff it finds in the parent folder of our current working directory.

Code: Select all
$ sudo make install


The commands cmake and make install is a two-step compilation of code, so here we do the second stage which requires the “make” command this needs to be run as sudo because it makes changes to the main directory structure of the server. So you will be asked for your dirtsand password so in our sample case this would be soilgrit.
You are asked for the dirtsand password because this is the first time you will have used sudo with the dirtsand login.

Code: Select all
$ cd ../../dirtsand/build


Now we make the other build folder the working directory and do the same two stages

Code: Select all
$ cmake ..
$ sudo make install


Setting up a server:

You will need a working Postgres server which DIRTSAND can use to store its data. This was the reason for the additions added to the first apt-get install.
For the default installation, the provided scripts will create a dirtsand database and set its ownership to a 'dirtsand' database user, which can directly map the system dirtsand user created in step 1 of the "Building the code" instructions above. For better security, it is recommended to use a password (as shown in the steps below) we will use laundrymarker as a placeholder for the password you designate, which can be configured in the server settings as described in the "configure dirtsand" step.

Set up the postgres user:

Code: Select all
$ sudo -u postgres psql -d template1


This accesses the postgresql database software using the default “template1” at this point your prompt will change to the “template1=#” you will see in the following lines this should inform you that you are issuing postgresql commands and not native Linux commands. Note: The database commands are terminated with a semi-colon this is the normal SQL end of line marker.

Code: Select all
template1=# CREATE USER dirtsand WITH PASSWORD 'laundrymarker';


You are going to give this a password keep the single quotes try to give this a password that has not been used previously laundrymarker is just a placeholder for your password. If you get this right you should get the response.

CREATE ROLE

If you do not get the response then you probably missed the semicolon just enter it on the empty line and the instruction should complete.

Code: Select all
template1=# CREATE DATABASE dirtsand WITH TEMPLATE = template0 ENCODING = 'UTF8';


Again it is worth noting SQL command reserved words are all in upper case and I remind you the end of line semicolon is required. Again if you have this correct you will get the response.
CREATE DATABASE
Code: Select all
template1=# ALTER DATABASE dirtsand OWNER TO dirtsand;


Here we are changing the designated ownership of the database note this is not the Linux user dirtsand but the database user dirtsand. This time the response should be.

ALTER DATABASE

Code: Select all
template1=# \q


OK this is probably the only postgresql command not terminated with a semi-colon this is the “exit” think of it as shorthand for backslash quit.

Install the UUID functionality:

This is provided by your OS distribution under Ubuntu, simply install the postgresql-contrib package remember we did this at the start. We are now going to log back into postgresql but this time as our new user dirtsand.

Code: Select all
$ sudo -u postgres psql -d dirtsand


This time the postgresql prompt changes to “dirtsand=#”.

Code: Select all
dirtsand=# CREATE EXTENSION "uuid-ossp";


This is a one shot command to add an extension to the database. This gives the response.

CREATE EXTENSION

Code: Select all
dirtsand=# \q


Exit again but this time you are exiting as the dirtsand user.

Code: Select all
$ cd ..


Move to the parent directory this puts you in the right location to call the db sub directory. The pwd directory should show you are sitting in the /opt/dirtsand/dirtsand folder.
We are now going to Set up the dirtsand database. $ prompt would suggest it is a Linux command and the psql looks like a postgresql command but we have been told to log out with the \q so what is the is the user login if it is postgresql and where is the closing semi-colon .

Code: Select all
$ psql -d dirtsand < db/dbinit.sql
$ psql -d dirtsand < db/functions.sql


In reality this is pair of commands that call postgresql database with psql with an argument that is a text file with an extension of .sql these two commands effectively pre-stuff the database you will generate a password error.
Expect to see a load of stuff scroll up your screen this is the response lines that are generated by postgresql.

This is to be expected because the internal users’ password has not been set. If there were no other errors, your database should be ready to roll. Do not be surprised by the error “Error: language “plpgsql” already exists” when you run the second line I believe this is a fail safe because the call is in both .sql files so that if the running order is reversed the commands still work. Note: this is supposition on my part. I did a double take on this but it is saying the language is already there:

Configure dirtsand:

A sample dirtsand.ini has been provided in the root of the dirtsand sources. We can copy this to our install directory and then edit the fields we need. Specifically, you will need to adjust the server addresses and the RC4 keys. If you have dirtsand installed to somewhere other than /opt/dirtsand, you will also need to point the configuration to the right paths too.

Code: Select all
$ sudo cp dirtsand.sample.ini /opt/dirtsand/dirtsand/dirtsand.ini


This command is bog standard Linux shell command that is find and make a copy of dirtsand.sample.ini and name it dirtsand.ini you then command.
You now need to generate the RC4 keys, you can simply run the keygen command from within the dirtsand interactive console: You need your working directory to be /opt/dirtsand/dirtsand because the interactive console is in the bin subdirectory of that folder.

Code: Select all
$ bin/dirtsand


Hitting enter spits out some information about missing that has a hold cursor this is to be expected because you have not made the settings to prevent these messages hitting enter a second time changes to the interactive prompt. In my case it gives a new line that a “ds-918>” prompt this appears to be the prompt for the interactive console. ds-902> was the example provided by Deledrius I believe at this time the number may be a version thing.

Code: Select all
ds-918> keygen new


Here you get the following response line with a growing line of waiting dots. The number of trailing dots is obviously dependent on the speed of your server.
Generating new server keys . . . This will take a while . . . .
Eventually this then spits out something like the following.

Key.Auth.N = 84gOCD7I+C98d8BGQx0jfLJqMWviQUNM+fx20p085RKcpkRvZmKzmvzZXF9isIJo90pvkyjW/XHeGMUECa8N4w==
Key.Auth.K = whoIEGu3raMn46cmpMjAL4iLKokJkUVTpMBm1SUm2svYcTZoN7BwCaAtmyai6mjf8teV3LU9R667sTUXgK0qHw==
Key.Game.N = 00ZL5bT+v7cq4rxkNN0W0Kcjj9iHBGmNPT6xXJoE7KXHh9cZ6BfOio4/19lcv1Ck3AdBoCX/kvuWbnvOPJCN9w==
Key.Game.K = ze6tajRKdxSAEbSm21reJwnRiEC+cIli3x0nUeJYnReLAE+ZzweKtkSK9jTWsy9lAsqn8uwP1Vo2we9jEaoMLw==
Key.Gate.N = 03Sk3RQJJ6V2NiK37vDGMixkoqhL71H8KHDeon1tkPIIdRYOEsr1dljPJIbqv/hXOaQ7UHPPAJc918C4jUH0Rw==
Key.Gate.K = 3m3KpfpzGE0hyx/Xc355S7HwxQj0pfusyWWcOiV6/NUBs0sWvW7/WF0jccLPpH+rPzyP3Gz7VBcL5F7tqTdqVw==
--------------------
Client keys: (server.ini)
Server.Auth.N "84gOCD7I+C98d8BGQx0jfLJqMWviQUNM+fx20p085RKcpkRvZmKzmvzZXF9isIJo90pvkyjW/XHeGMUECa8N4w=="
Server.Auth.X "6wLRviZknRtqUeuDVvoqehiJyUCMnqzpZGMwu5qAei0O6qgUkTeT1xnXF/HJErPptQA4QRhHCgGaAK0zAhgDYw=="
Server.Game.N "00ZL5bT+v7cq4rxkNN0W0Kcjj9iHBGmNPT6xXJoE7KXHh9cZ6BfOio4/19lcv1Ck3AdBoCX/kvuWbnvOPJCN9w=="
Server.Game.X "n1VzUaWvt3Sw1EUSjmLvUf6Jw8628kLHVZ33Z/qyKhcHPpEOD0mWa83E78i6jva+Vbjrwp6c2DRZil6zROzJDg=="
Server.Gate.N "03Sk3RQJJ6V2NiK37vDGMixkoqhL71H8KHDeon1tkPIIdRYOEsr1dljPJIbqv/hXOaQ7UHPPAJc918C4jUH0Rw=="
Server.Gate.X "S0FbL/d/D1mfkIwAeKLCOv7CDgTIDiBaMoq7foV0JDsYx0T8UvHD334I0sxxd3DtWRHUmudKf+BB0AoIPdOqdQ=="
--------------------

You now need to quit the interactive console with the following

Code: Select all
ds-918> quit


I believe that is self-explanatory, You should now be able to highlight this block of code and use [Ctrl][c] to capture this to the clipboard you may get ^c at the prompt but if you are using putty in a windows session you should be able to paste your results into a text editor.

Then I opened the new file “dirtsand.ini” for editing (my editor of choice happens to be nano so I am putting that into the command).

Code: Select all
$ nano dirtsand.ini


Text editors within Linux universe are not as playful as word processors on a PC but on my PC I have “core FTP Lite” loaded an alternative is “FileZilla” with either you can grab the file from your server edit it on your PC (I use the open source editor ConTEXT to edit) and the post it back to your server again with your FTP software.

While you are editing the file scroll to the bottom and where it says:

Db.Password = MySuperSecretPassword

Here you need to change this so that it has your Dirtsand Database password the example we are using in this document would make this laundrymarker.

Remember if you make a complete hash of any of this you can delete “dirtsand.ini” and make a new clean copy using the “dirtsand.sample.ini” as a master not forgetting you will need to chown the new file and then start again.

You should now have a bunch of keys (see above) output on your terminal. The first block (labelled Server keys) is the set you should paste into your dirtsand.ini. Replace the dummy lines (with the '...' values) with the output from the keygen new command.
The second set of keys can be placed directly in the client's server.ini file (NOTE: This requires either the H-uru fork of CWE or PlasmaClient -- the vanilla MOUL client cannot load keys from a file, and you will have to enter the keys as byte arrays directly into the executable.
This is a copy of the data hacked from the Destiny server.ini file as provided by Christopher for use with Destiny. If you have managed to get Destiny working a copy of your Destiny folder will give you everything you need.
The Keygen created codes are a paired set one block for the shard and one block for the client this ties the client and shard together you can create a new set any time but they must be used as a pair as generated. You will not get away with using the codes in the Destiny server.ini you need to insert the block you created.
This is the copy of my Destiny folder server.ini

Server.Auth.N "z5t8bJyN8xhDbVEBqXAr1S66haK9wEUzbWVLfYMW5NG7F6tN63iDUhCzpFqhtBxlMn4sqSQxn+k2H/r/cEpUVw=="
Server.Auth.X "E/0przoOD8V0pEBX038xZDAIW7gl/zwo8yy5DhzBT43OxqJd2DMzwaNtvkSNuJpYPuKHpNuBSjTY0GUDDGvPRg=="
Server.Game.N "0tw8B8UMuaeMqd+gp5fpwqCkNnLojV7MrIlt0Ef6ZgzjKA57U2J+VOI1E2AZ4SBrRo8ukQmsaodxzfYCDcccsw=="
Server.Game.X "YLbEg7b9nXaPcqn4qlWSMu+pFIx3gZPn2fFOsseQmwbfneiwB8lAlqXvsuwszylYt+IlIcWf8PxJ0qnFV/RHOQ=="
Server.Gate.N "4NuifLYkTghXcY1j7+wND8N/SJHDwBIuPeqKAqIJtTQqLj53JdvqdancI+EIgz9mFEQSfWigNE/IfzyoJvCyqw=="
Server.Gate.X "2NpEoop5ECST7vsNvmHY4ChRL+gjXofpzFmh0zB8D/JAO3y8uyHjnVWjXiNJL8PFy2R94hNiWSIdehpDLGTqLA=="
Server.Gate.Host "mystler.eu"
Server.Auth.Host "mystler.eu"
Server.Auth.G "41"
Server.Game.G "73"
Server.Gate.G "4"

Server.DispName "DestinyURU"
Server.Status "https://destiny.mystler.eu/status.php"
Server.Signup "https://destiny.mystler.eu"

As it happens the local ip address for my shard is 192.168.0.20 so I now need to edit my copy of the server.ini file so that
Server.Gate.Host and Server.Auth.Host are edited to look like this example.

Code: Select all
Server.Gate.Host “192.168.0.20”
Server.Auth.Host “192.168.0.20”


Obviously your ip address could well be different.

From here on its a bit of a grey area and this is to all serious purposes a transplant of existing notes with some small added comments

We now need to provide data for the client to use:

The most important data for the client are the auth server provided files -- specifically, the SDL and python.pak. External Plasma clients require these files in order to function, so you will need to provide them unless you are planning on making your server only work with Internal client builds.

You will at least need the folders indicated in the path statements so let us make sure we are in the right folder this should be /opt/dirtsand to make four sub directories ages data authdata SDL.

To provide the files to the client, set up data for the authdata sub directory (the default is /opt/dirtsand/authdata) and put the files in their respective subdirectories (SDL/*.sdl and Python/*.pak).

Note that these files will need to be NTD encrypted with the key specified in your dirtsand.ini file (the default is the first 32 decimal digits of pi, without the decimal point). You can specify any 32 hex digit key, but make sure to update the files to match.

I know that we need the NDT Encryption this is something that as yet I do not know how to do

Generating or acquiring these files is currently outside the scope of this document, but I am working on it there is more information that can be found on the process at the moul-scripts github project page.
In order to let the client know what files are available, you will also need to provide the files Python_pak.list and SDL_sdl.list, which are simple manifest files of the format:

Path\filename.ext,size-in-bytes
So, for python.pak, you might have:
Python\python.pak,123456

Note the use of a backslash here, since this path is provided directly to the client (which assumes a Windows path). Comments (starting with the # character) and whitespace will be ignored when parsing this file.
DIRTSAND also includes a full data server with its services. If you choose to use it, you will need to set up a data/ directory and the necessary manifests.

At the very least, you will need the ThinExternal.mfs and External.mfs files, which describe the files necessary for the patcher and client (respectively) to run. You may also provide any number of age manifests, which will be requested by the client when it attempts to link to an age (e.g., Ahnonay.mfs).

The format of the manifest files is as follows:
remote_filename.ext,local_filename.ext.gz,decompressed_hash,compressed_hash,decompressed_size,compressed_size,flags

There is also a helper script provided in bin/dsData.sh which will gzip a file and generate a manifest line with the correct hashes and sizes for you automatically. Take care that the remote path expects to use a Windows path/filename, so it should use backslashes instead of forward ones, whereas the local filename should use Unix slashes.

Alternatively, you can specify a remote file server address in your dirtsand.ini, which will allow the files to be fetched from an external file server.
Run the server:

Assuming everything else went smoothly, you should now be able to start your server and connect to it! You'll have to create an account first, which can be done from the console:

Code: Select all
$ bin/dirtsand dirtsand.ini

ds> addacct <username> <password>


Avoid using account names with the apostrophy ‘ because that is the key used to open the Plasma Console in due course you may be able to fix this but for the time being stick to letters and numbers and no spaces.
If you can not connect for some reason, make sure you copied the keys and server addresses correctly into the client's server.ini,

and check that your firewall is set to allow connections from port 14617.

If you want to leave the server running across different login sessions and you don't have an X or VNC server running, I recommend running dirtsand in a detachable GNU screen session.

Note I do not use a putty login to run the shard I actually log onto my built workstation as dirtsand I change the directory so that my working directory is

/opt/dirtsand/dirtsand before I run the shard I run this with

bin/dirtsand dirtsand.ini

The dirtsand keys generated by a previous install appear to work with a fresh install as long as you use the pair of Server & Client
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby J'Kla » Thu May 17, 2018 12:13 am

I am still having issues with this install but a combination of a discussion wit Mystler (Destiny Shard) and some documentation on the sandbox shard threw up a couple of ideas.

On of which was could it have been that it was caused by using 64 bit install of Ubuntu I know that Deledrius suggested Ubuntu Desktop but its overhead on the poor grade server that I have is an issue the desktop just brings too much baggage but the Desktop is available as 32 bit install.

I went back and looked Delerius said he had tried and installed successfully using Ubuntu server in an earlier post and since Ubuntu 18.04 is only availabe as 64bit I have to assume that is an OK option

I suspect my issues are with the data aspects because I am getting to a point where I have a User logged in and an avatar name and gender it just fails when I try to customize the avatar (before it even starts) I may try this with another PC and see what I can do with a 32 bit install. I may also do a quick trial with Debian as it is my normal Linux server of choice and see if that plays with the method.
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Dirtsand Early 2018

Postby J'Kla » Thu May 17, 2018 5:25 am

UPDATE

I have managed to get to the same point as the Ubuntu 18.04 install using the instructions above with a copy Of Debian KDE 64bit 9.3.0 that I happen to have lying around.

It did need a couple of changes but nothing major the Update Upgrade cycle took ages because of the Desktop overhead for the default user if you miss out a root password it makes the user you create a sudo member by default

You need to manually install openssh-server with

Code: Select all
$ sudo apt-get install openssh-server


This allows putty access and reduces the start time while your doing your dirtsand install the only other change is the php install changes from php7.2 to php7.0 and it is hardly that profound version 7.2 is not native YET!

There was no other changes but I still get to a stage where I am connecting as a user creating an Avatar name and password and at that point I get the stupid

Network error5, Network Connection Failed.
protocol: Game Server

Now I think this has to be something to do with my .ini settings or the contents of the ages, data, authdata or SDL foldes and I still scrabbling on where to put the Python stuff.

I know its not my logging in PC because that logs in and perfectly runs Destiny which is just another dirtsand shard accessed over the internet. :?
User avatar
J'Kla
 
Posts: 761
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

PreviousNext

Return to Plasma Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron