<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>The lost resolution bug isn't - Revision history</title>
		<link>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5-7</generator>
		<lastBuildDate>Sat, 25 Apr 2026 19:01:12 GMT</lastBuildDate>
		<item>
			<title>Kevin Reid:&amp;#32;clarify &quot;non-quirky sameness&quot;</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=1965&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=1965&amp;oldid=prev</guid>
			<description>&lt;p&gt;clarify &amp;quot;non-quirky sameness&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;2009-08-29, [[User:Kevin Reid]] and [[User:Markm]]&lt;br /&gt;
&lt;br /&gt;
The infamous lost resolution bug ''is not a bug''.&lt;br /&gt;
&lt;br /&gt;
Lost resolution: If VatA has a [[Far ref|far (resolved) reference]] to Carol in VatC, and sends a message to Bob in VatB containing that reference, then it will arrive as a [[remote promise]] (for the result of a nonce-lookup sent to VatC) rather than a [[far ref]].&lt;br /&gt;
&lt;br /&gt;
The plan to fix this was to introduce the [[WormholeOp]], which would allow VatA to send to VatB the (encrypted) messages it wanted to arrive at VatC before the messages from Bob to Carol (preserving [[E-order]]).&lt;br /&gt;
&lt;br /&gt;
However, given that we want all far refs to the same object to be ==, and we want == objects to be absolutely indistinguishable, and that ''something'' in VatB has a reference to Carol, Bob would necessarily receive ''the existing far reference'' to Carol, and Bob, possibly with the collusion of VatB (not delivering the WormholeOp traffic, or delaying it), can then violate E-order by sending messages too soon.&lt;br /&gt;
&lt;br /&gt;
==Motivation and what to do instead==&lt;br /&gt;
&lt;br /&gt;
The obvious consequence of the lost resolution bug was that an object which requires settled components (e.g. a map's keys) could fail to unserialize. That is:&lt;br /&gt;
&lt;br /&gt;
# Alice: bob &amp;lt;- foo([carol =&amp;gt; 1, james =&amp;gt; -1])&lt;br /&gt;
# Bob: receives [&amp;lt;Promise&amp;gt; =&amp;gt; 1, &amp;lt;Promise&amp;gt; =&amp;gt; 2] which dies in unserialization because keys must be settled.&lt;br /&gt;
&lt;br /&gt;
Possible solution to this case: The [[portrayal]] used by maps when being sent over the network specifies a maker method which, if any of the keys are unsettled, returns a promise for the map, which resolves when the keys become settled (detected by whenResolved on the unresolved components). This effectively “promotes” the lost resolution to the containing map, hopefully allowing higher-level code to deal with it.&lt;br /&gt;
&lt;br /&gt;
==Simplifications resulting from giving up on lost resolution==&lt;br /&gt;
&lt;br /&gt;
Current implementations: [[NewFarDesc]]s don't need to get 128 bits of entropy and pass them over the network. Swiss numbers are only used for sturdy refs.&lt;br /&gt;
&lt;br /&gt;
If-we-had-done-the-planned-thing: [[WormholeOp]] goes away; [[Far3Desc]] goes away and [[Promise3Desc]] is always used instead (as current implementations do).&lt;br /&gt;
&lt;br /&gt;
[[Category:Resolved design issues]]&lt;/div&gt;</description>
			<pubDate>Sat, 29 Aug 2009 12:09:01 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:The_lost_resolution_bug_isn%27t</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;Lost resolution is not a bug moved to The lost resolution bug isn't: cleverer</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4217&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4217&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/wiki/Lost_resolution_is_not_a_bug&quot; class=&quot;mw-redirect&quot; title=&quot;Lost resolution is not a bug&quot;&gt;Lost resolution is not a bug&lt;/a&gt; moved to &lt;a href=&quot;/wiki/The_lost_resolution_bug_isn%27t&quot; title=&quot;The lost resolution bug isn&amp;#039;t&quot;&gt;The lost resolution bug isn&amp;#39;t&lt;/a&gt;: cleverer&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:49, 29 August 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;!-- diff generator: internal 2026-04-25 19:01:12 --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 29 Aug 2009 04:49:38 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:The_lost_resolution_bug_isn%27t</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;link E-order</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4216&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4216&amp;oldid=prev</guid>
			<description>&lt;p&gt;link E-order&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:46, 29 August 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lost resolution: If VatA has a [[Far ref|far (resolved) reference]] to Carol in VatC, and sends a message to Bob in VatB containing that reference, then it will arrive as a [[remote promise]] (for the result of a nonce-lookup sent to VatC) rather than a [[far ref]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lost resolution: If VatA has a [[Far ref|far (resolved) reference]] to Carol in VatC, and sends a message to Bob in VatB containing that reference, then it will arrive as a [[remote promise]] (for the result of a nonce-lookup sent to VatC) rather than a [[far ref]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The plan to fix this was to introduce the [[WormholeOp]], which would allow VatA to send to VatB the (encrypted) messages it wanted to arrive at VatC before the messages from Bob to Carol (preserving E-order).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The plan to fix this was to introduce the [[WormholeOp]], which would allow VatA to send to VatB the (encrypted) messages it wanted to arrive at VatC before the messages from Bob to Carol (preserving &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;E-order&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;However, given non-quirky sameness {{XXX|explain this}}, and that ''something'' in VatB has a reference to Carol, Bob would necessarily receive ''the existing far reference'' to Carol, and Bob, possibly with the collusion of VatB (not delivering the WormholeOp traffic, or delaying it), can then violate E-order by sending messages too soon.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;However, given non-quirky sameness {{XXX|explain this}}, and that ''something'' in VatB has a reference to Carol, Bob would necessarily receive ''the existing far reference'' to Carol, and Bob, possibly with the collusion of VatB (not delivering the WormholeOp traffic, or delaying it), can then violate E-order by sending messages too soon.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-25 19:01:12 --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 29 Aug 2009 04:46:50 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:The_lost_resolution_bug_isn%27t</comments>		</item>
		<item>
			<title>Kevin Reid at 04:45, 29 August 2009</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4215&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=The_lost_resolution_bug_isn%27t&amp;diff=4215&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:45, 29 August 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lost resolution: If VatA has a [[Far ref|far (resolved) reference]] to Carol in VatC, and sends a message to Bob in VatB containing that reference, then it will arrive as a [[remote promise]] (for the result of a nonce-lookup sent to VatC) rather than a [[far ref]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lost resolution: If VatA has a [[Far ref|far (resolved) reference]] to Carol in VatC, and sends a message to Bob in VatB containing that reference, then it will arrive as a [[remote promise]] (for the result of a nonce-lookup sent to VatC) rather than a [[far ref]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The plan to fix this was to introduce the [[WormholeOp]], which would allow VatA to send to VatB the (encrypted) messages it wanted to arrive at VatC before the messages from Bob to Carol (preserving &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;E-order&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The plan to fix this was to introduce the [[WormholeOp]], which would allow VatA to send to VatB the (encrypted) messages it wanted to arrive at VatC before the messages from Bob to Carol (preserving E-order).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;However, given &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;that we want all far refs to the same object to be ==, and we want == objects to be absolutely indistinguishable&lt;/del&gt;, and that ''something'' in VatB has a reference to Carol, Bob would necessarily receive ''the existing far reference'' to Carol, and Bob, possibly with the collusion of VatB (not delivering the WormholeOp traffic, or delaying it), can then violate E-order by sending messages too soon.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;However, given &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;non-quirky sameness {{XXX|explain this}}&lt;/ins&gt;, and that ''something'' in VatB has a reference to Carol, Bob would necessarily receive ''the existing far reference'' to Carol, and Bob, possibly with the collusion of VatB (not delivering the WormholeOp traffic, or delaying it), can then violate E-order by sending messages too soon.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Motivation and what to do instead==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Motivation and what to do instead==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-25 19:01:12 --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 29 Aug 2009 04:45:49 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:The_lost_resolution_bug_isn%27t</comments>		</item>
	</channel>
</rss>