IslandzVW / halcyon

InWorldz Halcyon 3d virtual reality world simulator
BSD 3-Clause "New" or "Revised" License
21 stars 26 forks source link

WHIP Server listening on all ports blocks Halcyon.exe #318

Closed Fred2008Levasseur closed 6 years ago

Fred2008Levasseur commented 7 years ago

Okay hoping I am posting this for the right repo as y'all have more then one repository (halcyon and WHIP-Server). I am testing on a local machine (not in full grid mode at the moment as I am just testing to see if this would work with my project).

When I run the Whip Server it appears it is listening on all ports and then when running Halcyon.exe (same machine per above testing) Halcyon says it doesn't have permission to listen on port 9000. I have all ports necessary unblocked in firewalls and modem/ routers so I know the firewall isn't an issue. Is there perhaps a way to define a listening port i.e. 32700 (as identified in the whip.cfg file)?

Thanks in advance.

mdickson commented 7 years ago

Sounds like you have whip running as expected on 32700. I don't think its listening on all the ports. So I think your issue is more with the region server. The INI file config uses 9000 as the default port for logins. The message you're seeing is an indication that the network layer isn't allowing the connection to take place. There's a comment in the code with how to address that but I'll paste it here:

        netsh http add urlacl url=http://+:9000/ user=mdickson
        netsh http add urlacl url=https://+:9016/ user=mdickson

You'd replace the "mdickson" with the account name you're running the server under. The 9016 port address is for SSL connections to the server. You can skip that if you don't need it. Run these command with an admin command prompt.

Fred2008Levasseur commented 7 years ago

Good morning,

Thanks for the response. I actually did try the netsh command as I had thought of that myself, changed different ports, checked firewall (for both windows 10 pro x64 and modem/ router) etc with no problems. I also verified that the port was open using Opensim and some of its derivatives just to make sure I wasn't missing something in the network. Opensim and its derivatives (i.e. Aurora-Sim etc) worked on the port so I know its opened in the firewalls. I actually went as far as disabling firewalls and adding the host name to the DMZ. The problem still persisted even with changing the hostname etc to both the internal IP I give the machine on my network and the external IP as well as FQDN. However the error still interestingly comes up.

The WHIP server appears to see the Halcyon instance connect to it yet detects a forced shutdown of the client. If that helps any.

appurist commented 7 years ago

Sorry for the delays in responding. We've been pretty busy getting a new Halcyon release together.

When I run the Whip Server it appears it is listening on all ports and then when running Halcyon.exe (same machine per above testing) Halcyon says it doesn't have permission to listen on port 9000.

I don't think this is in any way related to WHIP. It's just that there's already something listening on port 9000. So the goal would be to identify the conflicting process.

Before you run Halcyon.exe, try running this: netstat -aonp tcp | findstr 9000 It shouldn't match anything, otherwise something else is already listening on port 9000. I seem to recall that I had the same port clash when I first loaded a Halcyon executable that listened on port 9000, but I forget what the clashing process was.

If that command returns something, the number on the end will indicate the process ID of the process listening on 9000. You can use Task Manager's Details tab to identify which (if you have the Process ID column enabled). Alternatively, you can start a command prompt with "Run as Administrator" and add the b option which puts the process name (if available) on the next line. But since it's on the next line, you can't use findstr so it would be something like: netstat -abonp tcp >ports.txt and then edit ports.txt and find the line with 9000, and see what process follows it on the next line.

Unfortunately, it may be process ID 4 (or some similar low number) which I believe is related to the process launch code in the system for .NET processes. In other words, the process ID and name may not help at all here if it's a .NET app.

appurist commented 7 years ago

Also, the User process (the part listening on port 9000) is often on port 8002 anyway. On my system, I first resolved this by changing the user login port from 9000 to 8002.

Be sure to enabled it with the netsh command if you use any other ports though.

appurist commented 7 years ago

Before you run Halcyon.exe, try running this: netstat -aonp tcp | findstr 9000 It shouldn't match anything, otherwise something else is already listening on port 9000.

Actually that's not 100% foolproof in that the -p tcp is filtering out the IP6 listens. If it doesn't return anything, you might want to try: netstat -aon | findstr 9000 or netstat -abon >ports.txt

appurist commented 7 years ago

