New alpha MCBE server software


#1

Hello guys, Mojang has just released the alpha server for the MCBE (Minecraft Bedrock Edition).
Here is the link:

Hopefully this can be integrated into the WebUI at some point.
Thanks


#2

i was about to comment the same thing, yes please do that devs. that would be great!


#3

So from a reddit thread I found out this about the MCBE server software:

" From inspection it’s an extracted version of the server from the Android APK, which is itself a copy of the Java edition server from Minecraft 1.2 with the Java converted to C++. It’s not really rewritten, although they replaced the protocol with RakNet (which is a security minefield) and added a few optimisations which can impact gameplay in order to allow it to run on mobile devices.

Because it’s a line by line conversion of Java edition, it could theoretically run worse yeah. But in practice it won’t due to the optimisations made since then. But basically things run well on any language if written well for that language. Java can be really fast, Minecraft isn’t written amazingly for it though. Line by line conversions of well written Java to C++ can often be slower."

Since they went the path of a compiled executive rather than a java jar file, I guess that MineOS need a minor rewrite to be able to run the server. MineOS right now is centered around running .jar or .phar files using java or php. To be able to run this new server MineOS needs to be told to just run the file without invoking java or php, and with the with the necesary dependencies. There also seems to be some new libaries needed on MineOS to be able to run it. The drop down server file selector also needs to be updated to detect it.

In my installation I was missing libcurl: https://packages.ubuntu.com/xenial/libcurl3
The server is started with the command: LD_LIBRARY_PATH=. ./bedrock_server
It starts and runs when I fire it up in command line.

I (at least) hope it is doable, but it is entirely up to @hexparrot.

This is definately interessting, and one can only hope that Mojang / Microsoft is willing to keep this going. They do however warn that this is a low priority project they may pull at any time:

Disclaimer

This is an early release (alpha) which we don’t fully support yet. It might contain severe issues and we could stop supporting it at any time.

(From the howto bundled with the server files)


#4

I would be very interested in this feature as well.


#5

Me to. Fill to 20 char minimum.


#6

Thanks for the feedback @iMelsom. I have been running it stand alone and instead of setting a min and max memory configuration like is used with java servers, the memory usage seems to be dynamic. I have not programmed in C language in a long while, over 20 years, so this may be the case. Also, they have not defined if any arguments can be used with starting the server at startup, I would be happy to know what they are. In my testing so far, the memory usage starts around 70MB and has maxed out around 180MB.

And even though, it is deemed an “alpha” version with the caveats of being pulled at anytime, it runs surprising well. It seems this was community driven and Mojang has been pushing micro transactions since being bought by Microsoft. So I personally see this as another way to get $$$ from the community with more “partnered” servers.

Anyhow, if @hexparrot decides to add this in the current MineOS or maybe another version, that would be greatly appreciated.
-jack


#7

Was this really that easy to set up for you guys? This thing has been a mess for the short while I’ve been working on it this morning.

Fedora 28 vm and Debian 9 vm–both using exactly the normal startup parameters advised LD_LIBRARY_PATH=. ./bedrock_server, I’m given

$ LD_LIBRARY_PATH=. ./bedrock_server
./bedrock_server: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
$ #okay, let me try to hack at this
$ ln -s /usr/lib/x86_64-linux-gnu/libssl.so libssl.so.1.0.0
$ LD_LIBRARY_PATH=. ./bedrock_server  
./bedrock_server: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
$ ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so libcrypto.so.1.0.0
$ LD_LIBRARY_PATH=. ./bedrock_server
./bedrock_server: ./libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./libCrypto.so)

okay, so it wans libssl, but it’s not provided by the binary. So I symlinked it and ultimately it’s unhappy with mismatching libcryptos.

Let’s remove the provided libcrypto and make sure it can find the same file via both libcrypto and libCrypto. And behold!

