Browse Source

Updated README, added build section.

Updated other MD files.
cn
Jianping Wu 6 years ago
parent
commit
21d1e1782f
  1. 2
      INSTALL.md
  2. 9
      README.md
  3. 30
      doc/README.md
  4. 6
      doc/build-netbsd.md
  5. 6
      doc/build-openbsd.md
  6. 38
      doc/build-osx.md
  7. 32
      doc/build-unix.md
  8. 30
      doc/build-windows.md
  9. 12
      doc/fuzzing.md
  10. 20
      doc/zmq.md

2
INSTALL.md

@ -2,4 +2,4 @@ Building Litecoin
================ ================
See doc/build-*.md for instructions on building the various 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.

9
README.md

@ -6,7 +6,7 @@ https://kevacoin.org
What is Kevacoin? 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? 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 For more information, as well as an immediately useable, binary version of
the Kevacoin Core software, see [https://kevacoin.org](https://kevacoin.org). 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 License
------- -------

30
doc/README.md

@ -1,41 +1,41 @@
Litecoin Core Kevacoin Core
============= =============
Setup 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 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 ### Unix
Unpack the files into a directory and run: Unpack the files into a directory and run:
- `bin/litecoin-qt` (GUI) or - `bin/kevacoin-qt` (GUI) or
- `bin/litecoind` (headless) - `bin/kevacoind` (headless)
### Windows ### 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 ### 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? ### 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. 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 [#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 [LitecoinTalk](https://litecointalk.io/) forums. * Ask for help on the [KevacoinTalk](https://kevacointalk.io/) forums.
Building 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) - [Dependencies](dependencies.md)
- [OS X Build Notes](build-osx.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 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) - [Developer Notes](developer-notes.md)
- [Release Notes](release-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) - [Benchmarking](benchmarking.md)
### Resources ### Resources
* Discuss on the [LitecoinTalk](https://litecointalk.io/) forums. * Discuss on the [KevacoinTalk](https://kevacointalk.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 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 ### Miscellaneous
- [Assets Attribution](assets-attribution.md) - [Assets Attribution](assets-attribution.md)

6
doc/build-netbsd.md

@ -2,7 +2,7 @@ NetBSD build guide
====================== ======================
(updated for NetBSD 7.0) (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. This guide does not contain instructions for building the GUI.
@ -25,12 +25,12 @@ python27
Download the source code: 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. 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). **Important**: Use `gmake` (the non-GNU `make` will exit with an error).

6
doc/build-openbsd.md

@ -2,7 +2,7 @@ OpenBSD build guide
====================== ======================
(updated for OpenBSD 6.2) (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. 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 python # (select highest version, e.g. 3.6)
pkg_add boost 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. 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" 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. **Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.

38
doc/build-osx.md

@ -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). **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 git clone https://github.com/kevacoin-project/kevacoin
cd litecoin 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. You can disable the GUI build by passing `--without-gui` to configure.
@ -76,44 +76,44 @@ Build Litecoin Core
or or
cd ~/litecoin/src cd ~/kevacoin/src
cp litecoind /usr/local/bin/ cp kevacoind /usr/local/bin/
cp litecoin-cli /usr/local/bin/ cp kevacoin-cli /usr/local/bin/
Running 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. 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: 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: Other commands:
------- -------
./src/litecoind -daemon # Starts the litecoin daemon. ./src/kevacoind -daemon # Starts the kevacoin daemon.
./src/litecoin-cli --help # Outputs a list of command-line options. ./src/kevacoin-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/kevacoin-cli help # Outputs a list of RPC commands when the daemon is running.
Using Qt Creator as IDE 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/). Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
Uncheck everything except Qt Creator during the installation process. Uncheck everything except Qt Creator during the installation process.
1. Make sure you installed everything through Homebrew mentioned above 1. Make sure you installed everything through Homebrew mentioned above
2. Do a proper ./configure --enable-debug 2. Do a proper ./configure --enable-debug
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project 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 5. Leave the file selection as it is
6. Confirm the "summary page" 6. Confirm the "summary page"
7. In the "Projects" tab select "Manage Kits..." 7. In the "Projects" tab select "Manage Kits..."

32
doc/build-unix.md

