In our last development update we announced the release of test-net0. The objectives of the roll-out for test-net0 was to identify edge cases, stabilize the existing code and establish its resilience with users across all platforms (Windows, macOS and Linux).

The focus was on the following:

Extended sealed boxes to include the architecture up until this point; Underlying cryptography that Tangram relies on Addition of Pedersen commitments; Addition of range proofs; Transaction sending and receiving; Offline transactions; Support for multiple “addresses” in the wallet (wallet key sets); Tor networking and identification of possible failures; Performance and security.

We identified critical bottlenecks between user's wallets (sending and receiving) through the message pool which would have hindered further tests across the network (therefore the modular approach).

Importantly identified enhancements and optimization that would benefit users and developers alike medium to long-term.

Updates for the past two weeks:

Added wallet rest API dependencies; [55cb005]

Added disable m_lock; [71f3629]

Adding exception handling; [53b1500]

Return zero when transactions is null; [7a3dd91]

Various Onion and Vault Refactoring. Bug fixes; [c7d5534]

General fixes for test-net0; [7365028]

Added file logging; [af20ff2]

Code clean. Output on committed sum; [09f77e1]

Fixed count; [d8ca527]

Added retry on sending coins; [0dc7054]

Added redemption key retry; [9580b42]

Added missing dependencies; [a8d3432]

Refactoring; [4cc04d1]

Fixed correct output when sorting change; [d19588f]

Fixed wallet create endpoint; [329b923]

Fixed missing memo when storing wallet transaction; [8da52d8]

Guarding keys; [9c15135]

Removing receiver output; [dad4a7c]

Added blind to transaction coin; [80fb061]

Fixed SSL/TLS secure channel when downloading redemption key file; [f78373e]

Return network key on error; [c0d32a8]

Begin local membership persistence;

Removed read stream; [804f5a9]

Included new dependencies; [f90b669]

Optimization and enhancements of message pool; [58a2b39]

Check if tor is already running; [6ee0e02]

Configure rest API endpoint; [7d1ec56]

Output just addresses. JSON profile available with rest api; [bcfefee]

Stop spinner when saving to disk; [a069b5d]

Format amount to F9 places; [a79c303]

Removed get change as we can get this from coin service; [7f2e3c0]

Added helper retry pattern; [fe2641b]

More refactoring; [5b184f0]

Even more clean up; [c94d74e]

Fixed floating point issue; [9de6933]

Added more exception handling with logging; [9a46809]

Fixed logical error. Passing coin service input amount when storing wallet transaction; [cd9e5a1]

Added nanoTan conversion; [31c6bd2]

Exception handling and logging; [9a16d79]

Use expressive Lambda’s; [ec0c6dd]

Fixed calculations when amount is decimal point; [1fafc23]

Add async on retries; [706b537]

Remove retries check; [07f9e54]

Save redemption key message; [d01f85f]

Base64 catch (clean-up to-do); [725f3f3]

Cleaner message deserialization using message converter;

Cleanup Onion Host name -> Ed25518 Public Key conversion;

Protocol support for composite message, a collection of signed messages;

Reject messages without CorrelationId. Dissemination;

Start moving membership into independent micro-service.

Identified bugs and status

Bugs that have been identified through submission of community members, includes status.

Legend

Completed — ✅ Under investigation — ❔ To be done — ❌

Fixed SSL/TLS secure channel when downloading redemption key file; [f78373e] ✅

Added disable m_lock ; [71f3629] ✅

; [71f3629] ✅ Floating point issue / range proof failed; [9de6933]; ✅

Dependence on OnionService hosted service; [c7d5534] ✅

hosted service; [c7d5534] ✅ 29 bytes address accepts send (must be 32 bytes in length); ✅

Shards (vault keys) sometimes do not unseal (unable to replicate — needs further investigation); ❔

SodiumCore SodiumCore dependency (needs further investigation); ❔

SodiumCore dependency (needs further investigation); ❔ libsecp256k1 dependency ( brew install gmp ). ❌