Development Update #26

Summary:

The darknet repo has been removed and moved into Skywire and Whitepaper.

Two thousand lines of coin have been removed from Skywire. It does the same thing, is much cleaner now. The daemon almost works. Will have some development documentation and sample apps soon.

The remaining issues for the meshnet/darknet have been worked out, specifically:

There is architectural issue, about the relationship between gnet, Skywire and the relay service. It was not clear whether these should be merged into a single library or whether the darknet router should be a service in Skywire or if Skywire should sit on top of the darknet. There are several constraints: - the lowest level router must be something that can be implemented in C and has small ASIC foot print - there has to be separation between the Golang layer and C layer - some components such as DHT, operate both on the darknet and over UDP over IP

The darknet router service was originally going to be a service in Skywire, but it will now be an independent implementation with Skywire connectivity being built over the darknet.

The darknet router has to handle several cases:
This is complicated by there being different types of connectivity:
This was confusing, until we figured out that there are actually two identities and pubkeys:

In other words, router addresses are not necessarily the terminal point for routes. This is not intuitive at all, but there are several reasons to separate out the topology for physically routing messages and the 0addresses for communication end-points (addresses that receive messages). In IP we take it for granted that routers and communication end-points are in the same address space, but this assumption complicates the design of the darknet. This also means that communication end-points on the network are intrinsically multi-home.

No translation bounty

Discuss this post on telegram

Skycoin Telegram