<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div>When I check <a href="https://nlsr-status.netlify.com/">https://nlsr-status.netlify.com/</a>, I can't find my content at <span style="color:rgb(204,204,204);background-color:rgb(12,12,12);font-family:Consolas,monospace;font-size:12pt;white-space:pre">/Rafee/my-second-packet/33=%00</span>. However, when I try the command <span style="color:rgb(204,204,204);background-color:rgb(12,12,12);font-family:Consolas,monospace;font-size:12pt;white-space:pre">ndnpeek -p /Rafee/my-second-packet/33=%00,</span> it produces the following output <span style="color:rgb(204,204,204);background-color:rgb(12,12,12);font-family:Consolas,monospace;font-size:12pt;white-space:pre">ndnpeek -p /Rafee/my-second-packet/33=%00</span>. Where is it being served from? Is it being served locally? If yes, how to purge the local cache? Also, how to set a lifetime for content? And more importantly, How do I find this information without bothering you over email?</div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 9, 2020 at 4:09 PM Mohammad Ishfaque Jahan Rafee <<a href="mailto:mij.rafee.1344@gmail.com">mij.rafee.1344@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Junxiao,<div>I transferred the content using ndncat. I tried to do a binary comparison, as there's no way to play the video on the server. However, I think there's some overhead like segment inside the mp4 file transferred by ndn. Other than that, the file transferred successfully. </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 9, 2020 at 1:12 PM Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu" target="_blank">shijunxiao@email.arizona.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi Rafee</div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>I tried the whole thing again, and it worked this time. Thank you very much. It wasn't working today morning, and after checking <a href="http://ndndemo.arl.wustl.edu/" target="_blank">http://ndndemo.arl.wustl.edu/</a> I realized, the SAVI Testbed is down, which I was trying to use as the default gateway. But after changing UIUC endpoint, everything worked fine. My setup is as follows:</div><div>Machine 1 (Producer): VM on SAVI.<br>Machine 2 (Consumer): VM on AWS.<br>As I can see, my message is still available, even after the producer is shut down (As expected with ICN). I also tried ndnpeek, and that worked as well.</div></div></div></blockquote><div><br></div><div>Congrats for having successfully transferred a text message through the NDN testbed using <a href="https://github.com/yoursunny/NDNts" target="_blank">NDNts</a>.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><br></div><div>Now, at this point. I am looking for further assistance.</div><div>1. Can you explain to me what happened in simple terms?</div></div></div></blockquote><div> </div><div><font size="4">Producer side</font></div><div><br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Download the attached file and save as ndncert-ucla.json in the current directory. </div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>NDNTS_KEYCHAIN=$HOME/keychain NDNTS_UPLINK=udp://<a href="http://savi.testbed.named-data.net:6363" target="_blank">savi.testbed.named-data.net:6363</a> ndntssec ndncert-client --ca ndncert-ucla.json --valid-days 120 --verbose<br></div></div></blockquote><div><br></div><div>ndncert-ucla.json contains name prefix and certificate of an NDNCERT certificate authority, hosted at UCLA.<br></div><div><font face="monospace">ndntssec ndncert-client</font> command requests a certificate from this certificate authority, and stores it in $HOME/keychain directory along with the private key.</div><div>The certificate request procedure uses Interest-Data exchange, hence a testbed router address is specified on the command line.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>echo "Rafee's first packet" | NDNTS_KEYCHAIN=$HOME/keychain NDNTS_NFDREG=1 NDNTS_UPLINK=udp://<a href="http://savi.testbed.named-data.net:6363" target="_blank">savi.testbed.named-data.net:6363</a> NDNTS_PKTTRACE=1 ndncat put /Rafee/my-first-packet --ver=none<br></div></div></blockquote><div><br></div><div><font face="monospace">ndncat put</font> command reads content from standard input (created by <font face="monospace">echo</font>), and turns it into one or more Data packets under <font face="monospace">/Rafee/my-first-packet</font> prefix.</div><div>In order for other nodes to reach this producer via the testbed, the producer must announce this name prefix to the global routing system. Testbed requires all announcements to be signed by a testbed certificate, hence the previous step obtains a certificate for you. <font face="monospace">ndncat put</font> command loads your key pair from $HOME/keychain directory, as specified on the command line.</div><div>The router you are connecting to will retrieve the certificate so that it can verify the signature on the prefix announcement. During your first attempt, the UCLA certificate authority did not publish your certificate, so that the router couldn't retrieve the certificate, and had to reject the prefix announcement.</div><div>Once the prefix announcement has been verified using your certificate, the router announces your prefix globally. Your producer is now reachable from anywhere on the NDN testbed, and the announcement shows up on <a href="https://nlsr-status.netlify.com/" target="_blank">https://nlsr-status.netlify.com/</a> , which is a status page of the global routing system.</div><div><br></div><div><font size="4">Consumer side</font></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>NDNTS_UPLINK=udp://<a href="http://savi.testbed.named-data.net:6363" target="_blank">savi.testbed.named-data.net:6363</a> NDNTS_PKTTRACE=1 ndncat get /Rafee/my-first-packet --ver=none</div></div></blockquote><div><br></div><div><font face="monospace">ndncat get</font> sends a few Interests to the specified testbed router. Since the producer prefix has been announced globally, you could connect to any testbed node and retrieve the content.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>ndnpeek -p /Rafee/my-first-packet/33=%00<br></div></blockquote></div></div><div> </div><div>This reveals the actual name of the first Data packet.</div><div><font face="monospace">ndncat</font> currently does not support serving a single packet. The text message is treated like a stream. and chunked into segments. 33=%00 indicates "segment number 0".</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>2. How can I go about hosting my content (Something more than a text, such as a video)? I am asking this because the current content seems to be just <b>cat</b> into the terminal.</div></div></div></blockquote><div><br></div><div>If you just want to transfer a video file, you can still use <a href="https://github.com/yoursunny/NDNts/tree/284d3d9f0b6b8c83a746e763d09ab00637f2d5a4/packages/cat" target="_blank">ndncat</a>. <font face="monospace">ndncat put</font> reads from standard input, and <font face="monospace">ndncat get</font> writes to standard output. Thus, you can do something like:</div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_quote"><div><font face="monospace">NDNTS_KEYCHAIN=$HOME/keychain NDNTS_NFDREG=1 NDNTS_UPLINK=udp://<a href="http://savi.testbed.named-data.net:6363" target="_blank">savi.testbed.named-data.net:6363</a> NDNTS_PKTTRACE=1 ndncat put /Rafee/my-video.mp4 --ver=none  < my-video.mp4</font></div></div><div class="gmail_quote"><div><font face="monospace">NDNTS_UPLINK=udp://<a href="http://savi.testbed.named-data.net:6363" target="_blank">savi.testbed.named-data.net:6363</a> NDNTS_PKTTRACE=1 ndncat get /Rafee/my-video.mp4 --ver=none > my-video.mp4</font></div></div></blockquote><div class="gmail_quote"><div>However, currently the producer would buffer all Data packets in memory, so that you can only transfer small files (500MB is fine on a 8GB laptop, maybe more).<br></div><div><br></div><div>If you want a more substantial <a href="https://ivoosh.netlify.com/" target="_blank">video service</a>, setting up the <a href="https://github.com/chavoosh/ndn-mongo-fileserver" target="_blank">backend</a> is much more involved, and I haven't tried it myself. It's better to leave it to the experts.</div><div><br></div><div>Yours, Junxiao</div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div>Best Regards</div><div>Rafee</div><div><a href="http://www.mohammadrafee.com" target="_blank">www.mohammadrafee.com</a><br></div></div></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Best Regards</div><div>Rafee</div><div><a href="http://www.mohammadrafee.com" target="_blank">www.mohammadrafee.com</a><br></div></div></div></div></div>