Unification Developer Update — September 2024

Codegnosis
Unification Foundation
7 min readSep 9, 2024

Hot on the tail of our last update, we’re pleased to announce the successful MainNet upgrade which includes the deployment of our new Payment Streams module. We’ve also made incredible progress on UNoDE Phase 2. There’re also a fair amount of other items to cover this time, including progress on the partnerships mentioned in our previous Developer Update article and a number of other features in the pipeline for development.

Dev Work to Date

MainNet Upgrade

FUND MainNet was successfully upgraded at 12:11:59 UTC on 29th August 2024 at block height 12,210,000. It took around 3 minutes for ⅔ validator power to complete the upgrade and continue producing blocks, with the vast majority of the remaining validator power coming online within 5 minutes of the target upgrade block. Once again, a huge thank you to our highly valued validators who continue to be consummate operators! You’re all fantastic, and we’re lucky to have such a brilliant validator community.

The network is now running undv1.10.x (codenamed pike), which is built on Cosmos SDK v0.47.x, and implements IBC v7.7.0. Noticeably, Cosmos SDK v0.47.x marks the first major migration to the new CometBFT, replacing Tendermint as the consensus layer for all Cosmos based chains.

In addition to the new Payment Streams module developed by the Unification Foundation (see below), the upgrade also integrates the consensus and group Cosmos modules.

Additionally, the upgrade unfreezes the BitForex wallet, enabling movement of FUND stored there on the Unification Blockchain. (Although Unification is not affiliated in any way with Bitforex, we have reached out to the team to offer aid for any further assistance needed to enable/expedite what’s needed on their side, and will update our community once there’s been an update)

Payment Streams

We’re proud to announce that the new Payment Streams module is now deployed and running on MainNet! Inspired by Superfluid’s Money Streaming, the module allows any user to set up a payment stream between a sending wallet and a receiving wallet. Streams are initialised such that payments are calculated as “tokens per second”, using the lowest denomination of the tokens (for example, nund for FUND payments). This means that in addition to the standard method for transferring, say, 100 FUND to a user, it will also be possible to send 100 FUND over the course of a specified amount of time (for example 100 FUND per month), and modify the amount/frequency at any time.

Withdrawals can be executed by the receiver at any time during the stream’s active lifetime, with the amount received being calculated from the point of either the last withdrawal time, or the time of stream creation (whichever is the latest).

The sender can modify a stream at any time — increasing/decreasing the flow rate (for example, if they wish to change a subscription payment to a higher/lower tier), and topping up the stream with tokens (for example, to continue paying for a subscription service). Senders may also cancel their stream at any time, at which point the module will calculate and reconcile remaining withdrawals and refunds, forwarding the amounts to the respective wallets.

Additionally, validators can earn fees from all payment streams processed on the chain. The validator fee on MainNet is currently set to 1%. This parameter can be modified via governance.

Payment Streams will be integrated into UNoDE in an upcoming update, thus allowing native FUND to be used to pay for UNoDE subscriptions, and we’re excited to work with our partners to help them utilise native FUND payments.

A more detailed and dedicated article covering all aspects of Payment Streams is forthcoming, and both end-user and developer documentation will be published here.

Block Explorer Update

Our block explorer has been updated to use the latest upstream changes from the ping.pub repository. This has been rolled out to both TestNet and MainNet, with some modifications to accommodate and display the Payment Streams parameters.

The updates include an upstream fix for the IBC connection and channel statuses, which are now displayed correctly — https://explorer.unification.io/u/ibc/connection/connection-1.

Internal Services Migrated to UNoDE

We continue to migrate many of both our in-house and public services to utilise UNoDE RPCs to communicate with their respective chains. So far, the following have been successfully migrated from Alchemy/Infura to UNoDE:

  • OoO Ethereum mainnet
  • OoO Shibarium
  • VOR Ethereum mainnet
  • VOR Shibarium

Services planned for migration include the Block Explorer (MainNet), and our public MainNet REST/RPC interfaces. We anticipate these to be seamless.

WIP

fundjs

Currently in development is a new Javacript library for Unification Mainchain. The new fundjs SDK is built using Telescope — a Typescript transpiler for Cosmos protobufs. This new standardised library will include bindings for all Cosmos SDK modules, IBC applications and our custom Mainchain modules and will be available via the NPM package manager. This will be released along with fundjs-react, which also includes React hooks.