The WHIP server appears to see the Halcyon instance connect to it yet detects a forced shutdown of the client. If that helps any.

This is something different. I think it's just saying a viewer is able to connect to the User/login part but not the region code. Does that mean Halcyon is able to open port 9000 now, but the UDP and TCP ports are not permitted in netsh ?

Check both:

Make sure both are specified to an unused port, and ACLs enabled in netsh.

Fred2008Levasseur commented 7 years ago

Actually I haven't even tried logging in with user/ login system. The Whip Server appears to be assuming that Halcyon.exe (my assumption here) is a client of some sort. When the Halcyon.exe terminates with the port error (after using netsh commands, etc) WHIP says Client closed due to forced termination. I did check all ports are open even tried on fresh installation with just WIndows 10 x64 (V1607) Halcyon.ini has the default listern ports set to 9000 under [Network]. Haven't even gotten as far as setting up a region. Additionally when running WHIP-Server it asks for permission to be added to firewall and in the firewall though I have the port set for 32700 the firewall lists Whip.exe as Any under the ports.

ddaeschler commented 7 years ago

@Fred2008Levasseur I think whip is most likely running OK here. When it says forced closed it is because the Halcyon process is terminating for some other reason I believe

Fred2008Levasseur commented 7 years ago

@ddaeschler Thanks for that. I was able to get the Whip server running however the strange thing even with all the netsh commands etc and nothing blocking the ports in firewall (in OS or Modem/ Router) Halcyon.exe still believes its a port permissions error when in fact the port is not in use by any other process. The Whip server does see Halcyon.exe trying to connect to it but detects that it was a force shut down in the client (I am assuming this is referring to the Halcyon.exe as I am not even at the point of logging in via a viewer which is the actual client). I also noticed there are no building tools i.e. sln files or anything of that nature in the whip-server repo as well. Probably intentional though I do like the ability to be able to build locally for my testing purposes, as sometimes this will help.

@appurist I did check with the commands per your recommendations and found the port in fact is not being used by any other program, app, or process on either IPV4 or IPV6. I do have one more idea I am going to try as it dawned on me I might need to run Halcyon.exe as administrator (even though I built it locally).

sonjamichelle commented 7 years ago

On Windows 10, you need to run Halcyon.exe as Administrator or you WILL get a permission denied to use port 9000 (or port whatever is used by the region when in grid mode) error.

You either need to right click and choose Run as Administrator for your CMD Prompt or on your Halcyon.exe, right click and choose the Compatibility Tab and check "Run this program as an administrator" to have that value forced at each run time.

runas

appurist commented 7 years ago

First, I think you can forget about Whip, as that's not having any trouble or causing any trouble. The problem is permission to open port 9000. I don't think we normally run Halcyon as Administrator. I think the issue here may be that you're trying to start up a Halcyon server in standalone mode, which requires all of the ports and configuration options to all be configured correctly or it will fail to start, and this is just a startup error in the Halcyon process. And in standalone mode, that includes a region. So to diagnose that, it might be good to post your Halcyon.log file for us to see how far it's getting before it runs into trouble, and what the precise error is, and what information it includes.

I'm not sure if any of us are running in standalone mode anymore. It's not used by InWorldz and I think most of the Halcyon developers run in grid mode. Grid mode would also allow you to check each service one at a time. So you'd start Whip, then the Usergrid server, then the Gridgrid server, then Messaging grid server. And also at some point after Whip, start Aperture for textures. I think the reason most of us use grid mode is because the Halcyon server can only support one region (with PhysX physics) per Windows instance, so we need to fire up more than one for multiple regions. Since we want them to be able to communicate, they need to share the same core services, so they can't be built-in to one instance and not the other. Running each grid service seperately would also allow you to see how far you were getting in terms of starting User... ok it's up... Starting Grid... etc. But the Halcyon.log file may also answer that.

emperorstarfinder commented 7 years ago

@appurist After testing with running as admin and non admin I concur that running as admin does not have any affect as I built Halcyon locally. The same result applies as shown:

2017-01-22 08:19:08,000 [1] INFO OpenSim.Application - [HALCYON MAIN]: configured log4net using default Halcyon.exe.config 2017-01-22 08:19:08,015 [1] INFO OpenSim.Application - Performing compatibility checks... 2017-01-22 08:19:08,031 [1] INFO OpenSim.Application - Environment is compatible.

