summaryrefslogtreecommitdiff
path: root/draft-schanzen-r5n.xml
diff options
context:
space:
mode:
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r--draft-schanzen-r5n.xml42
1 files changed, 37 insertions, 5 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index 6096c24..cc59f22 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -408,7 +408,7 @@ Connectivity | |Underlay| |Underlay|
408 <dd> 408 <dd>
409 is a signed path of the IDs of peers which the query 409 is a signed path of the IDs of peers which the query
410 traversed through the network. The DHT will try to make 410 traversed through the network. The DHT will try to make
411 the path available if the RecordRoute flag was set by 411 the path available if the <tt>RecordRoute</tt> flag was set by
412 the application calling the PUT procedure. The reported 412 the application calling the PUT procedure. The reported
413 path may have been silently truncated from the beginning. 413 path may have been silently truncated from the beginning.
414 </dd> 414 </dd>
@@ -416,7 +416,7 @@ Connectivity | |Underlay| |Underlay|
416 <dd> 416 <dd>
417 is a signed path of the IDs of peers which the 417 is a signed path of the IDs of peers which the
418 result message traversed. The DHT will try to make the 418 result message traversed. The DHT will try to make the
419 path available if the RecordRoute flag was set for the GET procedure. 419 path available if the <tt>RecordRoute</tt> flag was set for the GET procedure.
420 The reported path may have been silently truncated from the beginning. 420 The reported path may have been silently truncated from the beginning.
421 As the block was cached by the node at the end of this 421 As the block was cached by the node at the end of this
422 path, this path is more likely to be stale compared to the 422 path, this path is more likely to be stale compared to the
@@ -1420,7 +1420,18 @@ bchar = *(ALPHA / DIGIT)
1420 <li> 1420 <li>
1421 If the <tt>RecordRoute</tt> flag is set in FLAGS, 1421 If the <tt>RecordRoute</tt> flag is set in FLAGS,
1422 the local peer address <bcp14>MUST</bcp14> be appended to the <tt>PUTPATH</tt> 1422 the local peer address <bcp14>MUST</bcp14> be appended to the <tt>PUTPATH</tt>
1423 of the message. 1423 of the message. If the flag is not set, the <tt>PATH_LEN</tt>
1424 <bcp14>MUST</bcp14> be set to zero.
1425 </li>
1426 <li>
1427 If the <tt>PATH_LEN</tt> is non-zero,
1428 the local peer <bcp14>SHOULD</bcp14> verify the signatures from the <tt>PUTPATH</tt>.
1429 Verification <bcp14>MAY</bcp14> involve checking all signatures or any random
1430 subset of the signatures. It is <bcp14>RECOMMENDED</bcp14> that peers adapt
1431 their behavior to available computational resources so as to not make signature
1432 verification a bottleneck. If an invalid signature is found, the
1433 <tt>PUTPATH</tt> <bcp14>MUST</bcp14> be truncated to only include the elements
1434 following the invalid signature.
1424 </li> 1435 </li>
1425 <li> 1436 <li>
1426 If the local peer is the closest peer 1437 If the local peer is the closest peer
@@ -1737,7 +1748,7 @@ bchar = *(ALPHA / DIGIT)
1737 is a 32-bit block type field. The block type indicates the content 1748 is a 32-bit block type field. The block type indicates the content
1738 type of the payload. In network byte order. 1749 type of the payload. In network byte order.
1739 </dd> 1750 </dd>
1740 <dt>PUTPATH_L</dt> 1751 <dt>PUTPATH_LEN</dt>
1741 <dd> 1752 <dd>
1742 is a 16-bit number indicating the length of the PUT path recorded 1753 is a 16-bit number indicating the length of the PUT path recorded
1743 in <tt>PUTPATH</tt>. As <tt>PUTPATH</tt> is optional, this value may be zero 1754 in <tt>PUTPATH</tt>. As <tt>PUTPATH</tt> is optional, this value may be zero
@@ -1798,6 +1809,18 @@ bchar = *(ALPHA / DIGIT)
1798 If the result is <tt>BLOCK_INVALID</tt>, the message <bcp14>MUST</bcp14> be 1809 If the result is <tt>BLOCK_INVALID</tt>, the message <bcp14>MUST</bcp14> be
1799 discarded. 1810 discarded.
1800 </li> 1811 </li>
1812 <li>
1813 If the <tt>PUT_PATH_LEN</tt> or the <tt>GET_PATH_LEN</tt> are non-zero,
1814 the local peer <bcp14>SHOULD</bcp14> verify the signatures from the <tt>PUTPATH</tt>
1815 and the <tt>GETPATH</tt>.
1816 Verification <bcp14>MAY</bcp14> involve checking all signatures or any random
1817 subset of the signatures. It is <bcp14>RECOMMENDED</bcp14> that peers adapt
1818 their behavior to available computational resources so as to not make signature
1819 verification a bottleneck. If an invalid signature is found, the
1820 path <bcp14>MUST</bcp14> be truncated to only include the elements
1821 following the invalid signature. In particular, any invalid signature
1822 on the <tt>GETPATH</tt> will cause <tt>PUT_PATH_LEN</tt> to be set to 0.
1823 </li>
1801 <li> 1824 <li>
1802 The peer also attempts to compute the 1825 The peer also attempts to compute the
1803 key using <tt>DeriveBlockKey</tt>. This may result in <tt>NONE</tt>. 1826 key using <tt>DeriveBlockKey</tt>. This may result in <tt>NONE</tt>.
@@ -1823,7 +1846,7 @@ bchar = *(ALPHA / DIGIT)
1823 </t> 1846 </t>
1824 <ol type="%c)"> 1847 <ol type="%c)">
1825 <li> 1848 <li>
1826 If the approximate flag was not set in the query and the <tt>BTYPE</tt> allowed the 1849 If the <tt>FindApproximate</tt> flag was not set in the query and the <tt>BTYPE</tt> allowed the
1827 implementation to compute the key from the block, the computed key must 1850 implementation to compute the key from the block, the computed key must
1828 exactly match the <tt>QUERY_HASH</tt>, otherwise the result does 1851 exactly match the <tt>QUERY_HASH</tt>, otherwise the result does
1829 not match the pending query and processing continues with the next pending query. 1852 not match the pending query and processing continues with the next pending query.
@@ -1845,6 +1868,15 @@ bchar = *(ALPHA / DIGIT)
1845 The result of this duplicate filtering is always either 1868 The result of this duplicate filtering is always either
1846 <tt>FILTER_MORE</tt> or <tt>FILTER_DUPLICATE</tt>. 1869 <tt>FILTER_MORE</tt> or <tt>FILTER_DUPLICATE</tt>.
1847 </li> 1870 </li>
1871 <li>
1872 If the <tt>RecordRoute</tt> flag is set in FLAGS,
1873 the local peer address <bcp14>MUST</bcp14> be appended to the <tt>GETPATH</tt>
1874 of the message and the respective signature <bcp14>MUST</bcp14> be
1875 set using the query origin as the <tt>PEER SUCCESSOR</tt> and the
1876 response origin as the <tt>PEER PREDECESSOR</tt>. If the flag is not set,
1877 the <tt>GET_PATH_LEN</tt> and <tt>PUT_PATH_LEN</tt>
1878 <bcp14>MUST</bcp14> be set to zero when forwarding the result.
1879 </li>
1848 </ol> 1880 </ol>
1849 <t> 1881 <t>
1850 If the result is either <tt>FILTER_MORE</tt> or <tt>FILTER_LAST</tt>, 1882 If the result is either <tt>FILTER_MORE</tt> or <tt>FILTER_LAST</tt>,