]> Git Repo - VerusCoin.git/blame - README.md
futureblock flag
[VerusCoin.git] / README.md
CommitLineData
3c8d5534
T
1## Komodo with Bitcore
2This version of Komodo contains Bitcore support for komodo and all its assetchains.
78192246 3## Komodod
4This software is Komodo client, generally you will use this if you want to mine KMD or setup a full node.
5It downloads and stores the entire history of Komodo 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.
6## Development Resources
7- Komodo Web: [https://komodoplatform.com/](https://komodoplatform.com/)
8- Organization web: [https://www.supernet.org](https://www.supernet.org)
9- Forum: [https://forum.supernet.org/](https://forum.supernet.org/)
10- Mail: [[email protected]](mailto:[email protected])
11- Support & Guides: [https://support.supernet.org/support/home](https://support.supernet.org/support/home)
12- API references: [http://docs.supernet.org/](http://docs.supernet.org/) #Not up to date.
13- Komodo Platform public material: [Komodo Platform public material](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
14## List of Komodo Platform Technologies
15Delayed Proof of Work (dPoW) - Additional security layer.
da925f78 16zk-SNARKs - Komodo Platform's privacy technology
78192246 17Jumblr - Decentralized tumbler for KMD and other cryptocurrencies
18Assetchains - Easy way to fork Komodo coin
19Pegged Assets - Chains that maintain a peg to fiat currencies
20Peerchains - Scalability solution where sibling chains form a network of blockchains
21More in depth covered [here](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
22Also note you receive 5% APR on your holdings.
23[See this article for more details](https://supernet.org/en/resources/articles/receive-free-coins-quaranteed-kmd-interest)
24## Tech Specification
25Max Supply: 200 million KMD.
26Block Time: 1M 2s
27Block Reward: 3KMD
28Mining Algorithm: Equihash
29## About this Project
da925f78 30Komodo 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/.
78192246 31## Getting started
d7426190 32Dependencies
33------------
78192246 34
d7426190 35```
36#The following packages are needed:
e8131126 37sudo 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 38```
78192246 39
d7426190 40Komodo
41------
a08b1ae8 42We have a release process that goes through several stages before it reaches master. This allows the most conservative users just use the master branch, which is only updated after the other branches have signed off on a release.
43
4499% of the activity is in the dev branch, this is where I am testing each change one by one and there are literally thousands of updates. Only use this branch if you really want to be on the bleeding edge. I try to keep things stable, but there are times where necessarily there are bugs in the dev branch, since I am actively developing and debugging here. A good rule is to wait for at least 4 hours from the last update before using the dev branch (unless you know what you are doing)
45
46After things look good in the dev branch, it is propagated to the beta branch, this is the version the notary nodes use. They are knowledegable command line server guys and so they have a keen eye for anything that wasnt caught during the dev cycle.
47
48After the notary nodes verify things are working and the latest release is deemed stable, it is propagated to the dPoW branch. From here an automated Jenkins process builds it for all OS, and since the notary nodes are all unix, it is possible for some issues to be caught at this stage. The dPoW branch is what goes into the GUI installers.
49
50After the GUI are updated and released and it is verified that no significant support issues were created, the master branch is finally updated.
51
52Master branch: exchanges and users that build from the repo without changing branches
53dPoW branch: autobuild into GUI installers, unix, osx, windows
54beta branch: notary nodes, command line unix
55dev branch: bleeding edge, possibly wont even compile, multiple updates per hour
78192246 56
d7426190 57```
f3ae714c 58git clone https://github.com/jl777/komodo
59cd komodo
a08b1ae8 60#you might want to: git checkout <branch>; git pull
f3ae714c 61./zcutil/fetch-params.sh
6c4dfa1c 62# -j8 uses 8 threads - replace 8 with number of threads you want to use
63./zcutil/build.sh -j8
d7426190 64#This can take some time.
65```
3bb1d82c 66
9000990c 67
68**komodo is experimental and a work-in-progress.** Use at your own risk.
666a401f 69
ce7e7caf
NW
70Deprecation Policy
71------------------
72
9000990c 73This release is considered deprecated one year after the release day. There
e895b863 74is an automatic deprecation shutdown feature which will halt the node some
9000990c 75time after this one year period. The automatic feature is based on block
e895b863 76height and can be explicitly disabled.
ce7e7caf 77
9000990c 78
78192246 79# to update an existing version, git checkout dPoW if not on that branch already
3bb1d82c 80git pull
3bb1d82c 81./zcutil/fetch-params.sh
3bb1d82c 82./zcutil/build.sh -j8
9f0df400 83To reset the blockchain, from ~/.komodo rm -rf blocks chainstate debug.log komodostate db.log
d7426190 84Create komodo.conf
85------------------
78192246 86
d7426190 87```
88cd ~
89mkdir .komodo
90cd .komodo
8aeb7db1 91pico komodo.conf
d7426190 92#Add the following lines to the komodo.conf file:
f3ae714c 93rpcuser=bitcoinrpc
0032bbb5 94rpcpassword=password
a0413d6a 95txindex=1
8aeb7db1 96addnode=5.9.102.210
97addnode=78.47.196.146
98addnode=178.63.69.164
99addnode=88.198.65.74
100addnode=5.9.122.241
101addnode=144.76.94.38
67e8ca1c 102addnode=89.248.166.91
d7426190 103```
78192246 104
d7426190 105Start mining
106------------
78192246 107
d7426190 108```
870e3556 109#iguana documentation shows how to get the btcpubkey and wifstrs that need to be used
870e3556 110#bitcoin also need to be installed with txindex=1 and with rpc enabled
d7426190 111cd ~
112cd komodo
c6444836 113#This will return your pubkey eg. "0259e137e5594cf8287195d13aed816af75bd5c04ae673296b51f66e7e8346e8d8" for your address
67e8ca1c 114./src/komodo-cli validateaddress <yourwalletaddres>
67e8ca1c
Y
115#This will give the privkey of your wallet address
116./src/komodo-cli dumpprivkey <yourwalletaddres>
67e8ca1c
Y
117#This will import the privkey to be sure the mined coins are placed into your wallet address
118./src/komodo-cli importprivkey <yourwalletprivkey>
d5a5f0f3 119#To stop the daemon:
af7b3566 120./src/komodo-cli stop
67e8ca1c 121#This starts komodo notary - replace genproclimit with number of threads you want to use and add your pubkey
c6444836 122./src/komodod -gen -genproclimit=2 -notary -pubkey="0259e137e5594cf8287195d13aed816af75bd5c04ae673296b51f66e7e8346e8d8" &
8aeb7db1 123#This will get the stats:
124./src/komodo-cli getinfo
d7426190 125#To view the process:
8aeb7db1 126ps -ef | grep komodod
d2438574 127#To stop the daemon:
af7b3566 128./src/komodo-cli stop
78192246 129
d7426190 130#To view komodod output:
aae8f281 131tail -f ~/.komodo/debug.log
67e8ca1c
Y
132#To view all command
133./src/komodo-cli help
9fc60fe3 134ASSETCHAINS: -ac_name=name -ac_supply=nnnnn
78192246 135Both komodod and komodo-cli recognize -ac_name=option so you can create fork from the commandline
0032bbb5 136```
30853e4a 137=======
666a401f 138**Zcash is unfinished and highly experimental.** Use at your own risk.
666a401f
DH
139Where do I begin?
140-----------------
473ed951
CB
141We have a guide for joining the main Zcash network:
142https://github.com/zcash/zcash/wiki/1.0-User-Guide
666a401f 143### Need Help?
666a401f 144* See the documentation at the [Zcash Wiki](https://github.com/zcash/zcash/wiki)
78192246 145for help and more information.
666a401f 146* Ask for help on the [Zcash](https://forum.z.cash/) forum.
666a401f
DH
147Participation in the Zcash project is subject to a
148[Code of Conduct](code_of_conduct.md).
666a401f
DH
149Building
150--------
666a401f 151Build Zcash along with most dependencies from source by running
eb2e2b70 152./zcutil/build.sh. Currently only Linux is officially supported.
20d59455
CD
153License
154-------
666a401f 155For license information see the file [COPYING](COPYING).
a35f7eee 156NOTE TO EXCHANGES:
157https://bitcointalk.org/index.php?topic=1605144.msg17732151#msg17732151
158There 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.
a35f7eee 159To change modes:
160a) backup all privkeys (launch komodod with -exportdir=<path> and dumpwallet)
c9ef1c89 161b) start a totally new sync including wallet.dat, launch with same exportdir
162c) stop it before it gets too far and import all the privkeys from a) using komodo-cli importwallet filename
a35f7eee 163d) resume sync till it gets to chaintip
c9ef1c89 164For example:
165./komodod -exportdir=/tmp &
166./komodo-cli dumpwallet example
167./komodo-cli stop
168mv ~/.komodo ~/.komodo.old && mkdir ~/.komodo && cp ~/.komodo.old/komodo.conf ~/.komodo.old/peers.dat ~/.komodo
169./komodod -exchange -exportdir=/tmp &
02b02173 170./komodo-cli importwallet /tmp/example
1cacba6a 171############## JUMBLR
1cacba6a 172komodod now has jumblr_deposit and jumblr_secret RPC calls.
1cacba6a 173Jumblr 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.
1cacba6a 174JUMBLR 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.
78192246 175Which 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.
1cacba6a 176jumblr_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.
1cacba6a 177There 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.
1cacba6a 178jumblr_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.
1cacba6a 179Practical Advice:
78192246 180Obtaining 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.
1cacba6a 181Once 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.
1cacba6a 182The advice is to setup a totally separate node!
1cacba6a 183This 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.
78192246 184It 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.
185Of 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.
1cacba6a 186What if you have 100,000 KMD and you dont want others to know you are such a whale?
1cacba6a 187Instead of generating 1 secret address, generate 100 and make a script file with:
1cacba6a 188./komodo-cli jumblr_secret <addr0>
189./komodo-cli jumblr_secret <addr1>
190...
191./komodo-cli jumblr_secret <addr99>
1cacba6a 192And 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.
193
c9ef1c89 194
This page took 0.172943 seconds and 4 git commands to generate.