2017-01-22 08:19:08,046 [ConsoleThread] INFO OpenSim.ConfigurationLoader - [CONFIG] Reading configuration settings 2017-01-22 08:19:08,046 [ConsoleThread] INFO OpenSim.ConfigurationLoader - [CONFIG] Reading configuration file C:\Users\virtu\Desktop\halcyon-master\bin\Halcyon.ini 2017-01-22 08:19:08,130 [ConsoleThread] INFO OpenSim.Framework.Servers.BaseOpenSimServer - [STARTUP]: Beginning startup processing 2017-01-22 08:19:08,230 [ConsoleThread] INFO OpenSim.OpenSim - ==================================================================== 2017-01-22 08:19:08,230 [ConsoleThread] INFO OpenSim.OpenSim - ========================= STARTING HALCYON ========================= 2017-01-22 08:19:08,230 [ConsoleThread] INFO OpenSim.OpenSim - ==================================================================== 2017-01-22 08:19:08,230 [ConsoleThread] INFO OpenSim.OpenSim - [HALCYON MAIN]: Running in sandbox mode 2017-01-22 08:19:08,230 [ConsoleThread] INFO OpenSim.OpenSim - GC: Server mode: False, Interactive 2017-01-22 08:19:08,331 [ConsoleThread] INFO OpenSim.Region.Framework.StorageManager - [DATASTORE]: Attempting to load OpenSim.Data.MySQL.dll 2017-01-22 08:19:08,416 [ConsoleThread] INFO OpenSim.Region.Framework.StorageManager - [DATASTORE]: Added IRegionDataStore Interface 2017-01-22 08:19:08,431 [ConsoleThread] INFO OpenSim.Region.ClientStack.ClientStackManager - [CLIENTSTACK]: Attempting to load OpenSim.Region.ClientStack.LindenUDP.dll 2017-01-22 08:19:10,482 [ConsoleThread] INFO OpenSim.Region.ClientStack.ClientStackManager - [CLIENTSTACK]: Added IClientNetworkServer Interface 2017-01-22 08:19:10,482 [ConsoleThread] DEBUG OpenSim.OpenSimBase - [HALCYONBASE] Attempting to load asset server id=WHIP 2017-01-22 08:19:11,238 [ConsoleThread] INFO OpenSim.Framework.PluginLoader1 - [PLUGINS]: Initializing addin manager 2017-01-22 08:19:11,873 [ConsoleThread] INFO OpenSim.Framework.PluginLoader1 - [PLUGINS]: Loading extension point /OpenSim/AssetClient 2017-01-22 08:19:11,973 [ConsoleThread] ERROR OpenSim.Application - [APPLICATION]: APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs

Exception: System.Exception: Asset server WHIP could not be loaded at OpenSim.OpenSimBase.InitializeAssetCache() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Base\OpenSimBase.cs:line 324 at OpenSim.OpenSimBase.Initialize() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Base\OpenSimBase.cs:line 286 at OpenSim.Region.ClientStack.RegionApplicationBase.StartupSpecific() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Region\ClientStack\RegionApplicationBase.cs:line 107 at OpenSim.OpenSimBase.StartupSpecific() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Base\OpenSimBase.cs:line 201 at OpenSim.OpenSim.StartupSpecific() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Base\OpenSim.cs:line 163 at OpenSim.Framework.Servers.BaseOpenSimServer.Startup() in C:\Users\virtu\Desktop\halcyon-master\OpenSim\Framework\Servers\BaseOpenSimServer.cs:line 300 at OpenSim.Application.Main(String[] args) in C:\Users\virtu\Desktop\halcyon-master\InWorldz\Halcyon\Application.cs:line 145

Application is terminating: True

As a post note during compiling with runprebuild2015.bat the first 3 projects were not able to be found which is potentially a cause for the warnings shown my build output: BuildMessage.txt

Is there a specific order that should be used for starting services for running in grid mode? perhaps this might have something to do with it as per your suggestion.

sonjamichelle commented 7 years ago

Maybe post your config files (Redact your password in the database lines).

Do you have gridmode = false set and uncommented?

Do you have this block configured?

