From 4ea9cb54e9eb7fd060ce2d6a3173f8bc64dfa06d Mon Sep 17 00:00:00 2001 From: dexX7 Date: Fri, 27 Jan 2017 17:45:39 +0100 Subject: [PATCH 1/2] Bump version to Omni Core 0.0.12.0-rel This bumps the version to 0.0.12.0 and prepares the release notes. --- configure.ac | 6 +- src/omnicore/doc/release-notes.md | 182 +------------- .../omnicore-0.0.11.2-release-notes.md | 230 ++++++++++++++++++ src/omnicore/test/version_tests.cpp | 6 +- src/omnicore/version.h | 6 +- 5 files changed, 248 insertions(+), 182 deletions(-) create mode 100644 src/omnicore/doc/release-notes/omnicore-0.0.11.2-release-notes.md diff --git a/configure.ac b/configure.ac index 632937125ded9..b2503eb8476aa 100644 --- a/configure.ac +++ b/configure.ac @@ -8,9 +8,9 @@ define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2016) define(_OMNICORE_VERSION_MILESTONE, 0) define(_OMNICORE_VERSION_MAJOR, 0) -define(_OMNICORE_VERSION_MINOR, 11) -define(_OMNICORE_VERSION_PATCH, 2) -define(_OMNICORE_VERSION_BUILD, 1) +define(_OMNICORE_VERSION_MINOR, 12) +define(_OMNICORE_VERSION_PATCH, 0) +define(_OMNICORE_VERSION_BUILD, 0) define(_OMNICORE_VERSION_STATUS, rel) AC_INIT([Omni Core],[_OMNICORE_VERSION_MILESTONE._OMNICORE_VERSION_MAJOR._OMNICORE_VERSION_MINOR._OMNICORE_VERSION_PATCH-_OMNICORE_VERSION_STATUS],[https://github.com/OmniLayer/omnicore/issues],[omnicore],[http://www.omnilayer.org/]) AC_CONFIG_SRCDIR([src/main.cpp]) diff --git a/src/omnicore/doc/release-notes.md b/src/omnicore/doc/release-notes.md index 422c6eba72d0f..6aafbe52cd045 100644 --- a/src/omnicore/doc/release-notes.md +++ b/src/omnicore/doc/release-notes.md @@ -1,9 +1,7 @@ -Omni Core v0.0.11.2 +Omni Core v0.0.11.3 =================== -v0.0.11.2 is a bugfix release which resolves an issue where, in the case where a buyer accepts more than available for sale on the traditional distributed exchange, the RPC API reported an amount higher than available, and it fixes an issue with the planned feature of fee distribution system. This release also disables the alert system as per default. - -v0.0.11.1 is a bugfix release which resolves a critical bug in the RPC API whereby under certain circumstances retrieving data about a sell offer may trigger a failsafe and cause the automatic shutdown of the client. +TODO This version is built on top of v0.0.11, which is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory, and highly recommended. Prior releases will not be compatible with new behavior in this release. @@ -14,21 +12,13 @@ Please report bugs using the issue tracker on GitHub: Table of contents ================= -- [Omni Core v0.0.11.2](#omni-core-v00112) +- [Omni Core v0.0.11.3](#omni-core-v00113) - [Upgrading and downgrading](#upgrading-and-downgrading) - [How to upgrade](#how-to-upgrade) - [Downgrading](#downgrading) - [Compatibility with Bitcoin Core](#compatibility-with-bitcoin-core) -- [Consensus affecting changes](#consensus-affecting-changes) - - [Trading of all pairs on the Distributed Exchange](#trading-of-all-pairs-on-the-distributed-exchange) - - [Fee distribution system on the Distributed Exchange](#fee-distribution-system-on-the-distributed-exchange) - - [Send to Owners cross property suport](#send-to-owners-cross-property-support) -- [Other notable changes](#other-notable-changes) - - [Raw payload creation API](#raw-payload-creation-api) - - [Other API extensions](#other-api-extensions) - - [Increased OP_RETURN payload size to 80 byte](#increased-op_return-payload-size-to-80-bytes) - - [Improved consensus checks](#improved-consensus-checks) - - [Various bug fixes and clean-ups](#various-bug-fixes-and-clean-ups) +- [Notable changes](#notable-changes) + - xxx - [Change log](#change-log) - [Credits](#credits) @@ -54,174 +44,20 @@ Omni Core is based on Bitcoin Core 0.10.4 and can be used as replacement for Bit Downgrading to a Bitcoin Core version prior 0.10 is not supported due to the new headers-first synchronization. -Consensus affecting changes -=========================== - -All changes of the consensus rules are enabled by activation transactions. - -Please note, while Omni Core 0.0.11 contains support for several new rules and features they are not enabled immediately and will be activated via the feature activation mechanism described above. - -It follows an overview and a description of the consensus rule changes: - -Trading of all pairs on the Distributed Exchange ------------------------------------------------- - -Once activated trading of any property against any other (within the same ecosystem) will be permitted on the Distributed Exchange. - -Due to this change the existing trading UI in the QT version is no longer suitable and has been disabled for this release. Please use the RPC interface to interact with the Distributed Exchange in this release. The trading UI will be re-enabled in a future version to accommodate non-Omni pair trading. - -This change is identified by `"featureid": 8` and labeled by the GUI as `"Allow trading all pairs on the Distributed Exchange"`. - -Fee distribution system on the Distributed Exchange ---------------------------------------------------- - -Omni Core 0.11 contains a fee caching and distribution system. This system collects small amounts of tokens in a cache until a distribution threshold is reached. Once this distribution threshold (trigger) is reached for a property, the fees in the cache will be distributed proportionally to holders of the Omni (#1) and Test-Omni (#2) tokens based on the percentage of the total Omni tokens owned. - -Once activated fees will be collected from trading of non-Omni pairs on the Distributed Exchange (there is no fee for trading Omni pairs). The party removing liquidity from the market will incur a 0.05% fee which will be transferred to the fee cache, and subsequently distributed to holders of the Omni token. - -- Placing a trade where one side of the pair is Omni (#1) or Test-Omni (#2) incurs no fee -- Placing a trade where liquidity is added to the market (i.e. the trade does not immediately execute an existing trade) incurs no fee -- Placing a trade where liquidity is removed from the market (i.e. the trade immediately executes an existing trade) the liquidity taker incurs a 0.05% fee - -See also [fee system JSON-RPC API documentation](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#fee-system). - -This change is identified by `"featureid": 9` and labeled by the GUI as `"Fee system (inc 0.05% fee from trades of non-Omni pairs)"`. - -Send To Owners cross property support -------------------------------------- - -Once activated distributing tokens via the Send To Owners transaction will be permitted to cross properties if using version 1 of the transaction. - -Tokens of property X then may be distributed to holders of property Y. - -There is a significantly increased fee (0.00001000 per recipient) for using version 1 of the STO transaction. The fee remains the same (0.00000001) per recipient for using version 0 of the STO transaction. - -Sending an STO transaction via Omni Core that distributes tokens to holders of the same property will automatically be sent as version 0, and sending a cross-property STO will automatically be sent as version 1. - -The transaction format of new Send To Owners version is as follows: - -| **Field** | **Type** | **Example** | -| ------------------------------ | --------------- | ----------- | -| Transaction version | 16-bit unsigned | 65535 | -| Transaction type | 16-bit unsigned | 65534 | -| Tokens to transfer | 32-bit unsigned | 6 | -| Amount to transfer | 64-bit signed | 700009 | -| Token holders to distribute to | 32-bit unsigned | 23 | - -This change is identified by `"featureid": 10` and labeled by the GUI as `"Cross-property Send To Owners"`. - -Other notable changes +Notable changes ===================== -Raw payload creation API +TODO ------------------------ -Omni Core 0.0.11 adds support for payload creation via the RPC interface. - -The calls are similar to the send transactions (e.g. `omni_send`), without the requirement for an address or any of the balance checks. - -This allows integrators to build transactions via the [raw transactions interface](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#raw-transactions). - -Other API extensions --------------------- - -An optional parameter `height` can be provided, when using [omni_decodetransaction](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_decodetransaction), which is used to determine the parsing rules. If no `height` is provided, the chain height is used as default. - -When retrieving feature activation transactions with [omni_gettransaction](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_gettransaction), then additional fields are included in the result: `"featureid"`, `"activationblock"` and `"minimumversion"`. - -The Omni Core client version is now also exposed under the new key `"omnicoreversion"`, as well as inter via `"omnicoreversion_int"`, when using [omni_getinfo](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_getinfo). The old key `"mastercoreversion"` remains for compatibility in this version. - -The field `"positioninblock"` was added to RPCs retrieving or listing Omni transactions to provide visibility into the order of an Omni transaction within a block. - -Increased OP_RETURN payload size to 80 bytes --------------------------------------------- - -The maximum payload for OP_RETURN outputs was increased to 80 byte. - -At this point a majority of the network supports 80 byte payloads, so Omni Core can safely use the larger payload size. This can result in cheaper transactions, as there is no fallback to bare multisig encoding. - -Improved consensus checks -------------------------- - -Consensus hashing now covers much more of the state to provide wider coverage of the state. The state of properties, crowdsales and the Distributed Exchange are included in the new consensus hashing process. - -Checkpoints have been updated in Omni Core 0.0.11 to reflect the new consensus hashing algorithm. Seed blocks (for faster initial transaction scanning) and checkpoints are included with Omni Core 0.0.11 up to block 410,000. - -Various bug fixes and clean-ups ------------------------------- - -Various smaller improvements were added Omni Core 0.0.11, such as: - -- Grow balances to fit on "Overview" tab -- Switch to "Bitcoin" tab in "Send" page when handling Bitcoin URIs -- Improve and adjust fee warning threshold when sending transactions -- Fix missing client notification for new feature activations -- Fix Travis CI builds without cache -- Fix syntax error in walletdb key parser -- Fix too-aggressive database clean in block reorganization events -- Fix issues related to `omni_gettransaction` and `getactivedexsells` +TODO Change log ========== The following list includes relevant pull requests merged into this release: ``` -- #226 Upgrade consensus hashing to cover more of the state -- #316 Support providing height for omni_decodetransaction -- #317 Expose feature activation fields when decoding transaction -- #318 Expose Omni Core client version as integer -- #321 Add consensus hash for block 390000 -- #324 Fix and update seed blocks up to block 390000 -- #325 Add capability to generate seed blocks over RPC -- #326 Grow balances to fit on overview tab -- #327 Switch to Bitcoin tab in Send page when handling Bitcoin URIs -- #328 Update and add unit tests for new consensus hashes -- #332 Remove seed blocks for structurally invalid transactions + reformat -- #333 Improve fee warning threshold in GUI -- #334 Update documentation for getseedblocks, getcurrentconsensushash, setautocommit -- #335 Disable logging on Windows to speed up CI RPC tests -- #336 Change the default maximum OP_RETURN size to 80 bytes -- #341 Add omni_getmetadexhash RPC call to hash state of MetaDEx -- #343 Remove pre-OP_RETURN legacy code -- #344 Fix missing client notification for new activations -- #349 Add positioninblock attribute to RPC output for transactions -- #358 Add payload creation to the RPC interface -- #361 Unlock trading of all pairs on the MetaDEx -- #364 Fix Travis builds without cache -- #365 Fix syntax error in walletdb key parser -- #367 Bump version to Omni Core 0.0.11-dev -- #368 Fix too-aggressive database clean in reorg event -- #371 Add consensus checkpoints for blocks 400,000 & 410,000 -- #372 Add seed blocks for 390,000 to 410,000 -- #375 Temporarily disable the trading UI -- #384 Add fee system RPC calls to API doc -- #385 Add RPC documentation for createpayload calls -- #386 Don't warn user about unknown block versions -- #377 Add release notes for Omni Core 0.0.11 -- #376 Bump version to Omni Core 0.0.11-rc1 -- #390 Add cross-property (v1) Send To Owners -- #395 Move test scripts into /src/omnicore/test -- #396 Add workaround for "bytes per sigops" limit -- #400 Change default confirm target to 15 blocks -- #398 Update release notes for 0.0.11-rc2 -- #397 Bump version to Omni Core 0.0.11-rc2 -- #402 Add seed blocks for 410,000 to 420,000 -- #403 Add consensus hash for block 420,000 -- #405 Use uint256 when calculating desired BTC for DEx 1 -- #404 Bump version to Omni Core 0.0.11-rel -- #409 Protect uint256 plain integer math -- #411 Bump version to Omni Core 0.0.11.1-rel -- #419 Add consensus hash for block 430,000 -- #420 Add seed blocks for 420,000 to 430,000 -- #421 Fix edge case of DEx 1 over-accepts -- #422 Disable alert system as per default -- #423 Bump version to Omni Core 0.0.11.2-rel -- #426 Fix several bugs in fee system -- #429 Allow feature deactivation -- #431 Activate recent new features on testnet -- #432 Change the number of signatures for deactivation to 3 -- #430 Update release notes for 0.0.11.2 -- #435 Bump internal version to 1100201 +TODO ``` Credits diff --git a/src/omnicore/doc/release-notes/omnicore-0.0.11.2-release-notes.md b/src/omnicore/doc/release-notes/omnicore-0.0.11.2-release-notes.md new file mode 100644 index 0000000000000..422c6eba72d0f --- /dev/null +++ b/src/omnicore/doc/release-notes/omnicore-0.0.11.2-release-notes.md @@ -0,0 +1,230 @@ +Omni Core v0.0.11.2 +=================== + +v0.0.11.2 is a bugfix release which resolves an issue where, in the case where a buyer accepts more than available for sale on the traditional distributed exchange, the RPC API reported an amount higher than available, and it fixes an issue with the planned feature of fee distribution system. This release also disables the alert system as per default. + +v0.0.11.1 is a bugfix release which resolves a critical bug in the RPC API whereby under certain circumstances retrieving data about a sell offer may trigger a failsafe and cause the automatic shutdown of the client. + +This version is built on top of v0.0.11, which is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory, and highly recommended. Prior releases will not be compatible with new behavior in this release. + +Please report bugs using the issue tracker on GitHub: + + https://github.com/OmniLayer/omnicore/issues + +Table of contents +================= + +- [Omni Core v0.0.11.2](#omni-core-v00112) +- [Upgrading and downgrading](#upgrading-and-downgrading) + - [How to upgrade](#how-to-upgrade) + - [Downgrading](#downgrading) + - [Compatibility with Bitcoin Core](#compatibility-with-bitcoin-core) +- [Consensus affecting changes](#consensus-affecting-changes) + - [Trading of all pairs on the Distributed Exchange](#trading-of-all-pairs-on-the-distributed-exchange) + - [Fee distribution system on the Distributed Exchange](#fee-distribution-system-on-the-distributed-exchange) + - [Send to Owners cross property suport](#send-to-owners-cross-property-support) +- [Other notable changes](#other-notable-changes) + - [Raw payload creation API](#raw-payload-creation-api) + - [Other API extensions](#other-api-extensions) + - [Increased OP_RETURN payload size to 80 byte](#increased-op_return-payload-size-to-80-bytes) + - [Improved consensus checks](#improved-consensus-checks) + - [Various bug fixes and clean-ups](#various-bug-fixes-and-clean-ups) +- [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. + +During the first startup historical Omni transactions are reprocessed and Omni Core will not be usable for approximately 15 minutes up to two hours. The progress of the initial scan is reported on the console, the GUI and written to the `debug.log`. The scan may be interrupted, but can not be resumed, and then needs to start from the beginning. + +Downgrading +----------- + +Downgrading to an Omni Core version prior 0.0.11 is generally not supported as older versions will not provide accurate information due to the changes in consensus rules. + +Compatibility with Bitcoin Core +------------------------------- + +Omni Core is based on Bitcoin Core 0.10.4 and can be used as replacement for Bitcoin Core. Switching between Omni Core and Bitcoin Core is fully supported at any time. + +Downgrading to a Bitcoin Core version prior 0.10 is not supported due to the new headers-first synchronization. + +Consensus affecting changes +=========================== + +All changes of the consensus rules are enabled by activation transactions. + +Please note, while Omni Core 0.0.11 contains support for several new rules and features they are not enabled immediately and will be activated via the feature activation mechanism described above. + +It follows an overview and a description of the consensus rule changes: + +Trading of all pairs on the Distributed Exchange +------------------------------------------------ + +Once activated trading of any property against any other (within the same ecosystem) will be permitted on the Distributed Exchange. + +Due to this change the existing trading UI in the QT version is no longer suitable and has been disabled for this release. Please use the RPC interface to interact with the Distributed Exchange in this release. The trading UI will be re-enabled in a future version to accommodate non-Omni pair trading. + +This change is identified by `"featureid": 8` and labeled by the GUI as `"Allow trading all pairs on the Distributed Exchange"`. + +Fee distribution system on the Distributed Exchange +--------------------------------------------------- + +Omni Core 0.11 contains a fee caching and distribution system. This system collects small amounts of tokens in a cache until a distribution threshold is reached. Once this distribution threshold (trigger) is reached for a property, the fees in the cache will be distributed proportionally to holders of the Omni (#1) and Test-Omni (#2) tokens based on the percentage of the total Omni tokens owned. + +Once activated fees will be collected from trading of non-Omni pairs on the Distributed Exchange (there is no fee for trading Omni pairs). The party removing liquidity from the market will incur a 0.05% fee which will be transferred to the fee cache, and subsequently distributed to holders of the Omni token. + +- Placing a trade where one side of the pair is Omni (#1) or Test-Omni (#2) incurs no fee +- Placing a trade where liquidity is added to the market (i.e. the trade does not immediately execute an existing trade) incurs no fee +- Placing a trade where liquidity is removed from the market (i.e. the trade immediately executes an existing trade) the liquidity taker incurs a 0.05% fee + +See also [fee system JSON-RPC API documentation](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#fee-system). + +This change is identified by `"featureid": 9` and labeled by the GUI as `"Fee system (inc 0.05% fee from trades of non-Omni pairs)"`. + +Send To Owners cross property support +------------------------------------- + +Once activated distributing tokens via the Send To Owners transaction will be permitted to cross properties if using version 1 of the transaction. + +Tokens of property X then may be distributed to holders of property Y. + +There is a significantly increased fee (0.00001000 per recipient) for using version 1 of the STO transaction. The fee remains the same (0.00000001) per recipient for using version 0 of the STO transaction. + +Sending an STO transaction via Omni Core that distributes tokens to holders of the same property will automatically be sent as version 0, and sending a cross-property STO will automatically be sent as version 1. + +The transaction format of new Send To Owners version is as follows: + +| **Field** | **Type** | **Example** | +| ------------------------------ | --------------- | ----------- | +| Transaction version | 16-bit unsigned | 65535 | +| Transaction type | 16-bit unsigned | 65534 | +| Tokens to transfer | 32-bit unsigned | 6 | +| Amount to transfer | 64-bit signed | 700009 | +| Token holders to distribute to | 32-bit unsigned | 23 | + +This change is identified by `"featureid": 10` and labeled by the GUI as `"Cross-property Send To Owners"`. + +Other notable changes +===================== + +Raw payload creation API +------------------------ + +Omni Core 0.0.11 adds support for payload creation via the RPC interface. + +The calls are similar to the send transactions (e.g. `omni_send`), without the requirement for an address or any of the balance checks. + +This allows integrators to build transactions via the [raw transactions interface](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#raw-transactions). + +Other API extensions +-------------------- + +An optional parameter `height` can be provided, when using [omni_decodetransaction](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_decodetransaction), which is used to determine the parsing rules. If no `height` is provided, the chain height is used as default. + +When retrieving feature activation transactions with [omni_gettransaction](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_gettransaction), then additional fields are included in the result: `"featureid"`, `"activationblock"` and `"minimumversion"`. + +The Omni Core client version is now also exposed under the new key `"omnicoreversion"`, as well as inter via `"omnicoreversion_int"`, when using [omni_getinfo](https://github.com/OmniLayer/omnicore/blob/omnicore-0.0.10/src/omnicore/doc/rpc-api.md#omni_getinfo). The old key `"mastercoreversion"` remains for compatibility in this version. + +The field `"positioninblock"` was added to RPCs retrieving or listing Omni transactions to provide visibility into the order of an Omni transaction within a block. + +Increased OP_RETURN payload size to 80 bytes +-------------------------------------------- + +The maximum payload for OP_RETURN outputs was increased to 80 byte. + +At this point a majority of the network supports 80 byte payloads, so Omni Core can safely use the larger payload size. This can result in cheaper transactions, as there is no fallback to bare multisig encoding. + +Improved consensus checks +------------------------- + +Consensus hashing now covers much more of the state to provide wider coverage of the state. The state of properties, crowdsales and the Distributed Exchange are included in the new consensus hashing process. + +Checkpoints have been updated in Omni Core 0.0.11 to reflect the new consensus hashing algorithm. Seed blocks (for faster initial transaction scanning) and checkpoints are included with Omni Core 0.0.11 up to block 410,000. + +Various bug fixes and clean-ups +------------------------------ + +Various smaller improvements were added Omni Core 0.0.11, such as: + +- Grow balances to fit on "Overview" tab +- Switch to "Bitcoin" tab in "Send" page when handling Bitcoin URIs +- Improve and adjust fee warning threshold when sending transactions +- Fix missing client notification for new feature activations +- Fix Travis CI builds without cache +- Fix syntax error in walletdb key parser +- Fix too-aggressive database clean in block reorganization events +- Fix issues related to `omni_gettransaction` and `getactivedexsells` + +Change log +========== + +The following list includes relevant pull requests merged into this release: +``` +- #226 Upgrade consensus hashing to cover more of the state +- #316 Support providing height for omni_decodetransaction +- #317 Expose feature activation fields when decoding transaction +- #318 Expose Omni Core client version as integer +- #321 Add consensus hash for block 390000 +- #324 Fix and update seed blocks up to block 390000 +- #325 Add capability to generate seed blocks over RPC +- #326 Grow balances to fit on overview tab +- #327 Switch to Bitcoin tab in Send page when handling Bitcoin URIs +- #328 Update and add unit tests for new consensus hashes +- #332 Remove seed blocks for structurally invalid transactions + reformat +- #333 Improve fee warning threshold in GUI +- #334 Update documentation for getseedblocks, getcurrentconsensushash, setautocommit +- #335 Disable logging on Windows to speed up CI RPC tests +- #336 Change the default maximum OP_RETURN size to 80 bytes +- #341 Add omni_getmetadexhash RPC call to hash state of MetaDEx +- #343 Remove pre-OP_RETURN legacy code +- #344 Fix missing client notification for new activations +- #349 Add positioninblock attribute to RPC output for transactions +- #358 Add payload creation to the RPC interface +- #361 Unlock trading of all pairs on the MetaDEx +- #364 Fix Travis builds without cache +- #365 Fix syntax error in walletdb key parser +- #367 Bump version to Omni Core 0.0.11-dev +- #368 Fix too-aggressive database clean in reorg event +- #371 Add consensus checkpoints for blocks 400,000 & 410,000 +- #372 Add seed blocks for 390,000 to 410,000 +- #375 Temporarily disable the trading UI +- #384 Add fee system RPC calls to API doc +- #385 Add RPC documentation for createpayload calls +- #386 Don't warn user about unknown block versions +- #377 Add release notes for Omni Core 0.0.11 +- #376 Bump version to Omni Core 0.0.11-rc1 +- #390 Add cross-property (v1) Send To Owners +- #395 Move test scripts into /src/omnicore/test +- #396 Add workaround for "bytes per sigops" limit +- #400 Change default confirm target to 15 blocks +- #398 Update release notes for 0.0.11-rc2 +- #397 Bump version to Omni Core 0.0.11-rc2 +- #402 Add seed blocks for 410,000 to 420,000 +- #403 Add consensus hash for block 420,000 +- #405 Use uint256 when calculating desired BTC for DEx 1 +- #404 Bump version to Omni Core 0.0.11-rel +- #409 Protect uint256 plain integer math +- #411 Bump version to Omni Core 0.0.11.1-rel +- #419 Add consensus hash for block 430,000 +- #420 Add seed blocks for 420,000 to 430,000 +- #421 Fix edge case of DEx 1 over-accepts +- #422 Disable alert system as per default +- #423 Bump version to Omni Core 0.0.11.2-rel +- #426 Fix several bugs in fee system +- #429 Allow feature deactivation +- #431 Activate recent new features on testnet +- #432 Change the number of signatures for deactivation to 3 +- #430 Update release notes for 0.0.11.2 +- #435 Bump internal version to 1100201 +``` + +Credits +======= + +Thanks to everyone who contributed to this release, and especially the Bitcoin Core developers for providing the foundation for Omni Core! diff --git a/src/omnicore/test/version_tests.cpp b/src/omnicore/test/version_tests.cpp index 8b98bdebd2f6d..2abe189c9fd2e 100644 --- a/src/omnicore/test/version_tests.cpp +++ b/src/omnicore/test/version_tests.cpp @@ -22,18 +22,18 @@ BOOST_AUTO_TEST_CASE(version_comparison) BOOST_AUTO_TEST_CASE(version_string) { - BOOST_CHECK_EQUAL(OmniCoreVersion(), "0.0.11.2-rel"); + BOOST_CHECK_EQUAL(OmniCoreVersion(), "0.0.12-rel"); } BOOST_AUTO_TEST_CASE(version_number) { - BOOST_CHECK_EQUAL(OMNICORE_VERSION, 1100201); + BOOST_CHECK_EQUAL(OMNICORE_VERSION, 1200000); } BOOST_AUTO_TEST_CASE(config_package_version) { // the package version is used in the file names: - BOOST_CHECK_EQUAL(PACKAGE_VERSION, "0.0.11.2-rel"); + BOOST_CHECK_EQUAL(PACKAGE_VERSION, "0.0.12.0-rel"); } diff --git a/src/omnicore/version.h b/src/omnicore/version.h index 9cbc90cb765d2..5604a94aad1fb 100644 --- a/src/omnicore/version.h +++ b/src/omnicore/version.h @@ -18,13 +18,13 @@ #define OMNICORE_VERSION_MAJOR 0 // Increase with every non-consensus affecting feature -#define OMNICORE_VERSION_MINOR 11 +#define OMNICORE_VERSION_MINOR 12 // Increase with every patch, which is not a feature or consensus affecting -#define OMNICORE_VERSION_PATCH 2 +#define OMNICORE_VERSION_PATCH 0 // Non-public build number/revision (usually zero) -#define OMNICORE_VERSION_BUILD 1 +#define OMNICORE_VERSION_BUILD 0 // Use "dev" for development versions, switch to "rc" for release candidates #define OMNICORE_VERSION_STATUS rel From d0702095217099d1f0d7f3a1fd8e8e717945ce78 Mon Sep 17 00:00:00 2001 From: dexX7 Date: Wed, 8 Feb 2017 17:10:52 +0100 Subject: [PATCH 2/2] Update release notes for 0.0.12.0 --- src/omnicore/doc/release-notes.md | 75 ++++++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 12 deletions(-) diff --git a/src/omnicore/doc/release-notes.md b/src/omnicore/doc/release-notes.md index 6aafbe52cd045..61f4e1c486e4a 100644 --- a/src/omnicore/doc/release-notes.md +++ b/src/omnicore/doc/release-notes.md @@ -1,9 +1,9 @@ -Omni Core v0.0.11.3 -=================== +Omni Core v0.0.12 +================= -TODO +v0.0.12 greatly improves Omni Core's performance during the initial parsing, and it includes new logic for the fee distribution system, as well as for cross-property send-to-owner transactions. -This version is built on top of v0.0.11, which is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory, and highly recommended. Prior releases will not be compatible with new behavior in this release. +v0.0.12 is a major release and consensus critical in terms of the Omni Layer protocol rules. An upgrade is mandatory, and highly recommended. Prior releases will not be compatible with new behavior in this release. Please report bugs using the issue tracker on GitHub: @@ -12,13 +12,16 @@ Please report bugs using the issue tracker on GitHub: Table of contents ================= -- [Omni Core v0.0.11.3](#omni-core-v00113) +- [Omni Core v0.0.12](#omni-core-v0012) - [Upgrading and downgrading](#upgrading-and-downgrading) - [How to upgrade](#how-to-upgrade) - [Downgrading](#downgrading) - [Compatibility with Bitcoin Core](#compatibility-with-bitcoin-core) + - [Consensus affecting changes](#consensus-affecting-changes) + - [Fee distribution system on the Distributed Exchange](#fee-distribution-system-on-the-distributed-exchange) + - [Send to Owners cross property suport](#send-to-owners-cross-property-support) - [Notable changes](#notable-changes) - - xxx + - [Performance improvements during initial parsing](#performance-improvements-during-initial-parsing) - [Change log](#change-log) - [Credits](#credits) @@ -35,7 +38,7 @@ During the first startup historical Omni transactions are reprocessed and Omni C Downgrading ----------- -Downgrading to an Omni Core version prior 0.0.11 is generally not supported as older versions will not provide accurate information due to the changes in consensus rules. +Downgrading to an Omni Core version prior 0.0.12 is generally not supported as older versions will not provide accurate information due to the changes in consensus rules. Compatibility with Bitcoin Core ------------------------------- @@ -44,20 +47,68 @@ Omni Core is based on Bitcoin Core 0.10.4 and can be used as replacement for Bit Downgrading to a Bitcoin Core version prior 0.10 is not supported due to the new headers-first synchronization. +Consensus affecting changes +=========================== + +All changes of the consensus rules are enabled by activation transactions. + +Please note, while Omni Core 0.0.12 contains support for several new rules and features they are not enabled immediately and will be activated via the feature activation mechanism described above. + +It follows an overview and a description of the consensus rule changes: + +Fee distribution system on the Distributed Exchange +--------------------------------------------------- + +Omni Core 0.0.12 contains a fee caching and distribution system. This system collects small amounts of tokens in a cache until a distribution threshold is reached. Once this distribution threshold (trigger) is reached for a property, the fees in the cache will be distributed proportionally to holders of the Omni (#1) and Test-Omni (#2) tokens based on the percentage of the total Omni tokens owned. + +Once activated fees will be collected from trading of non-Omni pairs on the Distributed Exchange (there is no fee for trading Omni pairs). The party removing liquidity from the market will incur a 0.05% fee which will be transferred to the fee cache, and subsequently distributed to holders of the Omni token. + +- Placing a trade where one side of the pair is Omni (#1) or Test-Omni (#2) incurs no fee +- Placing a trade where liquidity is added to the market (i.e. the trade does not immediately execute an existing trade) incurs no fee +- Placing a trade where liquidity is removed from the market (i.e. the trade immediately executes an existing trade) the liquidity taker incurs a 0.05% fee + +See also [fee system JSON-RPC API documentation](https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md#fee-system). + +This change is identified by `"featureid": 9` and labeled by the GUI as `"Fee system (inc 0.05% fee from trades of non-Omni pairs)"`. + +Send To Owners cross property support +------------------------------------- + +Once activated distributing tokens via the Send To Owners transaction will be permitted to cross properties if using version 1 of the transaction. + +Tokens of property X then may be distributed to holders of property Y. + +There is a significantly increased fee (0.00001000 per recipient) for using version 1 of the STO transaction. The fee remains the same (0.00000001) per recipient for using version 0 of the STO transaction. + +Sending an STO transaction via Omni Core that distributes tokens to holders of the same property will automatically be sent as version 0, and sending a cross-property STO will automatically be sent as version 1. + +The transaction format of new Send To Owners version is as follows: + +| **Field** | **Type** | **Example** | +| ------------------------------ | --------------- | ----------- | +| Transaction version | 16-bit unsigned | 65535 | +| Transaction type | 16-bit unsigned | 65534 | +| Tokens to transfer | 32-bit unsigned | 6 | +| Amount to transfer | 64-bit signed | 700009 | +| Token holders to distribute to | 32-bit unsigned | 23 | + +This change is identified by `"featureid": 10` and labeled by the GUI as `"Cross-property Send To Owners"`. + Notable changes -===================== +=============== -TODO ------------------------- +Performance improvements during initial parsing +----------------------------------------------- -TODO +Due to various improvements and optimizations, the initial parsing process, when running Omni Core the first time, or when starting Omni Core with `-startclean` flag, is faster by a factor of up to 10x. The improvements also have a positive impact on the time, when processing a new block. Change log ========== The following list includes relevant pull requests merged into this release: ``` -TODO +- #449 Back port fixes & improvements from develop +- #455 Bump version to Omni Core 0.0.12.0-rel ``` Credits