github VerusCoin/VerusCoin v0.7.1-5

latest releases: v1.2.2-5, v1.2.2-4, v1.2.2-3...
3 years ago

New in v0.7.1-5

This non-mandatory release is compatible with mainnet with mininal changes from v0.7.1-1. It contains fixes necessary to continue participating in the testnet launched in v0.7.1-1, without reset of your wallet or holdings, if you started using the VRSCTEST multi-currency testnet in v0.7.1-1 or later. You should be able to synchronize easily, but if you are unable to synchronize VRSCTEST shortly after connecting, try deleting the data in your VRSCTEST folder, and retain the wallet.dat file.

Verus Testnet with Multi-currency Fractional Reserves and Currency Launch Protocol

Verus multi-currency fractional reserve baskets are UTXO-based, fractional reserve currencies with anti-front running, simultaneously solved, provably fair liquidity system for all currencies and tokens in or imported into the PBaaS system.

While Verus daemon v0.7.1-5 has no improvements for mainnet operation, it offers full support for the new Verus Testnet multi-currency technology preview. On testnet, the new "sendcurrency" API, which is already available on Verus mainnet in its simplified form, is enhanced with new multi-currency parameters. The first parameter, "currency":"currencyname" - where the default on testnet for currency name is "vrsctest", specifies the source currency of the send. The next, "convertto":"currencyname", allows conversion from one currency to either a fractional currency where it is a reserve or a reserve of the fractional currency of the source.

Enhancements to TestNet Protocols for Increased Scale, Currency Burn Functions, and Centralized Fractional Currencies

Version v0.7.1-5 is not yet considered hardened for mainnet, but has increased scale over previous versions in addition to the ability to apply both fractional and centralized attributes to a currency. This allows price neutral minting by the currency controller through automatic reductions of the reserve ratio of all currencies. This version also enables a new parameter to the "sendcurrency" API called "burn". If "burn" is set to 1, a currency sent, which must be a token or fractional currency is officially removed from that currency's supply. In the case of a fractional currency, this will have the effect of increasing the on-chain price for all holders, depending on the amount burned.

An end to front running

Conversion will always be at the same rate as all conversions processed in one group of transactions. There is also no spread between the conversion to and from a currency. All transactions in a aggregation of import blocks, which will be detailed in later documentation, are simultaneously solved in all currency conversion directions and all converted at the same rate, all getting the same price in each direction as any person who may be exchanging in the other.

There is a fee, 0.025% for conversions, 100% of which goes to miners and stakers. While it is not yet implemented, we also intend to add an implied volatility fee, which will be charged variably on imbalanced blocks of transactions, making blocks that change the price of a currency significantly pay more of an implied volatility fee, and ensuring that relatively volatile currency baskets offset any potential impermanent loss to liquidity providers risk with earnings from implied volatility fees. At the same time, currency baskets that are less volatile relative to the constituent currencies will typically have lower implied volatility fees and lower earnings for liquidity providers to offset a lower risk of impermanent loss.

The Best Way to Launch a Currency

Currency launches with Kickstarter-like minimums to activate or, if not met, automatically refund, dynamic currency launch pricing, based on participation, pre-launch participation price discounts, pre-conversion reserve currency carveouts, and price-neutral launch pre-allocations, all specified in easy to understand commands and parameters, no programming necessary!

Currencies can be launched to accept a range of other currencies and with or without fractional reserve capabilities. Verus import/export protocol was designed to make integration with other block chains provable and easy, and there are already external bridges in progress that expect to enable automatic send/receive of any Verus network token between Verus and ETH/ERC20 tokens, where currencies can be sent between Verus and ETH, expressed as Verus currencies on the Verus network, and exposed automatically on ETH as an ERC20 token.

Preparing for Multi-chain, Dynamic Merge Mining

While this 0.7.1 testnet enables on-chain token currency definition, the same advances will soon be available on the Verus merge mining and multi-chain technology which was running on testnet last year. When enabled, this will make it possible for Verus network chains to operate fully independently, yet be dynamically merge mineable along with Verus and up to 20 other Verus network blockchains on a single hash, earning rewards and powering all chains simultaneously. All network blockchains will provide the same fractional currency capabilities, both for on-chain tokens as well as native zk-SNARK supporting currencies as well.

Sending and Converting Currency

Warning: All testnet coins/currencies have no value and will disappear whenever VRSCTEST is reset

The sendcurrency API can be used to send and convert funds.
Sending VRSCTEST from a single address (bob@) to a single recipient (alice@):

verus -chain=VRSCTEST sendcurrency "bob@" '[{"currency":"vrsctest","address":"alice@","amount":10}]' 

Sending VRSCTEST from all wallet funds to two recipients (alice@ and bob@):