[StandAlone]
    ; StandAlone is often used for simple test setups with one region.
    ; Provide information to a standalone boot.
    ; If gridmode is true you should be looking in the various xml config files,
    ;  such as the UserServer_Config.xml

    accounts_authenticate = false
    welcome_message = "Welcome to Halcyon"

    asset_source = "whip://password@localhost:32700"

The password matching the password setup in the whip.cfg

And then again under [Network]

    ; The URL for the asset server, usually a WHIP server.
    ;  See https://github.com/InWorldz/whip-server
    asset_server_url = "whip://password@localhost:32700"

Be sure to start the Whip server, let it settle down, then start the Halcyon.exe.

From your log file, it sounds like Halcyon.exe is not communicating with Whip and is whigging out causing it to error out and close.

ddaeschler commented 7 years ago

This looks like the issue specified here: https://github.com/InWorldz/halcyon/wiki/Development

Did you download the source from a zipfile? If so, you need to unblock the directories in windows since downloads are restricted from running on windows.

However the best way to get around this problem is to check out the source code with git.

emperorstarfinder commented 7 years ago

Yes I checked out the source with git. The other interesting thing I did find (even struck me as odd) is that the WHIP server asks for permission to be unblocked in firewall even though I gave all permissions. Additionally I found two Whip.exe instances in the firewall one saying port 32702 and one just said Any for ports. I suspect that there may actually be something going on even though the actual ports are open. I am going to try to shut off smart screen and disable firewall and defender just to see if thats whats causing problems (though I hope not.)

sonjamichelle commented 7 years ago

Do you have whip.cfg setting the Whip server port to 32702 and not the default 32700?

And if so, did you change halcyon.ini to match?

emperorstarfinder commented 7 years ago

No the ports are the defaults for Whip and do match.

sonjamichelle commented 7 years ago

And the results of turning off Windows Firewall and Smartscreen? Then running Whip.exe letting it settle, then running Halcyon.exe?

Also for gits and shins, try running the following in PowerShell:

gci 'C:\Users\virtu\Desktop\halcyon-master' -Recurse | Unblock-File

Do that to your Whip folder as well. Replacing C:\Users\virtu\Desktop\halcyon-master with the path to the whip.exe.

emperorstarfinder commented 7 years ago

Good afternoon,

Sorry for the delayed response (my day time job and development projects for my work always take precedence for me). I did get it to work this morning just before before work. (smart screen did actually prevent it from working so people would want to disable smartscreen).

The command suggested by @sonjamichelle would in fact work for people and is probably one that should be included in the documentation somewhere (replacing the username of course). In my case however i had created a tool a while back that takes care of unblocking stuff like that so in my case that command wasn't necessary. Thanks for the suggestion though as it is a good one :)

