]> Git Repo - VerusCoin.git/blob - README.md
Test
[VerusCoin.git] / README.md
1 Zcash 1.0.8
2 ===========
3
4 What is Zcash?
5 --------------
6
7 [Zcash](https://z.cash/) is an implementation of the "Zerocash" protocol.
8 Based on Bitcoin's code, it intends to offer a far higher standard of privacy
9 through a sophisticated zero-knowledge proving scheme that preserves
10 confidentiality of transaction metadata. Technical details are available
11 in our [Protocol Specification](https://github.com/zcash/zips/raw/master/protocol/protocol.pdf).
12
13 This software is the Zcash client. It downloads and stores the entire history
14 of Zcash transactions; depending on the speed of your computer and network
15 connection, the synchronization process could take a day or more once the
16 blockchain has reached a significant size.
17
18 Security Warnings
19 -----------------
20  
21 See important security warnings in
22 [doc/security-warnings.md](doc/security-warnings.md).
23
24 License
25 -------
26  
27 Zcash is released under the terms of the MIT license. See [COPYING](COPYING) for more
28 information or see http://opensource.org/licenses/MIT.
29  
30  
31 Komodo Specific Notes
32 =====================
33  
34 Dependencies
35 ------------
36  
37 ```
38 #The following packages are needed:
39 sudo apt-get install build-essential pkg-config libcurl3-gnutls-dev libc6-dev libevent-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake libboost-all-dev libssl-dev libprotobuf-dev protobuf-compiler libqt4-dev libqrencode-dev libdb++-dev ntp ntpdate
40 ```
41  
42 Komodo
43 ------
44  
45 ```
46 git clone https://github.com/jl777/komodo
47 cd komodo
48 ./zcutil/fetch-params.sh
49
50 # -j8 uses 8 threads - replace 8 with number of threads you want to use
51 ./zcutil/build.sh -j8
52 #This can take some time.
53 ```
54  
55 # to update an existing version, git checkout dPoW if not on that branch already
56
57 git pull
58
59 ./zcutil/fetch-params.sh
60
61 ./zcutil/build.sh -j8
62
63 To reset the blockchain, from ~/.komodo rm -rf blocks chainstate debug.log komodostate db.log
64
65 Create komodo.conf
66 ------------------
67  
68 ```
69 cd ~
70 mkdir .komodo
71 cd .komodo
72 pico komodo.conf
73 #Add the following lines to the komodo.conf file:
74
75 rpcuser=bitcoinrpc
76 rpcpassword=password
77 txindex=1
78 addnode=5.9.102.210
79 addnode=78.47.196.146
80 addnode=178.63.69.164
81 addnode=88.198.65.74
82 addnode=5.9.122.241
83 addnode=144.76.94.38
84 addnode=89.248.166.91
85 ```
86  
87 Start mining
88 ------------
89  
90 ```
91 #iguana documentation shows how to get the btcpubkey and wifstrs that need to be used
92
93 #bitcoin also need to be installed with txindex=1 and with rpc enabled
94
95 cd ~
96 cd komodo
97
98
99 #This will return your pubkey eg. "0259e137e5594cf8287195d13aed816af75bd5c04ae673296b51f66e7e8346e8d8" for your address
100 ./src/komodo-cli validateaddress <yourwalletaddres>
101
102 #This will give the privkey of your wallet address
103 ./src/komodo-cli dumpprivkey <yourwalletaddres>
104
105 #This will import the privkey to be sure the mined coins are placed into your wallet address
106 ./src/komodo-cli importprivkey <yourwalletprivkey>
107
108 #To stop the daemon:
109 ./src/komodo-cli stop
110
111 #This starts komodo notary - replace genproclimit with number of threads you want to use and add your pubkey
112 ./src/komodod -gen -genproclimit=2 -notary -pubkey="0259e137e5594cf8287195d13aed816af75bd5c04ae673296b51f66e7e8346e8d8" &
113
114 #This will get the stats:
115 ./src/komodo-cli getinfo
116
117 #To view the process:
118 ps -ef | grep komodod
119
120 #To stop the daemon:
121 ./src/komodo-cli stop 
122  
123 #To view komodod output:
124 tail -f ~/.komodo/debug.log
125
126 #To view all command
127 ./src/komodo-cli help
128
129 ASSETCHAINS: -ac_name=name -ac_supply=nnnnn
130
131 Both komodod and komodo-cli recognize -ac_name=option so you can create a zcash fork from the commandline
132
133 ```
134
135 =======
136
137 **Zcash is unfinished and highly experimental.** Use at your own risk.
138
139 Where do I begin?
140 -----------------
141 We have a guide for joining the main Zcash network:
142 https://github.com/zcash/zcash/wiki/1.0-User-Guide
143
144 ### Need Help?
145
146 * See the documentation at the [Zcash Wiki](https://github.com/zcash/zcash/wiki)
147   for help and more information.
148 * Ask for help on the [Zcash](https://forum.z.cash/) forum.
149
150 Participation in the Zcash project is subject to a
151 [Code of Conduct](code_of_conduct.md).
152
153 Building
154 --------
155
156 Build Zcash along with most dependencies from source by running
157 ./zcutil/build.sh. Currently only Linux is officially supported.
158
159 License
160 -------
161
162 For license information see the file [COPYING](COPYING).
163
164
165 NOTE TO EXCHANGES:
166 https://bitcointalk.org/index.php?topic=1605144.msg17732151#msg17732151
167 There is a small chance that an outbound transaction will give an error due to mismatched values in wallet calculations. There is a -exchange option that you can run komodod with, but make sure to have the entire transaction history under the same -exchange mode. Otherwise you will get wallet conflicts.
168
169 To change modes:
170 a) backup all privkeys (launch komodod with -exportdir=<path> and dumpwallet)
171 b) start a totally new sync including wallet.dat, launch with same exportdir
172 c) stop it before it gets too far and import all the privkeys from a) using komodo-cli importwallet filename
173 d) resume sync till it gets to chaintip
174
175 For example:
176 ./komodod -exportdir=/tmp &
177 ./komodo-cli dumpwallet example
178 ./komodo-cli stop
179 mv ~/.komodo ~/.komodo.old && mkdir ~/.komodo && cp ~/.komodo.old/komodo.conf ~/.komodo.old/peers.dat ~/.komodo
180 ./komodod -exchange -exportdir=/tmp &
181 ./komodo-cli importwallet /tmp/example
182
183 ############## JUMBLR
184
185 komodod now has jumblr_deposit and jumblr_secret RPC calls. 
186
187 Jumblr 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.
188
189 JUMBLR 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.
190
191 Which of the three stages is done is randomly selected at each turn. Also when there are 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.
192
193 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.
194
195 There 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. 
196
197 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.
198
199 Practical Advice:
200 Obtaining 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 things are left to each implementation.
201
202 Once 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.
203
204 The advice is to setup a totally separate node!
205
206 This 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.
207
208 It can be a dedicated laptop (recommended) or a VPS (for not so big 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. 
209
210 Of course, dont be sending 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.
211
212 What if you have 100,000 KMD and you dont want others to know you are such a whale?
213
214 Instead of generating 1 secret address, generate 100 and make a script file with:
215
216 ./komodo-cli jumblr_secret <addr0>
217 ./komodo-cli jumblr_secret <addr1>
218 ...
219 ./komodo-cli jumblr_secret <addr99>
220
221 And 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.
222
223
This page took 0.036948 seconds and 4 git commands to generate.