Difference between revisions of "User:Which Linden/Office Hours/2007 Oct 11"

From Second Life Wiki
Jump to: navigation, search
(Office hours, oct 11)
(Linked to escrow diagram)
Line 13: Line 13:
| [11:13]   
| [11:13]   
| Which Linden:
| Which Linden:
| style="white-space:normal;"|What's new this week is that diagram over my head
| style="white-space:normal;"|What's new this week is [http://wiki.secondlife.com/wiki/Image:Escrow_buy_object_example_diagram.png that diagram over my head]
|- style="vertical-align:top;background-color:#FFFFFF;"
|- style="vertical-align:top;background-color:#FFFFFF;"
| [11:13]   
| [11:13]   

Latest revision as of 11:58, 11 October 2007

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 :-)