Kevacoin is a decentralized open source key-value data store based on the Litecoin (which is in turn based on Bitcoin) cryptocurrency. Kevacoin is significantly influenced by Namecoin [https://namecoin.org](https://namecoin.org), even though it serves very different purposes. Its source code is based Namecoin's with lots of modification.
Kevacoin is a decentralized open source key-value data store based on the Litecoin (which is in turn based on Bitcoin) cryptocurrency. Kevacoin is largely influenced by Namecoin [https://namecoin.org](https://namecoin.org), even though it serves very different purposes. Its source code is based Namecoin's with lots of modification.
What does it do?
----------------
@ -22,6 +22,13 @@ As a decentralized key-value database, it can be used to store data for all kind
@@ -22,6 +22,13 @@ As a decentralized key-value database, it can be used to store data for all kind
For more information, as well as an immediately useable, binary version of
the Kevacoin Core software, see [https://kevacoin.org](https://kevacoin.org).
Litecoin Core is the original Litecoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Litecoin transactions (which is currently more than 7 GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
Kevacoin Core is the original Kevacoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Kevacoin transactions (which is currently more than 7 GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
To download Litecoin Core, visit [litecoin.org](https://litecoin.org).
To download Kevacoin Core, visit [kevacoin.org](https://kevacoin.org).
Running
---------------------
The following are some helpful notes on how to run Litecoin on your native platform.
The following are some helpful notes on how to run Kevacoin on your native platform.
### Unix
Unpack the files into a directory and run:
- `bin/litecoin-qt` (GUI) or
- `bin/litecoind` (headless)
- `bin/kevacoin-qt` (GUI) or
- `bin/kevacoind` (headless)
### Windows
Unpack the files into a directory, and then run litecoin-qt.exe.
Unpack the files into a directory, and then run kevacoin-qt.exe.
### OS X
Drag Litecoin-Core to your applications folder, and then run Litecoin-Core.
Drag Kevacoin-Core to your applications folder, and then run Kevacoin-Core.
### Need Help?
* See the documentation at the [Litecoin Wiki](https://litecoin.info/)
* See the documentation at the [Kevacoin Wiki](https://kevacoin.info/)
for help and more information.
* Ask for help on [#litecoin](http://webchat.freenode.net?channels=litecoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=litecoin).
* Ask for help on the [LitecoinTalk](https://litecointalk.io/) forums.
* Ask for help on [#kevacoin](http://webchat.freenode.net?channels=kevacoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=kevacoin).
* Ask for help on the [KevacoinTalk](https://kevacointalk.io/) forums.
Building
---------------------
The following are developer notes on how to build Litecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
The following are developer notes on how to build Kevacoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
- [Dependencies](dependencies.md)
- [OS X Build Notes](build-osx.md)
@ -46,7 +46,7 @@ The following are developer notes on how to build Litecoin on your native platfo
@@ -46,7 +46,7 @@ The following are developer notes on how to build Litecoin on your native platfo
Development
---------------------
The Litecoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
The Kevacoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
- [Developer Notes](developer-notes.md)
- [Release Notes](release-notes.md)
@ -61,8 +61,8 @@ The Litecoin repo's [root README](/README.md) contains relevant information on t
@@ -61,8 +61,8 @@ The Litecoin repo's [root README](/README.md) contains relevant information on t
- [Benchmarking](benchmarking.md)
### Resources
* Discuss on the [LitecoinTalk](https://litecointalk.io/) forums.
* Discuss general Litecoin development on #litecoin-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=litecoin-dev).
* Discuss on the [KevacoinTalk](https://kevacointalk.io/) forums.
* Discuss general Kevacoin development on #kevacoin-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=kevacoin-dev).
See [dependencies.md](dependencies.md) for a complete overview.
@ -49,7 +49,7 @@ from the root of the repository. Then set `BDB_PREFIX` for the next section:
@@ -49,7 +49,7 @@ from the root of the repository. Then set `BDB_PREFIX` for the next section:
export BDB_PREFIX="$PWD/db4"
```
### Building Litecoin Core
### Building Kevacoin Core
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
memory available when compiling Litecoin Core. On systems with less, gcc can be
memory available when compiling Kevacoin Core. On systems with less, gcc can be
tuned to conserve memory with additional CXXFLAGS:
@ -94,7 +94,7 @@ BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distri
@@ -94,7 +94,7 @@ BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distri
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
pass `--with-incompatible-bdb` to configure.
See the section "Disable-wallet mode" to build Litecoin Core without wallet.
See the section "Disable-wallet mode" to build Kevacoin Core without wallet.
Optional (see --with-miniupnpc and --enable-upnp-default):
@ -107,7 +107,7 @@ ZMQ dependencies (provides ZMQ API 4.x):
@@ -107,7 +107,7 @@ ZMQ dependencies (provides ZMQ API 4.x):
Dependencies for the GUI: Ubuntu & Debian
-----------------------------------------
If you want to build Litecoin-Qt, make sure that the required packages for Qt development
If you want to build Kevacoin-Qt, make sure that the required packages for Qt development
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
To build without GUI pass `--without-gui`.
@ -124,7 +124,7 @@ libqrencode (optional) can be installed with:
@@ -124,7 +124,7 @@ libqrencode (optional) can be installed with:
sudo apt-get install libqrencode-dev
Once these are installed, they will be found by configure and a litecoin-qt executable will be
Once these are installed, they will be found by configure and a kevacoin-qt executable will be
built by default.
Dependency Build Instructions: Fedora
@ -147,7 +147,7 @@ libqrencode (optional) can be installed with:
@@ -147,7 +147,7 @@ libqrencode (optional) can be installed with:
Notes
-----
The release is built with GCC and then "strip litecoind" to strip the debug
The release is built with GCC and then "strip kevacoind" to strip the debug
symbols, which reduces the executable size by about 90%.
@ -188,7 +188,7 @@ If you need to build Boost yourself:
@@ -188,7 +188,7 @@ If you need to build Boost yourself:
Security
--------
To help make your litecoin installation more secure by making certain attacks impossible to
To help make your kevacoin installation more secure by making certain attacks impossible to
exploit even if a vulnerability is found, binaries are hardened by default.
This can be disabled with:
@ -212,7 +212,7 @@ Hardening enables the following features:
@@ -212,7 +212,7 @@ Hardening enables the following features:
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
scanelf -e ./litecoin
scanelf -e ./kevacoin
The output should contain:
@ -221,13 +221,13 @@ Hardening enables the following features:
@@ -221,13 +221,13 @@ Hardening enables the following features:
* Non-executable Stack
If the stack is executable then trivial stack based buffer overflow exploits are possible if
vulnerable buffers are found. By default, litecoin should be built with a non-executable stack
vulnerable buffers are found. By default, kevacoin should be built with a non-executable stack
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
and uses a compiler extension which requires an executable stack, it will silently build an
executable without the non-executable stack protection.
To verify that the stack is non-executable after compiling use:
`scanelf -e ./litecoin`
`scanelf -e ./kevacoin`
the output should contain:
STK/REL/PTL
@ -237,7 +237,7 @@ Hardening enables the following features:
@@ -237,7 +237,7 @@ Hardening enables the following features:
Disable-wallet mode
--------------------
When the intention is to run only a P2P node without a wallet, litecoin may be compiled in
When the intention is to run only a P2P node without a wallet, kevacoin may be compiled in
disable-wallet mode with:
./configure --disable-wallet
@ -259,8 +259,8 @@ Setup and Build Example: Arch Linux
@@ -259,8 +259,8 @@ Setup and Build Example: Arch Linux
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
Once the source code is ready the build steps are below.
@ -108,15 +108,15 @@ For Ubuntu Bionic 18.04 and Windows Subsystem for Linux <sup>[1](#footnote1)</su
@@ -108,15 +108,15 @@ For Ubuntu Bionic 18.04 and Windows Subsystem for Linux <sup>[1](#footnote1)</su
sudo update-alternatives --config i686-w64-mingw32-g++ # Set the default mingw32 g++ compiler option to posix.
Note that for WSL the Litecoin Core source path MUST be somewhere in the default mount file system, for
example /usr/src/litecoin, AND not under /mnt/d/. If this is not the case the dependency autoconf scripts will fail.
Note that for WSL the Kevacoin Core source path MUST be somewhere in the default mount file system, for
example /usr/src/kevacoin, AND not under /mnt/d/. If this is not the case the dependency autoconf scripts will fail.
This means you cannot use a directory that located directly on the host Windows file system to perform the build.
The next three steps are an example of how to acquire the source in an appropriate way.
By default, the ZeroMQ feature is automatically compiled in if the
necessary prerequisites are found. To disable, use --disable-zmq
during the *configure* step of building litecoind:
during the *configure* step of building kevacoind:
$ ./configure --disable-zmq (other options)
@ -66,8 +66,8 @@ address. The same address can be used in more than one notification.
@@ -66,8 +66,8 @@ address. The same address can be used in more than one notification.
For instance:
$ litecoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
-zmqpubrawtx=ipc:///tmp/litecoind.tx.raw
$ kevacoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
-zmqpubrawtx=ipc:///tmp/kevacoind.tx.raw
Each PUB notification has a topic and body, where the header
corresponds to the notification type. For instance, for the
@ -75,7 +75,7 @@ notification `-zmqpubhashtx` the topic is `hashtx` (no null
@@ -75,7 +75,7 @@ notification `-zmqpubhashtx` the topic is `hashtx` (no null
terminator) and the body is the transaction hash (32
bytes).
These options can also be provided in litecoin.conf.
These options can also be provided in kevacoin.conf.
ZeroMQ endpoint specifiers for TCP (and others) are documented in the
[ZeroMQ API](http://api.zeromq.org/4-0:_start).
@ -87,9 +87,9 @@ arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
@@ -87,9 +87,9 @@ arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
## Remarks
From the perspective of litecoind, the ZeroMQ socket is write-only; PUB
From the perspective of kevacoind, the ZeroMQ socket is write-only; PUB
sockets don't even have a read function. Thus, there is no state
introduced into litecoind directly. Furthermore, no information is
introduced into kevacoind directly. Furthermore, no information is
broadcast that wasn't already received from the public P2P network.
No authentication or authorization is done on connecting clients; it
@ -102,5 +102,5 @@ retrieve the chain from the last known block to the new tip.
@@ -102,5 +102,5 @@ retrieve the chain from the last known block to the new tip.
There are several possibilities that ZMQ notification can get lost
during transmission depending on the communication type your are
using. Litecoind appends an up-counting sequence number to each
using. Kevacoind appends an up-counting sequence number to each
notification which allows listeners to detect lost notifications.