]> Git Repo - VerusCoin.git/blame - README.md
Merge pull request #98 from VerusCoin/dev
[VerusCoin.git] / README.md
CommitLineData
573ad418 1## VerusCoin version 0.3.11-beta
058156b8 2VerusCoin is a new, mineable and stakeable cryptocurrency. It is a live fork of Komodo that retains its Zcash lineage and improves it. VerusCoin will leverage the Komodo platform and dPoW notarization for enhanced security and cross-chain interoperability. We have added a variation of a zawy12, lwma difficulty algorithm, a new CPU-optimized hash algorithm and a new algorithm for fair proof of stake. We describe these changes and vision going forward in a [our Phase I white paper](http://185.25.51.16/papers/VerusPhaseI.pdf) and [our Vision](http://185.25.51.16/papers/VerusVision.pdf).
b7bf3f28
DD
3- [VerusCoin web site https://veruscoin.io/ Wallets and CLI tools](https://veruscoin.io/)
4- [VerusCoin Explorer](https://explorer.veruscoin.io/)
72311c06 5
3c8d5534
T
6## Komodo with Bitcore
7This version of Komodo contains Bitcore support for komodo and all its assetchains.
559ab225 8
78192246 9## Komodod
e123fd6f 10This software is the VerusCoin enhanced Komodo client. Generally, you will use this if you want to mine VRSC or setup a full node. When you run the wallet it launches komodod automatically. On first launch it downloads Zcash parameters, roughly 1GB, which is mildly slow.
c7d92b50 11The wallet downloads and stores the block chain or asset chain of the coin you select. It downloads and stores the entire history of the coins transactions; depending on the speed of your computer and network connection, the synchronization process could take a day or more once the blockchain has reached a significant size.
20e0bc85 12
78192246 13## Development Resources
b7bf3f28 14- VerusCoin:[https://veruscoin.io/](https://veruscoin.io/) Wallets and CLI tools
78192246 15- Komodo Web: [https://komodoplatform.com/](https://komodoplatform.com/)
20e0bc85
S
16- Organization web: [https://komodoplatform.com/](https://komodoplatform.com/)
17- Forum: [https://forum.komodoplatform.com/](https://forum.komodoplatform.com/)
18- Mail: [[email protected]](mailto:[email protected])
19- Support: [https://support.komodoplatform.com/support/home](https://support.komodoplatform.com/support/home)
20- Knowledgebase & How-to: [https://komodoplatform.atlassian.net/wiki/spaces/KPSD/pages](https://komodoplatform.atlassian.net/wiki/spaces/KPSD/pages)
78192246 21- API references: [http://docs.supernet.org/](http://docs.supernet.org/) #Not up to date.
20e0bc85 22- Whitepaper: [Komodo Whitepaper](https://komodoplatform.com/wp-content/uploads/2018/03/2018-03-12-Komodo-White-Paper-Full.pdf)
78192246 23- Komodo Platform public material: [Komodo Platform public material](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
20e0bc85 24
78192246 25## List of Komodo Platform Technologies
20e0bc85
S
26- Delayed Proof of Work (dPoW) - Additional security layer.
27- zk-SNARKs - Komodo Platform's privacy technology
28- Jumblr - Decentralized tumbler for KMD and other cryptocurrencies
29- Assetchains - Easy way to fork Komodo coin
30- Pegged Assets - Chains that maintain a peg to fiat currencies
31- Peerchains - Scalability solution where sibling chains form a network of blockchains
32- More in depth covered [here](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
33- Also note you receive 5% APR on your holdings.
34[See this article for more details](https://komodoplatform.atlassian.net/wiki/spaces/KPSD/pages/20480015/Claim+KMD+Interest+in+Agama)
35
78192246 36## Tech Specification
20e0bc85
S
37- Max Supply: 200 million KMD.
38- Block Time: 1M 2s
39- Block Reward: 3KMD
40- Mining Algorithm: Equihash
41
78192246 42## About this Project
da925f78 43Komodo is based on Zcash and has been by our innovative consensus algorithm called dPoW which utilizes Bitcoin's hashrate to store Komodo blockchain information into the Bitcoin blockchain. Other new and native Komodo features are the privacy technology called JUMBLR or our assetchain capabilities (one click plug and play blockchain solutions). More details are available under https://komodoplatform.com/.
20e0bc85 44
78192246 45## Getting started
d7426190 46Dependencies
47------------
78192246 48
20e0bc85 49```shell
d7426190 50#The following packages are needed:
e8131126 51sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget libcurl4-openssl-dev bsdmainutils automake curl
d7426190 52```
78192246 53
545b3011
DD
54
55Building
56--------
57
a4aac3d0 58First time you'll need to get assorted startup values downloaded. This takes a moderate amount of time once but then does not need to be repeated unless you bring a new system up. The command is:
545b3011
DD
59```
60./zcutil/fetch-params.sh
61```
62Building for Ubunutu/Mint:
63```
64./zcutil/build.sh
65```
66Building for Mac OS/X (see README-MAC.md):
67```
68./zcutil/build-mac.sh
69```
70Building for Windows:
71```
72./zcutil/build-win.sh
d7426190 73```
a4aac3d0 74VerusCoin
d7426190 75------
a4aac3d0 76We develop on dev and some other branches and produce releases of of the master branch, using pull requests to manage what goes into master.
a08b1ae8 77
78192246 78
20e0bc85 79```shell
a4aac3d0 80git clone https://github.com/VerusCoin/VerusCoin
62fff833 81cd VerusCoin
a08b1ae8 82#you might want to: git checkout <branch>; git pull
f3ae714c 83./zcutil/fetch-params.sh
6c4dfa1c 84# -j8 uses 8 threads - replace 8 with number of threads you want to use
85./zcutil/build.sh -j8
d7426190 86#This can take some time.
87```
3bb1d82c 88
a4aac3d0 89**The VerusCoin enhanced komodo is experimental and a work-in-progress.** Use at your own risk.
ce7e7caf 90
9000990c 91
d7426190 92#To view komodod output:
aae8f281 93tail -f ~/.komodo/debug.log
a4aac3d0
DD
94#To view VRSC output:
95tail -f ~/.komodo/VRSC/debug.log
96Note that this directory is correct for Linux, not Mac or Windows
67e8ca1c
Y
97#To view all command
98./src/komodo-cli help
666a401f 99**Zcash is unfinished and highly experimental.** Use at your own risk.
20e0bc85 100
666a401f
DH
101Where do I begin?
102-----------------
473ed951
CB
103We have a guide for joining the main Zcash network:
104https://github.com/zcash/zcash/wiki/1.0-User-Guide
20e0bc85 105
a4aac3d0
DD
106#Older Komodo Details
107The remaining text is from the komodo source we forked when creating VerusCoin/Veruscoin.
20e0bc85
S
108**To change modes:**
109
110a) backup all privkeys (launch komodod with `-exportdir=<path>` and `dumpwallet`)
111
112b) start a totally new sync including `wallet.dat`, launch with same `exportdir`
113
114c) stop it before it gets too far and import all the privkeys from a) using `komodo-cli importwallet filename`
115
a35f7eee 116d) resume sync till it gets to chaintip
20e0bc85 117
c9ef1c89 118For example:
20e0bc85 119```shell
c9ef1c89 120./komodod -exportdir=/tmp &
121./komodo-cli dumpwallet example
122./komodo-cli stop
123mv ~/.komodo ~/.komodo.old && mkdir ~/.komodo && cp ~/.komodo.old/komodo.conf ~/.komodo.old/peers.dat ~/.komodo
124./komodod -exchange -exportdir=/tmp &
02b02173 125./komodo-cli importwallet /tmp/example
20e0bc85
S
126```
127
128## JUMBLR
129komodod now has `jumblr_deposit` and `jumblr_secret` RPC calls.
130
1cacba6a 131Jumblr works like described previously where all the nodes with jumblr active synchronize their tx activity during the same block to maximize the mixing effect. However, unlike all other mixers/tumblers, you never give up control of your coins to anybody else. JUMBLR uses a one to many allocation of funds, ie. one deposit address and many secret addresses. You can always run multiple komodod daemons to get multiple active deposit addresses.
20e0bc85 132
1cacba6a 133JUMBLR implements t -> z, z -> z and z -> t transactions to maximize privacy of the destination t (transparent) address. So while it is transparent, its first activity is funds coming from an untracable z address.
20e0bc85 134
78192246 135Which of the three stages is done is randomly selected at each turn. Also when there is more than one possible transaction at the selected stage, a random one is selected. This randomization prevents analyzing incoming z ->t transactions by its size to correlate it to the originating address.
20e0bc85
S
136
137`jumblr_deposit <depositaddr>` designates the deposit address as the jumblr deposit address for that session. You can select an address that already has funds in it and it will immediately start jumblr process. If there are no funds, it will wait until you send funds to it.
138
139There are three sizes of a jumblr transaction: 10 KMD, 100 KMD and 1000 KMD. There is also a fixed interval of blocks where all jumblr nodes are active. Currently it is set to be 10, but this is subject to change. Only during every 10*10 blocks are the largest 1000 KMD transactions processed, so this concentrates all the large transactions every N*N blocks.
140
141`jumblr_secret <secretaddress>` notifies JUMBLR where to send the final z -> t transactions. In order to allow larger accounts to obtain privacy, up to 777 secret addresses are supported. Whenever a z -> t stage is activated, a random secret address from the list of the then active secret addresses is selected.
142
143#### Practical Advice:
78192246 144Obtaining privacy used to be very difficult. JUMBLR makes it as simple as issuing two command line calls. Higher level layers can be added to help manage the addresses, ie. linking them at the passphrase level. Such matters are left to each implementation.
20e0bc85 145
1cacba6a 146Once obtained, it is very easy to lose all the privacy. With a single errant transaction that combines some previously used address and the secretaddress, well, the secretaddress is no longer so private.
20e0bc85 147
1cacba6a 148The advice is to setup a totally separate node!
20e0bc85 149
1cacba6a 150This might seem a bit drastic, but if you want to maintain privacy, it is best to make it look like all the transactions are coming from a different node. The easiest way for most people to do this is to actually have a different node.
20e0bc85
S
151
152It can be a dedicated laptop (recommended) or a VPS (for smaller amounts) with a totally fresh komodod wallet. Generate an address on this wallet and use that as the jumblr_secret address on your main node. As the JUMBLR operates funds will teleport into your secret node's address. If you are careful and never use the same IP address for both your nodes, you will be able to maintain very good privacy.
153
78192246 154Of course, don't send emails that link the two accounts together! Dont use secret address funds for home delivery purchases! Etc. There are many ways to lose the privacy, just think about what linkages can be dont at the IP and blockchain level and that should be a useful preparation.
20e0bc85 155
1cacba6a 156What if you have 100,000 KMD and you dont want others to know you are such a whale?
1cacba6a 157Instead of generating 1 secret address, generate 100 and make a script file with:
20e0bc85 158```shell
1cacba6a 159./komodo-cli jumblr_secret <addr0>
160./komodo-cli jumblr_secret <addr1>
161...
162./komodo-cli jumblr_secret <addr99>
20e0bc85 163```
1cacba6a 164And make sure to delete all traces of this when the JUMBLR is finished. You will end up with 100 addresses that have an average of 1000 KMD each. So as long as you are careful and dont do a 10,000 KMD transaction (that will link 10 of your secret addresses together), you can appear as 100 different people each with 1000 KMD.
This page took 0.139299 seconds and 4 git commands to generate.