Clone or download
#119 Compare This branch is 54 commits ahead, 1 commit behind jl777:master.
ca333 resolve conflict
jl777:master->komodoplatform:master
Latest commit b08d57c Jan 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update Github issue template Aug 6, 2018
build-aux/m4 Merge branch 'beta' into mergemaster Apr 16, 2018
contrib Integrate latest Zcash fixes and update for non-latin user names Oct 28, 2018
depends update libsodium url Jan 7, 2019
doc add changelog 0.3.0 Dec 8, 2018
qa Merge pull request jl777#1078 from tonymorony/FSM Dec 14, 2018
share Merge branch 'beta' into mergemaster Apr 16, 2018
src resolve conflict Jan 19, 2019
zcutil Adding symbols back to Linux builds. Oct 24, 2018
.gitattributes Separate protocol versioning from clientversion Oct 29, 2014
.gitignore New migrate Dec 18, 2018
.gitlab-ci.yml update gitlab CI conf Nov 25, 2018
.gitmodules Merge branch 'beta' into mergemaster Apr 16, 2018
.travis.yml test Aug 10, 2018
AUTH_KEY.json.enc fixing broken auth May 28, 2018
Brewfile Removing unnecessary slashes Aug 18, 2018
COPYING Major updates integration from all upstreams Sep 18, 2018
Dockerfile Merge branch 'beta' into mergemaster Apr 16, 2018
INSTALL Refer to Zcash wiki in INSTALL Oct 7, 2016
Makefile.am All latest updates, smart contracts, including oracle from KMD/jl777 Sep 13, 2018
Makefile.am.patch added patch files Jan 3, 2017
README-mac.md Updating branch (jl777#108) Aug 11, 2018
README.md Update README.md Dec 3, 2018
autogen.sh Bugfix: Replace bashisms with standard sh to fix build on non-BASH sy… Oct 3, 2014
boost.mk.patch added patch files Jan 3, 2017
code_of_conduct.md Major updates integration from all upstreams Sep 18, 2018
configure.ac Integrate latest Zcash fixes and update for non-latin user names Oct 28, 2018
configure.ac.patch added patch files Jan 3, 2017
darwin.host.mk.patch Updating branch (jl777#108) Aug 11, 2018
darwin.mk.patch Updating branch (jl777#108) Aug 11, 2018
equihash.cpp.patch added patch files Jan 3, 2017
libsnark.mk.patch Removing unnecessary slashes Aug 18, 2018
libzcashconsensus.pc.in Rename libbitcoinconsensus to libzcashconsensus Oct 18, 2016
makeReleaseMac.sh fix makeRelease.sh Nov 25, 2018
migratecoin.sh shell script to document migrate process Sep 6, 2018
packages.mk.patch added patch files Jan 3, 2017
patches added patch files Jan 3, 2017
resolve.sh notarization check for asset chains Sep 17, 2018
toolchain-info.sh Updating branch (jl777#108) Aug 11, 2018
user-config.jam darwin 333 Oct 22, 2017

README.md

Build Status

Komodo Logo

Komodo

This is the official Komodo sourcecode repository based on https://github.com/jl777/komodo.

Development Resources

List of Komodo Platform Technologies

  • Delayed Proof of Work (dPoW) - Additional security layer and Komodos own consensus algorithm
  • zk-SNARKs - Komodo Platform's privacy technology for shielded transactions
  • Tokens/Assets Technology - create "colored coins" on the Komodo Platform and use them as a layer for securites
  • Reward API - Komodo CC technology for securities
  • CC - Crypto Conditions to realize "smart contract" logic on top of the Komodo Platform
  • Jumblr - Decentralized tumbler for KMD and other cryptocurrencies
  • Assetchains - Create your own Blockchain that inherits all Komodo Platform functionalities and blockchain interoperability
  • 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% Active User Reward on your balance.
    See this article for more details

Tech Specification

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

About this Project

Komodo is based on Zcash and has been extended 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, our assetchain capabilities (one click plug and play blockchain solutions) and a set of financial decentralization and interoperability technologies. More details are available under https://komodoplatform.com/ and https://blog.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-gnutls-dev bsdmainutils automake curl

Build Komodo

This software is based on zcash and considered experimental and is continously undergoing heavy development.

The dev branch is considered the bleeding edge codebase while the master-branch is considered tested (unit tests, runtime tests, functionality). At no point of time do the Komodo Platform developers take any responsbility for any damage out of the usage of this software. Komodo builds for all operating systems out of the same codebase. Follow the OS specific instructions from below.

Linux

git clone https://github.com/komodoplatform/komodo --branch master --single-branch
cd komodo
./zcutil/fetch-params.sh
# -j8 = using 8 threads for the compilation - replace 8 with number of threads you want to use
./zcutil/build.sh -j8
#This can take some time.

OSX

Ensure you have brew and the command line tools installed (comes automatically with XCode) and run:

brew update && brew install gcc@6
git clone https://github.com/komodoplatform/komodo --branch master --single-branch
cd komodo
./zcutil/fetch-params.sh
# -j8 = using 8 threads for the compilation - replace 8 with number of threads you want to use
./zcutil/build-mac.sh -j8
#This can take some time.

Windows

Use a debian cross-compilation setup with mingw for windows and run:

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-gnutls-dev bsdmainutils automake curl cmake mingw-w64
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup target add x86_64-pc-windows-gnu
git clone https://github.com/jl777/komodo --branch master --single-branch
cd komodo
./zcutil/fetch-params.sh
# -j8 = using 8 threads for the compilation - replace 8 with number of threads you want to use
./zcutil/build-win.sh -j8
#This can take some time.

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

To reset the Komodo blockchain change into the ~/.komodo data directory and delete the corresponding files by running rm -rf blocks chainstate debug.log komodostate db.log

Create komodo.conf

Create a komodo.conf file:

mkdir ~/.komodo
cd ~/.komodo
touch komodo.conf

#Add the following lines to the komodo.conf file:
rpcuser=yourrpcusername
rpcpassword=yoursecurerpcpassword
rpcbind=127.0.0.1
txindex=1
addnode=5.9.102.210
addnode=78.47.196.146
addnode=178.63.69.164
addnode=88.198.65.74
addnode=5.9.122.241
addnode=144.76.94.38
addnode=89.248.166.91

Create your own Blockchain based on Komodo

Komodo allows anyone to create a runtime fork which represents an independent Blockchain. Below are the detailed instructions: Setup two independent servers with at least 1 server having a static IP and build komodod on those servers.

On server 1 (with static IP) run:

./komodod -ac_name=name_of_your_chain -ac_supply=100000 -bind=ip_of_server_1 &

On server 2 run:

./komodod -ac_name=name_of_your_chain -ac_supply=100000 -addnode=ip_of_server_1 -gen &

Komodo is based on Zcash which is unfinished and highly experimental. Use at your own risk.

License

For license information see the file COPYING.

NOTE TO EXCHANGES: https://bitcointalk.org/index.php?topic=1605144.msg17732151#msg17732151 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.

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

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