On the heels of a public test phase, the Haven team has been busy preparing for the mainnet launch of xUSD. The bulk of our work has focused on completing development of a new Haven daemon to make key enhancements and address issues identified by community members in the public testnet.

We’re excited to share these improvements and grateful for the community participation that led to them. The following is an in-depth look at what’s happening.

A New Haven Daemon

The Haven daemon is a program operating in the background that synchronizes a Vault with the Haven network, scans for incoming transactions, and sends new transactions. Most importantly, the daemon also enables xUSD exchanges by retrieving the exchange price from the pricing oracle and submitting it along with each xUSD transaction.

In advance of xUSD mainnet launch, updates have been made to the daemon to enable (1) support of additional xAssets in the future; (2) supply transparency of xAssets; and (3) a new mechanism by which pricing records are embedded in each transaction.

Here’s a little more information on issue (3): previous versions of the Haven daemon, including the version currently running on the public xUSD testnet, provide a quote of the XHV to xUSD exchange price at the time a user submits a transaction. However, the final exchange price for each transaction is not included in the block header until that block is actually mined.

This gap in time — between when a user submits a transaction and when the transaction is mined — is usually not very long. Under normal circumstances, it averages only a few minutes. But under heavy network activity, this gap can grow significantly. That means some transactions are forced to wait behind other transactions before being given a final price by being added to a block.

If left unresolved, this could create a situation where the xUSD exchange price a user sees in their Vault is not the same as the final transaction price.

While the new daemon will be invisible to users in their Haven Vault, this update makes a significant and crucial change to the xUSD exchange process. The new Haven daemon changes the time at which pricing information is taken for xUSD exchange transactions.

Pricing information will now be included for each transaction at the time of a user’s submission in the Haven Vault, instead of when a transaction is mined. As a result, the xUSD exchange rate will always be accurate and equal to the price displayed to a user at the time of a transaction.

Development work on this entirely new Haven daemon has been time consuming. It is now coded and has been deployed for private team testing with success.

As stated above, the new daemon will also enable the use of additional xAssets in the future (such as xEUR, xGOLD, xBTC, etc) and allow for the implementation of a transparent supply of xAssets.

As you may recall, the Haven community and team elected to enable visibility of all XHV and xAsset circulating supply numbers while retaining full privacy for transactions, balances, and addresses. This will allow more efficient monitoring of the Haven network, greater user confidence to enter the Haven network, and more precise analysis on coin metrics websites.

In final preparation for the xUSD mainnet launch, these significant changes to the Haven codebase will require us to fork the testnet in the coming days and deploy the new Haven daemon for testing. We look forward to the feedback from this round and appreciate your participation.

The updated code for the new daemon will be released to pools and exchanges when we announce the date for xUSD mainnet launch. It will then be released publicly as open source code, along with the xUSD exchange codebase, when xUSD goes live on Haven’s mainnet.

Supply transparency and testnet fixes

The solution to enable supply transparency of xUSD and future xAssets will be detailed in a Medium post soon. This post will include technical explanations and a summary of how we plan to maintain Monero’s privacy standards while enabling the desired supply transparency.

We’re also working to address a small number of UI issues identified by the community in the xUSD testnet, including displaying total Vault balances, improving transaction status messages, and making it easier to identify asset balances when exchanging. Finally, we’re addressing an issue identified in testnet that in some cases shortens xUSD unlock times if a user is not fully synced to the blockchain.

Haven would like to thank our community members who helped identify and discuss these issues during the xUSD testnet. Our collective efforts have made the Haven network more secure and reliable in preparation for mainnet launch of xUSD.

Next steps

Carefully completing all of the work outlined above is essential to successfully launching xUSD. In the coming days, the testnet will be forked to deploy the new Haven daemon. We will then announce the specific xUSD launch date in Part 2 of this Medium article.

The nature of building innovative new technology is that work does come up with unknown time requirements for completion. With that being said, we are on track to complete the mainnet hard fork and launch xUSD in February or early March.