github VerusCoin/VerusCoin v0.6.5-1

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

This release is intended for use in the VRSCTEST only. Mainnet approved testnet release is not yet available

Notable Changes:

  • Check for creation of invalid staking transactions

Verus Testnet PBaaS Multi-currency Tokens

The testnet supports a completely new capability of token definitions and token launches (Kickstarter/Gofundme style, ICO, ITO, IPO, etc.). These tokens can be sent through the Verus protocol using the new 'sendcurrency' API, which works for all currencies in the Verus network. Tokens can be used as reserve currencies for other currencies as well. Token launches can accept multiple other coins or tokens for conversion to the new token with payment to the token ID. Each token can have a different conversion price for pre-launch participation as well as minimums and maximums of participation. If minimums are not met by the currency's startblock, all participation will be refunded, less a minimal transfer/network fee, which was already allocated to miners/stakers.

Tokens can be controlled by the blockchain and used for many purposes, including payment models, tickets, point systems, etc., or they can be partially blockchain controlled, centralized tokens, with currencies that are mintable at any time by the ID behind them. The controlling ID can also receive receive aggregated outgoing transactions to external systems that both burn coins and pass account data in the process. This will allow applications to control currency supplies on the public network, whether these applications are external, decentralized networks or centralized custodial systems, in many typical use cases of tokens, including club coins, game tokens, token launches, etc., no programming is required.

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],"preallocation":[{"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}]'

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/64f4f431c73cc8d28da48ee5adaa8fddb07ca20339706c1aa953abe8819cbbd4/detection
Linux-AMD64: https://www.virustotal.com/#/file/bfa5cdbbf35495f9e6e4c8a71da7a05c41795c844aecf0d05817f7e5ee32f2aa/detection
Linux-ARM64: https://www.virustotal.com/#/file/3c71f41cf03ea85fbc3d7c46b6fae18b9458bdd66d06f9dd16eea3a4dc0b3e05/detection
Windows:
https://www.virustotal.com/#/file/c671dff603e3a0219c9bd8403b8ac1efddb0485621dfce9b802e975b4d7652cc
/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 Testing@".

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

CLI examples

Verifying file directly

./verus verifyfile "Verus Coin Foundation Testing@" AcBbDwABQSAhpO83zww8L/K3dZTImWLcF8D/u93GyeQFCtKRoiZbb10cvNCMVDN/13S74mZUGCekQQV9t4fzChTy1mJ/DKKk /Downloads/Verus-CLI-Linux-v0.6.5-amd64/Verus-CLI-Linux-v0.6.5-amd64.tar.gz

Verifying using a checksum

./verus verifyhash "Verus Coin Foundation Testing@" AcBbDwABQSAhpO83zww8L/K3dZTImWLcF8D/u93GyeQFCtKRoiZbb10cvNCMVDN/13S74mZUGCekQQV9t4fzChTy1mJ/DKKk b589a80b79a022f24524e113ccd5b7841d137fb198c5e64618c7a3ed867feb62

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.