github VerusCoin/VerusCoin v0.6.0.29-PBaaS-Cross-chain-Technology-Preview
Public Blockchains as a Service (PBaaS) and Verus Reserve cross-chain currency conversion technology -- Technology Preview September 13 2019

latest releases: v1.2.2-4, v1.2.2-3, v1.2.2-2...
pre-release4 years ago

Please note that this is a test release intended to use for testing and development with public blockchains as a service (PBaaS). THIS HAS NOT BEEN TESTED FOR USE ON MAINNET.

The Verus public testnet enables anyone to make new blockchains and currencies, each with scale and operational independence, zk-SNARK privacy, automatic wallet support, and 100% liquid conversion between VRSCTEST currency at any volume. Sending currencies cross-chain or converting between currencies is as easy as sending a cryptocurrency in less advanced systems today, except that the new Verus protocol enables you to include another blockchain as part of your destination and convert a fractional reserve currency to and from its reserve, according to its exact price along the way. All conversions are fully decentralized, require a standard protocol fee of 0.01%, which goes 100% to miners and stakers of the network, and calculates one price per block for all buys and sells in that block with zero spread.

Verus PBaaS Reserve technology enables any organization of any size to make a currency with its own blockchain, support it in world class wallets, develop its own applications, and use it for payments worldwide that can be converted to the reserve currency without ever having to leave the blockchain network. Each blockchain is independent and connected through the Verus Reserve protocol.

Notable Changes

  • Fixed daemon output export error message on VRSCTEST
  • Fixed fees bouncing back from a reserve send to Verus and allow exports to continue if done incorrectly
  • Include currency state in chain definitions for both getchaindefinition and getdefinedchains

Chain definition:

  • Maximum of 3 eras
  • Minimum 500 blocks worth of notarizations.
  • Minimum of 0.01 VRSCTEST per block of notarization.
    VRSCTEST are needed in wallet to make a chain.

Sample chain definition:

./verusd -chain=VRSCTEST definechain '{"name":"RESERVEWITHPREMINE","paymentaddress":"R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM","premine":50000000000000,"initialcontribution":5000000000000,"conversion":100000000,"minpreconvert":45000000000000,"maxpreconvert":100000000000000,"launchfee":0,"billingperiod":14400,"notarizationreward":100000000000,"eras":[{"reward":5000000000,"decay":0,"halving":0,"eraend":0,"eraoptions":1}],"nodes":[{"networkaddress":"ipaddress:port","paymentaddress":"R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM"},
{"networkaddress":"2ndipaddress:port","paymentaddress":"R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM"}]}'

The example above defines a chain that emits a premine to the indicated address and also converts all contributions up to a maximum amount to the native chain currency at launch at a 100%, 1:1 conversion price. All contributions will enter the currency's reserve deposits, and the more contributions on this chain, the higher the starting reserve ratio will be. If the minimum contributions are not met, the chain will fail to start and all contributions can be spent back to the original contributors.

The initial price in reserve at chain launch will start at 1.0, but there will be some fees to be paid in the early blocks that will come in as reserve currency. All fees in reserve that are converted to a fractional reserve currency are effective purchases of the fractional reserve currency, and based on a reversible formula, a currency's price will rise or fall on conversion from or to reserves with a level of volatility that is inversely related to the reserve ratio. A currency with a reserve ratio of 1 will never change its price when converting to or from its reserve. A currency with a reserve of 0.1 or 10% will rise or fall fairly quickly when converted to or from, depending on the amount of conversion relative to the total currency reserves on deposit.

Once a chain is made, anyone running the local VRSCTEST chain can connect to any defined chain with the command:

./verusd -chain=SOMECOIN

On first connection, a local config file is created, and VRSCTEST will not need to run to connect. However, it will be needed to merge mine.

The presence of a correct config file for any chain, which are kept in .verustest/PBAAS/CHAINNAME, which is the home directory for a PBaaS chain, enables the chain to load as an independent chain.

Here are a few examples of cross-chain operations using the command line:

Participating in a blockchain launch and converting from reserve before the chain has started (refund address is optional and will default to paymentaddress):

./verus -chain=VRSCTEST sendreserve '{"name": "RESERVEWITHPREMINE", "paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "refundaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000, "preconvert": 1}'

Sending unconverted VRSCTEST to an address on the RESERVEWITHPREMINE chain for later conversion to/from the native coin.

./verus -chain=VRSCTEST sendreserve '{"name": "RESERVEWITHPREMINE", "paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "refundaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000}'

Sending reserve to another chain and converting a coin from reserve to that chain's native currency at the current market price.

./verus -chain=VRSCTEST sendreserve '{"name": "RESERVEWITHPREMINE", "paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "refundaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000, "tonative": 1}'

Sending reserve currency to an address on the current PBaaS reserve chain with no cross-chain operation, Reserve currency on a PBaaS chain is equivalent to and convertible between the native VRSCTEST currency, but may also be sent to and used on PBaaS reserve chains. It will arrive as reserve currency.

./verus -chain=RESERVEWITHPREMINE sendreserve '{"paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000}'

Sending native currency to an address on a PBaaS reserve chain and converting it to reserve currency at the same time at the current market price.

./verus -chain=RESERVEWITHPREMINE sendreserve '{"paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000, "toreserve": 1}'

Sending reserve currency to an address on a PBaaS reserve chain and converting it to native currency at the same time at the current price. It will arrive as native currency.

./verus -chain=RESERVEWITHPREMINE sendreserve '{"paymentaddress": "R9LkTaMn1XpjeorE4RjM6pMcy5Nxkx9jPM", "amount":5000, "tonative": 1}'

Getting the current price in reserve and other currency statistics for the most recent block.

./verus -chain=RESERVEWITHPREMINE getcurrencystate

... a specific block.

./verus -chain=RESERVEWITHPREMINE getcurrencystate blocknum

... a range with a specific period between.

./verus -chain=RESERVEWITHPREMINE getcurrencystate startblocknum,endblocknum,blockstostep

Refunding contributions made to a failed PbaaS chain launch.

verus -chain=VRSCTEST refundfailedlaunch CHAINNAME

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Don't miss a new VerusCoin release

NewReleases is sending notifications on new releases.