We’ve completed the LIONESS specification for Mix payload encryption: https://github.com/logos-co/logos-lips/pull/329. This should provide the strong guarantees for payload integrity that we are looking for.
Our PR which adds the dial-back address to AutoNAT v2 has been merged in libp2p: libp2p/nim-libp2p#2354. You can now get the observed address as part of the callback, and use it to e.g. configure your announce address. This will be key in getting easy NAT traversal working for Logos Storage.
We’ve dug into the Logos Blockchain Poseidon2 hash implementation, discovered a few issues, and helped address them.
We have implemented and documented a more general version of the Sphinx packet format as part of our effort in providing a reference implementation for our transport layer over Mix. We’ve also created Haskell bindings for the Leopard erasure coding library for that same reason — transport layer will use erasure coding for space-efficient redundancy.
Improved the Implementation of the LIONESS wide-block cipher.
extracted libp2p mix example to a separate repo to test if it works over QUIC (instead of default TCP): marcinczenko/nim-libp2p-mix-example - potential improvements/fixes for the MIX protocol implementation to be discussed in the AnonComms meeting
getting through the spec and Haskell reference Haskell implementation (logos-storage/transport-over-mix/ - for now making sure I have Haskell env running and that it builds
next:
drafting the first primitive transport (chunking layer) over MIX - WIP
work out the “compressed address space” proposal for Logos Mix
implement and document a working version of the transport layer abstraction over Mix
Finalise the UDP experiment: most of the NAT seem to be Address and Port-Dependent Filter (APDF) as mentioned by this paper. The consequence is a client mode is needed for the DHT.
Update the NAT Traversal strategy to address the feedback and describe the strategy to retrieve the public IP.
Add dial-back address seen by peers in AutoNAT v2 in libp2p
Implemented Haskell bindings for the Leopard erasure coding library (this will be used in the reference implementation of the transport layer over mix protocol)