Hypergrid

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m (Teleporting via the Hypergrid: Fix link syntax. We don't use http)
 
(199 intermediate revisions by 34 users not shown)
Line 1: Line 1:
==The OpenSim Hypergrid==
+
{{Quicklinks}}
 +
<br />
  
 
+
= What is the hypergrid? =
=== What is the hypergrid? ===
+
 
<!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] -->
 
<!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] -->
  
The hypergrid is an extension to opensim that allows you to link your regions to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds.  
+
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds.  
  
 
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.
 
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.
  
The hypergrid is currently a [http://forge.opensimulator.org/gf/project/hypergrid/ GForge project]. Technically, it's implemented as a thin layer on top of the OpenSim core facilities. It's very easy to install, and it is 100% compatible with the standard OpenSim distribution.
+
The hypergrid started as a external project, but it is now included in the standard distribution of OpenSimulator. '''To run your OpenSimulator instance in hypergrid mode, please see [[Installing and Running Hypergrid]].'''
 
+
=== Virtual World Hyperlinks ===
+
[[image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]
+
 
+
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?
+
 
+
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map.
+
 
+
The current walled-garden model of opensim-based virtual worlds already supports this concept of hyperlink. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified "agent transfer" that also exists, in rudimentary form, on the web when hypertext links are followed. The walled-garden model, however, imposes one very strong restriction on these hyperlinks: the entire map of regions is controlled by a central server known as the grid server, whose job is to provide a uniform view of the world to all of its regions.
+
 
+
The hypergrid removes this constraint by allowing individual opensim instances to add "neighbors" to their local map. As such, the hypergrid moves the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.
+
 
+
=== Usage Scenarios ===
+
 
+
The following are natural usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.
+
 
+
{| {{Prettytable}}
+
|-
+
|
+
[[image:topoA.jpg|400px|left]]
+
|
+
'''Personal Worlds'''
+
 
+
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid.
+
 
+
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)
+
 
+
|-
+
|
+
[[image:topoB.jpg|400px|left]]
+
|
+
'''Communities'''
+
 
+
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.
+
 
+
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.
+
 
+
|-
+
|
+
[[image:topoC.jpg|400px|left]]
+
|
+
'''Grid Public Regions'''
+
 
+
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.
+
 
+
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.
+
 
+
|-
+
|
+
[[image:topoD.jpg|400px|left]]
+
|
+
'''Level Games'''
+
 
+
The normal version of OpenSim enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is.
+
 
+
|-
+
|}
+
 
+
== Security Concerns ==
+
 
+
There is a wide-spread assumption that open grids such as OSGrid and new forms of grids such as the hypergrid are inherently insecure, and that it will be impossible to develop a "goods-based" economy on top of them; only walled-gardens can be secured. This is both true and false. While it is true with the current state of things, open grids, whatever their form, can be made as secure as the web. The first step towards that is to define exactly what the security threats are, and how they affect (or not) open and closed grids. So, let's spell them out, and face them head-on. This will help put our feet on the ground so that we start developing appropriate solutions.
+
 
+
=== Malicious Clients ===
+
 
+
==== CopyBots ====
+
 
+
Everyone knows about the infamous [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Using libraries such as [http://www.libsecondlife.org/wiki/Main_Page LibSL] (now known as OpenMetaverse) it is possible to develop clients for opensim servers that do unorthodox things such as bypassing the permissions system to copy people's assets. Bots written by griefers can do lots of other nasty things.
+
 
+
Malicious bots are a problem for all opensim administrators, including walled-garden grids. They can be prevented, to a certain extent, by exo-technical solutions such as Terms of Service and real-world lawsuits. Technically speaking, the only way to keep intruders out is to run opensim inside a firewall, pretty much like all other pieces of client/server software out there. If that's an acceptable solution for your case, you should do it.
+
 
+
Unfortunately firewalls also keep the public out, and most opensim operators, even the ones running walled-garden grids, want to reach out to the public. In this case, opensim operators may develop additional technical obstacles for bots, similar to those we see on the Web. For example, make sure agents are being run by real people by giving them a human-challenge during the login/TP process, etc.
+
 
+
Every obstacle to malicious clients lowers the risk of an intruder attack. However keep this in mind: no matter how many obstacles one builds, a sufficiently skilled and motivated attacker will be able to overcome them to penetrate opensims connected to the public internet. This affects hypergrid nodes as much as walled-garden grids. In fact, it's more pervasive than that: it affects '''all''' servers (opensim, web, etc.) connected to the public internet. Fighting malicious intruders is a fact of a connected world. Fortunately, those attacks don't happen very often, or the Web would have been dead by now.
+
 
+
==== Web Clients ====
+
 
+
CopyBots are the most well-known bots for opensim-based virtual worlds, but these virtual worlds are also susceptible to attacks by regular web clients. With the current state of things, it is actually easier to copy assets with a web-based client than with a libsl-based one. The weakness is that asset servers are connected to the public internet, and the protocol for interacting with them is public.
+
  
OpenSim has some minimal guards in place to fence against these kinds of attacks. Specifically, when the inventory server receives a request for an item, it checks the session identifier of the requester. Web clients aren't logged in, so they are refused service. I don't want to expand much more on this, so not to make life easy for attackers, but let's just say that opensim has the necessary mechanisms in place to fence off web-based attackers.
 
  
=== Malicious Hosts ===
+
= Hypergrid Versions =
 +
* [[Hypergrid 2.0]] - current Hypergrid with greater security controls for region operators
 +
* [[Hypergrid 1.5]] - past Hypergrid version with greater asset security and expanded services
 +
* [[Hypergrid 1.0]] - the original Hypergrid described below
  
==== Actively Malicious Hosts ====
 
  
The new security threat introduced by openness, one that does not exist in closed grids, is the possibility of a user to visit a region that is running malicious code. In the current state of opensim, a malicious host can do serious damage to the user's assets. Let's see how.
+
= Teleporting via the Hypergrid =
 +
The structure of a hypergrid link is similar to a web page link : [hop://]<hg-host>:<hg-port>[/<region-name>][/x/y]. Examples:
  
Assume you have your assets in your hypergrided-standalone opensim, and you go visit another opensim that happens to be running malicious code. Here is a non-exhaustive list of vulnerabilities that you are exposed to:
+
"hop://cc.opensimulator.org:8002/keynote 1"
 +
"hop://grid.mydomain.com:9000"
  
* The host has your session id, so it can request your inventory items on your behalf and store copies in its local asset server. To add insult to injury, a malicious host could simply wipe out your inventory after having copied it.
+
The first example is the Hypergrid address of a region named "keynote 1" on the grid at cc.opensimulator.org that has port 8002.
* Even if the malicious host doesn't access your items by itself, every time you access items in your inventory while you are in that region, those items are cached in the region's local cache, and can be stored persistently by the malicious host.
+
  
Malicious hosts can do a lot more damage, but those two are enough to illustrate this new kind of vulnerability affecting open grids. Note that this affects all open grids, i.e. those where arbitrary people can plug-in their opensims, and not just the hypergrid.
+
The second example gives only the hg-host and port. In this case, the destination region is the default region setup for that grid, as specified in the [GridService] section of bin/Robust.HG.ini (for grid) or bin/config-include/StandaloneCommon.ini (for standalones).
  
Fortunately, there is a family of simple solutions to this problem that can be summarized as "protecting you from yourself." That proposal is described [[HypergridInventoryAccess|here]].
+
= Installing and Running =
  
==== Piracy ====
+
Please see [[Installing and Running Hypergrid]].
  
A second new security threat affecting open grids is one pertaining to commerce of virtual goods. Suppose you put something out for sale on your hypergrided opensim. A foreign user comes and buys it. What that really means is that that user will physically get a copy of the assets moved to his/her asset server, which is different from your asset server. The permissions will be whatever you define them to be, and using the regular VW client, that user can only do what you defined he/she should could do with the object, as usual. However, if the user has direct backend access to the asset and inventory servers, that person can simply modify the permissions on his/her copy. This is commonly known as '''piracy'''.
+
= Hypergrid Concepts =
  
This situation is the kernel of the belief that open grids are hopeless for a virtual-goods economy. DRM discussion aside, maybe they are hopeless. But then, everyone thought the web was hopeless for selling music, and look at the success of iTunes in spite of all the piracy that still exists out there. Who will be the equivalent of iTunes for virtual hair, skin and clothes? 
+
* [[Hypergrid Concepts]].
 +
* [[Hypergrid Glossary]].
  
== Hypergrid Implementation ==
+
= Hypergrid Development =
 +
See [[Hypergrid Protocol]] for protocol level details.
  
TODO
+
See [[Hypergrid Implementation]] for implementation details.
  
== Installing and Running Hypergrid ==
+
= Hypergrid Parameters =
  
=== Installing ===
+
For information about each Hypergrid configuration parameter and what it does, please see [[Hypergrid Parameters]] (eventually).
  
# Checkout the hypergrid project: '''svn checkout http://forge.opensimulator.org/svn/hypergrid/trunk'''. Usually trunk is in a usable state. If it isn't, you can check the latest stable version from tags: svn checkout http://forge.opensimulator.org/svn/hypergrid/tags
+
= Hypergrid Security =
# Read the README.txt file. It has important information about which version of opensim the hypergrid has been tested with. ''''No guarantees of what will happen if you use the hypergrid extension with a different version of opensim''''.
+
# Check out the version of opensim mentioned in the README file. Prebuild build it as normal.
+
# Copy all the files under hypergrid/.../bin onto opensim/bin
+
# Make the following changes to your OpenSim.ini:
+
#* The map: '''WorldMapModule = "HGWorldMap" ''' If you didn't have this setting in your original OpenSim.ini, make sure yo place it under the [Startup] section.
+
#* If you're running your opensim in grid mode, you're done. If you're running in standalone and you want it to be network-able, change all the [Network] server addresses to <nowiki>"http://<external_host_name>:<http_port>"</nowiki>
+
# Run opensim like this: <nowiki>[mono] OpenSim.exe -hypergrid=true</nowiki>. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.
+
  
=== Linking regions ===
+
Please see [[Hypergrid Security]].
  
On the console, type for example:
+
= Hypergrid Friends =
  
link-region <Xloc> <Yloc> osl2.nac.uci.edu 9006 OSGrid Gateway
+
* [[Hypergrid Friends]] (updated 2015)
 +
* [[Hypergrid_Friends_and_IM]] (updated 2011)
  
Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.
+
= Public Hypergrid Nodes =
  
'''Important Note'''
+
Please see [[Public Hypergrid Nodes]].
  
Due to a viewer bug, you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.
+
= Hypergrid Lists =
== Public Hypergrid Nodes ==
+
Please see [[Hypergrid Lists]].
  
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!
+
= Further References =
 +
* [http://www.ics.uci.edu/~lopes/opensim/HypergridReferenceGuide.html The Hypergrid Reference Guide]
 +
* [https://web.archive.org/web/20150426153421/https://dl.dropboxusercontent.com/u/18483217/hypergrid-draft.pdf Hypergrid: Architecture and Protocol for Virtual World Interoperability] - Cristina Videira Lopes paper defining Hypergrid protocol (PDF format)
  
For the time being, and until the security concerns described above are addressed, we advise you to be careful about who you link to.
+
= Development Meetings =
  
 +
[[Hypergrid Meetings]]
  
* '''osl2.nac.uci.edu 9006'''
+
[[Category:Hypergrid]]
The "UCI Welcome" region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.
+
  
* '''ucigrid02.nacs.uci.edu 9000'''
+
= See Also =
A region in the UCI Grid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine.
+
Also see [[Grider]]; [[Virtual World Model]]; [[HyperGrid Team]]

Latest revision as of 11:53, 24 December 2021


Contents

[edit] What is the hypergrid?

The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds.

The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.

The hypergrid started as a external project, but it is now included in the standard distribution of OpenSimulator. To run your OpenSimulator instance in hypergrid mode, please see Installing and Running Hypergrid.


[edit] Hypergrid Versions

  • Hypergrid 2.0 - current Hypergrid with greater security controls for region operators
  • Hypergrid 1.5 - past Hypergrid version with greater asset security and expanded services
  • Hypergrid 1.0 - the original Hypergrid described below


[edit] Teleporting via the Hypergrid

The structure of a hypergrid link is similar to a web page link : [hop://]<hg-host>:<hg-port>[/<region-name>][/x/y]. Examples:

"hop://cc.opensimulator.org:8002/keynote 1"
"hop://grid.mydomain.com:9000"

The first example is the Hypergrid address of a region named "keynote 1" on the grid at cc.opensimulator.org that has port 8002.

The second example gives only the hg-host and port. In this case, the destination region is the default region setup for that grid, as specified in the [GridService] section of bin/Robust.HG.ini (for grid) or bin/config-include/StandaloneCommon.ini (for standalones).

[edit] Installing and Running

Please see Installing and Running Hypergrid.

[edit] Hypergrid Concepts

[edit] Hypergrid Development

See Hypergrid Protocol for protocol level details.

See Hypergrid Implementation for implementation details.

[edit] Hypergrid Parameters

For information about each Hypergrid configuration parameter and what it does, please see Hypergrid Parameters (eventually).

[edit] Hypergrid Security

Please see Hypergrid Security.

[edit] Hypergrid Friends

[edit] Public Hypergrid Nodes

Please see Public Hypergrid Nodes.

[edit] Hypergrid Lists

Please see Hypergrid Lists.

[edit] Further References

[edit] Development Meetings

Hypergrid Meetings

[edit] See Also

Also see Grider; Virtual World Model; HyperGrid Team

Personal tools
General
About This Wiki