mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-11 15:48:05 +00:00
Updated README, added build section.
Updated other MD files.
This commit is contained in:
parent
9dfb141524
commit
21d1e1782f
@ -2,4 +2,4 @@ Building Litecoin
|
||||
================
|
||||
|
||||
See doc/build-*.md for instructions on building the various
|
||||
elements of the Litecoin Core reference implementation of Litecoin.
|
||||
elements of the Litecoin Core reference implementation of Kevacoin.
|
||||
|
@ -6,7 +6,7 @@ https://kevacoin.org
|
||||
What is Kevacoin?
|
||||
----------------
|
||||
|
||||
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
|
||||
For more information, as well as an immediately useable, binary version of
|
||||
the Kevacoin Core software, see [https://kevacoin.org](https://kevacoin.org).
|
||||
|
||||
Build
|
||||
-------------------
|
||||
|
||||
* [Unix](doc/build-unix.md)
|
||||
* [Windows](doc/build-windows.md)
|
||||
* [MacOS](doc/build-osx.md)
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
|
@ -1,41 +1,41 @@
|
||||
Litecoin Core
|
||||
Kevacoin Core
|
||||
=============
|
||||
|
||||
Setup
|
||||
---------------------
|
||||
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
|
||||
|
||||
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
|
||||
- [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).
|
||||
|
||||
### Miscellaneous
|
||||
- [Assets Attribution](assets-attribution.md)
|
||||
|
@ -2,7 +2,7 @@ NetBSD build guide
|
||||
======================
|
||||
(updated for NetBSD 7.0)
|
||||
|
||||
This guide describes how to build litecoind and command-line utilities on NetBSD.
|
||||
This guide describes how to build kevacoind and command-line utilities on NetBSD.
|
||||
|
||||
This guide does not contain instructions for building the GUI.
|
||||
|
||||
@ -25,12 +25,12 @@ python27
|
||||
|
||||
Download the source code:
|
||||
```
|
||||
git clone https://github.com/litecoin-project/litecoin
|
||||
git clone https://github.com/kevacoin-project/kevacoin
|
||||
```
|
||||
|
||||
See [dependencies.md](dependencies.md) for a complete overview.
|
||||
|
||||
### Building Litecoin Core
|
||||
### Building Kevacoin Core
|
||||
|
||||
**Important**: Use `gmake` (the non-GNU `make` will exit with an error).
|
||||
|
||||
|
@ -2,7 +2,7 @@ OpenBSD build guide
|
||||
======================
|
||||
(updated for OpenBSD 6.2)
|
||||
|
||||
This guide describes how to build litecoind and command-line utilities on OpenBSD.
|
||||
This guide describes how to build kevacoind and command-line utilities on OpenBSD.
|
||||
|
||||
OpenBSD is most commonly used as a server OS, so this guide does not contain instructions for building the GUI.
|
||||
|
||||
@ -18,7 +18,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
|
||||
pkg_add python # (select highest version, e.g. 3.6)
|
||||
pkg_add boost
|
||||
|
||||
git clone https://github.com/litecoin-project/litecoin.git
|
||||
git clone https://github.com/kevacoin-project/kevacoin.git
|
||||
```
|
||||
|
||||
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:
|
||||
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.
|
||||
|
||||
|
@ -44,17 +44,17 @@ from the root of the repository.
|
||||
|
||||
**Note**: You only need Berkeley DB if the wallet is enabled (see the section *Disable-Wallet mode* below).
|
||||
|
||||
Build Litecoin Core
|
||||
Build Kevacoin Core
|
||||
------------------------
|
||||
|
||||
1. Clone the litecoin source code and cd into `litecoin`
|
||||
1. Clone the kevacoin source code and cd into `kevacoin`
|
||||
|
||||
git clone https://github.com/litecoin-project/litecoin
|
||||
cd litecoin
|
||||
git clone https://github.com/kevacoin-project/kevacoin
|
||||
cd kevacoin
|
||||
|
||||
2. Build litecoin-core:
|
||||
2. Build kevacoin-core:
|
||||
|
||||
Configure and build the headless litecoin binaries as well as the GUI (if Qt is found).
|
||||
Configure and build the headless kevacoin binaries as well as the GUI (if Qt is found).
|
||||
|
||||
You can disable the GUI build by passing `--without-gui` to configure.
|
||||
|
||||
@ -76,44 +76,44 @@ Build Litecoin Core
|
||||
|
||||
or
|
||||
|
||||
cd ~/litecoin/src
|
||||
cp litecoind /usr/local/bin/
|
||||
cp litecoin-cli /usr/local/bin/
|
||||
cd ~/kevacoin/src
|
||||
cp kevacoind /usr/local/bin/
|
||||
cp kevacoin-cli /usr/local/bin/
|
||||
|
||||
Running
|
||||
-------
|
||||
|
||||
Litecoin Core is now available at `./src/litecoind`
|
||||
Kevacoin Core is now available at `./src/kevacoind`
|
||||
|
||||
Before running, it's recommended you create an RPC configuration file.
|
||||
|
||||
echo -e "rpcuser=litecoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||
echo -e "rpcuser=kevacoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Kevacoin/kevacoin.conf"
|
||||
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||
chmod 600 "/Users/${USER}/Library/Application Support/Kevacoin/kevacoin.conf"
|
||||
|
||||
The first time you run litecoind, it will start downloading the blockchain. This process could take several hours.
|
||||
The first time you run kevacoind, it will start downloading the blockchain. This process could take several hours.
|
||||
|
||||
You can monitor the download process by looking at the debug.log file:
|
||||
|
||||
tail -f $HOME/Library/Application\ Support/Litecoin/debug.log
|
||||
tail -f $HOME/Library/Application\ Support/Kevacoin/debug.log
|
||||
|
||||
Other commands:
|
||||
-------
|
||||
|
||||
./src/litecoind -daemon # Starts the litecoin daemon.
|
||||
./src/litecoin-cli --help # Outputs a list of command-line options.
|
||||
./src/litecoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
./src/kevacoind -daemon # Starts the kevacoin daemon.
|
||||
./src/kevacoin-cli --help # Outputs a list of command-line options.
|
||||
./src/kevacoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||
|
||||
Using Qt Creator as IDE
|
||||
------------------------
|
||||
You can use Qt Creator as an IDE, for litecoin development.
|
||||
You can use Qt Creator as an IDE, for kevacoin development.
|
||||
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||
Uncheck everything except Qt Creator during the installation process.
|
||||
|
||||
1. Make sure you installed everything through Homebrew mentioned above
|
||||
2. Do a proper ./configure --enable-debug
|
||||
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
||||
4. Enter "litecoin-qt" as project name, enter src/qt as location
|
||||
4. Enter "kevacoin-qt" as project name, enter src/qt as location
|
||||
5. Leave the file selection as it is
|
||||
6. Confirm the "summary page"
|
||||
7. In the "Projects" tab select "Manage Kits..."
|
||||
|
@ -1,12 +1,12 @@
|
||||
UNIX BUILD NOTES
|
||||
====================
|
||||
Some notes on how to build Litecoin Core in Unix.
|
||||
Some notes on how to build Kevacoin Core in Unix.
|
||||
|
||||
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||
|
||||
Note
|
||||
---------------------
|
||||
Always use absolute paths to configure and compile litecoin and the dependencies,
|
||||
Always use absolute paths to configure and compile kevacoin and the dependencies,
|
||||
for example, when specifying the path of the dependency:
|
||||
|
||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||
@ -24,7 +24,7 @@ make
|
||||
make install # optional
|
||||
```
|
||||
|
||||
This will build litecoin-qt as well if the dependencies are met.
|
||||
This will build kevacoin-qt as well if the dependencies are met.
|
||||
|
||||
Dependencies
|
||||
---------------------
|
||||
@ -55,7 +55,7 @@ Memory Requirements
|
||||
--------------------
|
||||
|
||||
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
|
||||
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):
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
* 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:
|
||||
|
||||
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
|
||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||
|
||||
pacman -S git base-devel boost libevent python
|
||||
git clone https://github.com/litecoin-project/litecoin.git
|
||||
cd litecoin/
|
||||
git clone https://github.com/kevacoin-project/kevacoin.git
|
||||
cd kevacoin/
|
||||
./autogen.sh
|
||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||
make check
|
||||
@ -269,7 +269,7 @@ Note:
|
||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Litecoin Core distributions and independently built
|
||||
As mentioned above, when maintaining portability of the wallet between the standard Kevacoin Core distributions and independently built
|
||||
node software is desired, Berkeley DB 4.8 must be used.
|
||||
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
WINDOWS BUILD NOTES
|
||||
====================
|
||||
|
||||
Below are some notes on how to build Litecoin Core for Windows.
|
||||
Below are some notes on how to build Kevacoin Core for Windows.
|
||||
|
||||
The options known to work for building Litecoin Core on Windows are:
|
||||
The options known to work for building Kevacoin Core on Windows are:
|
||||
|
||||
* On Linux using the [Mingw-w64](https://mingw-w64.org/doku.php) cross compiler tool chain. Ubuntu Bionic 18.04 is required
|
||||
and is the platform used to build the Litecoin Core Windows release binaries.
|
||||
and is the platform used to build the Kevacoin Core Windows release binaries.
|
||||
* On Windows using [Windows
|
||||
Subsystem for Linux (WSL)](https://msdn.microsoft.com/commandline/wsl/about) and the Mingw-w64 cross compiler tool chain.
|
||||
|
||||
@ -78,15 +78,15 @@ Ubuntu Bionic 18.04 <sup>[1](#footnote1)</sup>:
|
||||
|
||||
Once the tool chain is installed the build steps are common:
|
||||
|
||||
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.
|
||||
|
||||
cd /usr/src
|
||||
sudo git clone https://github.com/litecoin-project/litecoin.git
|
||||
sudo chmod -R a+rw litecoin
|
||||
sudo git clone https://github.com/kevacoin-project/kevacoin.git
|
||||
sudo chmod -R a+rw kevacoin
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
cd /usr/src
|
||||
sudo git clone https://github.com/litecoin-project/litecoin.git
|
||||
sudo chmod -R a+rw litecoin
|
||||
sudo git clone https://github.com/kevacoin-project/kevacoin.git
|
||||
sudo chmod -R a+rw kevacoin
|
||||
|
||||
Then build using:
|
||||
|
||||
@ -138,9 +138,9 @@ Installation
|
||||
After building using the Windows subsystem it can be useful to copy the compiled
|
||||
executables to a directory on the windows drive in the same directory structure
|
||||
as they appear in the release `.zip` archive. This can be done in the following
|
||||
way. This will install to `c:\workspace\litecoin`, for example:
|
||||
way. This will install to `c:\workspace\kevacoin`, for example:
|
||||
|
||||
make install DESTDIR=/mnt/c/workspace/litecoin
|
||||
make install DESTDIR=/mnt/c/workspace/kevacoin
|
||||
|
||||
Footnotes
|
||||
---------
|
||||
@ -149,5 +149,5 @@ Footnotes
|
||||
compiler options to allow a choice between either posix or win32 threads. The default option is win32 threads which is the more
|
||||
efficient since it will result in binary code that links directly with the Windows kernel32.lib. Unfortunately, the headers
|
||||
required to support win32 threads conflict with some of the classes in the C++11 standard library in particular std::mutex.
|
||||
It's not possible to build the litecoin code using the win32 version of the Mingw-w64 cross compilers (at least not without
|
||||
modifying headers in the litecoin source code).
|
||||
It's not possible to build the kevacoin code using the win32 version of the Mingw-w64 cross compilers (at least not without
|
||||
modifying headers in the kevacoin source code).
|
||||
|
@ -1,7 +1,7 @@
|
||||
Fuzz-testing Litecoin Core
|
||||
Fuzz-testing Kevacoin Core
|
||||
==========================
|
||||
|
||||
A special test harness `test_litecoin_fuzzy` is provided to provide an easy
|
||||
A special test harness `test_kevacoin_fuzzy` is provided to provide an easy
|
||||
entry point for fuzzers and the like. In this document we'll describe how to
|
||||
use it with AFL.
|
||||
|
||||
@ -20,13 +20,13 @@ export AFLPATH=$PWD
|
||||
Instrumentation
|
||||
----------------
|
||||
|
||||
To build Litecoin Core using AFL instrumentation (this assumes that the
|
||||
To build Kevacoin Core using AFL instrumentation (this assumes that the
|
||||
`AFLPATH` was set as above):
|
||||
```
|
||||
./configure --disable-ccache --disable-shared --enable-tests CC=${AFLPATH}/afl-gcc CXX=${AFLPATH}/afl-g++
|
||||
export AFL_HARDEN=1
|
||||
cd src/
|
||||
make test/test_litecoin_fuzzy
|
||||
make test/test_kevacoin_fuzzy
|
||||
```
|
||||
We disable ccache because we don't want to pollute the ccache with instrumented
|
||||
objects, and similarly don't want to use non-instrumented cached objects linked
|
||||
@ -35,7 +35,7 @@ in.
|
||||
The fuzzing can be sped up significantly (~200x) by using `afl-clang-fast` and
|
||||
`afl-clang-fast++` in place of `afl-gcc` and `afl-g++` when compiling. When
|
||||
compiling using `afl-clang-fast`/`afl-clang-fast++` the resulting
|
||||
`test_litecoin_fuzzy` binary will be instrumented in such a way that the AFL
|
||||
`test_kevacoin_fuzzy` binary will be instrumented in such a way that the AFL
|
||||
features "persistent mode" and "deferred forkserver" can be used. See
|
||||
https://github.com/mcarpenter/afl/tree/master/llvm_mode for details.
|
||||
|
||||
@ -65,7 +65,7 @@ Fuzzing
|
||||
|
||||
To start the actual fuzzing use:
|
||||
```
|
||||
$AFLPATH/afl-fuzz -i ${AFLIN} -o ${AFLOUT} -m52 -- test/test_litecoin_fuzzy
|
||||
$AFLPATH/afl-fuzz -i ${AFLIN} -o ${AFLOUT} -m52 -- test/test_kevacoin_fuzzy
|
||||
```
|
||||
|
||||
You may have to change a few kernel parameters to test optimally - `afl-fuzz`
|
||||
|
20
doc/zmq.md
20
doc/zmq.md
@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory,
|
||||
providing various message-oriented semantics such as publish/subscribe,
|
||||
request/reply, and push/pull.
|
||||
|
||||
The Litecoin Core daemon can be configured to act as a trusted "border
|
||||
router", implementing the litecoin wire protocol and relay, making
|
||||
The Kevacoin Core daemon can be configured to act as a trusted "border
|
||||
router", implementing the kevacoin wire protocol and relay, making
|
||||
consensus decisions, maintaining the local blockchain database,
|
||||
broadcasting locally generated transactions into the network, and
|
||||
providing a queryable RPC interface to interact on a polled basis for
|
||||
@ -33,7 +33,7 @@ buffering or reassembly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The ZeroMQ feature in Litecoin Core requires ZeroMQ API version 4.x or
|
||||
The ZeroMQ feature in Kevacoin Core requires ZeroMQ API version 4.x or
|
||||
newer. Typically, it is packaged by distributions as something like
|
||||
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed.
|
||||
|
||||
@ -45,7 +45,7 @@ operation.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
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.
|
||||
|
Loading…
Reference in New Issue
Block a user