Mainnet Updates
v0.7.3-3 is a CRITICAL update with fixes for potential, targeted DOS attacks that do not affect overall network security, but should be considered mandatory for exchanges, pools, and businesses using the Verus network. Previous 0.7.3-x releases should no longer be used and should be replaced by this version.
While this release includes testnet functionality for Verus PBaaS, described below. This is a mainnet focused release that does not fix any issues on testnet. Testnet issues will be address in upcoming optional releases.
New Verus Multicurrency, Multichain, DeFi Enabled Testnet
With an easy GUI for basic operations or command line for more advanced functions. Without any programming, you can now create new identities, currencies, liquidity pools, and blockchains for your business, your government, your projects, a worthy cause, your family, or your next decentralized application suite. Send currencies worldwide on the same chain, or across blockchains with ease. Even convert currencies to others on the network without an exchange by sending to yourself and converting along the way.
The new Verus testnet is a full-featured, intrinsically decentralized multi-chain blockchain platform with an unlimited number of identities, currencies, liquidity pools, and blockchains. It is accessible from the released versions of Verus Desktop and Verus CLI wallets, and it is the beginning of a new age in crypto. There are so many things you can do with Verus that you cannot with any other cryptocurrency platform, and you can try them all today.
As Verus PBaaS offers completely new capabilities that go beyond today’s decentralized platforms in many fundamental ways, the worldwide Verus community put its energy into creation, rather than convincing everyone that its capabilities are possible. Members across the Verus worldwide community have worked hard to make this all possible, and we are more than excited that you can now experience it firsthand. If you have an interest in the future of crypto, you owe it to yourself to learn about Verus, an unlimited scale, decentralized future with truth and privacy for all.
The Verus testnet, available in the Verus Desktop or cli wallets as the VRSCTEST coin, has the following capabilities, which to our knowledge are unique in crypto today.
Self sovereign, revocable, recoverable identities (currently on mainnet) VerusID
- Enables permissionless registration of friendly name strong identities and funds addresses that are simultaneously fully self-sovereign, revocable, and recoverable.
Staking-capable time locking and theft prevention (Verus Vault)
- Enables identities to be locked, preventing any funds under their control from being spent while locked, but still allowing seamless staking of funds. When locked, a user specifies an unlock delay, typically long enough to notice when someone who might have compromised a user’s keys would have to unlock the ID before spending. The only way to circumvent the unlock delay is to revoke and recover an ID. Users may also choose to create and use fresh private keys when unlocking an ID as well. This enables virtually theft proof workflow and a solution to inheritance, trusts, vesting schedules, the 5$ wrench attack, and identity theft. IDs may be used as friendly name cryptocurrency addresses for all currencies on all Verus PBaaS blockchains in the Verus network. The VerusID protocol is a protocol, which can also be implemented on non-Verus systems.
Multi-currency, user created, decentralized tokens and merge-mineable, interoperable blockchains without programming
- Enables any user with an ID to create their own token currency or even full fledged, multi-currency, ID-issuing 50% POW/50% POS, 51% hash attack resistant blockchain that can send and receive from the Verus chain which launched it. All PBaaS chains run from the same daemon, and projects may choose to join the worldwide Verus community in improving the daemon. In doing so, they will start with a complete, multi-currency, ID-capable blockchain with DeFi capabilities that is merge-mineable and stakeable with other blockchains in the Verus network.
Consensus integrated DeFi liquidity pools and fractional currency baskets
- Any ID owner may define Verus DeFi fractional basket currencies with one or more asset currencies backing the liquidity pool at a fractional percentage ranging from 5% to 100% backing. The Verus DeFi protocol ensures that all currency conversions that use a particular liquidity pool and are mined into one block are solved and priced simultaneously, addressing the problems of miner extracted value (MEV) and front-running, while providing fee-based DeFi integrated incentives to miners and stakers, ensuring smooth consensus operation and fee conversion capabilities by integrating DeFi liquidity pools directly into the consensus and cross-chain bridge protocols.
Simultaneous blockchain and blockchain liquidity pool launches
- Launch of a world class, worldwide, merge-mineable blockchain along with a fully decentralized or centralized “bridge” converter liquidity pool as part of defining a new blockchain. Bridge converter currencies have the same flexibility as other fractional 100% asset backed or partially asset backed currencies, but is bound to the launch of the new blockchain, runs on the new blockchain, and all fees generated via cross chain fee conversions or general use of the liquidity pool are earned on the new blockchain with no rent going back to the Verus blockchain, only seamless connectivity.
Blockchain-based, crowdfunding currency launches with minimum participation or automatic refunds, including for dual launches (blockchain and bridge)
- Set required minimum levels of worldwide participation in your preferred currencies on chain. If by the start time of your blockchain, minimums are not met, all participants will automatically get a refund of all of their pre-conversions, less the network fees. The launch options also provide for maximum participation in one or more currencies, pre-launch discounts, price neutral pre-allocations to select IDs that increase the fractional reserve ratio to issue currencies, similarly price neutral carve-outs of proceeds, and pre-launch discounts for early participants. Using VerusIDs, launches can also include vesting schedules in the pre-allocations as well.
An interoperable, multichain network for new use cases and unlimited scale**
- The Verus multi-currency, multi-chain network allows the creation of an unlimited number of interoperable blockchains in the Verus network. Notary IDs, specified at chain definition, provide decentralized blockchain-specific bridge confirmation, enabling public blockchains available to the world for merge mining and staking, as well as private, internal blockchains, which are easy to setup with easy bridging of public currencies into an organization and onto their internal private network and back, with all features and currencies of the public chain but none of the access. There is no limit on the number of blockchains that may continuously operate and interoperate on the Verus network. While there is some overhead for cross notarization, the model for the Verus blockchain network is fractal, enabling an unlimited number of simultaneously operating, interoperable blockchains.
Locking and Unlocking IDs
- Time Lock:
The timelock parameter defines the unlock height of the identity.verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 0, "timelock": <Unlock block height>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
- Time Delay:
The timelock parameter defines how many blocks to delay an ID's unlock when the flags are set back to an unlocked state.verus -chain=VRSCTEST updateidentity '{"name": "ID@", "flags": 2, "timelock": <Unlock block delay>, "minimumsignatures": 1, "primaryaddresses": ["t-address"]}'
- Revoking an identity will clear its locked status, regardless of time delay or unlock height.
- A locked identity cannot revoke itself.
Conversion Queries
The getcurrencyconverters
API retrieves all currencies that have at least 1000 VRSC in reserve, are greater than 10% VRSC reserve ratio, and have all listed currencies as reserves
- E.g. BTC ETH:
Will return all currencies that have btc/eth markets at or above the liquidity threshold.verus -chain=VRSCTEST getcurrencyconverters btc eth
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 private wallet funds to two recipients with friendly-name z-addresses (alice@:private and bob@:private):
verus -chain=VRSCTEST sendcurrency "*Z" '[{"currency":"vrsctest","address":"alice@:private","amount":10},{"currency":"VRSCTEST","address":"bob@:private","amount":10}]'
- Converting VRSCTEST to a fractional basket currency, VRSC-BTC using IDs as a funding source:
verus -chain=VRSCTEST sendcurrency "*i" '[{"address":"bob@","amount":10, "convertto":"VRSC-BTC"}]'
- Converting VRSCTEST to another reserve, BTC through a fractional currency, VRSC-BTC:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"bob@","amount":10, "convertto":"BTC","via":"VRSC-BTC"}]'
- Preconverting to new currency, NEWCOIN, before it is active:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"alice@","amount":10, "convertto":"NEWCOIN", "preconvert":true, "refundto":"alice@"}]'
- Sending VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "exportto":"Bridge.PBaaSChain"}]'
- Converting VRSCTEST cross-chain to PBaaSChain:
verus -chain=VRSCTEST sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"PBaaSChain","exportto":"Bridge.PBaaSChain","via":"Bridge.PBaaSChain"}]'
- Converting PBaaSChain to VRSCTEST:
verus -chain=PBaaSChain sendcurrency "*" '[{"address":"RXLYm4J6qi7yam9zXtkEkRwbvCrnWKGZuv","amount":10, "convertto":"VRSCTEST","exportto":"VRSCTEST","via":"Bridge.PBaaSChain"}]'
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":97, "proofprotocol":2,"currencies":["vrsctest", "gold"],"minpreconversion":[10000,5.1298]}, "initialsupply":[20000]'
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}]'
Defining a PBaaS blockchain
{
"name": "PBaaSChain",
"options": 330,
"currencies": [
"VRSCTEST"
],
"conversions": [
1
],
"eras": [
{
"reward": 1200000000,
"decay": 0,
"halving": 0,
"eraend": 0
}
],
"notaries": [
"Notary1@",
"Notary2@",
"Notary3@",
],
"minnotariesconfirm": 2,
"nodes": [
{
"networkaddress": "111.111.111.111:10000",
"nodeidentity": "Node1@"
},
{
"networkaddress": "111.111.111.112:10000",
"nodeidentity": "Node2@"
}
],
"gatewayconvertername": "Bridge",
"gatewayconverterissuance": 1000000
}
The bridge definition has overridable defaults
{
"currencies": [
"VRSCTEST",
"PBaaSChain",
"USD"
],
"initialcontributions": [
380228.12033701,
0,
1000000
],
"initialsupply": 3000000
}
Now pass those definitions to definecurrency
./verus -chain=vrsctest definecurrency '{"name":"PBaaSChain","options":330,"currencies":["VRSCTEST"],"conversions":[1],"eras":[{"reward":1200000000,"decay":0,"halving":0,"eraend":0}],"notaries":["Notary1@","Notary2@","Notary3@"],"minnotariesconfirm":2,"nodes":[{"networkaddress":"111.111.111.111:10000","nodeidentity":"Node1@"},{"networkaddress":"111.111.111.112:10000","nodeidentity":"Node2@"}],"gatewayconvertername":"Bridge","gatewayconverterissuance":1000000}' '{"currencies":["VRSCTEST","PBaaSChain","USD"],"initialcontributions":[371747.20398827,0,1000000],"initialsupply":3000000}'
Limitations in multi-currency to be aware of:
-
(GUI and CLI) You will not be able to make a currency from an ID that has a properly encoded i-address as its actual name, not its calculated ID. Generally, the advice is “don’t do that”. Using an i-address when referring to a currency will only be interpreted as referring to the currency or identity which has that i-address calculated based on its name registration. As a general rule, making an ID with an i-address as its name is not prevented by the protocol, but will cause problems whenever an i-address or name may be used (many cases) and will not be supported for creating currencies. To reduce any potential for user confusion, even though the naming system provides will also be expanding the set of characters that will not be allowed for currency registrations.
-
(GUI) If a currency is supported in the Verus Desktop already, such as BTC or ETH, you will not be able to use those same named currencies as a PBaaS chain. This limitation is considered errata for this testnet release and will not be a limitation before mainnet availability.
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
MacOS
Users/{YourUserName}/Library/Application Support/Komodo/vrsctest
Windows
"%APPDATA%"\Komodo\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/a89c74194eca46de3b6dc5fe4f996a8d4b2dc67e523fb8923f28d635fb4348fc/detection
Linux-x86-64: https://www.virustotal.com/#/file/37facf48634f61639248801a0862b751cde571701ad95d20dea438860e4877ad/detection
Linux-ARM64: https://www.virustotal.com/#/file/6d8468ac74996f52068e03a38d5c98f58e80fbf034c18a8bdb9eb5ab60782712/detection
Windows:
https://www.virustotal.com/#/file/6365be1b0af8b9d924111b4c014b2653c338e4e8717c47056b599f68e81a2931/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@".
- Extract downloaded archive
- Verify signature for the extracted archive using the extracted text file.
- Extract archive to desired directory
CLI examples
Verifying file directly
./verus verifyfile "Verus Coin Foundation Releases@" AakaFwABQR+eYI49GX0y/z1x0Abr375LlHTD01ADTTBfA5D9uVhGvTtILdO+DwOmnWgWw6twtNQ3RBOs+jVHkVe04grz+NAO /Downloads/Verus-CLI-Linux-v0.7.3-3-x86_64/Verus-CLI-Linux-v0.7.3-3-x86_64.tar.gz
Verifying using a checksum
./verus verifyhash "Verus Coin Foundation Releases@" AakaFwABQR+eYI49GX0y/z1x0Abr375LlHTD01ADTTBfA5D9uVhGvTtILdO+DwOmnWgWw6twtNQ3RBOs+jVHkVe04grz+NAO 2db05535dbc92292e18aab2e2d0a057322fcca42e7ee106ef16e267063201765
The result will be true if the signature is valid.
true