<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Alper<div><br></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 4, 2025 at 3:40 PM Alper Kamil Demir <<a href="mailto:akdemir@atu.edu.tr" target="_blank">akdemir@atu.edu.tr</a>> wrote:</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 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><br></div><div>The NDN-Lite codebase appears to have been abandoned, as it has not been updated since 2021.</div></div></blockquote><div><br></div><div>Yep. I know about this. Lixia told me that we can allocate some manpower for it. We have developed our codebase, but it is far away from NDN concepts totally. AFAIK, there is not any other codebase. That's why we prefer to use the NDN-Lite codebase. If there is a more recent codebase, I appreciate it if it is shared with us.(I got the answer below: NDND)</div></div></div></blockquote><div><br></div><div>I also have these in C++ / Arduino platform:</div><div><a href="https://github.com/yoursunny/NDNph" target="_blank">https://github.com/yoursunny/NDNph</a></div><div><a href="https://github.com/yoursunny/esp8266ndn" target="_blank">https://github.com/yoursunny/esp8266ndn</a></div><div><a href="https://github.com/usnistgov/PION" target="_blank">https://github.com/usnistgov/PION</a></div><div><br></div><div>They should still work and they are compatible with most other NDN implementations, but I'm not planning on further development on them.</div><div><ul><li>The codebase is constrained by needing to support C++11 for the nRF52832 port, which is now an outdated standard.</li><li>The arena memory manager at the core of NDNph codebase was improperly designed due to my lack of experience, which makes it difficult to add new features.</li><li>It's difficult to implement StateVectorSync with only statically allocated memory.</li><li>It's difficult to implement certificate retrieval with only statically allocated memory. There would be no LightVerSec if certificate retrieval cannot be implemented.</li></ul></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 class="gmail_quote"><div>We chose Contiki NG OS because we have some know-how about it. We know it is easily ported to POSIX (i.e. RIOT) At least, we want to give it a shot. I am also curious if I can manage to integrate it for the NDNComm 2025 Hackathon.</div><div>We also plan to use it with RIOT.</div></div></div></blockquote><div><br></div><div>If you are only using the software in POSIX on a computer, you may as well use NDNd or other codebase designed for the computer.</div><div>There is "zero or negative" value in porting software to an "IoT platform" that is only tested on the computer.</div><div><br></div><div>It only gets interesting when the software goes into an actual microcontroller, where the RAM is highly constrained.</div><div>So, which microcontroller are you targeting?</div><div>What are the capabilities and constraints of this microcontroller?</div><div>Does the TinyGo compiler for this microcontroller?</div><div><br></div><div>For the NDNph + esp8266ndn + PION combination I mentioned above, they were developed and tested on three microcontrollers: ESP8266, ESP32, nRF52832.</div><div>Note that Raspberry Pi and similar devices that run full Linux distributions are not considered "IoT devices", but are full computers.</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 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>It is not interoperable with any other NDN codebase due to the usage of a different fragmentation protocol (see <a href="https://redmine.named-data.net/issues/4814" target="_blank">https://redmine.named-data.net/issues/4814</a> ).</div></div></blockquote><div><br></div><div>Possibly, there will also be issues in the future versions. I question if we can design a perfect one at all. We want to start from somewhere, and NDN-Lite sounds like a good one and only candidate AFAIK. (I'll check NDND) We planned to integrate NDN-Lite to Contiki OS because both are in C. There might be ways to connect C and Go, but It will require more expertise I assume.</div></div></div></blockquote><div><br></div><div>The Go programming language contains CGo, which connects C and Go.</div><div>It's supported by both Go compiler and TinyGo compiler.</div><div>Note that this is only for C code, but not C++, D, Zig, etc.</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 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>It also lacks a data synchronization protocol such as StateVectorSync, which is believed to be an essential functionality needed by many NDN applications.</div></div></blockquote><div><br></div><div>I do not know about StateVectorSync. I'll check it. Thank you for addressing me. Do you think that it is a MUST for NDNoT?;</div><div></div></div></div></blockquote><div><br></div><div>Data synchronization protocol and schematized trust are considered essential for NDN IoT.</div><div>See "Trust schemas and ICN: key to secure home IoT" by Pollere Inc: <a href="https://pollere.net/talks.html">https://pollere.net/talks.html</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 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><br></div><div>Moreover, NDN-Lite has been moving away from its roots in small IoT devices.</div><div>The <a href="https://github.com/named-data-iot/ndn-iot-package-over-nordic-sdk" target="_blank">ndn-iot-package-over-nordic-sdk</a> repository, last updated in 2019, is the only port of NDN-Lite that can run on a microcontroller.</div><div>New additions in the main NDN-Lite repository have not been tested on a microcontroller, and I have noticed that they may consume a substantial amount of RAM.</div></div></blockquote><div><br></div><div>We can consider these issues into our agenda. I need to find manpower for them. </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><br></div><div>Therefore, I believe that trying to port NDN-Lite to another platform would be wasted effort, unless the above issues are addressed first.</div></div></blockquote><div><br></div><div>AFAIK, your "Sovereign: Self-Contained Smart Home With Data-Centric Network and Security" uses NDN-Lite. As I see it, it was for a small-scale NDNoT environment.</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><br></div><div>Nowadays most of the new developments are in <a href="https://github.com/named-data/ndnd" target="_blank">ndnd</a>, a codebase written in Go.</div></div></blockquote><div><br></div><div>Thank you for sharing NDND with me. I did not know about it. I'll check it. Lixia is giving me a lot of homeworks that I am trying to catch up with (Just kidding.) It's good. I'm learning. I am doing my best to find manpower. However, everyone is going after AI/ML/DL nowadays. I am trying to make  AI+Network attractive as much as I can. People should understand that AI+Network is a much more unexplored area. Another tech is Quantum. Maybe we should put some Quantum Internet, Quantum NDN into our agenda. + always security.</div></div></div></blockquote><div><br></div><div>Do you have expertise in quantum networking?</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 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>It is interoperable with most other NDN systems and supports recent protocols like StateVectorSync and LightVecSec.</div><div>Using the TinyGo compiler, a Go program may be compiled to run on dozens of microcontrollers.</div><div>If you are interested in running NDN applications in IoT devices, I'd suggest trying to compile portions of ndnd with the TinyGo compiler.</div></div></blockquote><div><br></div><div>This information is invaluable to me.Definitely, I'll start learning about it ASAP. Just a naive question: what are the differences between NDND and NFD other than having different programming languages? Why NDND?</div></div></div></blockquote><div><br></div><div>We are hoping this question would be answered in the NDNd presentation at the upcoming NDN Community Meeting.</div><div><br></div><div>Yours, Junxiao</div><div><br></div></div></div>
</div>