Why Ownly does not Work on the ndn6 Network? A Decade of Policy-Blind Routing

Stardate 1481.6, Antwerp. Three friends opened Ownly, the flagship NDN application developed and published by UCLA Internet Research Laboratory. They started typing into the decentralized collaborative editor, but one of them cannot see the edits. They checked the connection: 📶 online. They checked the prefix registration: ✅ successful. However, the document will not sync.

What worked seamlessly in a UCLA lab failed in the wild because of a missing feature in the routing protocol. This article moves beyond the #2856 confinement issue in the last episode and identifies additional gaps that prevent applications from working across autonomous system boundaries. In particular, we assume a relaxed prefix registration policy that allows the Ownly application to register its desired prefixes in both the global NDN testbed and the ndn6 network, and explore what other features are necessary in order to enable the sync-based communication patterns.

Inter-Domain Routing Built on Grep and Hope

I currently operate two global-scale networks: AS200690 and ndn6.

  • AS200690 is an IPv6-only network registered with RIPE NCC. I have eight routers connected with each other via WireGuard or GRE tunnels. Each router runs the BIRD Internet Routing Daemon in a KVM server.
  • ndn6 is an independent NDN network. I have six routers connected via UDP tunnels over IPv6. Each router runs the NDN Forwarding Daemon (NFD) and NDN Link State Routing (NLSR) in Docker containers.

Why Ownly does not Work on the ndn6 Network? A Decade of #2856

Christmas week 2024, Sydney. A user opened Ownly (then called NDN Workspace), the flagship NDN application developed and published by UCLA Internet Research Laboratory. Her laptop could reach the network, but it couldn't publish. Every attempt to register a prefix was met with a blunt "403 prefix-disallowed" error.

What worked seamlessly in a UCLA lab failed in the wild because of a collision between competing network philosophies. This article looks back on operations of two NDN networks under different philosophies, analyzes why the Ownly application is incompatible with one of the networks. Then I present the lessons learned and identify the practical gaps on why NDN is not ready for transitioning from a "UCLA experiment" to a "global Internet".

ndn6 Network and NDN-FCH 2021

Since 2021, I (re)started operating the ndn6 network, my own global scale NDN network. The ndn6 network is connected to the global NDN testbed but not a part of it. It's an independent network that conforms to the NDN protocol, but has its own routing protocol and prefix registration policies.

The same year, I participated in the NDN-FCH: The Big Rewriteâ„¢ project at the 11th NDN Hackathon, during which I led a team to build a new version of "Find Closest Hub" service:

Deep Atlantic Storage: Rewriting in Rust

I have been coding in C++, Go, and TypeScript for many years, but recently I started learning the Rust Programming Language.

Why Rust

I choose to study the Rust programming language because:

  • Rust is one of the major system languages that I do not know.
  • Rust, just like Go, is a memory safe language, apparently now a national security issue.
  • Rust, unlike Go, does not have a garbage collector.
  • Rust, unlike Go, does not have a nil pointer.

The last point is particularly important. In Go, I often find myself writing a method with pointer receiver:

New Avatar

2025 avatar

In computing, an avatar is a graphical representation of a user, the user's character, or persona. An avatar can be a two-dimensional picture, also known as a profile picture or userpic, or a three-dimensional digital representation, often used in games.

My existing avatar has been in use since 2010. It was created from a selfie taken at Expo 2010 Shanghai, where I proudly visited every pavilion. I stood in front of the Expo Axis, placed my Canon E1000D atop a trash can near the Hong Kong pavilion, and used the self-timer feature of the DSLR camera to capture the selfie. The picture depicts me wearing a white sleeveless shirt and a black backpack, in front of background of trees, people, and the Expo Axis. Subsequently, I cropped the image with Adobe Photoshop, blurred the background, and produced the final image.

Over the years, as I expanded my online presence, readers from dozens of social media websites and forums have seen my avatar. It has become part of my online identity, my personal brand.

In 2016, I realized that I still have the same shirt as shown in my avatar. On the 6-year anniversary of the original picture, I took a new photo of me in the same outfit, in front of a cactus behind the university. In 2020, I did it again for the 10-year anniversary, but indoors due to COVID-19 pandemic. Nevertheless, I did not adopt either picture as my avatar, because they have drastically different backgrounds and would make me unrecognizable online.

Multiverse: A Simulator for Evaluating Entanglement Routing in Quantum Networks

Published in: IEEE Internet Computing (Volume 30, Issue 1)

We present MQNS, a discrete-event simulator for rapid evaluation of entanglement routing under dynamic, heterogeneous configurations. MQNS supports runtime-configurable purification, swapping, memory management, and routing, within a unified qubit lifecycle and integrated link-architecture models. A modular, minimal design keeps MQNS architecture-agnostic, enabling fair, reproducible comparisons across paradigms and facilitating future emulation.

Read full paper at IEEE Xplore: Multiverse: A Simulator for Evaluating Entanglement Routing in Quantum Networks

MQNS logo

MQNS software available on GitHub: Multiverse Quantum Network Simulator