Halcyon now does communicate with WHIP however when logging in it could not communicate with the WHIP server. Logging in via viewer). During the login the following error occurs: 2017-01-23 13:01:32,306 [STP SmartThreadPool Thread #0] ERROR OpenSim.Region.CoreModules.Capabilities.AssetCapsModule - [APERTURE] Could not contact the aperture texture server to register caps on region Welcome Center. Server returned error Unable to connect to the remote server

It is possible I missed something in the ini file somewhere (which I will be checking when I get home). I will also try to configure it for grid mode and give that a shot and see how that goes as well.

EDIT: I just realized I forgot to set up and run the aperture service which explains that error.

As a post note Fred2008Levasseur is actually my non work ID I use when I am at home and testing for my own personal projects so there is no confusion.

sonjamichelle commented 7 years ago

So alles gut now?

I always disable that micro$oft annoyance smartscreen. It causes all kinds of issues running programs.

The documentation is a bit lacking in some details. A lot of the issues I came across in setting up my grid I found in trial and error and going through the issues and posting my own issues and asking a lot of questions. the developers here are an amazing bunch!

I'm toying with the idea of making a video of the setup process, going from "zero to hero" so to speak. Maybe when RL things settle down a bit.

When you get into setting up a multi region grid mode, check out the issues #232 and #298. There is a lot of information in them that should help you out.

emperorstarfinder commented 7 years ago

Good afternoon,

My apologies for not following up sooner. I did manage to get things going and was able to take Halcyon for a quick test run. A couple of questions I do have assuming I would consider running Halcyon as the base architecture for a grid however:

  1. Does Halcyon have a working economy module i.e. one which provides stipend payments, can be connected to a website interface for purchasing of in-world currency, etc?

  2. Is there a known working website interface for Halcyon currently or example files which can be used to create one? (Preferably in PHP)

  3. If I want to build the WHIP Server locally and run a built copy locally to avoid permissions issues, what are the steps to build the WHIP server? NOTE: There are no instructions for this in the WHIP Server Repo.

  4. Which Grid Management Program is recommended for use to manage a grid running on Halcyon?

Thanks.

kf6kjg commented 7 years ago

Answers to the Qs I know answers to:

  1. Yes. See notes in the Halcyon wiki.
  2. There are a few projects in place, one of which is in VB ASP.NET spearheaded by Vinhold.
  3. Building WHIP, at least under Linux, is covered in the WHIP wiki and with some additional notes in this pull request for it.
  4. Please clarify what you would be expecting a Grid Management Program to accomplish and I might have some ideas, right now the concept means different things to different people.
emperorstarfinder commented 7 years ago
  1. I did see the notation on the wiki for quesiton 1. However for it to be fully functional in grid mode it appears it needs at minimum landtools.php (or equivelant).

  2. Are there any of which I can download and look at to give myself ideas as to what I would be dealing with for a website interface should I go with Halcyon as base code?.

  3. I did not see the wiki notation on the WHIP-Server repo. In reviewing it though there unfortunately is not instructions to build on Windows.

  4. For the Grid Management Program I am looking at the prospects of a program that can manage grid and region instances, management and creation or removal of regions/ estates, etc without having to actually log into the server/ VM machine to manage the instances

Additional Question: Is password hashing still using MD5 or has this now moved to SHA512?

kf6kjg commented 7 years ago

1&2. At this point I'm going to see if I can nudge Vinhold to contact you as he's got more answers for the website interfaces than I do at this time.

  1. I'm afraid that WRT to WHIP and Halcyon I'm a Linux guy. I know that building under Windows was "easy" according to Vinhold and others - WHIP was initially designed to be built and run in Windows. It's Linux that's the new target for the code.

  2. Maestro was designed for that task, but it's development has stalled. Vinhold, with my help, has developed a few procedures and website tools that make manual processing for smaller grids less painful. InWorldz has their own systems, of which Maestro was slated to take over when the ability to take over existing instances managed by another system gets coded. In theory Maestro should be able to handle a fresh grid fine, but I've no experience with it.

Password hashing is still using MD5. Patches are welcome as long as the result still can handle existing hashed passwords.

Vinhold commented 7 years ago

@emperorstarfinder: A lot has happened and put in the Halcyon Wiki, Configuration page specifically the "Single server 1-10 regions" section for setup, since your prior last post on Jan. 23 and now.

I will be working on refining the grid setup and configuration models as I complete the setup of three Halcyon grids for another company this next week. I am also setting up a download website for my "My World" website. I will be posting in the Halcyon Wiki page the website location soon as I can get it set up. Perhaps later this week. It is a nearly complete website in VB.Net 4.0 to setup and run a grid using Halcyon as its core.

I am setting it up as an open source project so others may contribute other flavors of website programming or extend what I have already done. While it is a full working website for the grid, it is not a content management system, and can be extended using the supplied website page templates for Visual Studio 2015, which will also work with Visual Studio 2017. I have not yet updated, but I am informed it is a good upgrade.

I have been just swamped with this grid setup which is involving Linux for the website host, a Linux MySQL server, Linux Whip server, Linux Grid services server and Windows 2008 Web Server R2 as the Region server. The objective is to be able to run fully in Linux as soon as the PhysX port is in place for the Halcyon region processing. Kf6kjg has been doing the Linux configuration for the grid services setup and posting some minor corrections to get them running. Proof will be in what happens over the next two days as I bring up the first of the grids. Yes, my website will be tested in this process to run under Apache with mono as the website host.

I had helped sonjamichelle get her site / grid setup using the "My World" website with its earlier editions. A lot has been done to the programming since then and being applied to the grids I am creating this next week.

I will be adding more information to the Halcyon configuration for the config and Halcyon.ini as well as firewall settings for the different grid size setups. I have also completed the smallest grid configuration on my own Windows 2007 Pro desktop with the website running on my home server. The Whip, grid services and one region are all on one server. I am duplicating the same site / grid on a virtual server running the Win 2008 Web Server R2 where the website, MySQL, grid services and region server are all running on it. Having done this I will be refining the setup information on how it was done in the Halcyon Wiki pages. It is as close as it comes to the nearly mythical "Halcyon on a Stick" idea. It cannot be distributed with Windows as the OS for it. So hopefully soon the entire grid can run in Linux!

emperorstarfinder commented 7 years ago

Good morning,

@Vinhold Thank you for that in-depth update on your website interface. I look forward to giving it a test as I continue to test Halcyon to see if it will meet my standards for the projects I would be using it as base code for.

I upgraded recently to Visual Studio 2017 and can assure you it is a nice upgrade from VS2015. The layout is pretty much unchanged though it runs much smoother then VS2015 seemed to. It has support for .Net 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, and 4.6.2 . It also has support for development using the new .Net Core. If your using Visual Studio 2015 I recommend upgrading to VS2017. VS2017 also has integrated support for development using Xaramin as well which will make for nice cross platform development.

I did read the wiki pages, and one of the things I noticed is it appears to be a more general direction for install and configuring. Perhaps an actual step by step guide would be more helpful to end-users who may not be necessarily familiar with the way Halcyon works.

I am glad to hear that work is happening to get PhysX running on Linux along with the ability to be able to run the entire grid on Linux.

A question I would have is:

does your My World website implementation have the ability to use a payment processor for purchasing of in-world currency and regions by users?

sonjamichelle commented 7 years ago

The MyWorld website implementation includes functionality for a no economy setup, limited economy setup and a full economy setup. This was a project idea that I brought to @Vinhold and he took off with it like a lion with a fresh kill. It's a very impressive piece of work. It uses PayPal to process transactions from your users from real life currency to in-world currency.

Unfortunately my PC died Friday night so I have no way to bring my site online so you can take a look at what can be done with @Vinhold's MyWorld package. By tweaking the CSS and using the site templates you can customize the look and feel of your own site. You do need an IIS server and a separate MySQL database for the website. The database can be hosted on the same MySQL server as your grid if you have a small traffic site and grid.

emperorstarfinder commented 7 years ago

@sonjamichelle This is good to hear. I am jumping out on a limb here and assuming then that full economy setup with the MyWorld site would in fact actually support purchasing of regions as well.

Unfortunately I don't have a copy of the My World site code as of yet or id test it myself. Setting up IIS usually isn't a hard thing to do but does sound like some great things have been done.

Im sorry to hear your PC died. Hopefully it won't take much to get sorted. They are just so important in this day and age.

sonjamichelle commented 7 years ago

As of the last update I was involved in the Economy Module didn't do things like allow users to go to a website where they could click on a map to purchase a region on the grid. The Economy Module module enabled in-world payments and transactions. Buying land, purchasing goods, renting property, etc.

To get "Region Sales" from the website would probably require some integration with the Anaximander world map software. @kf6kjg would be the one to bring in on that aspect as well as @Vinhold to integrate that functionality into the website code. Sounds like a major undertaking to me, but I'm no coder. We'll have to see what those guys say.

emperorstarfinder commented 7 years ago

Okay so Anaximander is what runs the world map features. That answers that question. It would be a wise idea I think to add the ability to purchase regions via the website that way there isn’t some complicated process to do so.

I have started to dive into the code today to fully review and audit the code to determine if it is feasible for the projects I am working on and various grids I will be launching. I have already identified certain things I will have to port into my local instance of Halcyon should I decide to use it as my base code.

But I will be interested to hear more on whether that is something that could in fact be implemented in the My World site as I dive into the code base and do my rieviews.

Vinhold commented 7 years ago

Anaximander is only a fast map generating process built by Kf6kjg posted at Anaximander2 Git hub that makes the map tiles which can be used in a world display page. I have not had a chance to create that page for the My World website. It is on the "to do" list. For region sales / purchases, a second map page would be used that would show reserve boundary around existing lands and spaces that are open to select. Map page displays are an entire art of their own. lol

The My World website does use its own MySQL DB and tables only because it has its own page data to track as well as custom processing for remote region management all content that is not suitable to be in the grid DB. It is of small content and can be run on the same MySQL Serve as the grid DB with no problems, even for a large grid operation. Its traffic is very small in comparison to the grid.

I have noted the comment regarding specific implementation details for Halcyon setup. I want to do that but I have to get out my "mountain climbing gear" to tackle the steep learning curve I have to make for proper Wiki page authoring to contain all the information I have been collecting for it and get it all nicely formatted for easy reference. :)