Developers familiar with existing SDKs such as cosmjs and osmojs will easily be able to use fundjs in their Cosmos based Web3 applications, allowing them to implement the new Payment Streams module, in addition to integrating any other Mainchain module.

A repository containing examples - including a simple React & Keplr UI for Payment Streams - is also in the works, and progress can be tracked on Github.

QOM Network Partnership

We’re excited to be working with QOM Network, an EVMOS & Cosmos SDK based L1 network and DEX. We are working closely with their development team to bridge xFUND to the QOM Network, and this will be closely followed by deploying both VOR and OoO on QOM, making it the first chain in the Cosmos ecosystem to be supported by the platforms.

Further, we are planning on integrating the QOM Swap DEX into OoO as data source for AdHoc price queries, making it the first Cosmos based DEX to be supported as a data source by the platform.

VOR Integration Partnership

We have been approached to partner and work on elements of VOR for multi-chain integration on an exciting new Blockchain project building a large community around NFT & Real World Assets.

The project (still in stealth) will use VOR on Ethereum mainnet as a primary engine and the team has committed to xFUND purchase through its initial stage. We look forward to sharing more once the project is live/out of stealth in the upcoming months.

Mainchain Cosmos SDK/IBC Upgrade

Work on the next mainchain upgrade has begun. Codenamed scanlan, it will implement the Cosmos SDK v0.50.x and IBC v8.4.x releases. In accordance with our usual mainchain release schedule, we aim to deploy this around the beginning to middle of Q2 2025.

UNoDE Phase 2

An enormous amount of progress has been made on UNoDE Phase 2, and we’re really excited to be so close to inviting alpha users to test! We still have some final development and internal testing to undertake, but we’re hoping that in the next few weeks we’ll be able to start sending out invites to alpha testers. If you’re interested in becoming an alpha tester, please get in touch — we’re specifically looking for experienced node operators at this stage (with the intention of making the integration process accessible to all levels of operator experience).

We have covered Phase 2 extensively in the past, but briefly for the sake of brevity, it will allow any node operator to add potentially any blockchain network RPC node they control/operate to the UNoDE backend in order to serve data requests via the end-user API. Any successful requests served by their nodes will receive a percentage payment from UNoDE subscriptions. This means, for example, that an Osmosis RPC node operator can add their node to the UNoDE family, and get paid for serving data requests.

Work completed so far includes:

  • Node Operator UI, allowing operators to add new RPC nodes to the UNoDE network (currently both Cosmos SDK and JSON-RPC/EVM compatible chains), and manage existing nodes
  • Routing API, allowing third party nodes to be utilised by the UNoDE network
  • Verification scripts — to be run by operators to verify ownership/validity of their node(s)

The final pieces of Phase 2 currently being worked on and near completion include:

  • Payment calculation for successful requests to third party nodes
  • Penalty calculation for poor performance
  • Payment distribution method.
  • Subscription payments in native FUND using Payment Streams (using fundjs)

We’re really looking forward to working with node operators during alpha testing.

In the Pipeline

Web Wallet Makeover

We’re still in the early decision stage at this time, but we intend to give Web Wallet a makeover, following the recent updates required to ensure its Manifest v3 compliance. Some possibilities under review include:

  • Port from Vue to React
  • Migrating from und-js-v2 to fundjs
  • Integrate Payment Streams management
  • IBC integration
  • Local, internal encrypted storage of transaction history (similar to Metamask)
  • Multiple wallet management and local encrypted storage of the wallet seed (similar to Metamask), and phasing out of JSON file based wallets

These are mid- to long-term plans which will take a while to come to fruition while we prioritise more immediate projects.

Outro

We’ve accomplished a lot as a community in the past couple of months — the MainNet upgrade, UNoDE Phase 2 progress and our new partnership developments. We’re looking forward to the work ahead, the interesting challenges involved and to inviting our alpha testers to UNoDE Phase 2. Once again, a huge thank you to all our validators — your continued support and professionalism is greatly appreciated!

Important Links

GitHub: https://github.com/unification-com

Telegram: https://t.me/unificationfoundation

Discord: https://discord.com/channels/725618617525207042

Website: https://www.unification.com

UNoDE: https://unode.unification.io

Documentation: https://docs.unification.io

--

--