<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
[posting back to -dev, which is where this belongs]<br>
<br>
If we did this also for user ids, then we wouldn't need to pass any
more information about the user when crossing domains/hypergrid links.
The UUID would encode the user's "home" server, and any additional info
would be pulled from there.<br>
<br>
I don't see this is as violation of the intent behind UUIDs as given in
<a class="moz-txt-link-freetext" href="http://tools.ietf.org/html/rfc4122">http://tools.ietf.org/html/rfc4122</a>. The RFC already accounts for
namespace-based UUIDs. It's unclear to me if the namespace can be
deterministically retrieved back when using the suggested algorithm.
But I see no reason for not being able to do that. <br>
<br>
128 bits can encode a heck of a lot. My calculations on the back of an
envelope tell me at most 64 bits for ip+port, which leaves another 64
for ids within a domain, if we do this the straightforward way. If we
do it the way they suggest in the RFC, the range is even higher, but
collisions become possible. Arguably, when an asset server is serving
close to 2^64 assets, it's probably time to plug in another server...<br>
<br>
So, what do people think about this? Does this make you cringe? :-)<br>
<br>
Note that this doesn't address at all the issue of capabilities/access
control, it only addresses the issue of naming things globally.<br>
<br>
Some consequences of this: <br>
- for open grids, the existing UUIDs would have to be regenerated.<br>
- there would have to be semantic checks performed when importing
things from external representations, converting their UUIDs. So the
brain-dead manual generation that I routinely do on regions, for
example, would fail. Instead opensim would generate a valid UUID for
me, for which I would be very grateful.<br>
<br>
To be honest, I don't quite understand the use of UUIDs in opensim;
they look extremely wasteful. I think they're there just because that's
what the LL viewer imposes. If that's the case, let's use them to our
advantage.<br>
<br>
Crista<br>
<br>
Diva Canto (Crista) wrote:
<blockquote cite="mid:490C6D31.5010601@metaverseink.com" type="cite">
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
The only reason why I'm suggesting the encoding hack as a horrible
option not to be immediately discarded is that it is probably the
simplest thing to do for the LL Viewer to start pulling assets from
different places on the internet. From all I know, the LL Viewer is
deeply rooted on UUIDs for universal identification; refactoring this
will be a massive undertaking on the viewer. But simply giving
semantics to UUIDs would not be that big of a deal. I'm thinking a few
conditionals here and there:<br>
<br>
url = RetrieveUrl(uuid)<br>
if ItsASyntacticallyValidUrl(url)<br>
try to do the right thing, please<br>
else<br>
do what you do now<br>
<br>
or something to this effect.<br>
<br>
Of course, we're hitting our heads again on the pre-condition of using
the LL Viewer...<br>
<br>
Dickson, Mike (ISS Software) wrote:
<blockquote
cite="mid:4646639E08F58B42836FAC24C94624DD5C229C7011@GVW0433EXB.americas.hpqcorp.net"
type="cite">
<meta http-equiv="Content-Type" content="text/html; ">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:black;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";
color:black;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
color:black;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="Section1">
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);">We
really don’t want to start encoding info into a GUID.
The RFC that describes them pretty much details what kinds of entropy
can be
used. <o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);">I’ve
been thinking for a while that the handle service (<a
moz-do-not-send="true" href="http://www.handle.net">http://www.handle.net</a>)
might be a nice way to
do a URL style mechanism to refer to assets and such not on a local
server.
It’s been a while since I looked at it but it’s pretty much
designed for the purpose and there’s a proxy architecture already
defined
for it.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);">Mike<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size: 11pt; font-family: "Calibri","sans-serif"; color: rgb(31, 73, 125);"><o:p> </o:p></span></p>
<div>
<div
style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
<p class="MsoNormal"><b><span
style="font-size: 10pt; font-family: "Tahoma","sans-serif"; color: windowtext;">From:</span></b><span
style="font-size: 10pt; font-family: "Tahoma","sans-serif"; color: windowtext;">
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:opensim-users-bounces@lists.berlios.de">opensim-users-bounces@lists.berlios.de</a>
[<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="mailto:opensim-users-bounces@lists.berlios.de">mailto:opensim-users-bounces@lists.berlios.de</a>]
<b>On Behalf Of </b>Diva
Canto<br>
<b>Sent:</b> Saturday, November 01, 2008 9:05 AM<br>
<b>To:</b> <a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:opensim-users@lists.berlios.de">opensim-users@lists.berlios.de</a><br>
<b>Subject:</b> Re: [Opensim-users] [Opensim-dev] Grid Numberging<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Actually, I just realized that the problem is
already much
worse than I thought.<br>
The practices that we are all doing around opensim completely
invalidate the
concept of uniqueness in UUIDs. This comes from the fact that UUIDs are
being
externalized into DBs and XML representations, which are then being
imported
elsewhere. As people reuse entire DBs and XML files to recreate the
same worlds
in different grids, uniqueness goes down the drain. So definitely,
forget about
"Universal" Unique Identification with UUIDs; uris/urls are
absolutely required for universal naming. The only way to savage UUIDs
would be
use part of their representation to deterministically code up the
ip/port of
where they come from.<br>
<br>
Stefan Andersson wrote: <o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom: 12pt;">And the whole
thread started
with suggesting we allocate information bits to encode semantics. Which
drastically heightens the risk of collisions, intentional or malicious.<br>
<br>
Just see guids as private to the trust domain, and we'll all fine.
Grids should
be publicly referred to by something riches, as an uri/url for example.<br>
<br>
Best regards,<br>
Stefan Andersson<br>
Tribal Media AB<br>
<br>
Join the 3d web revolution : <a moz-do-not-send="true"
href="http://tribalnet.se/" target="_blank">http://tribalnet.se/</a><br>
<br>
<br>
<br>
<o:p></o:p></p>
<div class="MsoNormal" style="text-align: center;" align="center">
<hr id="EC_stopSpelling" align="center" size="2" width="100%"></div>
<p class="MsoNormal"><br>
Date: Fri, 31 Oct 2008 20:10:41 -0700<br>
From: <a moz-do-not-send="true" href="mailto:diva@metaverseink.com">diva@metaverseink.com</a><br>
To: <a moz-do-not-send="true"
href="mailto:opensim-users@lists.berlios.de">opensim-users@lists.berlios.de</a><br>
Subject: Re: [Opensim-users] [Opensim-dev] Grid Numberging<br>
<br>
Not to mention the dudes and dudettes who generate region UUIDs by
hand...
(a-hem)<br>
Purely random UUIDs that don't encode higher-order information are too
fragile
when there is a chance that people will get their hands on them. I'm
not even
talking about malicious manipulation, just simple human intervention.<br>
<br>
Frisby, Adam wrote: <br>
<br>
<o:p></o:p></p>
<pre>Yeah, the reason I said 'almost' wasn’t because of a good UUID generator, - it's the bad ones.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>IE, people using bad random sources, etc which dramatically increase the chance of a collision - ie if you are only getting 30 bits of randomness, you could run into a collision fairly quickly.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Adam<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre> <o:p></o:p></pre>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<pre>-----Original Message-----<o:p></o:p></pre>
<pre>From: <a moz-do-not-send="true"
href="mailto:opensim-users-bounces@lists.berlios.de">opensim-users-bounces@lists.berlios.de</a> [<a
moz-do-not-send="true" href="mailto:opensim-users">mailto:opensim-users</a>-<o:p></o:p></pre>
<pre><a moz-do-not-send="true"
href="mailto:bounces@lists.berlios.de">bounces@lists.berlios.de</a>] On Behalf Of Sean Dague<o:p></o:p></pre>
<pre>Sent: Friday, 31 October 2008 4:48 PM<o:p></o:p></pre>
<pre>To: <a moz-do-not-send="true"
href="mailto:opensim-users@lists.berlios.de">opensim-users@lists.berlios.de</a><o:p></o:p></pre>
<pre>Subject: Re: [Opensim-users] [Opensim-dev] Grid Numberging<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Dr Scofield wrote:<o:p></o:p></pre>
<pre> <o:p></o:p></pre>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<pre>Frisby, Adam wrote:<o:p></o:p></pre>
<pre> <o:p></o:p></pre>
<blockquote style="margin-top: 5pt; margin-bottom: 5pt;">
<pre>Shouldn’t UUIDs by definition be unique?<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre><o:p> </o:p></pre>
<pre><o:p> </o:p></pre>
<pre>IE – if your generating them randomly a collision is almost<o:p></o:p></pre>
<pre>guaranteed to never ever occur.<o:p></o:p></pre>
<pre> <o:p></o:p></pre>
</blockquote>
<pre>"almost" being a key word here...<o:p></o:p></pre>
<pre> <o:p></o:p></pre>
</blockquote>
<pre>"...after generating 1 billion UUIDs every second for the next 100<o:p></o:p></pre>
<pre>years, the probability of creating just one duplicate would be about<o:p></o:p></pre>
<pre>50%. The probability of one duplicate would be about 50% if every<o:p></o:p></pre>
<pre>person on earth owns 600 million UUIDs.<a
moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">"<o:p></o:p></a></pre>
<pre><span class="MsoHyperlink"><a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank"><o:p><span
style="text-decoration: none;"> </span></o:p></a></span></pre>
<pre><span class="MsoHyperlink"><a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">http://en.wikipedia.org/wiki/Uuid<o:p></o:p></a></span></pre>
<pre><span class="MsoHyperlink"><a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank"><o:p><span
style="text-decoration: none;"> </span></o:p></a></span></pre>
<pre><span class="MsoHyperlink"><a moz-do-not-send="true"
href="http://en.wikipedia.org/wiki/UuidJusttokeep" target="_blank">Just to keep "</a></span>almost" in perspective,<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre> -Sean<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>--<o:p></o:p></pre>
<pre>Sean Dague / Neas Bade<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="mailto:sdague@gmail.com">sdague@gmail.com</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="http://dague.net/"
target="_blank">http://dague.net</a><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre> <o:p></o:p></pre>
</blockquote>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>Opensim-users mailing list<o:p></o:p></pre>
<pre><a moz-do-not-send="true"
href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-users"
target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-users</a><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre> <o:p></o:p></pre>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<pre><o:p> </o:p></pre>
<pre style="text-align: center;"><hr align="center" size="4"
width="90%">
</pre>
<pre><o:p> </o:p></pre>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>Opensim-users mailing list<o:p></o:p></pre>
<pre><a moz-do-not-send="true"
href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true"
href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a><o:p></o:p></pre>
<pre> <o:p></o:p></pre>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<pre wrap=""><hr size="4" width="90%">
_______________________________________________
Opensim-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated"
href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
</blockquote>
<br>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Opensim-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Opensim-users@lists.berlios.de">Opensim-users@lists.berlios.de</a>
<a class="moz-txt-link-freetext" href="https://lists.berlios.de/mailman/listinfo/opensim-users">https://lists.berlios.de/mailman/listinfo/opensim-users</a>
</pre>
</blockquote>
<br>
</body>
</html>