This week we announce the release of Omni Core v0.7.1.
Omni Core 0.7.1 paves the way for trading any asset on the Omni Layer for Bitcoin in a decentralized fashion and it adds new commands to accept and execute orders on the distributed exchange.
Please note, if you have not yet upgraded from 0.6 or earlier versions: Omni Core 0.7 changed the code base of Omni Core from Bitcoin Core 0.13.2 to Bitcoin Core 0.18.1. Once consensus affecting features are enabled, this version is no longer compatible with previous versions and an upgrade is required. Due to the upgrade from Bitcoin Core 0.13.2 to 0.18.1, this version incorporates many changes, so please take your time to read through all previous release notes carefully. The first time you upgrade from Omni Core 0.6 or older versions, the database is reconstructed, which can easily consume several hours. An upgrade from 0.7 to 0.7.1 is seamless.
Lots of news to share in this year-end update! This update includes the following sections:
Omni Core 0.7.0 Release
Omniwallet User Experience Refresh
OmniBOLT development updates
Omniwallet-Mobile from OmniLAB
OmniJ and related work
Decentralized Exchange Upgrade
Omniwallet.org Regional and Functional Restrictions
Omni Core 0.7.0 Release
Thanks to the sponsorship from Tether, Omni Core maintainer dexX7 (https://github.com/dexX7) and Peter Bushnell (https://github.com/Bushstar), the creator of Feathercoin, have completed and released Omni Core 0.7.0. Among other features this release rebases all Bitcoin Core 0.18.1 improvements into Omni Core.
Major updates are much faster indexing of transactions and the update to the decentralized exchange as described later.
Release notes for this major upgrade can be found on GitHub:
The talented team at Rana Dev (https://ranadev.io) has been engaged to create a new, updated version of omniwallet.org. The Omni team asked them to focus on usability and streamlining the most used aspects of the wallet, and to make the wallet work on mobile web. Initial prototypes are looking amazing and the team is pleased to share some examples of the new interface below:
OmniBOLT development updates
OmniBOLT is an in-progress specification, based on the fundamental theory of Lightning Network, describing how to enable Omni Layer assets to be transferred via Lightning Network channels, and how Omni Layer assets will benefit from instant payment on Lightning channels. We propose this Omni Layer-capable extended protocol to expand the horizons of basic Lightning Network, to support Omni Layer assets.
The OmniBOLT Daemon (OBD) is a golang implementation of the specification. It runs as an independent process connecting to a full node of Omni Core (version 0.7.0), which provides the on-chain services for Omni transactions on the Bitcoin network. The current OBD implementation is tightly-bound to Omni Core. Also currently being released is an API that enables light clients to communicate with OBD network. It is an easy way for our community to develop Lightning applications.
Applied the HD (Hierarchical Deterministic) mechanism for generating/managing OBD users’ address/keys/mnemonic words.
Finished HTL Contract for single node version of OBD. Tested on a user base of hundreds.
New OBD test procedures and documentation are updated.
The OBD query interfaces have been developed and improved, and an interface for querying user-related information has been added.
The following tasks are in our working pipeline :
Work in parallel with Omni Core team, who are developing new interfaces supporting SegWit in Omni transactions. We currently use some tricks to circumvent this part of work, in order to prove the concept. It works but is not secure enough. After the new features of Omni Core are ready, we will change our code base to the new Omni Core.
Larger scale tests of HTLC.
Try to connect OBD to the LND network. At least we hope we can connect to the existing onion network.
Or develop own network module, to enable OBD nodes to talk to each other.
Complete path discovery/finding algorithms and transfers among multiple OBD nodes and any number of clients.
There is one aim for this syllabus: to instruct relatively unsophisticated programmers / audiences to understand the background, basic theory, and application of blockchain technology, grasp fundamental concepts, technical processes, specifications and their applicable scenarios. After passing this examination, audiences shall become a specialist with ability to develop blockchain products and applications. We are looking for the cooperative institutions globally to spread our certification standards and the technical culture of Omni.
We have also begun working on mobile versions of OmniWallet, testing binaries are available in our repo. OmniWallet-mobile is a native wallet for Omni Layer assets, released on both Android and iOS. It currently supports Bitcoin and all Omni Layer tokens, providing Bitcoin & Omni Layer users with an ease-of-use and unrivaled blend of security. The wallet is completely open source, which includes a set of standard backend services, written in java/golang, and a mobile side app written in Dart (Flutter framework by Google).
A team of developers has created an electrum wallet plugin which supports Omni Layer assets. This will allow any electrum-based wallets to begin using Omni Layer assets such as USD₮ directly. These haven’t yet been put into the official electrum client but are available for testing here: https://github.com/engenegr/electrum/tree/3.3.4-omniplugin
Specification Cleanup and Documentation Efforts
We have recently started a project to update the Omni Protocol Specification and related technical documentation. This work has already begun and will ultimately include:
Converting the document from basic Github markdown to the more full-featured AsciiDoc markdown format.
Removing obsolete and historic sections of the Specification to focus on the details of the Protocol itself.
Updating the specification to include details on Class C transactions and other new features.
We also have created the Omni Layer Documentation Project repository. The README for this repository includes links to important existing documents. (If something is missing please let us know by submitting a Pull Request.) This repository also has a directory containing our first steps towards implementing Omni Layer Enhancement Proposals (OLEs) that will be the Omni equivalent of Bitcoin Improvement Proposals (BIPs).
OmniJ and related work
The OmniJ lead developer, Sean Gilligan (https://github.com/msgilligan), has been hard at work on improvements in bitcoinj and OpenJDK-based wallet framework technology that will allow us to build a bitcoinj-based Omni Layer wallet that can ultimately be deployed on mobile, desktop, or server. Since bitcoinj provides lightweight serverless blockchain access (SPV mode) this architecture provides nice decentralization at the Bitcoin layer and only relies on Omni Core API servers for Omni token balances. The initial focus is on a desktop wallet, which should be appearing in alpha-test versions. OmniJ will also be updated to finally support Class C transactions.
Decentralized Exchange Upgrade
As some know – but few use – the Omni Layer provides a fully-decentralized exchange mechanism on the Bitcoin blockchain: one feature allows you to swap between BTC and OMNI tokens, and another allows for the exchange between any Omni Layer tokens (e.g. USD₮ <-> MaidSafe). The team calls these the DEx and the MetaDEx. With the 0.7.0 update Omni Core and the forthcoming Omniwallet interface update, the team would finally like to open up the primary decentralized exchange to work between BTC and any Omni Layer token directly on the Bitcoin blockchain. The team is working on the functional interfaces within Omniwallet and the proper RPC calls within Omni Core, at which point the Feature Activation transaction necessary to make the feature live will be broadcast to the blockchain.
Omniwallet.org Regional and Functional Restrictions
Finally, the team has decided that due to laws and regulations prohibiting the export of services and technologies to certain countries and jurisdictions, Omniwallet.org is now blocking all connections from the following countries:
Also, in the forthcoming version of Omniwallet.org, users in the United States will no longer be able to use Omniwallet.org to interact with the on-chain Distributed Exchanges available on the Omni Layer protocol on the Bitcoin blockchain. Other wallet functions will be unaffected, and read-only information about offers, trades and prices from the DEx will remain available on Omniwallet and Omniexplorer. While this was a difficult decision, it protects the ability of the Omni developers to continue innovating cutting edge decentralized technologies for the benefit of all users.
I’d like to start this update with the reminder that the Omni Layer is an asset issuance and smart contract protocol that runs on top of the Bitcoin network. Some people have asked if Omni is a fork of Bitcoin, or its own network – and I wanted to reiterate that the Omni Layer is a meta-layer on top of Bitcoin. Omni uses the available space in the Bitcoin OP_RETURN mechanism to create an Omni Protocol ledger for tokens and smart contracts as a meta-layer on the Bitcoin ledger. In this way, Omni leverages the on-chain hashing power and security of Bitcoin’s Proof of Work system.
Tether itself is a tenant on top of the Bitcoin network. When Tether was architected, I had in mind not only a token that would hold parity with a dollar, but something that would demonstrate the extra-special capabilities of a decentralized ledger, and what applications on such a technology could achieve.
Using the Omni Layer, tethers are issued as a meta-token on top of the Bitcoin network, using the messages that Bitcoin transactions commit to this decentralized ledger. Instead of just moving a bitcoin, you were also saying “I’m moving a dollar from here to there.” In doing so, users would have a bearer-asset, just like BTC, with the same security and assurances provided to bitcoins on the Bitcoin network.
While tens of billions of dollars of tethers are traded daily on multiple exchanges off-chain, there are hundreds of millions worth of transactions daily on the Omni Layer, on-chain, directly on Bitcoin, moving those funds between wallets and exchanges. This demonstrates an amazing capability that I believe is being overlooked. The Bitcoin network is exceptional for securely passing value, no matter which token, BTC, USD₮, or otherwise.
The community has focused so much upon the bitcoins themselves and not on the fact that what we have is an immortal state machine that no one can turn off and no one can censor. Bitcoin’s built-in messages and capabilities can be extended with technologies like Omni that rely upon the immutability of Bitcoin ledger records kept within.
While Tether has begun issuing USD₮ on other blockchains such as the ERC-20 variant on Ethereum, I wanted to remind everyone that no network has the massive hash-power and security that the Bitcoin network provides, especially with the coming switch to PoS on the Ethereum network. If you care about immutability and security, or are a Bitcoin maximalist, we’ve built the Omni Layer for you!
We are excited to announce that Tether has provided sponsorship for additional developers to bring Omni Core up to par with Bitcoin Core 0.18 and to create further innovations on the protocol. The new release is currently being tested and should be available soon. The new release brings tremendous performance improvements, as well as cost savings due to much better fee estimation for transactions.
Additional functionality will be added to the protocol soon, to support native Segregated Witness transactions and features like send-to-many, enhancements that can lower the cost of individual transactions and keep cost low and integration needs easier for exchanges and integrators. We are also speaking with the Lightning and RGB community developer teams to determine how we can best integrate with them for off-chain asset movement.
Any individuals, exchanges or integrators who would like to submit recommendations and feature requests can do so by submitting a new issue on the Github Spec (https://github.com/OmniLayer/spec/issues), emailing firstname.lastname@example.org or join the telegram chat (https://t.me/OmniLayer). We’d like to compile a list of all integrators so that we can timely publish news and keep in communication with updates and recommendations.
Omni Layer Protocol Specification Updates
We are in the process of updating the Omni Layer protocol specification. This should help integrators better understand the data format used in Omni-encoded transactions. In addition, we are looking at ways to improve or optimize the protocol to allow for additional functionality.
We are looking into new ways that developers can encode instructions in OP_RETURN messages, to further enhance the capabilities of the protocol. Beyond decentralized exchange functionality, we are considering a number of options that would allow for different types of conditional sends of assets, in a more generic smart-contract language. We solicit any ideas and recommendations on what functionality is possible.
In the coming weeks, we have updates to share on a number of exciting developments:
Anyone who has looked into the Omni Layer and realized what it actually can provide on the Bitcoin network gets really excited about the future possibilities. We invite curious developers and innovators to examine the capabilities of meta-layer transactions on top of the Bitcoin blockchain and to contribute ideas to accelerate the development of new features on this time-tested platform.
Today we have released Omni Core v0.5.0 which addresses the previously identified startup delays/issues.
v0.5.0 is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory, and highly recommended. Prior releases may not be compatible with new behaviour in this release.
Note: the first time you run this version, all Omni Layer transactions are reprocessed due to an database update, which may take 30 minutes up to several hours.
Earlier last week we identified an edgecase issue in Omni Core which affected the client during startup. To recap from our tweet, when a client started it will fail to validate the cached freeze status and force the client to shutdown. The workaround was to start the client with `-startclean` which removed the cached files and forced a re-parse of the existing data, the downside is that this could be a very slow process.
We are happy to say the fix for this has been tested and will be included in the next release of Omni Core, v0.5.0, which is going through it’s final QA checks for publication shortly. A separate announcement post will follow with the details of the release when ready.
This is a reminder to the community that Omni is not and does not run any type of ‘Bonus’ events where you can ‘claim’ any sort of reward or token. Please be extra careful of any site that asks you to login to your Omniwallet or provide any sensitive information in exchange for free money. Remember If it’s too good to be true, then it probably is. Users should be suspicious of people or situations that offer any type of benefit and ask for very little in return.
Our next update has been rolled out this morning. This update brings with it some ux improvements including partner explorer transaction links, automated banner messages if issue is detected on backend, additional tooltips/banners for transactions. Also now available is the Feature activation list in the misc menu and several minor bug fixes/layout tweaks.
v0.4.0 is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory and highly recommended.
During startup the database is checked for consistency issues. If an inconsistency is found, all Omni Layer transactions are reprocessed. Depending on the hardware, this process can take several hours. While no issues are expected during this upgrade, it is crucial to also refresh overlay systems (e.g. balance caches for user accounts), if such a rescan is triggered.
Before updating Omni Core, you can manually perform a consistency check to ensure a proper startup by following the instructions located here: