Interview with Caleb James DeLisle of cjdns
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.
Enjoyed this interview? Check out our previous entry in this series featuring Bernd Kreuss of TorChat.