Hush Full Node software. We were censored from Github, this is where all development happens now. https://hush.is
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Asher Dawes 64cdd60ea3
Merge branch 'dev' into master
6 years ago
.github Squashed commit of the following: 6 years ago
build-aux/m4 build: force a c++ standard to be specified 7 years ago
contrib Network decentralizatoin and bug fixes 6 years ago
depends lets get rid of this message: 'section __textcoal_nt is deprecated' 6 years ago
doc Merge branch 'dev' into jl777 6 years ago
kmd Version to 0.3.12-beta. 6 years ago
qa Asher dev (#88) 6 years ago
share Remove OSX and Windows files from Makefile + share directory. 6 years ago
src Put staking readout once per staking loop so people know it's staking 6 years ago
zcutil Sync with latest Komodo changes 6 years ago
.gitattributes Separate protocol versioning from clientversion 10 years ago
.gitignore Update .gitignore 6 years ago
.gitlab-ci.yml Change version to 0.3.12 for gilab CI. 6 years ago
.gitmodules remove cryptoconditions submodule 6 years ago
.travis.yml remove travis deployment 6 years ago
AUTH_KEY.json.enc fixing broken auth 6 years ago
Brewfile Asher dev (#89) 6 years ago
COPYING Sync with latest Komodo changes 6 years ago
Dockerfile curl fix 6 years ago
INSTALL Refer to Zcash wiki in INSTALL 8 years ago
Makefile.am Build verus-cli, get dependencies nailed down. (#72) 6 years ago
Makefile.am.patch added patch files 7 years ago
README-mac.md Merge branch 'dev' into master 6 years ago
README.md Merge branch 'dev' into master 6 years ago
autogen.sh Bugfix: Replace bashisms with standard sh to fix build on non-BASH systems 10 years ago
boost.mk.patch added patch files 7 years ago
code_of_conduct.md Merge pull request #5 from jl777/dev 6 years ago
configure.ac Build verus-cli, get dependencies nailed down. (#72) 6 years ago
configure.ac.patch added patch files 7 years ago
darwin.host.mk.patch lets get rid of this message: 'section __textcoal_nt is deprecated' 6 years ago
darwin.mk.patch lets get rid of this message: 'section __textcoal_nt is deprecated' 6 years ago
equihash.cpp.patch added patch files 7 years ago
libsnark.mk.patch lets get rid of this message: 'section __textcoal_nt is deprecated' 6 years ago
libzcashconsensus.pc.in Rename libbitcoinconsensus to libzcashconsensus 8 years ago
makeReleaseLinux.sh Asher dev (#88) 6 years ago
makeReleaseMac.sh Asher dev (#88) 6 years ago
makeReleaseWindows.sh Make scripts executable. 6 years ago
migratecoin.md wip 6 years ago
packages.mk.patch added patch files 7 years ago
patches added patch files 7 years ago
requirements-debian.txt adding debian dependency list 6 years ago
toolchain-info.sh lets get rid of this message: 'section __textcoal_nt is deprecated' 6 years ago
user-config.jam darwin 333 7 years ago

README.md

VerusCoin version 0.3.12-beta

VerusCoin 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 and our Vision.

Version 0.3.12-beta has portable mining working.

Komodo with Bitcore

This version of Komodo contains Bitcore support for komodo and all its assetchains.

Komodod

This 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. The 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.

Development Resources

List of Komodo Platform Technologies

  • Delayed Proof of Work (dPoW) - Additional security layer.
  • zk-SNARKs - Komodo Platform's privacy technology
  • Jumblr - Decentralized tumbler for KMD and other cryptocurrencies
  • Assetchains - Easy way to fork Komodo coin
  • Pegged Assets - Chains that maintain a peg to fiat currencies
  • Peerchains - Scalability solution where sibling chains form a network of blockchains
  • More in depth covered here
  • Also note you receive 5% APR on your holdings. See this article for more details

Tech Specification

  • Max Supply: 200 million KMD.
  • Block Time: 1M 2s
  • Block Reward: 3KMD
  • Mining Algorithm: Equihash

About this Project

Komodo 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/.

Getting started

Dependencies

#The following packages are needed:
sudo 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

Building

First 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:

./zcutil/fetch-params.sh

Building for Ubunutu/Mint:

./zcutil/build.sh

Building for Mac OS/X (see README-MAC.md):

./zcutil/build-mac.sh

Building for Windows:

./zcutil/build-win.sh

VerusCoin

We develop on dev and some other branches and produce releases of of the master branch, using pull requests to manage what goes into master.

git clone https://github.com/VerusCoin/VerusCoin
cd VerusCoin
#you might want to: git checkout <branch>; git pull
./zcutil/fetch-params.sh
# -j8 uses 8 threads - replace 8 with number of threads you want to use
./zcutil/build.sh -j8
#This can take some time.

The VerusCoin enhanced komodo is experimental and a work-in-progress. Use at your own risk.

#To view komodod output: tail -f ~/.komodo/debug.log #To view VRSC output: tail -f ~/.komodo/VRSC/debug.log Note that this directory is correct for Linux, not Mac or Windows #To view all command ./src/komodo-cli help Zcash is unfinished and highly experimental. Use at your own risk.

Where do I begin?

We have a guide for joining the main Zcash network: https://github.com/zcash/zcash/wiki/1.0-User-Guide

#Older Komodo Details The remaining text is from the komodo source we forked when creating VerusCoin/Veruscoin. To change modes:

a) backup all privkeys (launch komodod with -exportdir=<path> and dumpwallet)

b) start a totally new sync including wallet.dat, launch with same exportdir

c) stop it before it gets too far and import all the privkeys from a) using komodo-cli importwallet filename

d) resume sync till it gets to chaintip

For example:

./komodod -exportdir=/tmp &
./komodo-cli dumpwallet example
./komodo-cli stop
mv ~/.komodo ~/.komodo.old && mkdir ~/.komodo && cp ~/.komodo.old/komodo.conf ~/.komodo.old/peers.dat ~/.komodo
./komodod -exchange -exportdir=/tmp &
./komodo-cli importwallet /tmp/example

JUMBLR

komodod now has jumblr_deposit and jumblr_secret RPC calls.

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.

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.

Which 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.

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.

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 1010 blocks are the largest 1000 KMD transactions processed, so this concentrates all the large transactions every NN blocks.

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.

Practical Advice:

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 matters are left to each implementation.

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.

The advice is to setup a totally separate node!

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.

It 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.

Of 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.

What if you have 100,000 KMD and you dont want others to know you are such a whale? Instead of generating 1 secret address, generate 100 and make a script file with:

./komodo-cli jumblr_secret <addr0>
./komodo-cli jumblr_secret <addr1>
...
./komodo-cli jumblr_secret <addr99>

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.