We’ve finished most of the iOS, iPadOS and MacCatalyst version of the
@radiumdotnet client. It was designed with a cross-platform client core written in C/C , an objective-c framework and finally client GUI code written in 100% objective-c to obtain the most native feel which cannot be achieved using Swift.
It supports multiple accounts based on a single seed using very strong cryptography, key-derivation using the blake3 derive key function and encryption using AES-256-GCM with full password support (no PIN numbers). We allow all common seed phrase lengths but we only generate 24-word seed phrases. Supports Schnorr or stronger signature schemes. No NSA algorithms were used.
Next up, while the radium nodes support native-to-token swaps and token-to-native swaps there is not yet any client support for making the swap offers, likewise there is no distributed pool for accepting, matching and batching these into the radium network. We will implement client-core logic for atomic swaps and then build out the network layer for swap offer match and batch. Thankfully last year we wrote the matching and batching engine so we just need to build out the pool layer.
The radium swap pool will simply be a decentralized overlay network on top of the radium consensus backbone. A client will forward a swap offer to one or two pool nodes and these will be replicated between pool nodes. When one pool node generates a pair of swap offers it will push the transaction to the next few leaders for processing. If pool nodes match conflicting pairs and submit them it’s simply “the fastest” of the pairs that gets executed.
After this we will focus on the android and linux client UI which should be fairly quick to implement given the massive ability to reuse code from the client-core engine, it’s basically just replicating the existing client GUI UX at that point.