@ -1,12 +1,12 @@
UNIX BUILD NOTES 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)) (for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
Note 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: for example, when specifying the path of the dependency:
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
@ -24,7 +24,7 @@ make
make install # optional 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 Dependencies
--------------------- ---------------------
@ -55,7 +55,7 @@ Memory Requirements
-------------------- --------------------
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of 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: 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, are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
pass `--with-incompatible-bdb` to configure. 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): 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 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. 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. 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`. To build without GUI pass `--without-gui`.
@ -124,7 +124,7 @@ libqrencode (optional) can be installed with:
sudo apt-get install libqrencode-dev 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. built by default.
Dependency Build Instructions: Fedora Dependency Build Instructions: Fedora
@ -147,7 +147,7 @@ libqrencode (optional) can be installed with:
Notes 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%. symbols, which reduces the executable size by about 90%.
@ -188,7 +188,7 @@ If you need to build Boost yourself:
Security 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. exploit even if a vulnerability is found, binaries are hardened by default.
This can be disabled with: 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: 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: The output should contain:
@ -221,13 +221,13 @@ Hardening enables the following features:
* Non-executable Stack * Non-executable Stack
If the stack is executable then trivial stack based buffer overflow exploits are possible if 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 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 and uses a compiler extension which requires an executable stack, it will silently build an
executable without the non-executable stack protection. executable without the non-executable stack protection.
To verify that the stack is non-executable after compiling use: To verify that the stack is non-executable after compiling use:
`scanelf -e ./litecoin` `scanelf -e ./kevacoin`
the output should contain: the output should contain:
STK/REL/PTL STK/REL/PTL
@ -237,7 +237,7 @@ Hardening enables the following features:
Disable-wallet mode 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: disable-wallet mode with:
./configure --disable-wallet ./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: 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 pacman -S git base-devel boost libevent python
git clone https://github.com/litecoin-project/litecoin.git git clone https://github.com/kevacoin-project/kevacoin.git
cd litecoin/ cd kevacoin/
./autogen.sh ./autogen.sh
./configure --disable-wallet --without-gui --without-miniupnpc ./configure --disable-wallet --without-gui --without-miniupnpc
make check 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`, 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 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). `--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. node software is desired, Berkeley DB 4.8 must be used.

30
doc/build-windows.md

@ -1,12 +1,12 @@
WINDOWS BUILD NOTES 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 * 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 * On Windows using [Windows
Subsystem for Linux (WSL)](https://msdn.microsoft.com/commandline/wsl/about) and the Mingw-w64 cross compiler tool chain. 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: 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 Note that for WSL the Kevacoin 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. 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. 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. The next three steps are an example of how to acquire the source in an appropriate way.
cd /usr/src cd /usr/src
sudo git clone https://github.com/litecoin-project/litecoin.git sudo git clone https://github.com/kevacoin-project/kevacoin.git
sudo chmod -R a+rw litecoin sudo chmod -R a+rw kevacoin
Once the source code is ready the build steps are below. 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. 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 Note that for WSL the Kevacoin 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. 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. 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. The next three steps are an example of how to acquire the source in an appropriate way.
cd /usr/src cd /usr/src
sudo git clone https://github.com/litecoin-project/litecoin.git sudo git clone https://github.com/kevacoin-project/kevacoin.git
sudo chmod -R a+rw litecoin sudo chmod -R a+rw kevacoin
Then build using: Then build using:
@ -138,9 +138,9 @@ Installation
After building using the Windows subsystem it can be useful to copy the compiled 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 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 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 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 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 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. 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 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 litecoin source code). modifying headers in the kevacoin source code).

12
doc/fuzzing.md

@ -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 entry point for fuzzers and the like. In this document we'll describe how to
use it with AFL. use it with AFL.
@ -20,13 +20,13 @@ export AFLPATH=$PWD
Instrumentation 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): `AFLPATH` was set as above):
``` ```
./configure --disable-ccache --disable-shared --enable-tests CC=${AFLPATH}/afl-gcc CXX=${AFLPATH}/afl-g++ ./configure --disable-ccache --disable-shared --enable-tests CC=${AFLPATH}/afl-gcc CXX=${AFLPATH}/afl-g++
export AFL_HARDEN=1 export AFL_HARDEN=1
cd src/ 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 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 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 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 `afl-clang-fast++` in place of `afl-gcc` and `afl-g++` when compiling. When
compiling using `afl-clang-fast`/`afl-clang-fast++` the resulting 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 features "persistent mode" and "deferred forkserver" can be used. See
https://github.com/mcarpenter/afl/tree/master/llvm_mode for details. https://github.com/mcarpenter/afl/tree/master/llvm_mode for details.
@ -65,7 +65,7 @@ Fuzzing
To start the actual fuzzing use: 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` You may have to change a few kernel parameters to test optimally - `afl-fuzz`

20
doc/zmq.md

@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory,
providing various message-oriented semantics such as publish/subscribe, providing various message-oriented semantics such as publish/subscribe,
request/reply, and push/pull. request/reply, and push/pull.
The Litecoin Core daemon can be configured to act as a trusted "border The Kevacoin Core daemon can be configured to act as a trusted "border
router", implementing the litecoin wire protocol and relay, making router", implementing the kevacoin wire protocol and relay, making
consensus decisions, maintaining the local blockchain database, consensus decisions, maintaining the local blockchain database,
broadcasting locally generated transactions into the network, and broadcasting locally generated transactions into the network, and
providing a queryable RPC interface to interact on a polled basis for providing a queryable RPC interface to interact on a polled basis for
@ -33,7 +33,7 @@ buffering or reassembly.
## Prerequisites ## 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 newer. Typically, it is packaged by distributions as something like
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed. *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 By default, the ZeroMQ feature is automatically compiled in if the
necessary prerequisites are found. To disable, use --disable-zmq 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) $ ./configure --disable-zmq (other options)
@ -66,8 +66,8 @@ address. The same address can be used in more than one notification.
For instance: For instance:
$ litecoind -zmqpubhashtx=tcp://127.0.0.1:28332 \ $ kevacoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
-zmqpubrawtx=ipc:///tmp/litecoind.tx.raw -zmqpubrawtx=ipc:///tmp/kevacoind.tx.raw
Each PUB notification has a topic and body, where the header Each PUB notification has a topic and body, where the header
corresponds to the notification type. For instance, for the 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 terminator) and the body is the transaction hash (32
bytes). 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 endpoint specifiers for TCP (and others) are documented in the
[ZeroMQ API](http://api.zeromq.org/4-0:_start). [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 ## 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 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. broadcast that wasn't already received from the public P2P network.
No authentication or authorization is done on connecting clients; it 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 There are several possibilities that ZMQ notification can get lost
during transmission depending on the communication type your are 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. notification which allows listeners to detect lost notifications.

Loading…
Cancel
Save