User:Which Linden/Office Hours/2007 Oct 11
Jump to navigation
Jump to search
Transcript of Which Linden's office hours:
[11:12] | Which Linden: | As usual, I'll be posting this transcript on the public wiki |
[11:13] | JayR Cela: | ok i am ready |
[11:13] | Which Linden: | What's new this week is that diagram over my head |
[11:13] | Which Linden: | It illustrates how I'm imagining the escrow to work |
[11:13] | Morgaine Dinova: | Good afternoon everyone |
[11:13] | Which Linden: | however, the resolution probably sucks |
[11:13] | Which Linden: | Hi Morgaine |
[11:14] | Which Linden: | is it readable for you? |
[11:14] | Ciaran Laval: | Yes |
[11:14] | Which Linden: | It's readable for me -- I know what all the text says already though |
[11:14] | Morgaine Dinova: | Yes, think I can make out the text |
[11:15] | Morgaine Dinova: | Yes, perfect, texture hadn't ressed yet before |
[11:15] | Which Linden: | So, the idea here is that the escrow (middle thing) mediates a transaction between two parties |
[11:16] | JayR Cela: | ok look....... |
[11:16] | Which Linden looks | |
[11:16] | JayR Cela: | a mode of finacial transaction need to be established / ASAP / and secure |
[11:17] | Which Linden: | what do you mean by that? |
[11:17] | Which Linden: | I'm not sure what a mode is |
[11:17] | Which Linden: | model? |
[11:18] | JayR Cela: | if you are going to work here for / peanuts on the dollar / and people refuse to pay you / what financial security do you have / nothing |
[11:18] | Morgaine Dinova: | That's exactly what escrow is part of JayR. It's part of an implementation of atomicity for transactions. |
[11:19] | Which Linden: | yeah, unfortunately it's going to be impossible to solve social problems like people not paying wages or whatever, in a general way |
[11:19] | Which Linden: | But one thing that we can hopefully do is make it so that it's easier to implement vendors |
[11:20] | Morgaine Dinova: | Cool Which. Run us thro' the protocol please :-) |
[11:21] | JayR Cela: | ok it needs to be a no brainer / unfortunately that may require RL info |
[11:21] | Which Linden: | The notional vendor protocol? Hmm.... I'll be honest -- I don't have anything concrete on that |
[11:21] | Morgaine Dinova: | No no, escrow protocol |
[11:21] | Which Linden: | oh, ok |
[11:21] | Tree Kyomoon: | is this where the serious discussions are? |
[11:21] | Which Linden: | We're running through the escrow protocol, Tree |
[11:21] | Which Linden: | I'm about to |
[11:21] | Which Linden: | The beginning is some sort of action by some human being |
[11:22] | Which Linden: | I.e. you right-clicking on an object and selecting "buy" |
[11:22] | Which Linden: | This then talks to your agent store, which is a reliable machine that holds you inventory, L$ balance, etc |
[11:23] | Don Misfit: | Hi all :) |
[11:23] | Which Linden: | and the agent store starts a transaction with the escrow |
[11:23] | Which Linden: | hi don |
[11:23] | Ciaran Laval: | Ah got it now |
[11:23] | Which Linden: | we're up to the first arrow I think |
[11:24] | Rex Cronon: | hi everybody |
[11:24] | Which Linden: | when the escrow persists the data, it writes it to the hard disk, makes copies, whatever it can do to make sure it doesn't forget that it started this transaction |
[11:24] | Ciaran Laval: | Hi Rex |
[11:24] | Which Linden: | even if it crashes, its local hard drive gets corrupted, whatever failure you can imagine |
[11:25] | Morgaine Dinova: | Idempotent on that initial state storage? |
[11:25] | Which Linden: | yeah |
[11:25] | Morgaine Dinova: | Cool |
[11:25] | Which Linden: | so that's what chttp gets us -- you'll note that all the arrows have little "certified" background text |
[11:26] | Which Linden: | that's what that means |
[11:26] | Morgaine Dinova: | Oh yes, haha ... very faint shades of green :-)) |
[11:26] | JayR Cela: | ok i have a stament I would like to make ...................... |
[11:26] | JayR Cela: | this is the new econemy |
[11:26] | Which Linden: | once it has started the transaction, the escrow goes and talks to the various parties, getting the resources that they're going to exchange |
[11:27] | JayR Cela: | we have to take this as serious business |
[11:27] | Which Linden: | well, we're trying to replicate the current economy but make it work better, JayR |
[11:27] | Which Linden: | and we are totally serious here |
[11:28] | JayR Cela: | the old model does not work here |
[11:28] | Ciaran Laval: | Ok so it certifies that A has received the object before processing the money? |
[11:28] | JayR Cela: | this is the Meta_Verse |
[11:28] | Which Linden: | actually not quite Ciaran, the idea is that B gives the object to the Escrow first |
[11:28] | Which Linden: | (effectively) |
[11:28] | Morgaine Dinova: | Ciaran: not yet. It's just a statement of intent at this point in the protocol. |
[11:28] | Ciaran Laval: | Sorry WHich I'm further down the page sorry, I'll be quiet for a bit |
[11:28] | Which Linden: | then if A doesn't give the money to the escrow, the escrow can give the object back |
[11:29] | Which Linden: | (assuming that makes sense, obviously if you were buying a copy of an object it would just discard the unbought copy) |
[11:29] | Rex Cronon: | the escrow gets a copy of the object. right? |
[11:29] | Which Linden: | yeah, I guess so |
[11:29] | Which Linden: | or it could have a reference to an asset on the asset server |
[11:30] | Which Linden: | not sure yet what the best thing to do is |
[11:30] | Which Linden: | so, if it works out, at some point the escrow has both the object and the money |
[11:30] | Which Linden: | that is the horizontal line in the middle labeled "Distribute Phase Begins" |
[11:31] | Which Linden: | at that point neither party can cancel the transaction, it's a fait accompli |
[11:31] | Which Linden: | and then all the escrow has to do is give the resources to the proper parties |
[11:32] | Ciaran Laval: | Ok could you build in a cancel option at that stage? |
[11:32] | Which Linden: | so it gives the money to B and the object to A |
[11:32] | Which Linden: | It's not clear why you'd want to Ciaran |
[11:32] | Morgaine Dinova: | Which: this seems to require Agent B to change ownership of the object to Agent A, which appears to make middlemen impossible unless they become owners. Is that right? |
[11:32] | Ciaran Laval: | Land sales Which |
[11:32] | Ciaran Laval: | People claim they make a mistake and a bot snaps it up |
[11:32] | Ciaran Laval: | with a cancel option at the point there, they can avoid that |
[11:33] | Which Linden: | The proper point to cancel is when the escrow contacts your agent store |
[11:33] | Which Linden: | It will be able to say "hey, A wants to buy land from you for this amount of money" |
[11:33] | Which Linden: | And if you say no, then it doesn't transfer the land to the escrow |
[11:33] | Which Linden: | and the transaction fails |
[11:34] | Which Linden: | That's a UI thing, though, the escrow only enables that sort of behavior to happen |
[11:34] | Ciaran Laval: | Ok that makes sense. People have suggested escrow for land sales. |
[11:35] | Which Linden: | yeah, it's important to note that this escrow isn't really the same thing as an escrow for, say, buying a house |
[11:35] | Which Linden: | It can sort of do the same things, but at the end of the day it's just a transaction coordinator |
[11:36] | Morgaine Dinova: | I'm curious why Agent B is responsible for changing the ownership to Escrow, since Escrow isn't an actual agent. Is there a reason why Escrow doesn't do all the ownership changes? |
[11:36] | Which Linden: | Though the important property is that it allows you to see the entire transaction and agree to be a party to it |
[11:36] | Which Linden: | Morgaine: yeah, that's a good point |
[11:36] | Which Linden: | as far as I'm concerned that's an implementation detail |
[11:37] | Morgaine Dinova: | kk |
[11:37] | Which Linden: | if we're doing this cross-domain, the escrow might not have the ability to make those sorts of changes on its own |
[11:37] | JayR Cela: | ok i can just be a whore here / make / tons ove money |
[11:37] | Ciaran Laval: | ?? |
[11:38] | Morgaine Dinova: | Oh, Escrow might sit on the gateway and map inter-domain Agent identities. Interesting |
[11:38] | Ciaran Laval: | Ok the only other observation is that I'm assuming the change of ownership is assumed when the object moves to A's inventory |
[11:38] | Rex Cronon: | what if it never goes to the buyer's inventory? |
[11:39] | Which Linden: | You're talking about what if the distribute phase fails |
[11:39] | Rex Cronon: | yes |
[11:39] | Which Linden: | Ciaran, actually the ownership should cahnge when the object gets to the escrow |
[11:40] | Which Linden: | At this point we've decided that if the distribute phase fails, a human has to be involved |
[11:40] | Which Linden: | ... but we'll do everything in our power to make that not happen |
[11:40] | Rex Cronon: | can the buyer get a receipt to be used in case it never gets what it paid for? |
[11:40] | Which Linden: | yeah, that's what the token represent |
[11:40] | Morgaine Dinova: | Although another valid policy is "if anything breaks anywhere, no transaction" |
[11:41] | Rex Cronon: | oh, ok |
[11:41] | Which Linden: | And you can do clever stuff like distribute the object first, and if that fails, then refund the money |
[11:42] | Ciaran Laval: | I see that Which but it changes ownership to Escrow but doesn't change it to A at the distribution phase. I'm assuming it's assumed ownership changes once it's transferred to the inventory, just my lecturer would whinge at me for leaving that out! |
[11:42] | Rex Cronon: | so, with a token it sholdn't very hard to check buyer's invetory to see if indeed it has that object or not? |
[11:42] | Which Linden: | Oh, Ciaran, good point, I'll make that more clear |
[11:42] | Which Linden: | Hopefully, Rex. We don't really have any idea what these tokens will look like though |
[11:43] | Which Linden: | We can give them whatever magical properties we want though! |
[11:43] | Morgaine Dinova: | Which, will it be possible for us to get the texture later? I'd like to pin it up on the wall to think about :-) |
[11:44] | Which Linden: | Sure, I'll put it up on the wiki Morgaine |
[11:44] | Ciaran Laval: | Cool, it looks good Which. |
[11:44] | Morgaine Dinova: | Fantastic, thanks :P |
[11:44] | Which Linden: | I can just make this billboard copyable though |
[11:44] | Rex Cronon: | that would be good too |
[11:45] | Which Linden changes the name from "object" | |
[11:45] | Morgaine Dinova: | Aye, but don;t want to just view it in world |
[11:46] | Which Linden: | Yeah, I'll still put it up on teh wiki |
[11:46] | Morgaine Dinova: | tnx :-) |
[11:46] | Which Linden: | power-of-2 textures are not great for data like this |
[11:47] | Which Linden: | So, yeah! That's the battle plan as it stands |
[11:47] | Morgaine Dinova: | Perfectly readable, good image. :-) But I like pinning things up, go around the house thinking about them |
[11:47] | Rex Cronon: | it is going to be a while untils is live? |
[11:48] | Which Linden: | The major holes in it are: WTF these tokens are actually going to be |
[11:48] | Ciaran Laval: | lol |
[11:48] | Which Linden: | Yeah, it's going to be a while, Rex |
[11:48] | Which Linden: | We're planning on finishing chttp this quarter, and that's just the basis for the escrow |
[11:48] | Rex Cronon: | those tokens don't seem that hard to generate which:) |
[11:49] | Morgaine Dinova: | We need the chttp for idempotency in the AWG services too, so important. |
[11:49] | Which Linden: | Yeah, the tokens could be as much as a response that says "yeah" |
[11:50] | Which Linden: | On the chttp front, I made a commit earlier this week that has the bare bones of an implementation |
[11:50] | Rex Cronon: | or, it could be only one token that has the current state of the transaction? |
[11:50] | Which Linden: | we're also in the process of moving our JIRA tasks to the PJIRA |
[11:51] | Which Linden: | Rex: we considered that, but then it seemed that there was too much risk of a party maliciously modifying the token |
[11:51] | Which Linden: | At least this way the escrow is the only trusted party, not every party has to be fully trustworthy |
[11:52] | Morgaine Dinova: | Yeah, that's what Zero said too. I preferred the token passing method as it's more stateless, but there is an issue with remote agent trust. |
[11:52] | Rex Cronon: | so the escrow can be the only one that knows how to encrypt/decrypt the token? |
[11:53] | Which Linden: | Not necessarily, Rex, actually I wasn't even considering these things to be encrypted at any level other than link level |
[11:53] | Which Linden: | Yeah I prefer stateless stuff too, but we kinda need crap-tons of state, logs, copies of data, etc. |
[11:54] | Ciaran Laval: | Surely one day you'll need an encrypted version for cross world transactions? |
[11:54] | Which Linden: | Yeah, I think so, but then all you do is just use SSL to wrap the chttp sessions |
[11:55] | Which Linden: | All you have to do is hide the data from an eavesdropper |
[11:55] | Morgaine Dinova: | Ciaran's right. These transactions might not even be end to end circuits, but travelling contracts. Not now, but eventually :-) |
[11:55] | Ciaran Laval: | Yup cool sticking to standards to make people secure, that makes sense |
[11:56] | Which Linden: | travelling contracts? |
[11:56] | Which Linden: | What are those? |
[11:56] | Morgaine Dinova: | Just try this kind of virtual circuit approach on a transaction with an agent on Mars. :-))) |
[11:57] | Which Linden: | Oh, uh, hmmm.... |
[11:57] | Morgaine Dinova: | It's going to have to be a sent transaction eventually :-) |
[11:57] | Which Linden: | I'mm pretty sure that interplanetary communication counts as "scope creep" |
[11:57] | Morgaine Dinova: | Sorry, thinking ahead a bit there :-) |
[11:57] | Ciaran Laval: | haha |
[11:57] | Morgaine Dinova: | Hahahaha |
[11:57] | Which Linden: | Ha ha ha, I love it though |
[11:58] | Which Linden: | "Mars sim hella laggin'. Takes 4 minutes for my avatar to move!" |
[11:58] | Morgaine Dinova: | Blame Ciaran ... I just extrapolate the principle :-) |
[11:58] | Ciaran Laval: | Hey I just came to observe :P |
[11:59] | Saijanai Kuhn thinks people should look at the link patterns that were originally used by OpenDoc to handle live updating of objecgts between compound documents | |
[11:59] | Which Linden: | Well, we're almost out of time, but I think that I have a clear idea of what to talk about nextt time |
[11:59] | Rex Cronon: | observation can interfere with the results of an experiment:) |
[11:59] | Morgaine Dinova: | Sai: link? |
[11:59] | Ciaran Laval: | lol |
[12:00] | Which Linden: | Yeah, I'm interested in that Saijanai |
[12:00] | Morgaine Dinova: | Lot to think about in this, thanks Which. |
[12:00] | Saijanai Kuhn: | http://www.mactech.com/articles/mactech/Vol.13/13.06/LinksinOpenDocParts/index.html |
[12:00] | Morgaine Dinova: | Thanks Sai |
[12:01] | Which Linden: | I'll check that out |
[12:01] | Saijanai Kuhn: | theyassumed that all sources and destinations were "trusted" but otherwise they covered just about every conceivable kind of link issue, I think |
[12:01] | Which Linden: | OK everyone, I gotta go see a lawyer about some code, so I'll catch you all next week! |
[12:01] | Which Linden: | Ride 'em up! |
[12:01] | Saijanai Kuhn: | take care |
[12:02] | Rex Cronon: | bye witch |
[12:02] | Which Linden: | Appreciate you all coming, BTW, thanks for being a great group |
[12:02] | Morgaine Dinova: | Bye Which :-) |