verus -chain=VRSCTEST sendcurrency "*" '[{"currency":"vrsctest","address":"alice@","amount":10},{"currency":"VRSCTEST","address":"bob@","amount":10}]' 

Converting VRSCTEST to another currency, TESTCOIN:

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"TESTCOIN"}]' 

Preconverting to new currency, NEWCOIN, before it is active:

verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]' 

Defining a Currency

To create a currency of a specific name, you need an ID of the same name. The controller of this ID is the only one who can create a currency of that name, and they can only do so once.
So, let's hypothetically assume I have 3 IDs, one named gold@, one named mycoin@, and one named mike@. I would like to have one currency, gold@,
that I somehow launch in a way that maps it in a way that can be widely trusted to a specific, auditable store of gold.
I also would like to launch a token called mycoin@, which is something like a Kickstarter, where a business, "my", offers to attribute the coins some utility or product value if the purchase exceeds a certain level.
First, I could define the currency "gold" as follows:

./verus -chain=VRSCTEST definecurrency '{"name":"gold","options":96,"currencies":["vrsctest"],"conversions":[0.01],"minpreconversion":[1000],"preallocations":[{"mike@":50000000.00000000}]}'

of course, since this is a test currency, I send myself some to start. The identity of the currency must be funded with at least 10 VRSCTEST before sending the transaction returned from this command to
initiate a currency launch that will start at 50 blocks from when it was made (default), and that must have 1000 VRSCTEST preconverted at 0.01 VRSCTEST per GOLD in order to launch.
all of this happens as part of the mining process, since mining the blocks that launch a currency earn the 0.025% conversion fees of participation
in the launch, converting VRSCTEST to GOLD. I could send the following command before the block where GOLD token launches.
After it launches, the only way at present to create new tokens is with a centralized issuance option. To convert VRSCTEST to GOLD, you could issue the command:

./verus -chain=VRSCTEST sendcurrency "*" '[{"address":"mike@","convertto":"gold","preconvert":1,"amount":100}]'

that would effectively park my conversion until the token launches, at which point, I will either find 0.975 GOLD in my wallet, or I will have my VRSCTEST back.
Assuming it launches, and I later want to create mycoin, which can be converted to with either GOLD or VRSCTEST, I can create mycoin with:

./verus -chain=VRSCTEST definecurrency '{"name":"mycoin","options":96, "proofprotocol":2,"currencies":["vrsctest", "gold"],"conversions":[0.01, 1.0],"minpreconversion":[1000,1000]}'

In "mycoin", I set proofprotocol to 2, which is PROOF_CHAINID. That means that the controller of the chain ID can mint new coins as follows:

./verus -chain=VRSCTEST sendcurrency "mycoin@" '[{"address":"mike@","currency":"mycoin","mintnew":1,"amount":10000}]'

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/VRSCTEST
~/.verustest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/VRSCTEST
 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩⁨/VerusTest

Windows

"%APPDATA%"\Komodo\VRSCTEST
"%APPDATA%"\VerusTest

Launching the testnet:

./verusd -chain=VRSCTEST

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.

MacOS:
https://www.virustotal.com/#/file/8114d40ea20883a728640905f282e4017da8b3f98d373ab8230be68ba6f3a89a/detection
Linux-AMD64: https://www.virustotal.com/#/file/8344a259a176124f44255a01344fa40917ee217b2d260f6f14480ebec94dd75f/detection
Linux-ARM64: https://www.virustotal.com/#/file/592a3983cc35519f52001309db326e7a6e114a754aa4dfd75dbb738eb512879a/detection
Windows:
https://www.virustotal.com/#/file/8c52846d8e26223a95214ff01cde849ab5a7c94105aafe4cb8e66c537c8c35b8/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Verifying Downloads

A txt file containing the signer, standard sha256 file checksum, and signature, is included for each download. These packages have been signed with the identity "Verus Coin Foundation Releases@".

  1. Extract downloaded archive
  2. Verify signature for the extracted archive using the extracted text file.
  3. Extract archive to desired directory

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Releases@" AXAkEQABQR/tMlFb0UpI3f6Y610spPi50zVSGpWwzNV49QF0sUavujInLrw3Ej9wt6iPf/KrjpSLELJVcH8UWXBRkm4Yhh6b /Downloads/Verus-CLI-Linux-v0.7.1-5-amd64/Verus-CLI-Linux-v0.7.1-5-amd64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Releases@" AXAkEQABQR/tMlFb0UpI3f6Y610spPi50zVSGpWwzNV49QF0sUavujInLrw3Ej9wt6iPf/KrjpSLELJVcH8UWXBRkm4Yhh6b e70862ae89f0d7968fee0d19e730e74917a3f322da8e1e9f45a2484bc9a95aa7

The result will be true if the signature is valid.

true

Don't miss a new VerusCoin release

NewReleases is sending notifications on new releases.