Skip to content

Commit

Permalink
Merge #1233: Update release notes for Omni Core 0.11
Browse files Browse the repository at this point in the history
Pull request description:

  This pull request updates the release notes for Omni Core 0.11.0.
  • Loading branch information
dexX7 committed Jul 2, 2021
2 parents ad1804f + 414d4c5 commit 1c0ae8a
Show file tree
Hide file tree
Showing 3 changed files with 215 additions and 46 deletions.
136 changes: 91 additions & 45 deletions src/omnicore/doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
Omni Core v0.10.0
Omni Core v0.11.0
================

v0.10.0 is a major release and updates the underlying version of Bitcoin Core from 0.18.1 to 0.20.1. This comes with a significant number of changes. In this version recovering from a hard shutdown or crash was also greatly improved.
v0.11.0 is a major release and adds the ability to issue non-fungible token and to delegate the management of a token.

While this release is not mandatory and doesn't change the consensus rules of the Omni Layer protocol, an upgrade is nevertheless recommended.

**Due to the upgrade from Bitcoin Core 0.18.1 to 0.20.1, this version incorporates many changes, so please take your time to read through all release notes carefully.**
This release is mandatory and changes the rules of the Omni Layer protocol. An upgrade is required.

Upgrading from 0.9.0, 0.8.2, 0.8.1 or 0.8.0 does not require a rescan and can be done very fast without interruption.

Expand All @@ -17,16 +15,15 @@ Please report bugs using the issue tracker on GitHub:
Table of contents
=================