emperorstarfinder commented 7 years ago

Yes map art should be an industry unto itself lol.

Would it be possible to get a copy of the current My World website so I can have a peak at it as I continue my testing? I am glad to hear that ability to provide sales/ purchasing of regions and renewals of regions will be added. That is a good step.

ANd I would assume if it is able to run under apache it does not necessarily need IIS to host it.

Vinhold commented 7 years ago

The My World website was initially run in IIS7 on Windows. I am atm working on getting it to run in Ubuntu with Apache and mod-mono and being as confused as a good rookie in Linux can get. lol! It is easy in IIS7 to set up. But like any such stuff, depends on your experience. In IIS7 you have to set up redirects for the Landtool.php to point to LandTool.aspx instead or land sales wont work in the My World site. I can get you started. Open my profile and my website page there. Use the Contact Us page to email me to Director. I will get you how to download the MyWorld zip file and instructions. :)

emperorstarfinder commented 7 years ago

I assume you mean Project Director?

Vinhold commented 7 years ago

Yes. lol, I forgot which name was put in it since I dont spend time sending myself messages using that page. :p

emperorstarfinder commented 7 years ago

Okay was double checking prior to sending. Ill link this Issue on the form. Then I don't have to go about explaining a ton of things when I got about a billion tasks on the desk today.

Vinhold commented 7 years ago

Lol! I am expecting your comment, link not really needed other than some related identity.

emperorstarfinder commented 7 years ago

Okay email just sent. Though forgot to sign my name at the end but it should be pretty easy to figure out its me.

appurist commented 7 years ago

Just a clarification for the comments earlier on Anaximander "map software". It's not map software at all, and region sales would not be done through Anaximander. What the software does is generate map tiles from region content (including terrain). It is a graphics program that produces an image file for each region, and also merges those to represent zoom levels: each 2x2, 3x3, 4x4, etc.

Those tiles are then provided to a few bit of "consumer" software by a simple location fetch (map tile) API. It takes X and Y coordinates and a zoom level and returns a texture. That API is then used by the map web page code to display a map and respond to interaction, including clicks and panning. Depending on which map it is, it may support region purchases. Another consumer of these tiles is the in-world viewer maps.

Most of this is completely independent of Halcyon code. Linden Lab documents the mapping software and API here, and obviously they are not connected to the Halcyon project (or Anaximander). Viewers also pull the map tiles via the tile API for display in their internal World Map windows.

Second Life provides maps via the maps.secondlife.com domain, and InWorldz provides something similar at places.inworldz.com. These domains are used for "SLURL"-like links to locations, for example, http://places.inworldz.com/InWorldz%20Desert%20Island/128/128/25 will open a small popup with teleport options. This is part of the mapping website code and are recognized internally by viewers to pop open the World Map instead of launching a browser. See the LL documentation for these URLs here.

Both InWorldz and Second Life used the Google Maps API to draw the actual maps, with tiles obtained separately (we hope to use Anaximander for that in InWorldz soon). Last year, support for the v2 Google Maps API changed significantly, and both SL and IW replaced it with the much simpler, faster, and less Google-entrenched leaflet.js map library.

Vinhold commented 7 years ago

Thank you Appurist, I was going to ask you for the new setups for the map pages once I can get to working on it. Kf6kjg will also be helping me do it.

emperorstarfinder commented 7 years ago

Good afternoon,

After a bit of playing around with the architecture and figuring out its operation (how it is supposed to be started up, etc), I have managed to get in a good test.

After a mini test locally, it became apparent there are a few things i would need to modify if I were to use Halcyon in the base of my projects. Things such as:

Recommendations

