I guess that most work needs to be done in Crust before we’ll see the next testnet. This is the layer where computers connect over the IP-protocol. Here are the last updates:
Crust
This week we mostly worked on the netsim and tokio-utp crates. netsim is currently able to only parse and construct TCP packets. We extended it a little to recognize flags (control bits) and TCP options, e.g. selective acks. Also, IPv6 is a first class citizen in netsim and now it is finally supported. uTP is another tough cookie and we are still working on graceful connection shutdown issues. In the meantime, we managed to setup CI for the tokio-utp crate which lead us to discovering new bugs. In some cases, our uTP implementation sends Reset packets back, e.g. when the connection limit is reached and we receive a new Syn packet, or when some random packet with unrecognized ID comes, etc. It turns out the Reset packet is not always correctly sent out. Although, it’s worth to mention that the fix is on the way While doing various fixes to our uTP implementation, we raised some issues on the specification: https://github.com/bittorrent/bittorrent.org/issues/83 , https://github.com/bittorrent/bittorrent.org/issues/84 . Hopefully, the rest of the community will be able to make a use of our discoveries too.
And…
Crust
Another week spent on polishing our uTP implementation. Bear in mind that it’s still at its infant stage, so we keep hitting some bugs. Since last week we’ve been implementing graceful uTP connection shutdown, which will act exactly like TCP. It’s almost done, but in the meantime, we found a couple new bugs which must be fixed first:
in some cases, connection close sends two Fin
packets instead of one - the remote peer doesn’t expect that
our congestion control implementation panics recalculating packet delays
Fixes for both issues are on the way and should be implemented in a matter of days. A nice side effect of those fixes is that with every change we keep adding more automated tests. Hence, tokio-utp is getting more robust and comfortable to work with
Speaking of testing, we keep investing a big piece of our time in netsim. Note that it’s still under heavy development. We’re highly experimenting; library interface, source code structure is radically changing. Currently, the documentation might be out of sync, but that’s a natural transitional stage
Have a look here for more info and the code.
Former testnets all worked with the TCP-protocol which is reliable but not as fast as you want for P2P. MaidSafe is now working on the µTP-protocol .
Another interesting quote came from David:
We don’t anticipate forum participation for alpha 3 or 4 as we did with 2. Resource proof is still good though as vaults that would only cause network traffic by microjoining (for a second or 2) are put off as well as nodes that just could not cope as vaults. We will close in on details of those very soon, we have just been a wee bit busy in the last few months
So no need to register on the forum and use a link etc. Alpha 3 will be open to all who want to test
18 Likes