- [Omni Core v0.10.0](#omni-core-v082)
- [Omni Core v0.11.0](#omni-core-v082)
- [Upgrading and downgrading](#upgrading-and-downgrading)
- [How to upgrade](#how-to-upgrade)
- [Downgrading](#downgrading)
- [Compatibility with Bitcoin Core](#compatibility-with-bitcoin-core)
- [Improvements](#improvements)
- [Built on top of Bitcoin Core 0.20.1](#built-on-top-of-bitcoin-core-0201)
- [Improved coin selection, when sending Omni Layer transactions](#improved-coin-selection-when-sending-omni-layer-transactions)
- [Better recovery from hard shutdowns or crashes](#better-recovery-from-hard-shutdowns-or-crashes)
- [Additional testing](#additional-testing)
- [Non-fungible tokens](#non-fungible-tokens)
- [Delegate management of tokens](#delegate-management-of-tokens)
- [Move CI test builds to Cirrus](#move-ci-test-builds-to-cirrus)
- [Change log](#change-log)
- [Credits](#credits)

Expand All @@ -39,14 +36,14 @@ How to upgrade

If you are running Bitcoin Core or an older version of Omni Core, shut it down. Wait until it has completely shut down, then copy the new version of `omnicored`, `omnicore-cli` and `omnicore-qt`. On Microsoft Windows the setup routine can be used to automate these steps.

When upgrading from an older version than 0.8.0, the database of Omni Core is reconstructed, which can easily consume several hours. During the first startup historical Omni Layer transactions are reprocessed and Omni Core will not be usable for several hours up to more than a day. The progress of the initial scan is reported on the console, the GUI and written to the `debug.log`. The scan may be interrupted and can be resumed.
When upgrading from a version older than 0.8.0, the database of Omni Core is reconstructed, which can easily consume several hours. During the first startup historical Omni Layer transactions are reprocessed and Omni Core will not be usable for several hours up to more than a day. The progress of the initial scan is reported on the console, the GUI and written to the `debug.log`. The scan may be interrupted and can be resumed.

Upgrading from 0.9.0, 0.8.2, 0.8.1 or 0.8.0 does not require a rescan and can be done very fast without interruption.

Downgrading
-----------

Downgrading to an Omni Core version prior to 0.8.0 is not supported.
Downgrading to an Omni Core version prior to 0.11.0 is not supported.

Compatibility with Bitcoin Core
-------------------------------
Expand All @@ -59,39 +56,91 @@ However, it is not advised to upgrade or downgrade to versions other than Bitcoi
Improvements
============

Built on top of Bitcoin Core 0.20.1
-----------------------------------
Non-fungible tokens
-------------------

This release adds the ability to create managed tokens with a unique index, grant data, issuer data and holder data. Grant data is set on issuance, issuer data and holder data can be set at any point by the current issuer or holder respectively. Grant data repurposes the memo field used in grant transactions that were not previously used other than to set data on the blockchain.

This feature needs to be enabled with an activation transaction.

Two new transaction types were added:

- `5`: "Unique Send"
- `201`: "Set Non-Fungible Token Data"

#### Overview

A new token type "unique" was added, which can be specified when creating a new managed token with ["omni_sendissuancemanaged"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendissuancemanaged). Unique, or non-fungible tokens, can individually be identified, sent or enhanced with extra data. This can be useful to represent art, real estate or other digital or real world items on the blockchain. Individual units of a non-fungible token can be transferred with ["omni_sendnonfungible"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendnonfungible).

#### RPC changes

New RPCs:

- ["omni_sendnonfungible"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendnonfungible)
- ["omni_setnonfungibledata"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_setnonfungibledata)
- ["omni_getnonfungibletokens"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_getnonfungibletokens)
- ["omni_getnonfungibletokendata"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_getnonfungibletokendata)
- ["omni_getnonfungibletokenranges"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_getnonfungibletokenranges)
- ["omni_createpayload_sendnonfungible"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_createpayload_sendnonfungible)
- ["omni_createpayload_setnonfungibledata"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_createpayload_setnonfungibledata)

Updated RPC:

- ["omni_sendissuancemanaged"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendissuancemanaged) "type" can be set to `5` to create new NFTs.
- ["omni_sendgrant"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendgrant) "memo" field is changed into "grantdata".


Delegate management of tokens
-----------------------------

This release adds the delegation of issuance authority to a new address, for the issuance, freezing or unfreezing of units of a managed token.

This feature needs to be enabled with an activation transaction.

Two new transaction types were added:

- `73`: "Add delegate"
- `74`: "Remove delegate"

#### Overview

The underlying base of Omni Core was upgraded from Bitcoin Core 0.18.1 to Bitcoin Core 0.20.1.
Alice is the issuer of token and wants to delegate the issuance of new token units to Bob. She then uses ["omni_sendadddelegate"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendadddelegate) to empower Bob. Alice won't be able to issue new units until she removes Bob as delegate. She doesn't give up her ability to name or remove delegates and she remains to be the one who can enable or disable freezing of units. On a more practical level, this feature can be useful, if a token was issued from a regular non-multisig address and a multisig-address is used as delegate.

Please read the following release notes for further details very carefully:
#### Rules overview

- [Release notes for Bitcoin Core 0.19.0](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes/release-notes-0.19.0.1.md)
- [Release notes for Bitcoin Core 0.19.1](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes/release-notes-0.19.1.md)
- [Release notes for Bitcoin Core 0.20.0](https://github.com/bitcoin/bitcoin/blob/v0.20.0/doc/release-notes.md)
- [Release notes for Bitcoin Core 0.20.1](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes.md)
When adding a delegate:

- The property must be managed.
- The sender of the transaction must be the issuer.
- When adding a delegate, when there is already one, the old one is overwritten.
- When a delegate is set, only the delegate can issue, revoke, freeze or unfreeze units.
- Only the issuer can enable or disable freezing.

Improved coin selection, when sending Omni Layer transactions
------------------------------------------------------------
When removing a delegate:

When creating and sending Omni Layer transactions, a certain transaction fee must be paid in Bitcoin.
- To remove a delegate, the property must be managed
- The sender of the transaction can be the issuer or the delegate itself.
- The property has a delegate and the delegate matches the one to remove.
- The delegate to remove must be named explicitly.

During transaction creation, the amount of fee needed is estimated. In the past, this estimation was rather genereous, resulting in a failure during transaction creation, even when enough Bitcoin were available to create a transaction. In this release, the fee estimation was optimized.
#### RPC changes

New RPCs:

Better recovery from hard shutdowns or crashes
----------------------------------------------
- ["omni_sendadddelegate"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendadddelegate)
- ["omni_sendremovedelegate"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_sendremovedelegate)
- ["omni_createpayload_adddelegate"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_createpayload_adddelegate)
- ["omni_createpayload_removedelegate"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_createpayload_removedelegate)

After a hard shutdown, kill or crash, Omni Core sometimes lost it's database, because it was not properly saved and became corrupted. Restoring from an old state was not possible, which resulted in a very time consuming process of reparsing old transactions.
Updated RPC:

With this release, Omni Core is able to properly recover from an older state, without the need of a very time consuming reprocessing of old transactions.
- ["omni_getproperty"](https://github.com/OmniLayer/omnicore/blob/develop/src/omnicore/doc/rpc-api.md#omni_getproperty) add "delegate" field.


Additional testing
----------------
Move CI test builds to Cirrus
-----------------------------

More tests were added to Omni Core.
Automated testing was moved from Travis CI to Cirrus CI.


Change log
Expand All @@ -100,24 +149,21 @@ Change log
The following list includes relevant pull requests merged into this release:

```
- #1186 Bitcoin 0.20.1
- #1191 [tests] check free DEx behaviour against DEx spec
- #1193 Omni overview updates
- #1194 Add Free DEx and fee cache tests
- #1197 Integrate Bitcoin Core 0.20 patches
- #1198 Additional changes missing from 0.20 merge
- #1199 Qt disable wallet change in main window
- #1200 Update version to 0.9.99 to indicate development
- #1201 Reduce amount selected for use in transactions
- #1210 cli tool: add Content-Type application/json
- #1213 If watermark not in block index load from state files
- #1214 Bump version and tests to 0.10
- #1215 Add release notes for Omni Core 0.10
- #1219 Trim Gitian build targets
- #1220 Move test builds to Cirrus
- #1223 Show Omni version in Qt and CLI
- #1207 Feature Non-Fungible Tokens
- #1224 Add opcode when calculating Omni class
- #1227 Query address for all NFTs without specifying property ID
- #1228 Add support to add a delegate for managed issuance
- #1231 Gitian Linux confi8g: replace arm 32-bit with arm64 (aarch64)
- #1232 Bump release version to 0.11
- #1234 Update RPC docs for delegated issuance
- #1233 Update release notes for Omni Core 0.11
```


Credits
=======

Thanks to everyone who contributed to this release, especially to Peter Bushnell.
Thanks to everyone who contributed to this release, especially to Peter Bushnell and Sean Gilligan.
123 changes: 123 additions & 0 deletions src/omnicore/doc/release-notes/omnicore-0.10.0-release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
Omni Core v0.10.0
================

v0.10.0 is a major release and updates the underlying version of Bitcoin Core from 0.18.1 to 0.20.1. This comes with a significant number of changes. In this version recovering from a hard shutdown or crash was also greatly improved.

While this release is not mandatory and doesn't change the consensus rules of the Omni Layer protocol, an upgrade is nevertheless recommended.

**Due to the upgrade from Bitcoin Core 0.18.1 to 0.20.1, this version incorporates many changes, so please take your time to read through all release notes carefully.**

Upgrading from 0.9.0, 0.8.2, 0.8.1 or 0.8.0 does not require a rescan and can be done very fast without interruption.

Please report bugs using the issue tracker on GitHub:

https://github.com/OmniLayer/omnicore/issues


Table of contents
=================

- [Omni Core v0.10.0](#omni-core-v082)
- [Upgrading and downgrading](#upgrading-and-downgrading)
- [How to upgrade](#how-to-upgrade)
- [Downgrading](#downgrading)
- [Compatibility with Bitcoin Core](#compatibility-with-bitcoin-core)
- [Improvements](#improvements)
- [Built on top of Bitcoin Core 0.20.1](#built-on-top-of-bitcoin-core-0201)
- [Improved coin selection, when sending Omni Layer transactions](#improved-coin-selection-when-sending-omni-layer-transactions)
- [Better recovery from hard shutdowns or crashes](#better-recovery-from-hard-shutdowns-or-crashes)
- [Additional testing](#additional-testing)
- [Change log](#change-log)
- [Credits](#credits)


Upgrading and downgrading
=========================

How to upgrade
--------------

If you are running Bitcoin Core or an older version of Omni Core, shut it down. Wait until it has completely shut down, then copy the new version of `omnicored`, `omnicore-cli` and `omnicore-qt`. On Microsoft Windows the setup routine can be used to automate these steps.

When upgrading from an older version than 0.8.0, the database of Omni Core is reconstructed, which can easily consume several hours. During the first startup historical Omni Layer transactions are reprocessed and Omni Core will not be usable for several hours up to more than a day. The progress of the initial scan is reported on the console, the GUI and written to the `debug.log`. The scan may be interrupted and can be resumed.

Upgrading from 0.9.0, 0.8.2, 0.8.1 or 0.8.0 does not require a rescan and can be done very fast without interruption.

Downgrading
-----------

Downgrading to an Omni Core version prior to 0.8.0 is not supported.

Compatibility with Bitcoin Core
-------------------------------

Omni Core is based on Bitcoin Core 0.20.1 and can be used as replacement for Bitcoin Core. Switching between Omni Core and Bitcoin Core may be supported.

However, it is not advised to upgrade or downgrade to versions other than Bitcoin Core 0.18. When switching to Omni Core, it may be necessary to reprocess Omni Layer transactions.


Improvements
============

Built on top of Bitcoin Core 0.20.1
-----------------------------------

The underlying base of Omni Core was upgraded from Bitcoin Core 0.18.1 to Bitcoin Core 0.20.1.

Please read the following release notes for further details very carefully:

- [Release notes for Bitcoin Core 0.19.0](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes/release-notes-0.19.0.1.md)
- [Release notes for Bitcoin Core 0.19.1](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes/release-notes-0.19.1.md)
- [Release notes for Bitcoin Core 0.20.0](https://github.com/bitcoin/bitcoin/blob/v0.20.0/doc/release-notes.md)
- [Release notes for Bitcoin Core 0.20.1](https://github.com/bitcoin/bitcoin/blob/v0.20.1/doc/release-notes.md)


Improved coin selection, when sending Omni Layer transactions
------------------------------------------------------------

When creating and sending Omni Layer transactions, a certain transaction fee must be paid in Bitcoin.

During transaction creation, the amount of fee needed is estimated. In the past, this estimation was rather genereous, resulting in a failure during transaction creation, even when enough Bitcoin were available to create a transaction. In this release, the fee estimation was optimized.


Better recovery from hard shutdowns or crashes
----------------------------------------------

After a hard shutdown, kill or crash, Omni Core sometimes lost it's database, because it was not properly saved and became corrupted. Restoring from an old state was not possible, which resulted in a very time consuming process of reparsing old transactions.

With this release, Omni Core is able to properly recover from an older state, without the need of a very time consuming reprocessing of old transactions.


Additional testing
----------------

More tests were added to Omni Core.


Change log
==========

The following list includes relevant pull requests merged into this release:

```
- #1186 Bitcoin 0.20.1
- #1191 [tests] check free DEx behaviour against DEx spec
- #1193 Omni overview updates
- #1194 Add Free DEx and fee cache tests
- #1197 Integrate Bitcoin Core 0.20 patches
- #1198 Additional changes missing from 0.20 merge
- #1199 Qt disable wallet change in main window
- #1200 Update version to 0.9.99 to indicate development
- #1201 Reduce amount selected for use in transactions
- #1210 cli tool: add Content-Type application/json
- #1213 If watermark not in block index load from state files
- #1214 Bump version and tests to 0.10
- #1215 Add release notes for Omni Core 0.10
- #1219 Trim Gitian build targets
```


Credits
=======

Thanks to everyone who contributed to this release, especially to Peter Bushnell.
2 changes: 1 addition & 1 deletion src/omnicore/doc/rpc-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ Create new tokens with manageable supply.
|---------------------|---------|----------|----------------------------------------------------------------------------------------------|
| `fromaddress` | string | required | the address to send from |
| `ecosystem` | number | required | the ecosystem to create the tokens in (`1` for main ecosystem, `2` for test ecosystem) |
| `type` | number | required | the type of the tokens to create: (`1` for indivisible tokens, `2` for divisible tokens) |
| `type` | number | required | the type of the tokens to create: (`1` for indivisible tokens, `2` for divisible tokens, `5` for NFTs) |
| `previousid` | number | required | an identifier of a predecessor token (`0` for new tokens) |
| `category` | string | required | a category for the new tokens (can be `""`) |
| `subcategory` | string | required | a subcategory for the new tokens (can be `""`) |
Expand Down

0 comments on commit 1c0ae8a

Please sign in to comment.