$ LD_LIBRARY_PATH=. ./bedrock_server
./bedrock_server: ./libCrypto.so: no version information available (required by ./libCrypto.so)
NO LOG FILE! - setting up server logging...
NO LOG FILE! - [2018-09-18 08:06:31 INFO] Starting Server
NO LOG FILE! - [2018-09-18 08:06:31 INFO] Version 1.6.1.0
NO LOG FILE! - [2018-09-18 08:06:31 INFO] Level Name: Bedrock level
NO LOG FILE! - [2018-09-18 08:06:31 ERROR] Error opening whitelist file: whitelist.json
NO LOG FILE! - [2018-09-18 08:06:31 ERROR] Error opening ops file: ops.json
NO LOG FILE! - [2018-09-18 08:06:31 INFO] Game mode: 0 Survival
NO LOG FILE! - [2018-09-18 08:06:31 INFO] Difficulty: 1 EASY
./bedrock_server: relocation error: ./libCrypto.so: symbol OPENSSL_add_all_algorithms_noconf, version OPENSSL_1.0.0 not defined in file libcrypto.so.1.0.0 with link time reference

So this didn’t work either. There might very well be a better way to go about this, but this is definitely not production-ready as a distributable (obviously neither did it claim to be), but I’d rather hold off on changing/adding MineOS code to accommodate a real irregular sequence (using LD_LIBRARY_PATH instead of normal system-defined paths/versions) especially since normal users might struggle (as I am) to even get it to run the basic way.

So it could be sheerly by chance that someone’s install has all the necessary (and matching) libssl-dev and other packages necessary for this to run with minimal effort, but until this becomes more self-contained, I’m not likely to try to get this working in MineOS.

That said, if the community can come up with good, consistent instructions to ensure 100% operation on multiple distros, I will happily handle the other end of the effort in making the profile downloadable, extractable, and runnable from the webui.


#8

Seeing as I run on an ubuntu server with MineOS added on top, I only had to instal libcurl to get it runing smoothly.

I do however agree, if this may cause confusion in how to useit is best to hold of until it gets out of alpha, or a better build comes around, before adding it publicly. Then we also have the memory “issue” (or the lack of way to limit memory usage on that instance).

Is it possible, however to modify just the execution part of MineOS to accept MCBE server without adding it to profiles? So that those of us who know how may fire it up inside of MineOS witout having to run it as a separate entity?


#9

@hexparrot, I cannot disagree as this is in the alpha stage, but it would be nice to be able to see the status in the WebUI maybe as a starting point. Thanks!

@iMelsom, What version of Ubuntu server are you running if you don’t mind me asking? I have seen it run on 18.x.


#10

I’m runnning on Ubuntu 16.04.2 LTS (server version). So I really should be updating soon


#11

thanks @iMelsom! I plan on trying Ubuntu 18.x


#12

any video tutorial for this yet? would be very nice to get this running! thanks


#13

A bit early for video tuts, when MineOS do not even support this.

The underlying OS may support it (as you can read above) if yow some *nix, but I can’t see any video tuts for this while the server software is in alpha, and not being supported officially by MineOS.

(Or to put in in other words: While it is unsupported by MineOS officially, and is still in alpha, having to figure out how to make it work yourself is required to make it work, since you’ll probably need that knowledge to keep it working…)


#14

ah ok maybe just a text guide then :smiley: i fairly good with computers and also good at following instructions so long as they are spelled out for me


#15

As of right now MineOS do not recognise this servertype, so you cant get it to work with MineOS. You can get it to run beside MineOS on the MineOS system. The simple test done by a few of us seems to point to ther being some dependensies that are missing.

In my Ubuntu server version (somewhat old) I only needed to add libcurl (see above)

When @hexparrot tried it seems his install was missing quite a bit more dependencies. He did not explicitly say so, but I assume he tried on a MineOS Turnkey installation.

So even if we wanted to there are to many unknowns to write a simple howto that guarantees a working setup. The simple text writeup, ignoring dependencies are:

SSH into server
cd /var/games/minecraft/servers
mkdir [servername]
cd [servername]

use an sftp program (like filezilla) to copy the server zip into the directory you made above

use unzip to unpack the server file (unzip [server filename])
You may need to install unzip to be able to unpack: (sudo apt get install unzip).

use the supplied command from Mojang to start the server: LD_LIBRARY_PATH=. ./bedrock_server

Now this is where all the dependencies kick in when you get error messages for al the things that are missing. And since we have no definite list over what you need, we cant list what you need. So you just have to try it, and google each error message to find out what it wants then install it.

This is the best I can do.


#16

That was basically exactly what I did lol