Interview with Caleb James DeLisle of cjdns

This is the latest installment of our Licensing and Compliance Lab's
series on free software developers who choose GNU licenses for their
works.

In this edition, we conducted an email-based interview with Caleb
James DeLisle, the lead developer of cjdns, an encrypted IPv6
networking protocol and server software that uses public key
cryptography for address allocation and a distributed hash table for
routing.

What inspired you to create cjdns?

When I started, I wanted to make a better protocol that brought
network infrastructure ownership within the realm of possibility for
technically savvy hobbyists. Where I live, the only way to get Internet
access is via one of two behemoth companies, which I'm sure are
well-intentioned, but do not innovate on price or performance like in
other countries.

Underlying cjdns is a belief that social problems, like unwarranted
domain seizure and mass wiretapping, are the results of poor protocols
that place too much power in the hands of the few. As a legal
professional, I'm sure you can recognize the importance of protocols,
electronic or human, in defining society.

How are people using it?

We have a testing network called Hyperboria, it has somewhere around
five hundred nodes, and it is a place where people can learn about
cjdns and the administration of a network using this new technology.

I don't use social networks like Facebook and Twitter, I find there is
something creepy about sharing one's innermost feelings with a faraway
faceless corporation. Maybe I'm not social enough -- maybe I'm just
cranky and miss the web I grew up with -- but there's something about
the clinical sterile nature of web 2.0 that feels like a shopping
mall. For me, Hyperboria has become something of a refuge, with about
one hundred active participants, it's a bit like a food co-op or a
farmer's market. There are times when I do want to share my feelings
with people, but not with the whole world. I enjoy using some of the
many great services in Hyperboria to write a blog, tweet, or upload a
funny picture.

What features do you think really sets cjdns apart from similar software?

This is a hard question to answer, some people compare cjdns to TOR or
I2P because cjdns is capable of allocating IP addresses
automatically. This comparison is not quite right because cjdns is
capable of routing without the underlying Internet and it doesn't
offer anonymity. It has also been compared to other routing protocols
such as OSLR, HSHS, Babel, and BATMAN. These comparisons are closer in
spirit, but these protocols fulfill on a very narrow and specific set
of requirements in order to be interoperable with other networks, and
these requirements do not allow for the security or design decisions
that make cjdns what it is.

Why did you choose the GNU GPL version 3 (or later) as cjdns's license?

The real answer is rather boring. I just chose GPLv3+ because it was
there. Since having made that choice, I have come to appreciate the
strong copyleft aspect of the GPL and believe it is an especially good
choice of a license. In particular, it is often the case that the GPL
creates a sort of "stable political environment" in which competing
business will collaborate-on and use the same code base. I wrote in
depth about this aspect of the GPL on my blog, which is available
exclusively to members of the Hyperboria network.

How can users (technical or otherwise) help contribute to cjdns?

We are in desperate need of people with mathematical backgrounds
and/or C programming skills; cjdns is a complex codebase and the
protocol has not reached a point of stability yet. It is believed that
this unique type of network will scale but since such a system has
never been built before, knowledge of how to tune it is simply
nonexistent.

What's the next big thing for cjdns?

I don't really know. It's certainly going to be exciting when people
begin setting up wireless devices and building actual physical meshes.
I would like to see a micropayment system so that people in these
networks can crowdfund the cost of the fiber drop to feed that
community. Since a lack of central authority is a founding principle
for cjdns, such a system would have to be quite complex.

Please see the cjdns entry in the Free Software Directory
for more information.