As I tested this I found that the configuration files as they are now are a bit to intimidating and cumbersome (similar to the way the configuration files in Opensimulator are). It would be a better approach to split the configuration files up. For example configuration items relating to scripting would go in a file called Scripting.ini and physics related configurations would go in a file called Physics.ini. Additionally I would encourage that configuration files be placed in their own directory preferably outside of the bin directory. In doing this there would be less chance of users losing their configuration settings they have set when upgrading to a new version (i.e. copying and pasting the bin directory from an updated version to their grid and region servers).

It also might be a good idea to provide instructions for creating the virtual machines on nix and windows hardware on the wiki for those that may not be knowledgeable on how to do that.

I have been looking through the MyWorld site provided by @Vinhold and hope to be able to test it against a configured local grid this week. (it looks good so far).

I will probably have more as I continue testing and reviewing the code this week. However I have recommended Halcyon to the other members on my team for their review for our team projects along with adding it to consideration for my personal projects.

Xantisi commented 6 years ago

I most say this is an complicated task, a normal user can never figure this all out, as for me I did not get halcyon to work I mean its not like opensim out of the box install, and I can not find any halcyon.ini file whats complete and would work in grid mode with some port and IP changes, like put here your IP address or domain, then whip and then this unblock sequence, I have all server software 180 km away in a server farm and my assess runs over a special login viewer. Well has somebody a working halcyon.ini and whip.cfg for me and from what I understood if I run 22 regions I need halcyon 22 time started up?

emperorstarfinder commented 6 years ago

Yes you would need to run 22 instances of Halcyon. the Halcyon.ini file is in the bin folder and is named Halcyon.ini.example. You need to save that as Halcyon.ini. the Whip.cfg file you will find in the whip server repository. It is better to set up virtual machines to do this.

I currently have for my team's grid(s) 1 VM for website services i.e. wiki, mantis, main website, etc. (200GB is a good size to start), 1 VM for the Database Server (1TB is good size to start), 1 VM for Grid Services i.e. Whip Server, Grid Server, User Server, Message Server, Inventory Server (1 TB is a good size to start), 1 VM per 10 Regions (Each Region VM you should be able to get away with 50GB to 100GB for VM machine size). On each region VM you will need to run the Aperture Server which will connect to your whip server and handle the rest.

The order to start your grid up is as follows:

Grid start up Order:

  1. Whip, 2. User Server, 3. Grid Server, 4. Message Server, 5. Aperture, 6. Start each region in order of preference.

VInhold has also done a website and open sourced it that will help you manage your grid complete with instructions for setting it all up at: My World Website.

Your grid services (Whip, Grid, Inventory, User, Messaging servers can run on a Linux machine while your regions need to be on Windows VMs due to physics engine).

It is true that Halcyon is a bit more complicated at first and can appear daunting to get the hang of but they have done things that are considerably better then the straight opensimulator. Hopefully down the road they will make configuration a bit easier and less complicated for people who are not yet familiar with Halcyon.

Hopefully this helps you a little bit at least.

Vinhold commented 6 years ago

Greetings Xantisi, I have been a bit sidetracked with a new business I set up, so some of the My World website development has stalled a bit: The world map display is about 80% complete. The land purchase map access for website is to be derived from the world map page once it is complete. The world map setup also implies an Events page which has not been designed yet. And so it it goes. However, aside from the new features, the core ability to set up and operate a grid of one to several hundred regions is able to be accomplished with the My World website as it is. All is explained in the set up instructions from start to finish. Eventually we will reach a point where you can install the website, set up server virtual machines and startup a management module and open the website to create your grid. It has been a long process to get to this point with the few of us working on it. But excellent progress is being made.

Please note the Halcyon Wiki Configuration page for several grid size options. I have build running grids for each grid size except the largest one, thus determining the steps for each level as documented. While the My World website will help with grid setup and management a lot, it cannot set up the basic grid and the virtual machines needed on your server to make a strong grid host for you. So my setup instructions deals with how to create and set up your server(s) to have the grid you desire that will support the number of users you would like to have in it. Please contact me from the My World website for more direct help if you wish. Note: I am not one of the Halcyon developers, just a long time Halcyon user and doing all I can to help the project. :)

kf6kjg commented 6 years ago

The initial issue for this seems to have been resolved. Thank you to all who have participated, as this has been friendly and informative for all.