<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-04-10&#xA;📝 Original message:On Thu, Apr 10, 2014 at 4:32 AM, Pieter Wuille &lt;pieter.wuille at gmail.com&gt; wrote:&#xA;&gt; There were earlier discussions.&#xA;&#xA;On this list.&#xA;&#xA;&gt; The two ideas were either using one or a few service bits to indicate&#xA;&gt; availability of blocks, or to extend addr messages with some flags to&#xA;&gt; indicate this information.&#xA;&gt;&#xA;&gt; I wonder whether we can&#39;t have a hybrid: bits to indicate general&#xA;&gt; degree of availability of blocks (none, only recent, everything), but&#xA;&gt; indicate actual availability only upon actually connecting (through a&#xA;&gt; &#34;version&#34; extension, or - preferably - a separate message). Reason is&#xA;&gt; that the actual blocks available are likely to change frequently (if&#xA;&gt; you keep the last week of blocks, a 3-day old addr entry will have&#xA;&gt; quite outdated information), and not that important to actual peer&#xA;&gt; selection - only to drive the decision which blocks to ask after&#xA;&gt; connection.&#xA;&#xA;I think you actually do need the kept ranges to be circulated,&#xA;otherwise you might need to hunt for a very long time to find the&#xA;right nodes with the blocks you need.  Alternatively, you give up and&#xA;don&#39;t hunt and pick some node that has them all and we get poor load&#xA;distribution. I&#39;d rather be in a case where the nodes that have the&#xA;full history are only hit as a last resort.&#xA;&#xA;WRT the changing values, I think that is pretty uniquely related to&#xA;the most recent blocks, and so instead I think that should be handled&#xA;symbolically (e.g. the hybrid approach... a flag for the &#34;I keep the&#xA;most recent 2000 blocks&#34;, I say 2000 because thats about where the&#xA;request offset historgrams flattened out) or as a single offset range&#xA;&#34;I keep the last N=200&#34;,  and the flag or the offset would be in&#xA;addition to whatever additional range was signaled. The latter could&#xA;be infrequently changing.&#xA;&#xA;Signaling _more_ and more current range data on connect seems fine to&#xA;me, I just don&#39;t think it replaces something that gets relayed.&#xA;&#xA;Based on the safety against reorgs and the block request access&#xA;patterns we observed I&#39;m pretty sure we&#39;d want any node serving blocks&#xA;at all to be at least the last N (for some number between 144 and 2000&#xA;or so). Based on the request patterns if just the recent blocks use up&#xA;all the space you&#39;re willing to spend, then I think thats probably&#xA;still the optimal contribution...&#xA;&#xA;(Just be glad I&#39;m not suggesting coding the entire blockchain with an&#xA;error correcting code so that it doesn&#39;t matter which subset you&#39;re&#xA;holding)</html></oembed>