Introducing NDNph and New Version of esp8266ndn

NDNph is my latest Named Data Networking (NDN) client library. This article gives an overview of this library.

History and Motivation

In 2016, I started esp8266ndn. It contains a copy of ndn-cpp-lite, UCLA REMAP's C++ library that does not use dynamic memory allocations. I then added integrations with ESP8266's network stack and crypto functions, making esp8266ndn the first NDN library that works on the ESP8266 microcontroller. Using this library, I built several projects, including a wearable jewelry and a call button. University of Memphis also deployed several sensor nodes using esp8266ndn.

Over the years, esp8266ndn gained many new features, and widened platform support to include ESP32 and nRF52. However, using ndn-cpp-lite as the core is becoming problematic:

  • New protocol features show up slowly, because ndn-cpp-lite author would not add a feature until ndn-cxx has it, and design discussions for ndn-cxx sometimes take several years.
  • There is no generic TLV encoder/decoder, making it difficult to support TLV structures in application layer.
  • ndn-cpp-lite is bloated with obsolete features, due to their backwards compatibility guarantees. Consequently, binary code size is unnecessarily large.
  • Although I can add patches to ndn-cpp-lite during importing into esp8266ndn, it has been difficult to test these patches. This isn't ndn-cpp-lite's fault, but is still an issue.

Thought Provoker #3

The title comes from a geocache named Thought Provoker #3. Inside the container there is a thought provoking question:

If you could travel across the United States of America (and had no other obligations, financial or time constraints) what mode of transportation would you use and why? Walk/run, ride a bike, ride a motorcycle, hitchhike, drive a car, drive a RV/motorhome, take trains, or something else?

Here are my answers.

First Choice: Geocaching Express 6000

The Geocaching Express 6000 GPS Receiver is a powerful GPS receiver, as shown in Geocaching International Film Festival (GIFF) 2019:

Geo-snatching

Geo-snatching is the act of finding loopholes instead of geocaches.

This includes:

  • armchair geocaching;
  • hacking your smartphone's location so you can log Adventure Labs or solve Whereigo cartridges without visiting the location;
  • logging an FTF on a friend's cache that you helped place;
  • finding your own caches by adopting it to a sock puppet account (aka rule 52612);
  • other general tomfoolery.

The term geo-snatching was invented by gsmX2 on this Facebook post. This article explains what geo-snatching or geosnatching means in geocaching, and how a geo-snatcher or geosnatcher differs from an honest geocacher. Content of this article does not necessarily reflect blog owner's views.