Browse Source

More changes from litecoin to kevacoin.

cn
Jianping Wu 5 years ago
parent
commit
392b7aba5f
  1. 8
      .github/ISSUE_TEMPLATE.md
  2. 6
      .travis.yml
  3. 28
      CONTRIBUTING.md
  4. 2
      COPYING
  5. 4
      INSTALL.md
  6. 12
      Makefile.am
  7. 6
      README.md
  8. 4
      build-aux/m4/bitcoin_qt.m4
  9. 16
      contrib/README.md
  10. 8
      contrib/devtools/gen-manpages.sh
  11. 72
      contrib/gitian-build.sh
  12. 22
      contrib/gitian-descriptors/gitian-linux.yml
  13. 10
      contrib/gitian-descriptors/gitian-osx-signer.yml
  14. 12
      contrib/gitian-descriptors/gitian-osx.yml
  15. 8
      contrib/gitian-descriptors/gitian-win-signer.yml
  16. 16
      contrib/gitian-descriptors/gitian-win.yml
  17. 6
      contrib/linearize/README.md
  18. 8
      contrib/linearize/example-linearize.cfg
  19. 4
      contrib/macdeploy/README.md
  20. 4
      contrib/macdeploy/custom_dsstore.py
  21. 2
      contrib/macdeploy/detached-sig-create.sh
  22. 2
      contrib/macdeploy/fancy.plist
  23. 134
      contrib/macdeploy/macdeployqtplus
  24. 4
      contrib/qos/README.md
  25. 2
      contrib/qos/tc.sh
  26. 6
      contrib/seeds/generate-seeds.py
  27. 4
      contrib/testgen/README.md
  28. 12
      contrib/tidy_datadir.sh
  29. 6
      contrib/windeploy/win-codesign.cert
  30. 2
      contrib/zmq/zmq_sub.py
  31. 4
      contrib/zmq/zmq_sub3.4.py
  32. 6
      depends/README.md
  33. 4
      depends/description.md
  34. 2
      doc/README_osx.md
  35. 14
      doc/README_windows.txt
  36. 4
      doc/REST-interface.md
  37. 2
      doc/assets-attribution.md
  38. 4
      doc/benchmarking.md
  39. 2
      doc/dependencies.md
  40. 24
      doc/developer-notes.md
  41. 16
      doc/dnsseed-policy.md
  42. 6
      doc/files.md
  43. 30
      doc/litecoin-release-notes/release-notes-0.10.2.2.md
  44. 22
      doc/litecoin-release-notes/release-notes-0.10.4.md
  45. 104
      doc/litecoin-release-notes/release-notes-0.13.2.md
  46. 14
      doc/litecoin-release-notes/release-notes-0.13.3.md
  47. 70
      doc/litecoin-release-notes/release-notes-0.14.2.md
  48. 40
      doc/litecoin-release-notes/release-notes-0.15.0.1.md
  49. 24
      doc/litecoin-release-notes/release-notes-0.15.1.md
  50. 6
      doc/man/Makefile.am
  51. 28
      doc/man/kevacoin-cli.1
  52. 20
      doc/man/kevacoin-qt.1
  53. 22
      doc/man/kevacoin-tx.1
  54. 22
      doc/man/kevacoind.1
  55. 4
      doc/reduce-traffic.md
  56. 18
      doc/release-notes-litecoin.md
  57. 126
      doc/release-process.md
  58. 52
      doc/tor.md
  59. 2
      doc/travis-ci.md
  60. 2
      doc/zmq.md
  61. 22
      share/qt/Info.plist.in
  62. 6
      share/rpcauth/rpcauth.py
  63. 8
      share/setup.nsi.in
  64. 2
      src/chainparamsseeds.h
  65. 2
      src/pow.cpp
  66. 4
      src/rpc/mining.cpp
  67. 4
      src/rpc/misc.cpp
  68. 4
      src/wallet/rpcdump.cpp
  69. 4
      src/wallet/rpcwallet.cpp
  70. 2
      src/wallet/test/wallet_tests.cpp
  71. 50
      test/README.md
  72. 22
      test/functional/README.md
  73. 4
      test/functional/feature_block.py
  74. 2
      test/functional/feature_config_args.py
  75. 6
      test/functional/feature_help.py
  76. 14
      test/functional/feature_proxy.py
  77. 8
      test/functional/interface_bitcoin_cli.py
  78. 2
      test/functional/interface_zmq.py
  79. 2
      test/functional/mempool_persist.py
  80. 12
      test/functional/p2p_segwit.py
  81. 4
      test/functional/p2p_unrequested_blocks.py
  82. 2
      test/functional/rpc_bind.py
  83. 2
      test/functional/rpc_fundrawtransaction.py
  84. 2
      test/functional/rpc_listtransactions.py
  85. 4
      test/functional/rpc_rawtransaction.py
  86. 6
      test/functional/rpc_users.py
  87. 2
      test/functional/test_framework/coverage.py
  88. 6
      test/functional/test_framework/mininode.py
  89. 32
      test/functional/test_framework/test_framework.py
  90. 12
      test/functional/test_framework/test_node.py
  91. 6
      test/functional/test_framework/util.py
  92. 12
      test/functional/test_runner.py
  93. 2
      test/functional/wallet_bumpfee.py
  94. 4
      test/functional/wallet_scriptaddress2.py
  95. 2
      test/util/bitcoin-util-test.py
  96. 126
      test/util/data/bitcoin-util-test.json

8
.github/ISSUE_TEMPLATE.md

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
<!-- This issue tracker is only for technical issues related to Litecoin Core.
<!-- This issue tracker is only for technical issues related to Kevacoin Core.
General litecoin questions and/or support requests and are best directed to the [litecointalk.io forums](https://litecointalk.io/).
General kevacoin questions and/or support requests and are best directed to the [litecointalk.io forums](https://litecointalk.io/).
For reporting security issues, please contact the Litecoin developers on the #litecoin-dev Freenode IRC channel or alternatively you can email us at contact@litecoin.org.
For reporting security issues, please contact the Kevacoin developers on the #kevacoin-dev Freenode IRC channel or alternatively you can email us at contact@kevacoin.org.
If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running memtest and observe CPU temperature with a load-test tool such as linpack before creating an issue! -->
@ -13,7 +13,7 @@ If the node is "stuck" during sync or giving "block checksum mismatch" errors, p @@ -13,7 +13,7 @@ If the node is "stuck" during sync or giving "block checksum mismatch" errors, p
<!--- How reliably can you reproduce the issue, what are the steps to do so? -->
<!-- What version of Litecoin Core are you using, where did you get it (website, self-compiled, etc)? -->
<!-- What version of Kevacoin Core are you using, where did you get it (website, self-compiled, etc)? -->
<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->

6
.travis.yml

@ -65,8 +65,8 @@ before_script: @@ -65,8 +65,8 @@ before_script:
# Start xvfb if needed, as documented at https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-a-GUI
- if [ "$NEED_XVFB" = 1 ]; then export DISPLAY=:99.0; /sbin/start-stop-daemon --start --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac; fi
script:
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "litecoin-project/litecoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "litecoin-project/litecoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "kevacoin-project/kevacoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys; fi
- if [ "$CHECK_DOC" = 1 -a "$TRAVIS_REPO_SLUG" = "kevacoin-project/kevacoin" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then contrib/verify-commits/verify-commits.sh; fi
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
@ -76,7 +76,7 @@ script: @@ -76,7 +76,7 @@ script:
- mkdir build && cd build
- ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make distdir VERSION=$HOST
- cd litecoin-$HOST
- cd kevacoin-$HOST
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib

28
CONTRIBUTING.md

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
Contributing to Litecoin Core
Contributing to Kevacoin Core
============================
The Litecoin Core project operates an open contributor model where anyone is
The Kevacoin Core project operates an open contributor model where anyone is
welcome to contribute towards development in the form of peer review, testing
and patches. This document explains the practical process and guidelines for
contributing.
@ -57,12 +57,12 @@ the pull request affects. Valid areas as: @@ -57,12 +57,12 @@ the pull request affects. Valid areas as:
- *Consensus* for changes to consensus critical code
- *Docs* for changes to the documentation
- *Qt* for changes to litecoin-qt
- *Qt* for changes to kevacoin-qt
- *Mining* for changes to the mining code
- *Net* or *P2P* for changes to the peer-to-peer network code
- *RPC/REST/ZMQ* for changes to the RPC, REST or ZMQ APIs
- *Scripts and tools* for changes to the scripts and tools
- *Tests* for changes to the litecoin unit tests or QA tests
- *Tests* for changes to the kevacoin unit tests or QA tests
- *Trivial* should **only** be used for PRs that do not change generated
executable code. Notably, refactors (change of function arguments and code
reorganization) and changes in behavior should **not** be marked as trivial.
@ -82,7 +82,7 @@ Examples: @@ -82,7 +82,7 @@ Examples:
Trivial: Fix typo in init.cpp
Note that translations should not be submitted as pull requests, please see
[Translation Process](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md)
[Translation Process](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md)
for more information on helping with translations.
If a pull request is not to be considered for merging (yet), please
@ -169,11 +169,11 @@ workload on reviewing. @@ -169,11 +169,11 @@ workload on reviewing.
"Decision Making" Process
-------------------------
The following applies to code changes to the Litecoin Core project (and related
projects such as libsecp256k1), and is not to be confused with overall Litecoin
The following applies to code changes to the Kevacoin Core project (and related
projects such as libsecp256k1), and is not to be confused with overall Kevacoin
Network Protocol consensus changes.
Whether a pull request is merged into Litecoin Core rests with the project merge
Whether a pull request is merged into Kevacoin Core rests with the project merge
maintainers and ultimately the project lead.
Maintainers will take into consideration if a patch is in line with the general
@ -191,7 +191,7 @@ In general, all pull requests must: @@ -191,7 +191,7 @@ In general, all pull requests must:
- Where bugs are fixed, where possible, there should be unit tests
demonstrating the bug and also proving the fix. This helps prevent regression.
Patches that change Litecoin consensus rules are considerably more involved than
Patches that change Kevacoin consensus rules are considerably more involved than
normal because they affect the entire ecosystem and so must be preceded by
extensive mailing list discussions and have a numbered BIP. While each case will
be different, one should be prepared to expend more time and effort than for
@ -232,7 +232,7 @@ higher in terms of discussion and peer review requirements, keeping in mind that @@ -232,7 +232,7 @@ higher in terms of discussion and peer review requirements, keeping in mind that
mistakes could be very costly to the wider community. This includes refactoring
of consensus critical code.
Where a patch set proposes to change the Litecoin consensus, it must have been
Where a patch set proposes to change the Kevacoin consensus, it must have been
discussed extensively on the mailing list and IRC, be accompanied by a widely
discussed BIP and have a generally widely perceived technical consensus of being
a worthwhile change based on the judgement of the maintainers.
@ -272,12 +272,12 @@ about: @@ -272,12 +272,12 @@ about:
Release Policy
--------------
The project leader is the release manager for each Litecoin Core release.
The project leader is the release manager for each Kevacoin Core release.
Copyright
---------
By contributing to this repository, you agree to license your work under the
MIT license unless specified otherwise in `contrib/debian/copyright` or at
the top of the file itself. Any work contributed where you are not the original
By contributing to this repository, you agree to license your work under the
MIT license unless specified otherwise in `contrib/debian/copyright` or at
the top of the file itself. Any work contributed where you are not the original
author must contain its license header with the original author(s) and source.

2
COPYING

@ -2,7 +2,7 @@ The MIT License (MIT) @@ -2,7 +2,7 @@ The MIT License (MIT)
Copyright (c) 2009-2018 The Bitcoin Core developers
Copyright (c) 2009-2018 Bitcoin Developers
Copyright (c) 2011-2018 The Litecoin Core developers
Copyright (c) 2011-2018 The Kevacoin Core developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

4
INSTALL.md

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
Building Litecoin
Building Kevacoin
================
See doc/build-*.md for instructions on building the various
elements of the Litecoin Core reference implementation of Kevacoin.
elements of the Kevacoin Core reference implementation of Kevacoin.

12
Makefile.am

@ -24,7 +24,7 @@ BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EX @@ -24,7 +24,7 @@ BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EX
empty :=
space := $(empty) $(empty)
OSX_APP=Litecoin-Qt.app
OSX_APP=Kevacoin-Qt.app
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
OSX_DMG = $(OSX_VOLNAME).dmg
OSX_BACKGROUND_SVG=background.svg
@ -85,7 +85,7 @@ $(OSX_APP)/Contents/PkgInfo: @@ -85,7 +85,7 @@ $(OSX_APP)/Contents/PkgInfo:
$(OSX_APP)/Contents/Resources/empty.lproj:
$(MKDIR_P) $(@D)
@touch $@
@touch $@
$(OSX_APP)/Contents/Info.plist: $(OSX_PLIST)
$(MKDIR_P) $(@D)
@ -95,7 +95,7 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS) @@ -95,7 +95,7 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS)
$(MKDIR_P) $(@D)
$(INSTALL_DATA) $< $@
$(OSX_APP)/Contents/MacOS/Litecoin-Qt: $(BITCOIN_QT_BIN)
$(OSX_APP)/Contents/MacOS/Kevacoin-Qt: $(BITCOIN_QT_BIN)
$(MKDIR_P) $(@D)
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@
@ -105,7 +105,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings: @@ -105,7 +105,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings:
OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \
$(OSX_APP)/Contents/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \
$(OSX_APP)/Contents/MacOS/Litecoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
$(OSX_APP)/Contents/MacOS/Kevacoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
osx_volname:
echo $(OSX_VOLNAME) >$@
@ -130,7 +130,7 @@ $(APP_DIST_DIR)/Applications: @@ -130,7 +130,7 @@ $(APP_DIST_DIR)/Applications:
@rm -f $@
@cd $(@D); $(LN_S) /Applications $(@F)
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-Qt
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Kevacoin-Qt
$(OSX_DMG): $(APP_DIST_EXTRAS)
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist
@ -145,7 +145,7 @@ $(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE): $(OSX_BACKGROUND_IMAGE_DPIF @@ -145,7 +145,7 @@ $(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE): $(OSX_BACKGROUND_IMAGE_DPIF
$(APP_DIST_DIR)/.DS_Store: $(OSX_DSSTORE_GEN)
$(PYTHON) $< "$@" "$(OSX_VOLNAME)"
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Kevacoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
INSTALLNAMETOOL=$(INSTALLNAMETOOL) OTOOL=$(OTOOL) STRIP=$(STRIP) $(PYTHON) $(OSX_DEPLOY_SCRIPT) $(OSX_APP) -translations-dir=$(QT_TRANSLATION_DIR) -add-qt-tr $(OSX_QT_TRANSLATIONS) -verbose 2
deploydir: $(APP_DIST_EXTRAS)

6
README.md

@ -8,7 +8,7 @@ https://kevacoin.org @@ -8,7 +8,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 largely influenced by Namecoin [https://namecoin.org](https://namecoin.org), even though it serves very different purposes and works very differently.
Kevacoin is a decentralized open source key-value data store based on the Kevacoin (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 and works very differently.
What does it do?
----------------
@ -19,7 +19,7 @@ What does it do? @@ -19,7 +19,7 @@ What does it do?
What can it be used for?
------------------------
As a decentralized key-value database, it can be used to store data for all kinds of applications, such as social media, microblogging, public identity information, notary service. Kevacoin has limited support for smart contracts (similar to Bitcoin and Litecoin), but one can still develop decentralized apps (dApps) on Kevacoin. The data is decentralized while the application logic is developed off the blockchain.
As a decentralized key-value database, it can be used to store data for all kinds of applications, such as social media, microblogging, public identity information, notary service. Kevacoin has limited support for smart contracts (similar to Bitcoin and Kevacoin), but one can still develop decentralized apps (dApps) on Kevacoin. The data is decentralized while the application logic is developed off the blockchain.
For more information, as well as an immediately useable, binary version of
the Kevacoin Core software, see [https://kevacoin.org](https://kevacoin.org).
@ -41,7 +41,7 @@ Development Process @@ -41,7 +41,7 @@ Development Process
-------------------
The `master` branch is regularly built and tested, but is not guaranteed to be
completely stable. [Tags](https://github.com/kevacoin-project/litecoin/tags) are created
completely stable. [Tags](https://github.com/kevacoin-project/kevacoin/tags) are created
regularly to indicate new official, stable release versions of Kevacoin Core.
The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md).

4
build-aux/m4/bitcoin_qt.m4

@ -7,7 +7,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit. @@ -7,7 +7,7 @@ dnl Output: If qt version is auto, set bitcoin_enable_qt to false. Else, exit.
AC_DEFUN([BITCOIN_QT_FAIL],[
if test "x$bitcoin_qt_want_version" = xauto && test "x$bitcoin_qt_force" != xyes; then
if test "x$bitcoin_enable_qt" != xno; then
AC_MSG_WARN([$1; litecoin-qt frontend will not be built])
AC_MSG_WARN([$1; kevacoin-qt frontend will not be built])
fi
bitcoin_enable_qt=no
bitcoin_enable_qt_test=no
@ -54,7 +54,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[ @@ -54,7 +54,7 @@ AC_DEFUN([BITCOIN_QT_INIT],[
dnl enable qt support
AC_ARG_WITH([gui],
[AS_HELP_STRING([--with-gui@<:@=no|qt4|qt5|auto@:>@],
[build litecoin-qt GUI (default=auto, qt5 tried first)])],
[build kevacoin-qt GUI (default=auto, qt5 tried first)])],
[
bitcoin_qt_want_version=$withval
if test "x$bitcoin_qt_want_version" = xyes; then

16
contrib/README.md

@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain. @@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain.
### [Qos](/contrib/qos) ###
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Litecoin network. This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it.
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Kevacoin network. This means one can have an always-on kevacoind instance running, and another local kevacoind/kevacoin-qt instance which connects to this node and receives blocks from it.
### [Seeds](/contrib/seeds) ###
Utility to generate the pnSeed[] array that is compiled into the client.
@ -22,17 +22,17 @@ Build Tools and Keys @@ -22,17 +22,17 @@ Build Tools and Keys
---------------------
### [Debian](/contrib/debian) ###
Contains files used to package litecoind/litecoin-qt
for Debian-based Linux systems. If you compile litecoind/litecoin-qt yourself, there are some useful files here.
Contains files used to package kevacoind/kevacoin-qt
for Debian-based Linux systems. If you compile kevacoind/kevacoin-qt yourself, there are some useful files here.
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
Files used during the gitian build process. For more information about gitian, see the [the Bitcoin Core documentation repository](https://github.com/bitcoin-core/docs).
### [Gitian-keys](/contrib/gitian-keys)
PGP keys used for signing Litecoin Core [Gitian release](/doc/release-process.md) results.
PGP keys used for signing Kevacoin Core [Gitian release](/doc/release-process.md) results.
### [MacDeploy](/contrib/macdeploy) ###
Scripts and notes for Mac builds.
Scripts and notes for Mac builds.
### [RPM](/contrib/rpm) ###
RPM spec file for building blitecoin-core on RPM based distributions.
@ -40,11 +40,11 @@ RPM spec file for building blitecoin-core on RPM based distributions. @@ -40,11 +40,11 @@ RPM spec file for building blitecoin-core on RPM based distributions.
### [Gitian-build](/contrib/gitian-build.sh) ###
Script for running full Gitian builds.
Test and Verify Tools
Test and Verify Tools
---------------------
### [TestGen](/contrib/testgen) ###
Utilities to generate test vectors for the data-driven Litecoin tests.
Utilities to generate test vectors for the data-driven Kevacoin tests.
### [Verify Binaries](/contrib/verifybinaries) ###
This script attempts to download and verify the signature file SHA256SUMS.asc from litecoin.org.
This script attempts to download and verify the signature file SHA256SUMS.asc from kevacoin.org.

8
contrib/devtools/gen-manpages.sh

@ -4,10 +4,10 @@ TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)} @@ -4,10 +4,10 @@ TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)}
SRCDIR=${SRCDIR:-$TOPDIR/src}
MANDIR=${MANDIR:-$TOPDIR/doc/man}
LITECOIND=${LITECOIND:-$SRCDIR/litecoind}
LITECOINCLI=${LITECOINCLI:-$SRCDIR/litecoin-cli}
LITECOINTX=${LITECOINTX:-$SRCDIR/litecoin-tx}
LITECOINQT=${LITECOINQT:-$SRCDIR/qt/litecoin-qt}
LITECOIND=${LITECOIND:-$SRCDIR/kevacoind}
LITECOINCLI=${LITECOINCLI:-$SRCDIR/kevacoin-cli}
LITECOINTX=${LITECOINTX:-$SRCDIR/kevacoin-tx}
LITECOINQT=${LITECOINQT:-$SRCDIR/qt/kevacoin-qt}
[ ! -x $LITECOIND ] && echo "$LITECOIND not found or not executable." && exit 1

72
contrib/gitian-build.sh

@ -16,7 +16,7 @@ osx=true @@ -16,7 +16,7 @@ osx=true
SIGNER=
VERSION=
commit=false
url=https://github.com/litecoin-project/litecoin
url=https://github.com/kevacoin-project/kevacoin
proc=2
mem=2000
lxc=true
@ -30,7 +30,7 @@ commitFiles=true @@ -30,7 +30,7 @@ commitFiles=true
read -d '' usage <<- EOF
Usage: $scriptName [-c|u|v|b|s|B|o|h|j|m|] signer version
Run this script from the directory containing the litecoin, gitian-builder, gitian.sigs.ltc, and litecoin-detached-sigs.
Run this script from the directory containing the kevacoin, gitian-builder, gitian.sigs.ltc, and kevacoin-detached-sigs.
Arguments:
signer GPG signer to sign each build assert file
@ -38,7 +38,7 @@ version Version number, commit, or branch to build. If building a commit or bra @@ -38,7 +38,7 @@ version Version number, commit, or branch to build. If building a commit or bra
Options:
-c|--commit Indicate that the version argument is for a commit or branch
-u|--url Specify the URL of the repository. Default is https://github.com/litecoin-project/litecoin
-u|--url Specify the URL of the repository. Default is https://github.com/kevacoin-project/kevacoin
-v|--verify Verify the gitian build
-b|--build Do a gitian build
-s|--sign Make signed binaries for Windows and Mac OSX
@ -229,8 +229,8 @@ echo ${COMMIT} @@ -229,8 +229,8 @@ echo ${COMMIT}
if [[ $setup = true ]]
then
sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm qemu-utils
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
git clone https://github.com/kevacoin-project/gitian.sigs.ltc.git
git clone https://github.com/kevacoin-project/kevacoin-detached-sigs.git
git clone https://github.com/devrandom/gitian-builder.git
pushd ./gitian-builder
if [[ -n "$USE_LXC" ]]
@ -244,7 +244,7 @@ then @@ -244,7 +244,7 @@ then
fi
# Set up build
pushd ./litecoin
pushd ./kevacoin
git fetch
git checkout ${COMMIT}
popd
@ -253,17 +253,17 @@ popd @@ -253,17 +253,17 @@ popd
if [[ $build = true ]]
then
# Make output folder
mkdir -p ./litecoin-binaries/${VERSION}
mkdir -p ./kevacoin-binaries/${VERSION}
# Build Dependencies
echo ""
echo "Building Dependencies"
echo ""
pushd ./gitian-builder
pushd ./gitian-builder
mkdir -p inputs
wget -N -P inputs $osslPatchUrl
wget -N -P inputs $osslTarUrl
make -C ../litecoin/depends download SOURCES_PATH=`pwd`/cache/common
make -C ../kevacoin/depends download SOURCES_PATH=`pwd`/cache/common
# Linux
if [[ $linux = true ]]
@ -271,9 +271,9 @@ then @@ -271,9 +271,9 @@ then
echo ""
echo "Compiling ${VERSION} Linux"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit litecoin=${COMMIT} --url litecoin=${url} ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/litecoin-*.tar.gz build/out/src/litecoin-*.tar.gz ../litecoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit kevacoin=${COMMIT} --url kevacoin=${url} ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/kevacoin-*.tar.gz build/out/src/kevacoin-*.tar.gz ../kevacoin-binaries/${VERSION}
fi
# Windows
if [[ $windows = true ]]
@ -281,10 +281,10 @@ then @@ -281,10 +281,10 @@ then
echo ""
echo "Compiling ${VERSION} Windows"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit litecoin=${COMMIT} --url litecoin=${url} ../litecoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/litecoin-*-win-unsigned.tar.gz inputs/litecoin-win-unsigned.tar.gz
mv build/out/litecoin-*.zip build/out/litecoin-*.exe ../litecoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit kevacoin=${COMMIT} --url kevacoin=${url} ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/kevacoin-*-win-unsigned.tar.gz inputs/kevacoin-win-unsigned.tar.gz
mv build/out/kevacoin-*.zip build/out/kevacoin-*.exe ../kevacoin-binaries/${VERSION}
fi
# Mac OSX
if [[ $osx = true ]]
@ -292,10 +292,10 @@ then @@ -292,10 +292,10 @@ then
echo ""
echo "Compiling ${VERSION} Mac OSX"
echo ""
./bin/gbuild -j ${proc} -m ${mem} --commit litecoin=${COMMIT} --url litecoin=${url} ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/litecoin-*-osx-unsigned.tar.gz inputs/litecoin-osx-unsigned.tar.gz
mv build/out/litecoin-*.tar.gz build/out/litecoin-*.dmg ../litecoin-binaries/${VERSION}
./bin/gbuild -j ${proc} -m ${mem} --commit kevacoin=${COMMIT} --url kevacoin=${url} ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/kevacoin-*-osx-unsigned.tar.gz inputs/kevacoin-osx-unsigned.tar.gz
mv build/out/kevacoin-*.tar.gz build/out/kevacoin-*.dmg ../kevacoin-binaries/${VERSION}
fi
popd
@ -322,34 +322,34 @@ then @@ -322,34 +322,34 @@ then
echo ""
echo "Verifying v${VERSION} Linux"
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
# Windows
echo ""
echo "Verifying v${VERSION} Windows"
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-unsigned ../litecoin/contrib/gitian-descriptors/gitian-win.yml
# Mac OSX
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-unsigned ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
# Mac OSX
echo ""
echo "Verifying v${VERSION} Mac OSX"
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
# Signed Windows
echo ""
echo "Verifying v${VERSION} Signed Windows"
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
# Signed Mac OSX
echo ""
echo "Verifying v${VERSION} Signed Mac OSX"
echo ""
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
popd
fi
# Sign binaries
if [[ $sign = true ]]
then
pushd ./gitian-builder
# Sign Windows
if [[ $windows = true ]]
@ -357,10 +357,10 @@ then @@ -357,10 +357,10 @@ then
echo ""
echo "Signing ${VERSION} Windows"
echo ""
./bin/gbuild -i --commit signature=${COMMIT} ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/litecoin-*win64-setup.exe ../litecoin-binaries/${VERSION}
mv build/out/litecoin-*win32-setup.exe ../litecoin-binaries/${VERSION}
./bin/gbuild -i --commit signature=${COMMIT} ../kevacoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/kevacoin-*win64-setup.exe ../kevacoin-binaries/${VERSION}
mv build/out/kevacoin-*win32-setup.exe ../kevacoin-binaries/${VERSION}
fi
# Sign Mac OSX
if [[ $osx = true ]]
@ -368,9 +368,9 @@ then @@ -368,9 +368,9 @@ then
echo ""
echo "Signing ${VERSION} Mac OSX"
echo ""
./bin/gbuild -i --commit signature=${COMMIT} ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/litecoin-osx-signed.dmg ../litecoin-binaries/${VERSION}/litecoin-${VERSION}-osx.dmg
./bin/gbuild -i --commit signature=${COMMIT} ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign -p $signProg --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/kevacoin-osx-signed.dmg ../kevacoin-binaries/${VERSION}/kevacoin-${VERSION}-osx.dmg
fi
popd

22
contrib/gitian-descriptors/gitian-linux.yml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
---
name: "litecoin-linux-0.16"
name: "kevacoin-linux-0.16"
enable_cache: true
suites:
- "trusty"
@ -28,8 +28,8 @@ packages: @@ -28,8 +28,8 @@ packages:
- "ca-certificates"
- "python"
remotes:
- "url": "https://github.com/litecoin-project/litecoin.git"
"dir": "litecoin"
- "url": "https://github.com/kevacoin-project/kevacoin.git"
"dir": "kevacoin"
files: []
script: |
@ -113,7 +113,7 @@ script: | @@ -113,7 +113,7 @@ script: |
chmod +x ${WRAP_DIR}/${prog}
done
cd litecoin
cd kevacoin
BASEPREFIX=`pwd`/depends
# Build dependencies for each host
for i in $HOSTS; do
@ -135,13 +135,13 @@ script: | @@ -135,13 +135,13 @@ script: |
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
make dist
SOURCEDIST=`echo litecoin-*.tar.gz`
SOURCEDIST=`echo kevacoin-*.tar.gz`
DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'`
# Correct tar file order
mkdir -p temp
pushd temp
tar xf ../$SOURCEDIST
find litecoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
find kevacoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
popd
# Workaround for tarball not building with the bare tag version (prep)
@ -181,14 +181,14 @@ script: | @@ -181,14 +181,14 @@ script: |
find . -name "lib*.la" -delete
find . -name "lib*.a" -delete
rm -rf ${DISTNAME}/lib/pkgconfig
# Litecoin: Delete libbitcoin from binary distribution for now, see #192
# Kevacoin: Delete libbitcoin from binary distribution for now, see #192
rm -rf ${DISTNAME}/lib/
rm -rf ${DISTNAME}/include/
# Litecoin: ends
# Kevacoin: ends
find ${DISTNAME}/bin -type f -executable -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
#find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \; # Litecoin: see issue 192
#find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \; # Kevacoin: see issue 192
find ${DISTNAME} -not -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz
find ${DISTNAME} -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}-debug.tar.gz
cd ../../

10
contrib/gitian-descriptors/gitian-osx-signer.yml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
---
name: "litecoin-dmg-signer"
name: "kevacoin-dmg-signer"
suites:
- "trusty"
architectures:
@ -7,10 +7,10 @@ architectures: @@ -7,10 +7,10 @@ architectures:
packages:
- "faketime"
remotes:
- "url": "https://github.com/litecoin-project/litecoin-detached-sigs.git"
- "url": "https://github.com/kevacoin-project/kevacoin-detached-sigs.git"
"dir": "signature"
files:
- "litecoin-osx-unsigned.tar.gz"
- "kevacoin-osx-unsigned.tar.gz"
script: |
WRAP_DIR=$HOME/wrapped
mkdir -p ${WRAP_DIR}
@ -27,8 +27,8 @@ script: | @@ -27,8 +27,8 @@ script: |
chmod +x ${WRAP_DIR}/${prog}
done
UNSIGNED=litecoin-osx-unsigned.tar.gz
SIGNED=litecoin-osx-signed.dmg
UNSIGNED=kevacoin-osx-unsigned.tar.gz
SIGNED=kevacoin-osx-signed.dmg
tar -xf ${UNSIGNED}
OSX_VOLNAME="$(cat osx_volname)"

12
contrib/gitian-descriptors/gitian-osx.yml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
---
name: "litecoin-osx-0.16"
name: "kevacoin-osx-0.16"
enable_cache: true
suites:
- "trusty"
@ -28,8 +28,8 @@ packages: @@ -28,8 +28,8 @@ packages:
- "python-setuptools"
- "fonts-tuffy"
remotes:
- "url": "https://github.com/litecoin-project/litecoin.git"
"dir": "litecoin"
- "url": "https://github.com/kevacoin-project/kevacoin.git"
"dir": "kevacoin"
files:
- "MacOSX10.11.sdk.tar.gz"
script: |
@ -83,7 +83,7 @@ script: | @@ -83,7 +83,7 @@ script: |
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
export PATH=${WRAP_DIR}:${PATH}
cd litecoin
cd kevacoin
BASEPREFIX=`pwd`/depends
mkdir -p ${BASEPREFIX}/SDKs
@ -104,14 +104,14 @@ script: | @@ -104,14 +104,14 @@ script: |
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
make dist
SOURCEDIST=`echo litecoin-*.tar.gz`
SOURCEDIST=`echo kevacoin-*.tar.gz`
DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'`
# Correct tar file order
mkdir -p temp
pushd temp
tar xf ../$SOURCEDIST
find litecoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
find kevacoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
popd
# Workaround for tarball not building with the bare tag version (prep)

8
contrib/gitian-descriptors/gitian-win-signer.yml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
---
name: "litecoin-win-signer"
name: "kevacoin-win-signer"
suites:
- "trusty"
architectures:
@ -8,12 +8,12 @@ packages: @@ -8,12 +8,12 @@ packages:
- "libssl-dev"
- "autoconf"
remotes:
- "url": "https://github.com/litecoin-project/litecoin-detached-sigs.git"
- "url": "https://github.com/kevacoin-project/kevacoin-detached-sigs.git"
"dir": "signature"
files:
- "osslsigncode-1.7.1.tar.gz"
- "osslsigncode-Backports-to-1.7.1.patch"
- "litecoin-win-unsigned.tar.gz"
- "kevacoin-win-unsigned.tar.gz"
script: |
BUILD_DIR=`pwd`
SIGDIR=${BUILD_DIR}/signature/win
@ -23,7 +23,7 @@ script: | @@ -23,7 +23,7 @@ script: |
echo "a8c4e9cafba922f89de0df1f2152e7be286aba73f78505169bc351a7938dd911 osslsigncode-Backports-to-1.7.1.patch" | sha256sum -c
mkdir -p ${UNSIGNED_DIR}
tar -C ${UNSIGNED_DIR} -xf litecoin-win-unsigned.tar.gz
tar -C ${UNSIGNED_DIR} -xf kevacoin-win-unsigned.tar.gz
tar xf osslsigncode-1.7.1.tar.gz
cd osslsigncode-1.7.1

16
contrib/gitian-descriptors/gitian-win.yml

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
---
name: "litecoin-win-0.16"
name: "kevacoin-win-0.16"
enable_cache: true
suites:
- "trusty"
@ -22,8 +22,8 @@ packages: @@ -22,8 +22,8 @@ packages:
- "ca-certificates"
- "python"
remotes:
- "url": "https://github.com/litecoin-project/litecoin.git"
"dir": "litecoin"
- "url": "https://github.com/kevacoin-project/kevacoin.git"
"dir": "kevacoin"
files: []
script: |
WRAP_DIR=$HOME/wrapped
@ -101,7 +101,7 @@ script: | @@ -101,7 +101,7 @@ script: |
create_per-host_linker_wrapper "2000-01-01 12:00:00"
export PATH=${WRAP_DIR}:${PATH}
cd litecoin
cd kevacoin
BASEPREFIX=`pwd`/depends
# Build dependencies for each host
for i in $HOSTS; do
@ -119,14 +119,14 @@ script: | @@ -119,14 +119,14 @@ script: |
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
make dist
SOURCEDIST=`echo litecoin-*.tar.gz`
SOURCEDIST=`echo kevacoin-*.tar.gz`
DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'`
# Correct tar file order
mkdir -p temp
pushd temp
tar xf ../$SOURCEDIST
find litecoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
find kevacoin-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
mkdir -p $OUTDIR/src
cp ../$SOURCEDIST $OUTDIR/src
popd
@ -155,7 +155,7 @@ script: | @@ -155,7 +155,7 @@ script: |
make deploy
make install DESTDIR=${INSTALLPATH}
rename 's/-setup\.exe$/-setup-unsigned.exe/' *-setup.exe
cp -f litecoin-*setup*.exe $OUTDIR/
cp -f kevacoin-*setup*.exe $OUTDIR/
cd installed
mv ${DISTNAME}/bin/*.dll ${DISTNAME}/lib/
find . -name "lib*.la" -delete
@ -171,7 +171,7 @@ script: | @@ -171,7 +171,7 @@ script: |
cp -rf contrib/windeploy $BUILD_DIR
cd $BUILD_DIR/windeploy
mkdir unsigned
cp $OUTDIR/litecoin-*setup-unsigned.exe unsigned/
cp $OUTDIR/kevacoin-*setup-unsigned.exe unsigned/
find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz
mv ${OUTDIR}/${DISTNAME}-x86_64-*-debug.zip ${OUTDIR}/${DISTNAME}-win64-debug.zip
mv ${OUTDIR}/${DISTNAME}-i686-*-debug.zip ${OUTDIR}/${DISTNAME}-win32-debug.zip

6
contrib/linearize/README.md

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
# Linearize
Construct a linear, no-fork, best version of the Litecoin blockchain. The scripts
Construct a linear, no-fork, best version of the Kevacoin blockchain. The scripts
run using Python 3 but are compatible with Python 2.
## Step 1: Download hash list
@ -21,7 +21,7 @@ standalone hash lists but safe to use with linearize-data.py, which will output @@ -21,7 +21,7 @@ standalone hash lists but safe to use with linearize-data.py, which will output
the same data no matter which byte format is chosen.
The `linearize-hashes` script requires a connection, local or remote, to a
JSON-RPC server. Running `litecoind` or `litecoin-qt -server` will be sufficient.
JSON-RPC server. Running `kevacoind` or `kevacoin-qt -server` will be sufficient.
## Step 2: Copy local block data
@ -39,7 +39,7 @@ will be printed. @@ -39,7 +39,7 @@ will be printed.
respectively, to the current time and to the timestamp of the most recent block
written to the script's blockchain.
* `genesis`: The hash of the genesis block in the blockchain.
* `input`: litecoind blocks/ directory containing blkNNNNN.dat
* `input`: kevacoind blocks/ directory containing blkNNNNN.dat
* `hashlist`: text file containing list of block hashes created by
linearize-hashes.py.
* `max_out_sz`: Maximum size for files created by the `output_file` option.

8
contrib/linearize/example-linearize.cfg

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
# litecoind RPC settings (linearize-hashes)
# kevacoind RPC settings (linearize-hashes)
rpcuser=someuser
rpcpassword=somepassword
#datadir=~/.litecoin
#datadir=~/.kevacoin
host=127.0.0.1
#mainnet default
@ -21,12 +21,12 @@ max_height=313000 @@ -21,12 +21,12 @@ max_height=313000
# mainnet
netmagic=fbc0b6db
genesis=12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2
input=/home/example/.litecoin/blocks
input=/home/example/.kevacoin/blocks
# testnet
#netmagic=fdd2c8f1
#genesis=4966625a4b2851d9fdee139e56211a0d88575f59ed816ff5e6a63deb4e3e29a0
#input=/home/example/.litecoin/testnet3/blocks
#input=/home/example/.kevacoin/testnet3/blocks
# "output" option causes blockchain files to be written to the given location,
# with "output_file" ignored. If not used, "output_file" is used instead.

4
contrib/macdeploy/README.md

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
### MacDeploy ###
For Snow Leopard (which uses [Python 2.6](http://www.python.org/download/releases/2.6/)), you will need the param_parser package:
sudo easy_install argparse
This script should not be run manually, instead, after building as usual:
@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual: @@ -11,5 +11,5 @@ This script should not be run manually, instead, after building as usual:
During the process, the disk image window will pop up briefly where the fancy
settings are applied. This is normal, please do not interfere.
When finished, it will produce `Litecoin-Core.dmg`.
When finished, it will produce `Kevacoin-Core.dmg`.

4
contrib/macdeploy/custom_dsstore.py

@ -46,7 +46,7 @@ alias.volume.name = package_name_ns @@ -46,7 +46,7 @@ alias.volume.name = package_name_ns
alias.volume.posix_path = '/Volumes/' + package_name_ns
alias.volume.disk_image_alias.target.filename = package_name_ns + '.temp.dmg'
alias.volume.disk_image_alias.target.carbon_path = 'Macintosh HD:Users:\x00litecoinuser:\x00Documents:\x00litecoin:\x00litecoin:\x00' + package_name_ns + '.temp.dmg'
alias.volume.disk_image_alias.target.posix_path = 'Users/litecoinuser/Documents/litecoin/litecoin/' + package_name_ns + '.temp.dmg'
alias.volume.disk_image_alias.target.posix_path = 'Users/litecoinuser/Documents/kevacoin/kevacoin/' + package_name_ns + '.temp.dmg'
alias.target.carbon_path = package_name_ns + ':.background:\x00background.tiff'
icvp['backgroundImageAlias'] = biplist.Data(alias.to_bytes())
ds['.']['icvp'] = icvp
@ -54,7 +54,7 @@ ds['.']['icvp'] = icvp @@ -54,7 +54,7 @@ ds['.']['icvp'] = icvp
ds['.']['vSrn'] = ('long', 1)
ds['Applications']['Iloc'] = (370, 156)
ds['Litecoin-Qt.app']['Iloc'] = (128, 156)
ds['Kevacoin-Qt.app']['Iloc'] = (128, 156)
ds.flush()
ds.close()

2
contrib/macdeploy/detached-sig-create.sh

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
set -e
ROOTDIR=dist
BUNDLE="${ROOTDIR}/Litecoin-Qt.app"
BUNDLE="${ROOTDIR}/Kevacoin-Qt.app"
CODESIGN=codesign
TEMPDIR=sign.temp
TEMPLIST=${TEMPDIR}/signatures.txt

2
contrib/macdeploy/fancy.plist

@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
<integer>370</integer>
<integer>156</integer>
</array>
<key>Litecoin-Qt.app</key>
<key>Kevacoin-Qt.app</key>
<array>
<integer>128</integer>
<integer>156</integer>

134
contrib/macdeploy/macdeployqtplus

@ -41,13 +41,13 @@ class FrameworkInfo(object): @@ -41,13 +41,13 @@ class FrameworkInfo(object):
self.sourceContentsDirectory = ""
self.destinationResourcesDirectory = ""
self.destinationVersionContentsDirectory = ""
def __eq__(self, other):
if self.__class__ == other.__class__:
return self.__dict__ == other.__dict__
else:
return False
def __str__(self):
return """ Framework name: %s
Framework directory: %s
@ -71,51 +71,51 @@ class FrameworkInfo(object): @@ -71,51 +71,51 @@ class FrameworkInfo(object):
self.deployedInstallName,
self.sourceFilePath,
self.destinationDirectory)
def isDylib(self):
return self.frameworkName.endswith(".dylib")
def isQtFramework(self):
if self.isDylib():
return self.frameworkName.startswith("libQt")
else:
return self.frameworkName.startswith("Qt")
reOLine = re.compile(r'^(.+) \(compatibility version [0-9.]+, current version [0-9.]+\)$')
bundleFrameworkDirectory = "Contents/Frameworks"
bundleBinaryDirectory = "Contents/MacOS"
@classmethod
def fromOtoolLibraryLine(cls, line):
# Note: line must be trimmed
if line == "":
return None
# Don't deploy system libraries (exception for libQtuitools and libQtlucene).
if line.startswith("/System/Library/") or line.startswith("@executable_path") or (line.startswith("/usr/lib/") and "libQt" not in line):
return None
m = cls.reOLine.match(line)
if m is None:
raise RuntimeError("otool line could not be parsed: " + line)
path = m.group(1)
info = cls()
info.sourceFilePath = path
info.installName = path
if path.endswith(".dylib"):
dirname, filename = os.path.split(path)
info.frameworkName = filename
info.frameworkDirectory = dirname
info.frameworkPath = path
info.binaryDirectory = dirname
info.binaryName = filename
info.binaryPath = path
info.version = "-"
info.installName = path
info.deployedInstallName = "@executable_path/../Frameworks/" + info.binaryName
info.sourceFilePath = path
@ -130,32 +130,32 @@ class FrameworkInfo(object): @@ -130,32 +130,32 @@ class FrameworkInfo(object):
i += 1
if i == len(parts):
raise RuntimeError("Could not find .framework or .dylib in otool line: " + line)
info.frameworkName = parts[i]
info.frameworkDirectory = "/".join(parts[:i])
info.frameworkPath = os.path.join(info.frameworkDirectory, info.frameworkName)
info.binaryName = parts[i+3]
info.binaryDirectory = "/".join(parts[i+1:i+3])
info.binaryPath = os.path.join(info.binaryDirectory, info.binaryName)
info.version = parts[i+2]
info.deployedInstallName = "@executable_path/../Frameworks/" + os.path.join(info.frameworkName, info.binaryPath)
info.destinationDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, info.binaryDirectory)
info.sourceResourcesDirectory = os.path.join(info.frameworkPath, "Resources")
info.sourceContentsDirectory = os.path.join(info.frameworkPath, "Contents")
info.sourceVersionContentsDirectory = os.path.join(info.frameworkPath, "Versions", info.version, "Contents")
info.destinationResourcesDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, "Resources")
info.destinationContentsDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, "Contents")
info.destinationVersionContentsDirectory = os.path.join(cls.bundleFrameworkDirectory, info.frameworkName, "Versions", info.version, "Contents")
return info
class ApplicationBundleInfo(object):
def __init__(self, path):
self.path = path
appName = "Litecoin-Qt"
appName = "Kevacoin-Qt"
self.binaryPath = os.path.join(path, "Contents", "MacOS", appName)
if not os.path.exists(self.binaryPath):
raise RuntimeError("Could not find bundle binary for " + path)
@ -167,7 +167,7 @@ class DeploymentInfo(object): @@ -167,7 +167,7 @@ class DeploymentInfo(object):
self.qtPath = None
self.pluginPath = None
self.deployedFrameworks = []
def detectQtPath(self, frameworkDirectory):
parentDir = os.path.dirname(frameworkDirectory)
if os.path.exists(os.path.join(parentDir, "translations")):
@ -186,7 +186,7 @@ class DeploymentInfo(object): @@ -186,7 +186,7 @@ class DeploymentInfo(object):
pluginPath = os.path.join(self.qtPath, "plugins")
if os.path.exists(pluginPath):
self.pluginPath = pluginPath
def usesFramework(self, name):
nameDot = "%s." % name
libNameDot = "lib%s." % name
@ -215,7 +215,7 @@ def getFrameworks(binaryPath, verbose): @@ -215,7 +215,7 @@ def getFrameworks(binaryPath, verbose):
otoolLines.pop(0) # First line is the inspected binary
if ".framework" in binaryPath or binaryPath.endswith(".dylib"):
otoolLines.pop(0) # Frameworks and dylibs list themselves as a dependency.
libraries = []
for line in otoolLines:
line = line.replace("@loader_path", os.path.dirname(binaryPath))
@ -225,7 +225,7 @@ def getFrameworks(binaryPath, verbose): @@ -225,7 +225,7 @@ def getFrameworks(binaryPath, verbose):
print("Found framework:")
print(info)
libraries.append(info)
return libraries
def runInstallNameTool(action, *args):
@ -262,16 +262,16 @@ def copyFramework(framework, path, verbose): @@ -262,16 +262,16 @@ def copyFramework(framework, path, verbose):
fromPath = framework.sourceFilePath
toDir = os.path.join(path, framework.destinationDirectory)
toPath = os.path.join(toDir, framework.binaryName)
if not os.path.exists(fromPath):
raise RuntimeError("No file at " + fromPath)
if os.path.exists(toPath):
return None # Already there
if not os.path.exists(toDir):
os.makedirs(toDir)
shutil.copy2(fromPath, toPath)
if verbose >= 3:
print("Copied:", fromPath)
@ -313,53 +313,53 @@ def copyFramework(framework, path, verbose): @@ -313,53 +313,53 @@ def copyFramework(framework, path, verbose):
if verbose >= 3:
print("Copied for libQtGui:", qtMenuNibSourcePath)
print(" to:", qtMenuNibDestinationPath)
return toPath
def deployFrameworks(frameworks, bundlePath, binaryPath, strip, verbose, deploymentInfo=None):
if deploymentInfo is None:
deploymentInfo = DeploymentInfo()
while len(frameworks) > 0:
framework = frameworks.pop(0)
deploymentInfo.deployedFrameworks.append(framework.frameworkName)
if verbose >= 2:
print("Processing", framework.frameworkName, "...")
# Get the Qt path from one of the Qt frameworks
if deploymentInfo.qtPath is None and framework.isQtFramework():
deploymentInfo.detectQtPath(framework.frameworkDirectory)
if framework.installName.startswith("@executable_path") or framework.installName.startswith(bundlePath):
if verbose >= 2:
print(framework.frameworkName, "already deployed, skipping.")
continue
# install_name_tool the new id into the binary
changeInstallName(framework.installName, framework.deployedInstallName, binaryPath, verbose)
# Copy framework to app bundle.
deployedBinaryPath = copyFramework(framework, bundlePath, verbose)
# Skip the rest if already was deployed.
if deployedBinaryPath is None:
continue
if strip:
runStrip(deployedBinaryPath, verbose)
# install_name_tool it a new id.
changeIdentification(framework.deployedInstallName, deployedBinaryPath, verbose)
# Check for framework dependencies
dependencies = getFrameworks(deployedBinaryPath, verbose)
for dependency in dependencies:
changeInstallName(dependency.installName, dependency.deployedInstallName, deployedBinaryPath, verbose)
# Deploy framework if necessary.
if dependency.frameworkName not in deploymentInfo.deployedFrameworks and dependency not in frameworks:
frameworks.append(dependency)
return deploymentInfo
def deployFrameworksForAppBundle(applicationBundle, strip, verbose):
@ -440,30 +440,30 @@ def deployPlugins(appBundleInfo, deploymentInfo, strip, verbose): @@ -440,30 +440,30 @@ def deployPlugins(appBundleInfo, deploymentInfo, strip, verbose):
continue
plugins.append((pluginDirectory, pluginName))
for pluginDirectory, pluginName in plugins:
if verbose >= 2:
print("Processing plugin", os.path.join(pluginDirectory, pluginName), "...")
sourcePath = os.path.join(deploymentInfo.pluginPath, pluginDirectory, pluginName)
destinationDirectory = os.path.join(appBundleInfo.pluginPath, pluginDirectory)
if not os.path.exists(destinationDirectory):
os.makedirs(destinationDirectory)
destinationPath = os.path.join(destinationDirectory, pluginName)
shutil.copy2(sourcePath, destinationPath)
if verbose >= 3:
print("Copied:", sourcePath)
print(" to:", destinationPath)
if strip:
runStrip(destinationPath, verbose)
dependencies = getFrameworks(destinationPath, verbose)
for dependency in dependencies:
changeInstallName(dependency.installName, dependency.deployedInstallName, destinationPath, verbose)
# Deploy framework if necessary.
if dependency.frameworkName not in deploymentInfo.deployedFrameworks:
deployFrameworks([dependency], appBundleInfo.path, destinationPath, strip, verbose, deploymentInfo)
@ -541,7 +541,7 @@ if len(config.fancy) == 1: @@ -541,7 +541,7 @@ if len(config.fancy) == 1:
if verbose >= 1:
sys.stderr.write("Error: Could not import plistlib which is required for fancy disk images.\n")
sys.exit(1)
p = config.fancy[0]
if verbose >= 3:
print("Fancy: Loading \"%s\"..." % p)
@ -549,14 +549,14 @@ if len(config.fancy) == 1: @@ -549,14 +549,14 @@ if len(config.fancy) == 1:
if verbose >= 1:
sys.stderr.write("Error: Could not find fancy disk image plist at \"%s\"\n" % (p))
sys.exit(1)
try:
fancy = plistlib.readPlist(p)
except:
if verbose >= 1:
sys.stderr.write("Error: Could not parse fancy disk image plist at \"%s\"\n" % (p))
sys.exit(1)
try:
assert "window_bounds" not in fancy or (isinstance(fancy["window_bounds"], list) and len(fancy["window_bounds"]) == 4)
assert "background_picture" not in fancy or isinstance(fancy["background_picture"], str)
@ -570,7 +570,7 @@ if len(config.fancy) == 1: @@ -570,7 +570,7 @@ if len(config.fancy) == 1:
if verbose >= 1:
sys.stderr.write("Error: Bad format of fancy disk image plist at \"%s\"\n" % (p))
sys.exit(1)
if "background_picture" in fancy:
bp = fancy["background_picture"]
if verbose >= 3:
@ -591,7 +591,7 @@ else: @@ -591,7 +591,7 @@ else:
if os.path.exists("dist"):
if verbose >= 2:
print("+ Removing old dist folder +")
shutil.rmtree("dist")
# ------------------------------------------------
@ -603,7 +603,7 @@ else: @@ -603,7 +603,7 @@ else:
# ------------------------------------------------
target = os.path.join("dist", "Litecoin-Qt.app")
target = os.path.join("dist", "Kevacoin-Qt.app")
if verbose >= 2:
print("+ Copying source bundle +")
@ -638,7 +638,7 @@ except RuntimeError as e: @@ -638,7 +638,7 @@ except RuntimeError as e:
if config.plugins:
if verbose >= 2:
print("+ Deploying plugins +")
try:
deployPlugins(applicationBundle, deploymentInfo, config.strip, verbose)
except RuntimeError as e:
@ -741,26 +741,26 @@ if config.dmg is not None: @@ -741,26 +741,26 @@ if config.dmg is not None:
elif verbose >= 3:
hdiutil_args.append("-verbose")
run = subprocess.check_call
for key, value in kwargs.items():
hdiutil_args.append("-" + key)
if not value is True:
hdiutil_args.append(str(value))
return run(hdiutil_args)
if verbose >= 2:
if fancy is None:
print("+ Creating .dmg disk image +")
else:
print("+ Preparing .dmg disk image +")
if config.dmg != "":
dmg_name = config.dmg
else:
spl = app_bundle_name.split(" ")
dmg_name = spl[0] + "".join(p.capitalize() for p in spl[1:])
if fancy is None:
try:
runHDIUtil("create", dmg_name, srcfolder="dist", format="UDBZ", volname=volname, ov=True)
@ -774,28 +774,28 @@ if config.dmg is not None: @@ -774,28 +774,28 @@ if config.dmg is not None:
for file in files:
size += os.path.getsize(os.path.join(path, file))
size += int(size * 0.15)
if verbose >= 3:
print("Creating temp image for modification...")
try:
runHDIUtil("create", dmg_name + ".temp", srcfolder="dist", format="UDRW", size=size, volname=volname, ov=True)
except subprocess.CalledProcessError as e:
sys.exit(e.returncode)
if verbose >= 3:
print("Attaching temp image...")
try:
output = runHDIUtil("attach", dmg_name + ".temp", readwrite=True, noverify=True, noautoopen=True, capture_stdout=True)
except subprocess.CalledProcessError as e:
sys.exit(e.returncode)
m = re.search("/Volumes/(.+$)", output.decode())
disk_root = m.group(0)
disk_name = m.group(1)
if verbose >= 2:
print("+ Applying fancy settings +")
if "background_picture" in fancy:
bg_path = os.path.join(disk_root, ".background", os.path.basename(fancy["background_picture"]))
os.mkdir(os.path.dirname(bg_path))
@ -804,10 +804,10 @@ if config.dmg is not None: @@ -804,10 +804,10 @@ if config.dmg is not None:
shutil.copy2(fancy["background_picture"], bg_path)
else:
bg_path = None
if fancy.get("applications_symlink", False):
os.symlink("/Applications", os.path.join(disk_root, "Applications"))
# The Python appscript package broke with OSX 10.8 and isn't being fixed.
# So we now build up an AppleScript string and use the osascript command
# to make the .dmg file pretty:
@ -873,12 +873,12 @@ if config.dmg is not None: @@ -873,12 +873,12 @@ if config.dmg is not None:
if verbose >= 2:
print("+ Finalizing .dmg disk image +")
time.sleep(5)
try:
runHDIUtil("convert", dmg_name + ".temp", format="UDBZ", o=dmg_name + ".dmg", ov=True)
except subprocess.CalledProcessError as e:
sys.exit(e.returncode)
os.unlink(dmg_name + ".temp.dmg")
# ------------------------------------------------

4
contrib/qos/README.md

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
### Qos ###
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Litecoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN (defined as 192.168.x.x).
This is a Linux bash script that will set up tc to limit the outgoing bandwidth for connections to the Kevacoin network. It limits outbound TCP traffic with a source or destination port of 9333, but not if the destination IP is within a LAN (defined as 192.168.x.x).
This means one can have an always-on litecoind instance running, and another local litecoind/litecoin-qt instance which connects to this node and receives blocks from it.
This means one can have an always-on kevacoind instance running, and another local kevacoind/kevacoin-qt instance which connects to this node and receives blocks from it.

2
contrib/qos/tc.sh

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
IF="eth0"
#limit of the network interface in question
LINKCEIL="1gbit"
#limit outbound Litecoin protocol traffic to this rate
#limit outbound Kevacoin protocol traffic to this rate
LIMIT="160kbit"
#defines the address space for which you wish to disable rate limiting
LOCALNET="192.168.0.0/16"

6
contrib/seeds/generate-seeds.py

@ -11,7 +11,7 @@ argument: @@ -11,7 +11,7 @@ argument:
nodes_main.txt
nodes_test.txt
These files must consist of lines in the format
These files must consist of lines in the format
<ip>
<ip>:<port>
@ -120,7 +120,7 @@ def main(): @@ -120,7 +120,7 @@ def main():
g.write('#ifndef BITCOIN_CHAINPARAMSSEEDS_H\n')
g.write('#define BITCOIN_CHAINPARAMSSEEDS_H\n')
g.write('/**\n')
g.write(' * List of fixed seed nodes for the litecoin network\n')
g.write(' * List of fixed seed nodes for the kevacoin network\n')
g.write(' * AUTOGENERATED by contrib/seeds/generate-seeds.py\n')
g.write(' *\n')
g.write(' * Each line contains a 16-byte IPv6 address and a port.\n')
@ -132,7 +132,7 @@ def main(): @@ -132,7 +132,7 @@ def main():
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
process_nodes(g, f, 'pnSeed6_test', 19335)
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
if __name__ == '__main__':
main()

4
contrib/testgen/README.md

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
### TestGen ###
Utilities to generate test vectors for the data-driven Litecoin tests.
Utilities to generate test vectors for the data-driven Kevacoin tests.
Usage:
Usage:
gen_base58_test_vectors.py valid 50 > ../../src/test/data/base58_keys_valid.json
gen_base58_test_vectors.py invalid 50 > ../../src/test/data/base58_keys_invalid.json

12
contrib/tidy_datadir.sh

@ -7,7 +7,7 @@ if [ -d "$1" ]; then @@ -7,7 +7,7 @@ if [ -d "$1" ]; then
cd "$1" || exit 1
else
echo "Usage: $0 <datadir>" >&2
echo "Removes obsolete Litecoin database files" >&2
echo "Removes obsolete Kevacoin database files" >&2
exit 1
fi
@ -19,22 +19,22 @@ if [ -f wallet.dat -a -f peers.dat -a -f chainstate/CURRENT -a -f blocks/index/C @@ -19,22 +19,22 @@ if [ -f wallet.dat -a -f peers.dat -a -f chainstate/CURRENT -a -f blocks/index/C
case $LEVEL in
0)
echo "Error: no Litecoin datadir detected."
echo "Error: no Kevacoin datadir detected."
exit 1
;;
1)
echo "Detected old Litecoin datadir (before 0.7)."
echo "Detected old Kevacoin datadir (before 0.7)."
echo "Nothing to do."
exit 0
;;
2)
echo "Detected Litecoin 0.7 datadir."
echo "Detected Kevacoin 0.7 datadir."
;;
3)
echo "Detected Litecoin pre-0.8 datadir."
echo "Detected Kevacoin pre-0.8 datadir."
;;
4)
echo "Detected Litecoin 0.8 datadir."
echo "Detected Kevacoin 0.8 datadir."
;;
esac

6
contrib/windeploy/win-codesign.cert

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
Bag Attributes
friendlyName: Litecoin Foundation LTD.'s DigiCert Inc ID
localKeyID: 2F AA 3A 86 85 98 1A 53 D5 23 F0 2E A0 22 CC 51 21 6D 78 B0
subject=/C=SG/L=Singapore/O=Litecoin Foundation LTD./CN=Litecoin Foundation LTD.
friendlyName: Kevacoin Foundation LTD.'s DigiCert Inc ID
localKeyID: 2F AA 3A 86 85 98 1A 53 D5 23 F0 2E A0 22 CC 51 21 6D 78 B0
subject=/C=SG/L=Singapore/O=Kevacoin Foundation LTD./CN=Kevacoin Foundation LTD.
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Assured ID Code Signing CA
-----BEGIN CERTIFICATE-----
MIIFKjCCBBKgAwIBAgIQDvRXzQ2H3xYGUBDUDBeH/TANBgkqhkiG9w0BAQsFADBy

2
contrib/zmq/zmq_sub.py

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
ZMQ example using python3's asyncio
Litecoind should be started with the command line arguments:
litecoind -testnet -daemon \
kevacoind -testnet -daemon \
-zmqpubrawtx=tcp://127.0.0.1:28332 \
-zmqpubrawblock=tcp://127.0.0.1:28332 \
-zmqpubhashtx=tcp://127.0.0.1:28332 \

4
contrib/zmq/zmq_sub3.4.py

@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
"""
ZMQ example using python3's asyncio
Litecoin should be started with the command line arguments:
litecoind -testnet -daemon \
Kevacoin should be started with the command line arguments:
kevacoind -testnet -daemon \
-zmqpubrawtx=tcp://127.0.0.1:28332 \
-zmqpubrawblock=tcp://127.0.0.1:28332 \
-zmqpubhashtx=tcp://127.0.0.1:28332 \

6
depends/README.md

@ -12,9 +12,9 @@ For example: @@ -12,9 +12,9 @@ For example:
make HOST=x86_64-w64-mingw32 -j4
A prefix will be generated that's suitable for plugging into Litecoin's
A prefix will be generated that's suitable for plugging into Kevacoin's
configure. In the above example, a dir named x86_64-w64-mingw32 will be
created. To use it for Litecoin:
created. To use it for Kevacoin:
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
@ -59,7 +59,7 @@ The following can be set when running make: make FOO=bar @@ -59,7 +59,7 @@ The following can be set when running make: make FOO=bar
BUILD_ID_SALT: Optional salt to use when generating build package ids
If some packages are not built, for example `make NO_WALLET=1`, the appropriate
options will be passed to litecoin's configure. In this case, `--disable-wallet`.
options will be passed to kevacoin's configure. In this case, `--disable-wallet`.
Additional targets:

4
depends/description.md

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
This is a system of building and caching dependencies necessary for building Litecoin.
This is a system of building and caching dependencies necessary for building Kevacoin.
There are several features that make it different from most similar systems:
### It is designed to be builder and host agnostic
@ -26,7 +26,7 @@ Before building, a unique build-id is generated for each package. This id @@ -26,7 +26,7 @@ Before building, a unique build-id is generated for each package. This id
consists of a hash of all files used to build the package (Makefiles, packages,
etc), and as well as a hash of the same data for each recursive dependency. If
any portion of a package's build recipe changes, it will be rebuilt as well as
any other package that depends on it. If any of the main makefiles (Makefile,
any other package that depends on it. If any of the main makefiles (Makefile,
funcs.mk, etc) are changed, all packages will be rebuilt. After building, the
results are cached into a tarball that can be re-used and distributed.

2
doc/README_osx.md

@ -92,6 +92,6 @@ build process to remain somewhat deterministic. Here's how it works: @@ -92,6 +92,6 @@ build process to remain somewhat deterministic. Here's how it works:
that have been previously (deterministically) built in order to create a
final dmg.
- The Apple keyholder uses this unsigned app to create a detached signature,
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/litecoin-project/litecoin-detached-sigs).
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/kevacoin-project/kevacoin-detached-sigs).
- Builders feed the unsigned app + detached signature back into Gitian. It
uses the pre-built tools to recombine the pieces into a deterministic dmg.

14
doc/README_windows.txt

@ -1,9 +1,9 @@ @@ -1,9 +1,9 @@
Litecoin Core
Kevacoin Core
=============
Intro
-----
Litecoin is a free open source peer-to-peer electronic cash system that is
Kevacoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.
@ -11,13 +11,13 @@ with each other, with the help of a P2P network to check for double-spending. @@ -11,13 +11,13 @@ with each other, with the help of a P2P network to check for double-spending.
Setup
-----
Unpack the files into a directory and run litecoin-qt.exe.
Unpack the files into a directory and run kevacoin-qt.exe.
Litecoin Core is the original Litecoin client and it builds the backbone of the network.
However, it downloads and stores the entire history of Litecoin transactions;
Kevacoin Core is the original Kevacoin client and it builds the backbone of the network.
However, it downloads and stores the entire history of Kevacoin transactions;
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.
See the litecoin wiki at:
https://litecoin.info/
See the kevacoin wiki at:
https://kevacoin.info/
for more help and information.

4
doc/REST-interface.md

@ -67,7 +67,7 @@ $ curl localhost:19332/rest/getutxos/checkmempool/b2cdfd7b89def827ff8af7cd9bff76 @@ -67,7 +67,7 @@ $ curl localhost:19332/rest/getutxos/checkmempool/b2cdfd7b89def827ff8af7cd9bff76
{
"txvers" : 1
"height" : 2147483647,
"value" : 8.8687,
"value" : 8.8687,
"scriptPubKey" : {
"asm" : "OP_DUP OP_HASH160 1c7cebb529b86a04c683dfa87be49de35bcf589e OP_EQUALVERIFY OP_CHECKSIG",
"hex" : "76a9141c7cebb529b86a04c683dfa87be49de35bcf589e88ac",
@ -100,4 +100,4 @@ Only supports JSON as output format. @@ -100,4 +100,4 @@ Only supports JSON as output format.
Risks
-------------
Running a web browser on the same node with a REST enabled litecoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `<script src="http://127.0.0.1:9332/rest/tx/1234567890.json">` which might break the nodes privacy.
Running a web browser on the same node with a REST enabled kevacoind can be a risk. Accessing prepared XSS websites could read out tx/block data of your node by placing links like `<script src="http://127.0.0.1:9332/rest/tx/1234567890.json">` which might break the nodes privacy.

2
doc/assets-attribution.md

@ -1 +1 @@ @@ -1 +1 @@
The list of assets used in the litecoin source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright).
The list of assets used in the kevacoin source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright).

4
doc/benchmarking.md

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
Benchmarking
============
Litecoin Core has an internal benchmarking framework, with benchmarks
Kevacoin Core has an internal benchmarking framework, with benchmarks
for cryptographic algorithms such as SHA1, SHA256, SHA512 and RIPEMD160. As well as the rolling bloom filter.
Running
---------------------
After compiling Litecoin-core, the benchmarks can be run with:
After compiling Kevacoin-core, the benchmarks can be run with:
src/bench/bench_Litecoin

2
doc/dependencies.md

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
Dependencies
============
These are the dependencies currently used by Litecoin Core. You can find instructions for installing them in the `build-*.md` file for your platform.
These are the dependencies currently used by Kevacoin Core. You can find instructions for installing them in the `build-*.md` file for your platform.
| Dependency | Version used | Minimum required | CVEs | Shared | [Bundled Qt library](https://doc.qt.io/qt-5/configure-options.html) |
| --- | --- | --- | --- | --- | --- |

24
doc/developer-notes.md

@ -162,7 +162,7 @@ that run in -regtest mode. @@ -162,7 +162,7 @@ that run in -regtest mode.
**DEBUG_LOCKORDER**
Litecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
Kevacoin Core is a multithreaded application, and deadlocks or other multithreading bugs
can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks
are held, and adds warnings to the debug.log file if inconsistencies are detected.
@ -179,7 +179,7 @@ in-tree. Example use: @@ -179,7 +179,7 @@ in-tree. Example use:
$ valgrind --suppressions=contrib/valgrind.supp src/test/test_litecoin
$ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \
--show-leak-kinds=all src/test/test_litecoin --log_level=test_suite
$ valgrind -v --leak-check=full src/litecoind -printtoconsole
$ valgrind -v --leak-check=full src/kevacoind -printtoconsole
```
**compiling for test coverage**
@ -252,7 +252,7 @@ Ignoring IDE/editor files @@ -252,7 +252,7 @@ Ignoring IDE/editor files
In closed-source environments in which everyone uses the same IDE it is common
to add temporary files it produces to the project-wide `.gitignore` file.
However, in open source software such as Litecoin Core, where everyone uses
However, in open source software such as Kevacoin Core, where everyone uses
their own editors/IDE/tools, it is less common. Only you know what files your
editor produces and this may change from version to version. The canonical way
to do this is thus to create your local gitignore. Add this to `~/.gitconfig`:
@ -282,9 +282,9 @@ Development guidelines @@ -282,9 +282,9 @@ Development guidelines
============================
A few non-style-related recommendations for developers, as well as points to
pay attention to for reviewers of Litecoin Core code.
pay attention to for reviewers of Kevacoin Core code.
General Litecoin Core
General Kevacoin Core
----------------------
- New features should be exposed on RPC first, then can be made available in the GUI
@ -400,7 +400,7 @@ Strings and formatting @@ -400,7 +400,7 @@ Strings and formatting
- For `strprintf`, `LogPrint`, `LogPrintf` formatting characters don't need size specifiers
- *Rationale*: Litecoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
- *Rationale*: Kevacoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
Variable names
--------------
@ -514,12 +514,12 @@ Subtrees @@ -514,12 +514,12 @@ Subtrees
Several parts of the repository are subtrees of software maintained elsewhere.
Some of these are maintained by active developers of Litecoin Core, in which case changes should probably go
Some of these are maintained by active developers of Kevacoin Core, in which case changes should probably go
directly upstream without being PRed directly against the project. They will be merged back in the next
subtree merge.
Others are external projects without a tight relationship with our project. Changes to these should also
be sent upstream but bugfixes may also be prudent to PR against Litecoin Core so that they can be integrated
be sent upstream but bugfixes may also be prudent to PR against Kevacoin Core so that they can be integrated
quickly. Cosmetic changes should be purely taken upstream.
There is a tool in contrib/devtools/git-subtree-check.sh to check a subtree directory for consistency with
@ -582,7 +582,7 @@ Git and GitHub tips @@ -582,7 +582,7 @@ Git and GitHub tips
[remote "upstream-pull"]
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
url = git@github.com:litecoin-project/litecoin.git
url = git@github.com:kevacoin-project/kevacoin.git
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all`
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`,
@ -648,7 +648,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: @@ -648,7 +648,7 @@ A few guidelines for introducing and reviewing new RPC interfaces:
- Try not to overload methods on argument type. E.g. don't make `getblock(true)` and `getblock("hash")`
do different things.
- *Rationale*: This is impossible to use with `litecoin-cli`, and can be surprising to users.
- *Rationale*: This is impossible to use with `kevacoin-cli`, and can be surprising to users.
- *Exception*: Some RPC calls can take both an `int` and `bool`, most notably when a bool was switched
to a multi-value, or due to other historical reasons. **Always** have false map to 0 and
@ -667,7 +667,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: @@ -667,7 +667,7 @@ A few guidelines for introducing and reviewing new RPC interfaces:
- Add every non-string RPC argument `(method, idx, name)` to the table `vRPCConvertParams` in `rpc/client.cpp`.
- *Rationale*: `litecoin-cli` and the GUI debug console use this table to determine how to
- *Rationale*: `kevacoin-cli` and the GUI debug console use this table to determine how to
convert a plaintext command line to JSON. If the types don't match, the method can be unusable
from there.
@ -689,7 +689,7 @@ A few guidelines for introducing and reviewing new RPC interfaces: @@ -689,7 +689,7 @@ A few guidelines for introducing and reviewing new RPC interfaces:
RPCs whose behavior does *not* depend on the current chainstate may omit this
call.
- *Rationale*: In previous versions of Litecoin Core, the wallet was always
- *Rationale*: In previous versions of Kevacoin Core, the wallet was always
in-sync with the chainstate (by virtue of them all being updated in the
same cs_main lock). In order to maintain the behavior that wallet RPCs
return results as of at least the highest best-known block an RPC

16
doc/dnsseed-policy.md

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
Expectations for DNS Seed operators
====================================
Litecoin Core attempts to minimize the level of trust in DNS seeds,
Kevacoin Core attempts to minimize the level of trust in DNS seeds,
but DNS seeds still pose a small amount of risk for the network.
As such, DNS seeds must be run by entities which have some minimum
level of trust within the Litecoin community.
level of trust within the Kevacoin community.
Other implementations of Litecoin software may also use the same
Other implementations of Kevacoin software may also use the same
seeds and may be more exposed. In light of this exposure, this
document establishes some basic expectations for operating dnsseeds.
@ -16,7 +16,7 @@ and not sell or transfer control of the DNS seed. Any hosting services @@ -16,7 +16,7 @@ and not sell or transfer control of the DNS seed. Any hosting services
contracted by the operator are equally expected to uphold these expectations.
1. The DNS seed results must consist exclusively of fairly selected and
functioning Litecoin nodes from the public network to the best of the
functioning Kevacoin nodes from the public network to the best of the
operator's understanding and capability.
2. For the avoidance of doubt, the results may be randomized but must not
@ -26,7 +26,7 @@ urgent technical necessity and disclosed. @@ -26,7 +26,7 @@ urgent technical necessity and disclosed.
3. The results may not be served with a DNS TTL of less than one minute.
4. Any logging of DNS queries should be only that which is necessary
for the operation of the service or urgent health of the Litecoin
for the operation of the service or urgent health of the Kevacoin
network and must not be retained longer than necessary nor disclosed
to any third party.
@ -42,13 +42,13 @@ details of their operating practices. @@ -42,13 +42,13 @@ details of their operating practices.
related to the DNS seed operation.
If these expectations cannot be satisfied the operator should
discontinue providing services and contact the active Litecoin
discontinue providing services and contact the active Kevacoin
Core development team as well as posting on
[litecoin-dev](https://groups.google.com/forum/#!forum/litecoin-dev).
[kevacoin-dev](https://groups.google.com/forum/#!forum/kevacoin-dev).
Behavior outside of these expectations may be reasonable in some
situations but should be discussed in public in advance.
See also
----------
- [litecoin-seeder](https://github.com/pooler/litecoin-seeder) is a reference implementation of a DNS seed.
- [kevacoin-seeder](https://github.com/pooler/kevacoin-seeder) is a reference implementation of a DNS seed.

6
doc/files.md

@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
* banlist.dat: stores the IPs/Subnets of banned nodes
* litecoin.conf: contains configuration settings for litecoind or litecoin-qt
* litecoind.pid: stores the process id of litecoind while running
* kevacoin.conf: contains configuration settings for kevacoind or kevacoin-qt
* kevacoind.pid: stores the process id of kevacoind while running
* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
* blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8)
* blocks/index/*; block index (LevelDB); since 0.8.0
* chainstate/*; block chain state database (LevelDB); since 0.8.0
* database/*: BDB database environment; only used for wallet since 0.8.0; moved to wallets/ directory on new installs since 0.16.0
* db.log: wallet database log file; moved to wallets/ directory on new installs since 0.16.0
* debug.log: contains debug information and general logging generated by litecoind or litecoin-qt
* debug.log: contains debug information and general logging generated by kevacoind or kevacoin-qt
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
* mempool.dat: dump of the mempool's transactions; since 0.14.0.
* peers.dat: peer IP address database (custom format); since 0.7.0

30
doc/litecoin-release-notes/release-notes-0.10.2.2.md

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
Litecoin Core version 0.10.2.2 is now available from:
Kevacoin Core version 0.10.2.2 is now available from:
<https://download.litecoin.org/litecoin-0.10.2.2/>
<https://download.kevacoin.org/kevacoin-0.10.2.2/>
This is a new major version release, bringing bug fixes and translation
This is a new major version release, bringing bug fixes and translation
updates. It is recommended to upgrade to this version.
Please report bugs using the issue tracker at github:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
Upgrading and downgrading
=========================
@ -17,15 +17,15 @@ How to Upgrade @@ -17,15 +17,15 @@ How to Upgrade
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Litecoin-Qt (on Mac) or
litecoind/litecoin-qt (on Linux).
installer (on Windows) or just copy over /Applications/Kevacoin-Qt (on Mac) or
kevacoind/kevacoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10+ and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Litecoin Core or other software:
backwards-compatible with pre-0.10 versions of Kevacoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
@ -44,14 +44,14 @@ supported and may break as soon as the older version attempts to reindex. @@ -44,14 +44,14 @@ supported and may break as soon as the older version attempts to reindex.
This does not affect wallet forward or backward compatibility.
Litecoin 0.10.2.2 Change log
Kevacoin 0.10.2.2 Change log
============================
This release is based upon Bitcoin Core v0.10.2. Their upstream changelog applies to us and
is included in as separate release-notes. This section describes the Litecoin-specific differences.
is included in as separate release-notes. This section describes the Kevacoin-specific differences.
Protocol:
- Scrypt Proof-of-Work instead of sha256d, however block hashes are sha256d for performance reasons.
- Litecoin TCP port 9333 (instead of 8333)
- Kevacoin TCP port 9333 (instead of 8333)
- RPC TCP port 9332 (instead of 8332)
- Testnet TCP port 19333 (instead of 18333)
- Testnet RPC TCP port 19332 (instead of 18332)
@ -62,22 +62,22 @@ Protocol: @@ -62,22 +62,22 @@ Protocol:
- bnProofOfWorkLimit = >> 20 (instead of >> 32)
- See 9a980612005adffdeb2a17ca7a09fe126dd45e0e for Genesis Parameters
- zeitgeist2 protection: b1b31d15cc720a1c186431b21ecc9d1a9062bcb6 Slightly different way to calculate difficulty changes.
- Litecoin Core v0.10.2.2 is protocol version 70003 (instead of 70002)
- Kevacoin Core v0.10.2.2 is protocol version 70003 (instead of 70002)
Relay:
- Litecoin Core rounds transaction size up to the nearest 1000 bytes before calculating fees. This size rounding behavior is to mimic fee calculation of Litecoin v0.6 and v0.8.
- Bitcoin's IsDust() is disabled in favor of Litecoin's fee-based dust penalty.
- Kevacoin Core rounds transaction size up to the nearest 1000 bytes before calculating fees. This size rounding behavior is to mimic fee calculation of Kevacoin v0.6 and v0.8.
- Bitcoin's IsDust() is disabled in favor of Kevacoin's fee-based dust penalty.
- Fee-based Dust Penalty: For each transaction output smaller than DUST_THRESHOLD (currently 0.001 LTC) the default relay/mining policy will expect an additional 1000 bytes of fee. Otherwise the transaction will be rejected from relay/mining. Such transactions are also disqualified from the free/high-priority transaction rule.
- Miners and relays can adjust the expected fee per-KB with the -minrelaytxfee parameter.
Wallet:
- Coins smaller than 0.00001 LTC are by default ignored by the wallet. Use the -mininput parameter if you want to see smaller coins.
Notable changes since Litecoin v0.8
Notable changes since Kevacoin v0.8
===================================
- The Block data and indexes of v0.10 are incompatible with v0.8 clients. You can upgrade from v0.8 but you downgrading is not possible. For this reason you may want to make a backup copy of your Data Directory.
- litecoind no longer sends RPC commands. You must use the separate litecoin-cli command line utility.
- kevacoind no longer sends RPC commands. You must use the separate kevacoin-cli command line utility.
- Watch-Only addresses are now possible.
Credits

22
doc/litecoin-release-notes/release-notes-0.10.4.md

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
Litecoin Core version 0.10.4.0 is now available from:
Kevacoin Core version 0.10.4.0 is now available from:
<https://download.litecoin.org/litecoin-0.10.4.0/>
<https://download.kevacoin.org/kevacoin-0.10.4.0/>
This is a new minor version release, bringing bug fixes, the BIP65
(CLTV) consensus change, and relay policy preparation for BIP113. It is
@ -8,7 +8,7 @@ recommended to upgrade to this version as soon as possible. @@ -8,7 +8,7 @@ recommended to upgrade to this version as soon as possible.
Please report bugs using the issue tracker at github:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
Upgrading and downgrading
=========================
@ -18,15 +18,15 @@ How to Upgrade @@ -18,15 +18,15 @@ How to Upgrade
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Litecoin-Qt (on Mac) or
litecoind/litecoin-qt (on Linux).
installer (on Windows) or just copy over /Applications/Kevacoin-Qt (on Mac) or
kevacoind/kevacoin-qt (on Linux).
Downgrade warning
------------------
Because release 0.10+ and later makes use of headers-first synchronization and
parallel block download (see further), the block files and databases are not
backwards-compatible with pre-0.10 versions of Litecoin Core or other software:
backwards-compatible with pre-0.10 versions of Kevacoin Core or other software:
* Blocks will be stored on disk out of order (in the order they are
received, really), which makes it incompatible with some tools or
@ -66,13 +66,13 @@ specified point in the future. @@ -66,13 +66,13 @@ specified point in the future.
longer accept new version 3 blocks and it will only accept version 4
blocks if they comply with the BIP65 rules for CLTV.
**Notice to miners:** Litecoin Core’s block templates are now for
**Notice to miners:** Kevacoin Core’s block templates are now for
version 4 blocks only, and any mining software relying on its
getblocktemplate must be updated in parallel to use libblkmaker either
version v0.4.3 or any version from v0.5.2 onward.
- If you are solo mining, this will affect you the moment you upgrade
Litecoin Core, which must be done prior to BIP65 achieving its 951/1001
Kevacoin Core, which must be done prior to BIP65 achieving its 951/1001
status.
- If you are mining with the stratum mining protocol: this does not
@ -89,7 +89,7 @@ Windows bug fix for corrupted UTXO database on unclean shutdowns @@ -89,7 +89,7 @@ Windows bug fix for corrupted UTXO database on unclean shutdowns
----------------------------------------------------------------
Several Windows users reported that they often need to reindex the
entire blockchain after an unclean shutdown of Litecoin Core on Windows
entire blockchain after an unclean shutdown of Kevacoin Core on Windows
(or an unclean shutdown of Windows itself). Although unclean shutdowns
remain unsafe, this release no longer relies on memory-mapped files for
the UTXO database, which significantly reduced the frequency of unclean
@ -104,8 +104,8 @@ next major release. @@ -104,8 +104,8 @@ next major release.
=================
This release is based upon Bitcoin Core v0.10.4. Their upstream changelog applies to us and
is included in as separate release-notes, see: [Release Notes](release-notes.md).
This section describes the Litecoin-specific differences.
is included in as separate release-notes, see: [Release Notes](release-notes.md).
This section describes the Kevacoin-specific differences.
- Added BIP65 CHECKLOCKTIMEVERIFY softfork.
- Increased OP_RETURN relay size to 80 bytes.

104
doc/litecoin-release-notes/release-notes-0.13.2.md

@ -1,20 +1,20 @@ @@ -1,20 +1,20 @@
Litecoin Core version 0.13.2 is now available from:
Kevacoin Core version 0.13.2 is now available from:
<https://download.litecoin.org/litecoin-0.13.2.1/>
<https://download.kevacoin.org/kevacoin-0.13.2.1/>
This is a new major version release, including new features, various bugfixes and performance improvements, as well as updated translations.
It is recommended to upgrade to this version.
Please report bugs using the issue tracker at github:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
Compatibility
==============
Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support),
an OS initially released in 2001. This means that not even critical security
updates will be released anymore. Without security updates, using a litecoin
updates will be released anymore. Without security updates, using a kevacoin
wallet on a XP machine is irresponsible at least.
In addition to that, with 0.12.x there have been varied reports of Bitcoin Core
@ -41,7 +41,7 @@ Notable changes @@ -41,7 +41,7 @@ Notable changes
Signature validation using libsecp256k1
---------------------------------------
ECDSA signatures inside Litecoin transactions now use validation using
ECDSA signatures inside Kevacoin transactions now use validation using
[libsecp256k1](https://github.com/bitcoin-core/secp256k1) instead of OpenSSL.
Depending on the platform, this means a significant speedup for raw signature
@ -88,15 +88,15 @@ can often prevent an extra roundtrip before the actual block is downloaded. @@ -88,15 +88,15 @@ can often prevent an extra roundtrip before the actual block is downloaded.
Memory pool limiting
--------------------
Previous versions of Litecoin Core had their mempool limited by checking
Previous versions of Kevacoin Core had their mempool limited by checking
a transaction's fees against the node's minimum relay fee. There was no
upper bound on the size of the mempool and attackers could send a large
number of transactions paying just slighly more than the default minimum
relay fee to crash nodes with relatively low RAM. A temporary workaround
for previous versions of Litecoin Core was to raise the default minimum
for previous versions of Kevacoin Core was to raise the default minimum
relay fee.
Litecoin Core 0.13.2 will have a strict maximum size on the mempool. The
Kevacoin Core 0.13.2 will have a strict maximum size on the mempool. The
default value is 300 MB and can be configured with the `-maxmempool`
parameter. Whenever a transaction would cause the mempool to exceed
its maximum size, the transaction that (along with in-mempool descendants) has
@ -105,7 +105,7 @@ minimum relay feerate will be increased to match this feerate plus the initial @@ -105,7 +105,7 @@ minimum relay feerate will be increased to match this feerate plus the initial
minimum relay feerate. The initial minimum relay feerate is set to
1000 satoshis per kB.
Litecoin Core 0.13.2 also introduces new default policy limits on the length and
Kevacoin Core 0.13.2 also introduces new default policy limits on the length and
size of unconfirmed transaction chains that are allowed in the mempool
(generally limiting the length of unconfirmed chains to 25 transactions, with a
total size of 101 KB). These limits can be overriden using command line
@ -124,7 +124,7 @@ overridden with the option `-rpccookiefile`. @@ -124,7 +124,7 @@ overridden with the option `-rpccookiefile`.
This is similar to Tor's CookieAuthentication: see
https://www.torproject.org/docs/tor-manual.html.en
This allows running litecoind without having to do any manual configuration.
This allows running kevacoind without having to do any manual configuration.
Relay: Any sequence of pushdatas in OP_RETURN outputs now allowed
-----------------------------------------------------------------
@ -147,10 +147,10 @@ returned (previously all relevant hashes were returned). @@ -147,10 +147,10 @@ returned (previously all relevant hashes were returned).
Relay and Mining: Priority transactions
---------------------------------------
Litecoin Core has a heuristic 'priority' based on coin value and age. This
Kevacoin Core has a heuristic 'priority' based on coin value and age. This
calculation is used for relaying of transactions which do not pay the
minimum relay fee, and can be used as an alternative way of sorting
transactions for mined blocks. Litecoin Core will relay transactions with
transactions for mined blocks. Kevacoin Core will relay transactions with
insufficient fees depending on the setting of `-limitfreerelay=<r>` (default:
`r=15` kB per minute) and `-blockprioritysize=<s>`.
@ -175,7 +175,7 @@ Note, however, that if mining priority transactions is left disabled, the @@ -175,7 +175,7 @@ Note, however, that if mining priority transactions is left disabled, the
priority delta will be ignored and only the fee metric will be effective.
This internal automatic prioritization handling is being considered for removal
entirely in Litecoin Core 0.13, and it is at this time undecided whether the
entirely in Kevacoin Core 0.13, and it is at this time undecided whether the
more accurate priority calculation for chained unconfirmed transactions will be
restored. Community direction on this topic is particularly requested to help
set project priorities.
@ -185,15 +185,15 @@ Automatically use Tor hidden services @@ -185,15 +185,15 @@ Automatically use Tor hidden services
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
API, to create and destroy 'ephemeral' hidden services programmatically.
Litecoin Core has been updated to make use of this.
Kevacoin Core has been updated to make use of this.
This means that if Tor is running (and proper authorization is available),
Litecoin Core automatically creates a hidden service to listen on, without
manual configuration. Litecoin Core will also use Tor automatically to connect
Kevacoin Core automatically creates a hidden service to listen on, without
manual configuration. Kevacoin Core will also use Tor automatically to connect
to other .onion nodes if the control socket can be successfully opened. This
will positively affect the number of available .onion nodes and their usage.
This new feature is enabled by default if Litecoin Core is listening, and
This new feature is enabled by default if Kevacoin Core is listening, and
a connection to Tor can be made. It can be configured with the `-listenonion`,
`-torcontrol` and `-torpassword` settings. To show verbose debugging
information, pass `-debug=tor`.
@ -214,8 +214,8 @@ Various improvements have been made to how the wallet calculates @@ -214,8 +214,8 @@ Various improvements have been made to how the wallet calculates
transaction fees.
Users can decide to pay a predefined fee rate by setting `-paytxfee=<n>`
(or `settxfee <n>` rpc during runtime). A value of `n=0` signals Litecoin
Core to use floating fees. By default, Litecoin Core will use floating
(or `settxfee <n>` rpc during runtime). A value of `n=0` signals Kevacoin
Core to use floating fees. By default, Kevacoin Core will use floating
fees.
Based on past transaction data, floating fees approximate the fees
@ -226,9 +226,9 @@ Sometimes, it is not possible to give good estimates, or an estimate @@ -226,9 +226,9 @@ Sometimes, it is not possible to give good estimates, or an estimate
at all. Therefore, a fallback value can be set with `-fallbackfee=<f>`
(default: `0.0002` LTC/kB).
At all times, Litecoin Core will cap fees at `-maxtxfee=<x>` (default:
At all times, Kevacoin Core will cap fees at `-maxtxfee=<x>` (default:
0.10) LTC.
Furthermore, Litecoin Core will never create transactions paying less than
Furthermore, Kevacoin Core will never create transactions paying less than
the current minimum relay fee.
Finally, a user can set the minimum fee rate for all transactions with
`-mintxfee=<i>`, which defaults to 1000 satoshis per kB.
@ -271,7 +271,7 @@ However, rescans as well as the RPCs `importwallet`, `importaddress`, @@ -271,7 +271,7 @@ However, rescans as well as the RPCs `importwallet`, `importaddress`,
`importprivkey` are disabled.
To enable block pruning set `prune=<N>` on the command line or in
`litecoin.conf`, where `N` is the number of MiB to allot for
`kevacoin.conf`, where `N` is the number of MiB to allot for
raw block & undo data.
A value of 0 disables pruning. The minimal value above 0 is 550. Your
@ -330,7 +330,7 @@ and are affected by this change: @@ -330,7 +330,7 @@ and are affected by this change:
- RPC `decodescript`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `litecoin-tx -json`
- `kevacoin-tx -json`
For example, the `scriptSig.asm` property of a transaction input that
previously showed an assembly representation of:
@ -387,7 +387,7 @@ caching. A sample config for apache2 could look like: @@ -387,7 +387,7 @@ caching. A sample config for apache2 could look like:
# AuthType Digest
# ...
# optional bypass litecoind rpc basic auth
# optional bypass kevacoind rpc basic auth
# RequestHeader set Authorization "Basic <hash>"
# get the <hash> from the shell with: base64 <<< litecoinrpc:<password>
</Location>
@ -401,7 +401,7 @@ Other P2P Changes @@ -401,7 +401,7 @@ Other P2P Changes
-----------------
The list of banned peers is now stored on disk rather than in memory.
Restarting litecoind will no longer clear out the list of banned peers; instead
Restarting kevacoind will no longer clear out the list of banned peers; instead
a new RPC call (`clearbanned`) can be used to manually clear the list. The new
`setban` RPC call can also be used to manually ban or unban a peer.
@ -415,21 +415,21 @@ For this reason the default was changed to 300 MiB in this release. @@ -415,21 +415,21 @@ For this reason the default was changed to 300 MiB in this release.
For nodes on low-memory systems, the database cache can be changed back to
100 MiB (or to another value) by either:
- Adding `dbcache=100` in litecoin.conf
- Adding `dbcache=100` in kevacoin.conf
- Changing it in the GUI under `Options → Size of database cache`
Note that the database cache setting has the most performance impact
during initial sync of a node, and when catching up after downtime.
litecoin-cli: arguments privacy
kevacoin-cli: arguments privacy
------------------------------
The RPC command line client gained a new argument, `-stdin`
to read extra arguments from standard input, one per line until EOF/Ctrl-D.
For example:
$ src/litecoin-cli -stdin walletpassphrase
$ src/kevacoin-cli -stdin walletpassphrase
mysecretcode
120
..... press Ctrl-D here to end input
@ -443,7 +443,7 @@ table by any user on the system. @@ -443,7 +443,7 @@ table by any user on the system.
C++11 and Python 3
------------------
Various code modernizations have been done. The Litecoin Core code base has
Various code modernizations have been done. The Kevacoin Core code base has
started using C++11. This means that a C++11-capable compiler is now needed for
building. Effectively this means GCC 4.7 or higher, or Clang 3.3 or higher.
@ -462,9 +462,9 @@ executables. @@ -462,9 +462,9 @@ executables.
The following extra files can be found in the download directory or torrent:
- `litecoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries for the most
- `kevacoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries for the most
common 32-bit ARM architecture.
- `litecoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries for the most
- `kevacoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries for the most
common 64-bit ARM architecture.
ARM builds are still experimental. If you have problems on a certain device or
@ -489,7 +489,7 @@ BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY @@ -489,7 +489,7 @@ BIP112 soft fork to enforce OP_CHECKSEQUENCEVERIFY
--------------------------------------------------
[BIP112][] redefines the existing OP_NOP3 as OP_CHECKSEQUENCEVERIFY (CSV)
for a new opcode in the Litecoin scripting system that in combination with
for a new opcode in the Kevacoin scripting system that in combination with
[BIP68][] allows execution pathways of a script to be restricted based
on the age of the output being spent.
@ -499,10 +499,10 @@ For more information about the implementation, see @@ -499,10 +499,10 @@ For more information about the implementation, see
BIP113 locktime enforcement soft fork
-------------------------------------
This release seeks to make mempool-only locktime enforcement using GetMedianTimePast()
This release seeks to make mempool-only locktime enforcement using GetMedianTimePast()
a consensus rule.
Litecoin transactions currently may specify a locktime indicating when
Kevacoin transactions currently may specify a locktime indicating when
they may be added to a valid block. Current consensus rules require
that blocks have a block header time greater than the locktime specified
in any transaction in that block.
@ -592,7 +592,7 @@ You can't disable HD key generation once you have created a HD wallet. @@ -592,7 +592,7 @@ You can't disable HD key generation once you have created a HD wallet.
There is no distinction between internal (change) and external keys.
HD wallets are incompatible with older versions of Litecoin Core.
HD wallets are incompatible with older versions of Kevacoin Core.
[Pull request](https://github.com/bitcoin/bitcoin/pull/8035/files), [BIP 32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
@ -645,7 +645,7 @@ files on disk. These two have now been split up, so that all blocks are known @@ -645,7 +645,7 @@ files on disk. These two have now been split up, so that all blocks are known
before validation starts. This was necessary to make certain optimizations that
are available during normal synchronizations also available during reindexing.
The two phases are distinct in the Litecoin-Qt GUI. During the first one,
The two phases are distinct in the Kevacoin-Qt GUI. During the first one,
"Reindexing blocks on disk" is shown. During the second (slower) one,
"Processing blocks on disk" is shown.
@ -751,7 +751,7 @@ Low-level RPC changes @@ -751,7 +751,7 @@ Low-level RPC changes
- RPC `decodescript`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `litecoin-tx -json`
- `kevacoin-tx -json`
- The sorting of the output of the `getrawmempool` output has changed.
@ -786,9 +786,9 @@ covered by the txid. This provides several immediate benefits: @@ -786,9 +786,9 @@ covered by the txid. This provides several immediate benefits:
identifier (txid) of transactions without referencing the witness, which can
sometimes be changed by third-parties (such as miners) or by co-signers in a
multisig spend. This solves all known cases of unwanted transaction
malleability, which is a problem that makes programming Litecoin wallet
malleability, which is a problem that makes programming Kevacoin wallet
software more difficult and which seriously complicates the design of smart
contracts for Litecoin.
contracts for Kevacoin.
- **Capacity increase:** Segwit transactions contain new fields that are not
part of the data currently used to calculate the size of a block, which
@ -802,7 +802,7 @@ covered by the txid. This provides several immediate benefits: @@ -802,7 +802,7 @@ covered by the txid. This provides several immediate benefits:
following section for details).
- **Weighting data based on how it affects node performance:** Some parts of
each Litecoin block need to be stored by nodes in order to validate future
each Kevacoin block need to be stored by nodes in order to validate future
blocks; other parts of a block can be immediately forgotten (pruned) or used
only for helping other nodes sync their copy of the block chain. One large
part of the immediately prunable data are transaction signatures (witnesses),
@ -835,7 +835,7 @@ covered by the txid. This provides several immediate benefits: @@ -835,7 +835,7 @@ covered by the txid. This provides several immediate benefits:
different signature method that doesn't suffer from this problem and doesn't
have any unwanted side-effects.
- **Increased security for multisig:** Litecoin addresses (both P2PKH addresses
- **Increased security for multisig:** Kevacoin addresses (both P2PKH addresses
that start with a '1' and P2SH addresses that start with a '3' or 'M') use a hash
function known as RIPEMD-160. For P2PKH addresses, this provides about 160
bits of security---which is beyond what cryptographers believe can be broken
@ -845,7 +845,7 @@ covered by the txid. This provides several immediate benefits: @@ -845,7 +845,7 @@ covered by the txid. This provides several immediate benefits:
Segwit allows advanced transactions to use the SHA256 hash function instead,
which provides about 128 bits of security (that is 281 trillion times as
much security as 80 bits and is equivalent to the maximum bits of security
believed to be provided by Litecoin's choice of parameters for its Elliptic
believed to be provided by Kevacoin's choice of parameters for its Elliptic
Curve Digital Security Algorithm [ECDSA].)
- **More efficient almost-full-node security** Satoshi Nakamoto's original
@ -853,7 +853,7 @@ covered by the txid. This provides several immediate benefits: @@ -853,7 +853,7 @@ covered by the txid. This provides several immediate benefits:
skip downloading and validating some data from historic blocks that are
protected by large amounts of proof of work. Unfortunately, Nakamoto's
method can't guarantee that a newly-started node using this method will
produce an accurate copy of Litecoin's current ledger (called the UTXO set),
produce an accurate copy of Kevacoin's current ledger (called the UTXO set),
making the node vulnerable to falling out of consensus with other nodes.
Although the problems with Nakamoto's method can't be fixed in a soft fork,
Segwit accomplishes something similar to his original proposal: it makes it
@ -861,13 +861,13 @@ covered by the txid. This provides several immediate benefits: @@ -861,13 +861,13 @@ covered by the txid. This provides several immediate benefits:
(specifically, the segregated witnesses) while still ensuring that the node
can build an accurate copy of the UTXO set for the block chain with the most
proof of work. Segwit enables this capability at the consensus layer, but
note that Litecoin Core does not provide an option to use this capability as
note that Kevacoin Core does not provide an option to use this capability as
of this 0.13.2 release.
- **Script versioning:** Segwit makes it easy for future soft forks to allow
Litecoin users to individually opt-in to almost any change in the Litecoin
Kevacoin users to individually opt-in to almost any change in the Kevacoin
Script language when those users receive new transactions. Features
currently being researched by Bitcoin and Litecoin Core contributors that may
currently being researched by Bitcoin and Kevacoin Core contributors that may
use this capability include support for Schnorr signatures, which can improve
the privacy and efficiency of multisig transactions (or transactions with
multiple inputs), and Merklized Abstract Syntax Trees (MAST), which can
@ -877,8 +877,8 @@ covered by the txid. This provides several immediate benefits: @@ -877,8 +877,8 @@ covered by the txid. This provides several immediate benefits:
Activation for the segwit soft fork is being managed using
BIP9. At the beginning of the first retarget period after
segwit's start date of 1 January 2017 miners can update the Litecoin
client to Litecoin Core 0.13.2 to signal for segwit support. When a
segwit's start date of 1 January 2017 miners can update the Kevacoin
client to Kevacoin Core 0.13.2 to signal for segwit support. When a
super-majority of 75% is reached segwit is activated by optional, and
if 75% of blocks within a 8,064-block retarget period (about 3.5 days)
signal support for segwit, after another 8,064 blocks, segwit will
@ -911,7 +911,7 @@ a third-party to insert data into other people's transactions, changing @@ -911,7 +911,7 @@ a third-party to insert data into other people's transactions, changing
the transaction's txid (called transaction malleability) and possibly
causing other problems.
Since Litecoin Core 0.10.0, nodes have defaulted to only relaying and
Since Kevacoin Core 0.10.0, nodes have defaulted to only relaying and
mining transactions whose dummy element was a null value (0x00, also
called OP_0). The null dummy soft fork turns this relay rule into a
consensus rule both for non-segwit transactions and segwit transactions,
@ -937,14 +937,14 @@ Low-level RPC changes @@ -937,14 +937,14 @@ Low-level RPC changes
Linux ARM builds
----------------
Pre-built Linux ARM binaries have been added to the set of uploaded executables.
Pre-built Linux ARM binaries have been added to the set of uploaded executables.
Additional detail on the ARM architecture targeted by each is provided below.
The following extra files can be found in the download directory or torrent:
- `litecoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries targeting
- `kevacoin-${VERSION}-arm-linux-gnueabihf.tar.gz`: Linux binaries targeting
the 32-bit ARMv7-A architecture.
- `litecoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries targeting
- `kevacoin-${VERSION}-aarch64-linux-gnu.tar.gz`: Linux binaries targeting
the 64-bit ARMv8-A architecture.
ARM builds are still experimental. If you have problems on a certain device or

14
doc/litecoin-release-notes/release-notes-0.13.3.md

@ -1,20 +1,20 @@ @@ -1,20 +1,20 @@
Litecoin Core version 0.13.3 is now available from:
Kevacoin Core version 0.13.3 is now available from:
<https://download.litecoin.org/litecoin-0.13.3/>
<https://download.kevacoin.org/kevacoin-0.13.3/>
This is a new minor version release, including new features, various bugfixes and performance improvements.
It is recommended to upgrade to this version.
Please report bugs using the issue tracker at github:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
Compatibility
==============
Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support),
an OS initially released in 2001. This means that not even critical security
updates will be released anymore. Without security updates, using a litecoin
updates will be released anymore. Without security updates, using a kevacoin
wallet on a XP machine is irresponsible at least.
In addition to that, with 0.12.x there have been varied reports of Bitcoin Core
@ -41,7 +41,7 @@ Notable changes @@ -41,7 +41,7 @@ Notable changes
New Multisig Address Prefix
---------------------------
Litecoin Core now supports P2SH addresses beginning with M on mainnet and Q on testnet.
Kevacoin Core now supports P2SH addresses beginning with M on mainnet and Q on testnet.
P2SH addresses beginning with 3 on mainnet and m or n on testnet will continue to be valid.
Old and new addresses can be used interchangeably.
@ -50,7 +50,7 @@ miniupnp CVE-2017-8798 @@ -50,7 +50,7 @@ miniupnp CVE-2017-8798
Bundled miniupnpc was updated to 2.0.20170509. This fixes an integer signedness error (present in MiniUPnPc v1.4.20101221 through v2.0) that allows remote attackers (within the LAN) to cause a denial of service or possibly have unspecified other impact.
This only affects users that have explicitly enabled UPnP through the GUI setting or through the -upnp option, as since the last UPnP vulnerability (in Litecoin Core 0.10.4) it has been disabled by default.
This only affects users that have explicitly enabled UPnP through the GUI setting or through the -upnp option, as since the last UPnP vulnerability (in Kevacoin Core 0.10.4) it has been disabled by default.
If you use this option, it is recommended to upgrade to this version as soon as possible.
@ -64,7 +64,7 @@ Testnet faucets can be located at: @@ -64,7 +64,7 @@ Testnet faucets can be located at:
- http://testnet.litecointools.com
- http://testnet.thrasher.io
Developers who require the new testnet blockchain paramaters can find them [here](https://github.com/litecoin-project/litecoin/blob/0.13/src/chainparams.cpp#L214).
Developers who require the new testnet blockchain paramaters can find them [here](https://github.com/kevacoin-project/kevacoin/blob/0.13/src/chainparams.cpp#L214).
Credits
=======

70
doc/litecoin-release-notes/release-notes-0.14.2.md

@ -1,22 +1,22 @@ @@ -1,22 +1,22 @@
Litecoin Core version 0.14.2 is now available from:
Kevacoin Core version 0.14.2 is now available from:
<https://download.litecoin.org/litecoin-0.14.2.0/>
<https://download.kevacoin.org/kevacoin-0.14.2.0/>
This is a new major version release, including new features, various bugfixes
and performance improvements, as well as updated translations.
Please report bugs using the issue tracker at github:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
To receive security and update notifications, please subscribe to:
<https://groups.google.com/forum/#!forum/litecoin-dev>
<https://groups.google.com/forum/#!forum/kevacoin-dev>
Compatibility
==============
Litecoin Core is extensively tested on multiple operating systems using
Kevacoin Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later.
Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support),
@ -24,7 +24,7 @@ No attempt is made to prevent installing or running the software on Windows XP, @@ -24,7 +24,7 @@ No attempt is made to prevent installing or running the software on Windows XP,
can still do so at your own risk but be aware that there are known instabilities and issues.
Please do not report issues about Windows XP to the issue tracker.
Litecoin Core should also work on most other Unix-like systems but is not
Kevacoin Core should also work on most other Unix-like systems but is not
frequently tested on them.
Notable changes
@ -33,7 +33,7 @@ Notable changes @@ -33,7 +33,7 @@ Notable changes
New Multisig Address Prefix
---------------------------
Litecoin Core now supports P2SH addresses beginning with M on mainnet and Q on testnet.
Kevacoin Core now supports P2SH addresses beginning with M on mainnet and Q on testnet.
P2SH addresses beginning with 3 on mainnet and m or n on testnet will continue to be valid.
Old and new addresses can be used interchangeably.
@ -42,7 +42,7 @@ miniupnp CVE-2017-8798 @@ -42,7 +42,7 @@ miniupnp CVE-2017-8798
Bundled miniupnpc was updated to 2.0.20170509. This fixes an integer signedness error (present in MiniUPnPc v1.4.20101221 through v2.0) that allows remote attackers (within the LAN) to cause a denial of service or possibly have unspecified other impact.
This only affects users that have explicitly enabled UPnP through the GUI setting or through the -upnp option, as since the last UPnP vulnerability (in Litecoin Core 0.10.4) it has been disabled by default.
This only affects users that have explicitly enabled UPnP through the GUI setting or through the -upnp option, as since the last UPnP vulnerability (in Kevacoin Core 0.10.4) it has been disabled by default.
If you use this option, it is recommended to upgrade to this version as soon as possible.
@ -56,7 +56,7 @@ Testnet faucets can be located at: @@ -56,7 +56,7 @@ Testnet faucets can be located at:
- http://testnet.litecointools.com
- http://testnet.thrasher.io
Developers who require the new testnet blockchain paramaters can find them [here](https://github.com/litecoin-project/litecoin/blob/master/src/chainparams.cpp#L220).
Developers who require the new testnet blockchain paramaters can find them [here](https://github.com/kevacoin-project/kevacoin/blob/master/src/chainparams.cpp#L220).
Performance Improvements
--------------
@ -83,7 +83,7 @@ improved, leading to much shorter sync and initial block download times. @@ -83,7 +83,7 @@ improved, leading to much shorter sync and initial block download times.
Manual Pruning
--------------
Litecoin Core has supported automatically pruning the blockchain since 0.13.2. Pruning
Kevacoin Core has supported automatically pruning the blockchain since 0.13.2. Pruning
the blockchain allows for significant storage space savings as the vast majority of
the downloaded data can be discarded after processing so very little of it remains
on the disk.
@ -124,7 +124,7 @@ ZMQ On Windows @@ -124,7 +124,7 @@ ZMQ On Windows
Previously the ZeroMQ notification system was unavailable on Windows
due to various issues with ZMQ. These have been fixed upstream and
now ZMQ can be used on Windows. Please see [this document](https://github.com/litecoin-project/litecoin/blob/master/doc/zmq.md) for
now ZMQ can be used on Windows. Please see [this document](https://github.com/kevacoin-project/kevacoin/blob/master/doc/zmq.md) for
help with using ZMQ in general.
Nested RPC Commands in Debug Console
@ -136,7 +136,7 @@ command without running the commands separately. @@ -136,7 +136,7 @@ command without running the commands separately.
The nested RPC commands use bracket syntax (i.e. `getwalletinfo()`) and can
be nested (i.e. `getblock(getblockhash(1))`). Simple queries can be
done with square brackets where object values are accessed with either an
done with square brackets where object values are accessed with either an
array index or a non-quoted string (i.e. `listunspent()[0][txid]`). Both
commas and spaces can be used to separate parameters in both the bracket syntax
and normal RPC command syntax.
@ -145,9 +145,9 @@ Network Activity Toggle @@ -145,9 +145,9 @@ Network Activity Toggle
-----------------------
A RPC command and GUI toggle have been added to enable or disable all p2p
network activity. The network status icon in the bottom right hand corner
network activity. The network status icon in the bottom right hand corner
is now the GUI toggle. Clicking the icon will either enable or disable all
p2p network activity. If network activity is disabled, the icon will
p2p network activity. If network activity is disabled, the icon will
be grayed out with an X on top of it.
Additionally the `setnetworkactive` RPC command has been added which does
@ -157,7 +157,7 @@ the same thing as the GUI icon. The command takes one boolean parameter, @@ -157,7 +157,7 @@ the same thing as the GUI icon. The command takes one boolean parameter,
Out-of-sync Modal Info Layer
----------------------------
When Litecoin Core is out-of-sync on startup, a semi-transparent information
When Kevacoin Core is out-of-sync on startup, a semi-transparent information
layer will be shown over top of the normal display. This layer contains
details about the current sync progress and estimates the amount of time
remaining to finish syncing. This layer can also be hidden and subsequently
@ -166,19 +166,19 @@ unhidden by clicking on the progress bar at the bottom of the window. @@ -166,19 +166,19 @@ unhidden by clicking on the progress bar at the bottom of the window.
Support for JSON-RPC Named Arguments
------------------------------------
Commands sent over the JSON-RPC interface and through the `litecoin-cli` binary
Commands sent over the JSON-RPC interface and through the `kevacoin-cli` binary
can now use named arguments. This follows the [JSON-RPC specification](http://www.jsonrpc.org/specification)
for passing parameters by-name with an object.
`litecoin-cli` has been updated to support this by parsing `name=value` arguments
`kevacoin-cli` has been updated to support this by parsing `name=value` arguments
when the `-named` option is given.
Some examples:
src/litecoin-cli -named help command="help"
src/litecoin-cli -named getblockhash height=0
src/litecoin-cli -named getblock blockhash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
src/litecoin-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true
src/kevacoin-cli -named help command="help"
src/kevacoin-cli -named getblockhash height=0
src/kevacoin-cli -named getblock blockhash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
src/kevacoin-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true
The order of arguments doesn't matter in this case. Named arguments are also
useful to leave out arguments that should stay at their default value. The
@ -209,7 +209,7 @@ commands such as `prioritisetransaction` so that those changes will not be lost. @@ -209,7 +209,7 @@ commands such as `prioritisetransaction` so that those changes will not be lost.
Final Alert
-----------
The Alert System was disabled and deprecated in Litecoin Core 0.10.4 and removed in 0.13.2.
The Alert System was disabled and deprecated in Kevacoin Core 0.10.4 and removed in 0.13.2.
The Alert System was retired with a maximum sequence final alert which causes any nodes
supporting the Alert System to display a static hard-coded "Alert Key Compromised" message which also
prevents any other alerts from overriding it. This final alert is hard-coded into this release
@ -218,15 +218,15 @@ so that all old nodes receive the final alert. @@ -218,15 +218,15 @@ so that all old nodes receive the final alert.
GUI Changes
-----------
- After resetting the options by clicking the `Reset Options` button
in the options dialog or with the `-resetguioptions` startup option,
the user will be prompted to choose the data directory again. This
is to ensure that custom data directories will be kept after the
option reset which clears the custom data directory set via the choose
- After resetting the options by clicking the `Reset Options` button
in the options dialog or with the `-resetguioptions` startup option,
the user will be prompted to choose the data directory again. This
is to ensure that custom data directories will be kept after the
option reset which clears the custom data directory set via the choose
datadir dialog.
- Multiple peers can now be selected in the list of peers in the debug
window. This allows for users to ban or disconnect multiple peers
- Multiple peers can now be selected in the list of peers in the debug
window. This allows for users to ban or disconnect multiple peers
simultaneously instead of banning them one at a time.
- An indicator has been added to the bottom right hand corner of the main
@ -241,7 +241,7 @@ Low-level RPC changes @@ -241,7 +241,7 @@ Low-level RPC changes
an optional third arg, which was always ignored. Make sure to never pass more
than two arguments.
- The first boolean argument to `getaddednodeinfo` has been removed. This is
- The first boolean argument to `getaddednodeinfo` has been removed. This is
an incompatible change.
- RPC command `getmininginfo` loses the "testnet" field in favor of the more
@ -251,8 +251,8 @@ Low-level RPC changes @@ -251,8 +251,8 @@ Low-level RPC changes
precious. A precious block will be treated as if it were received earlier
than a competing block.
- A new RPC command `importmulti` has been added which receives an array of
JSON objects representing the intention of importing a public key, a
- A new RPC command `importmulti` has been added which receives an array of
JSON objects representing the intention of importing a public key, a
private key, an address and script/p2sh
- Use of `getrawtransaction` for retrieving confirmed transactions with unspent
@ -261,7 +261,7 @@ Low-level RPC changes @@ -261,7 +261,7 @@ Low-level RPC changes
the mempool or if `txindex` is enabled.
- A new RPC command `getmemoryinfo` has been added which will return information
about the memory usage of Litecoin Core. This was added in conjunction with
about the memory usage of Kevacoin Core. This was added in conjunction with
optimizations to memory management. See [Pull #8753](https://github.com/bitcoin/bitcoin/pull/8753)
for more information.
@ -281,7 +281,7 @@ HTTP REST Changes @@ -281,7 +281,7 @@ HTTP REST Changes
-----------------
- UTXO set query (`GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n>
/.../<txid>-<n>.<bin|hex|json>`) responses were changed to return status
/.../<txid>-<n>.<bin|hex|json>`) responses were changed to return status
code `HTTP_BAD_REQUEST` (400) instead of `HTTP_INTERNAL_SERVER_ERROR` (500)
when requests contain invalid parameters.
@ -413,7 +413,7 @@ the same cache performance as prior releases. Users on low-memory systems @@ -413,7 +413,7 @@ the same cache performance as prior releases. Users on low-memory systems
this parameter.
Additional information relating to running on low-memory systems can be found
here, originally written for Bitcoin but can also be used for Litecoin:
here, originally written for Bitcoin but can also be used for Kevacoin:
[reducing-bitcoind-memory-usage.md](https://gist.github.com/laanwj/efe29c7661ce9b6620a7).
Credits

40
doc/litecoin-release-notes/release-notes-0.15.0.1.md

@ -1,25 +1,25 @@ @@ -1,25 +1,25 @@
Litecoin Core version *0.15.0* is now available from:
Kevacoin Core version *0.15.0* is now available from:
<https://download.litecoin.org/litecoin-0.15.0/>
<https://download.kevacoin.org/kevacoin-0.15.0/>
This is a new major version release, including new features, various bugfixes
and performance improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
To receive security and update notifications, please subscribe to:
<https://groups.google.com/forum/#!forum/litecoin-dev>
<https://groups.google.com/forum/#!forum/kevacoin-dev>
How to Upgrade
==============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Litecoin-Qt` (on Mac)
or `litecoind`/`litecoin-qt` (on Linux).
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Kevacoin-Qt` (on Mac)
or `kevacoind`/`kevacoin-qt` (on Linux).
The first time you run version 0.15.0, your chainstate database will be converted to a
new format, which will take anywhere from a few minutes to half an hour,
@ -48,10 +48,10 @@ processing the entire blockchain. @@ -48,10 +48,10 @@ processing the entire blockchain.
Compatibility
==============
Litecoin Core is extensively tested on multiple operating systems using
Kevacoin Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
Litecoin Core should also work on most other Unix-like systems but is not
Kevacoin Core should also work on most other Unix-like systems but is not
frequently tested on them.
Notable changes
@ -92,7 +92,7 @@ Initial Block Download, startup, transaction and block validation much faster: @@ -92,7 +92,7 @@ Initial Block Download, startup, transaction and block validation much faster:
validation. In version 0.15, SHA256 hardware optimization is disabled in release builds by
default, but can be enabled by using `--enable-experimental-asm` when building.
- Refill of the keypool no longer flushes the wallet between each key which resulted in a ~20x speedup in creating a new wallet. Part of this speedup was used to increase the default keypool to 1000 keys to make recovery more robust. (See [PR 10831](https://github.com/bitcoin/bitcoin/pull/10831)).
- Scrypt hashing has been optimized for architectures supporting SSE 2 (See [PR 362](https://github.com/litecoin-project/litecoin/pull/362)). This boosts scrypt hashing performance by a factor of 2. In version 0.15, scrypt hardware optimization is disabled in release builds by default, but can be enabled by using `--enable-sse2` when building.
- Scrypt hashing has been optimized for architectures supporting SSE 2 (See [PR 362](https://github.com/kevacoin-project/kevacoin/pull/362)). This boosts scrypt hashing performance by a factor of 2. In version 0.15, scrypt hardware optimization is disabled in release builds by default, but can be enabled by using `--enable-sse2` when building.
Fee Estimation Improvements
---------------------------
@ -116,7 +116,7 @@ Fee estimation has been significantly improved in version 0.15, with more accura @@ -116,7 +116,7 @@ Fee estimation has been significantly improved in version 0.15, with more accura
- The `nblocks` argument has been renamed to `conf_target` (to be consistent with other RPC methods).
- An `estimate_mode` argument has been added. This argument takes one of the following strings: `CONSERVATIVE`, `ECONOMICAL` or `UNSET` (which defaults to `CONSERVATIVE`).
- The RPC return object now contains an `errors` member, which returns errors encountered during processing.
- If Litecoin Core has not been running for long enough and has not seen enough blocks or transactions to produce an accurate fee estimation, an error will be returned (previously a value of -1 was used to indicate an error, which could be confused for a feerate).
- If Kevacoin Core has not been running for long enough and has not seen enough blocks or transactions to produce an accurate fee estimation, an error will be returned (previously a value of -1 was used to indicate an error, which could be confused for a feerate).
- A new `estimaterawfee` RPC is added to provide raw fee data. External clients can query and use this data in their own fee estimation logic.
Opt into RBF When Sending
@ -135,17 +135,17 @@ In version 0.15, creating an opt-in RBF transaction and replacing the unconfirme @@ -135,17 +135,17 @@ In version 0.15, creating an opt-in RBF transaction and replacing the unconfirme
Multi-wallet support
--------------------
Litecoin Core now supports loading multiple, separate wallets (See [PR 8694](https://github.com/bitcoin/bitcoin/pull/8694), [PR 10849](https://github.com/bitcoin/bitcoin/pull/10849)). The wallets are completely separated, with individual balances, keys and received transactions.
Kevacoin Core now supports loading multiple, separate wallets (See [PR 8694](https://github.com/bitcoin/bitcoin/pull/8694), [PR 10849](https://github.com/bitcoin/bitcoin/pull/10849)). The wallets are completely separated, with individual balances, keys and received transactions.
Multi-wallet is enabled by using more than one `-wallet` argument when starting Litecoin, either on the command line or in the Litecoin config file.
Multi-wallet is enabled by using more than one `-wallet` argument when starting Kevacoin, either on the command line or in the Kevacoin config file.
**In Litecoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions.** GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will remain synchronized to the node's current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem.
**In Kevacoin-Qt, only the first wallet will be displayed and accessible for creating and signing transactions.** GUI selectable multiple wallets will be supported in a future version. However, even in 0.15 other loaded wallets will remain synchronized to the node's current tip in the background. This can be useful if running a pruned node, since loading a wallet where the most recent sync is beyond the pruned height results in having to download and revalidate the whole blockchain. Continuing to synchronize all wallets in the background avoids this problem.
Litecoin Core 0.15.0 contains the following changes to the RPC interface and `litecoin-cli` for multi-wallet:
Kevacoin Core 0.15.0 contains the following changes to the RPC interface and `kevacoin-cli` for multi-wallet:
* When running Litecoin Core with a single wallet, there are **no** changes to the RPC interface or `litecoin-cli`. All RPC calls and `litecoin-cli` commands continue to work as before.
* When running Litecoin Core with multi-wallet, all *node-level* RPC methods continue to work as before. HTTP RPC requests should be send to the normal `<RPC IP address>:<RPC port>/` endpoint, and `litecoin-cli` commands should be run as before. A *node-level* RPC method is any method which does not require access to the wallet.
* When running Litecoin Core with multi-wallet, *wallet-level* RPC methods must specify the wallet for which they're intended in every request. HTTP RPC requests should be send to the `<RPC IP address>:<RPC port>/wallet/<wallet name>/` endpoint, for example `127.0.0.1:9332/wallet/wallet1.dat/`. `litecoin-cli` commands should be run with a `-rpcwallet` option, for example `litecoin-cli -rpcwallet=wallet1.dat getbalance`.
* When running Kevacoin Core with a single wallet, there are **no** changes to the RPC interface or `kevacoin-cli`. All RPC calls and `kevacoin-cli` commands continue to work as before.
* When running Kevacoin Core with multi-wallet, all *node-level* RPC methods continue to work as before. HTTP RPC requests should be send to the normal `<RPC IP address>:<RPC port>/` endpoint, and `kevacoin-cli` commands should be run as before. A *node-level* RPC method is any method which does not require access to the wallet.
* When running Kevacoin Core with multi-wallet, *wallet-level* RPC methods must specify the wallet for which they're intended in every request. HTTP RPC requests should be send to the `<RPC IP address>:<RPC port>/wallet/<wallet name>/` endpoint, for example `127.0.0.1:9332/wallet/wallet1.dat/`. `kevacoin-cli` commands should be run with a `-rpcwallet` option, for example `kevacoin-cli -rpcwallet=wallet1.dat getbalance`.
* A new *node-level* `listwallets` RPC method is added to display which wallets are currently loaded. The names returned by this method are the same as those used in the HTTP endpoint and for the `rpcwallet` argument.
Note that while multi-wallet is now fully supported, the RPC multi-wallet interface should be considered unstable for version 0.15.0, and there may backwards-incompatible changes in future versions.
@ -153,7 +153,7 @@ Note that while multi-wallet is now fully supported, the RPC multi-wallet interf @@ -153,7 +153,7 @@ Note that while multi-wallet is now fully supported, the RPC multi-wallet interf
Removal of Coin Age Priority
----------------------------
In previous versions of Litecoin Core, a portion of each block could be reserved for transactions based on the age and value of UTXOs they spent. This concept (Coin Age Priority) is a policy choice by miners, and there are no consensus rules around the inclusion of Coin Age Priority transactions in blocks. In practice, only a few miners continue to use Coin Age Priority for transaction selection in blocks. Litecoin Core 0.15 removes all remaining support for Coin Age Priority (See [PR 9602](https://github.com/bitcoin/bitcoin/pull/9602)). This has the following implications:
In previous versions of Kevacoin Core, a portion of each block could be reserved for transactions based on the age and value of UTXOs they spent. This concept (Coin Age Priority) is a policy choice by miners, and there are no consensus rules around the inclusion of Coin Age Priority transactions in blocks. In practice, only a few miners continue to use Coin Age Priority for transaction selection in blocks. Kevacoin Core 0.15 removes all remaining support for Coin Age Priority (See [PR 9602](https://github.com/bitcoin/bitcoin/pull/9602)). This has the following implications:
- The concept of *free transactions* has been removed. High Coin Age Priority transactions would previously be allowed to be relayed even if they didn't attach a miner fee. This is no longer possible since there is no concept of Coin Age Priority. The `-limitfreerelay` and `-relaypriority` options which controlled relay of free transactions have therefore been removed.
- The `-sendfreetransactions` option has been removed, since almost all miners do not include transactions which do not attach a transaction fee.
@ -186,7 +186,7 @@ Version 0.15 introduces several new RPC methods: @@ -186,7 +186,7 @@ Version 0.15 introduces several new RPC methods:
Low-level RPC changes
---------------------
- When using Litecoin Core in multi-wallet mode, RPC requests for wallet methods must specify
- When using Kevacoin Core in multi-wallet mode, RPC requests for wallet methods must specify
the wallet that they're intended for. See [Multi-wallet support](#multi-wallet-support) for full details.
- The new database model no longer stores information about transaction

24
doc/litecoin-release-notes/release-notes-0.15.1.md

@ -1,25 +1,25 @@ @@ -1,25 +1,25 @@
Litecoin Core version *0.15.1* is now available from:
Kevacoin Core version *0.15.1* is now available from:
<https://download.litecoin.org/litecoin-0.15.1/>
<https://download.kevacoin.org/kevacoin-0.15.1/>
This is a new minor version release, including various bugfixes and
performance improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
To receive security and update notifications, please subscribe to:
<https://groups.google.com/forum/#!forum/litecoin-dev>
<https://groups.google.com/forum/#!forum/kevacoin-dev>
How to Upgrade
==============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Litecoin-Qt` (on Mac)
or `litecoind`/`litecoin-qt` (on Linux).
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Kevacoin-Qt` (on Mac)
or `kevacoind`/`kevacoin-qt` (on Linux).
The first time you run version 0.15.0 or higher, your chainstate database will
be converted to a new format, which will take anywhere from a few minutes to
@ -48,10 +48,10 @@ processing the entire blockchain. @@ -48,10 +48,10 @@ processing the entire blockchain.
Compatibility
==============
Litecoin Core is extensively tested on multiple operating systems using
Kevacoin Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
Litecoin Core should also work on most other Unix-like systems but is not
Kevacoin Core should also work on most other Unix-like systems but is not
frequently tested on them.
@ -61,12 +61,12 @@ Notable changes @@ -61,12 +61,12 @@ Notable changes
Network fork safety enhancements
--------------------------------
A number of changes to the way Litecoin Core deals with peer connections and invalid blocks
A number of changes to the way Kevacoin Core deals with peer connections and invalid blocks
have been made, as a safety precaution against blockchain forks and misbehaving peers.
- Unrequested blocks with less work than the minimum-chain-work are now no longer processed even
if they have more work than the tip (a potential issue during IBD where the tip may have low-work).
This prevents peers wasting the resources of a node.
This prevents peers wasting the resources of a node.
- Peers which provide a chain with less work than the minimum-chain-work during IBD will now be disconnected.
@ -255,7 +255,7 @@ Thanks to everyone who directly contributed to this release: @@ -255,7 +255,7 @@ Thanks to everyone who directly contributed to this release:
- aunyks
- coblee
- gabrieldov
- Martin Smith
- Martin Smith
- ppm0
- romanornr
- shaolinfry

6
doc/man/Makefile.am

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
dist_man1_MANS=
if BUILD_BITCOIND
dist_man1_MANS+=litecoind.1
dist_man1_MANS+=kevacoind.1
endif
if ENABLE_QT
dist_man1_MANS+=litecoin-qt.1
dist_man1_MANS+=kevacoin-qt.1
endif
if BUILD_BITCOIN_UTILS
dist_man1_MANS+=litecoin-cli.1 litecoin-tx.1
dist_man1_MANS+=kevacoin-cli.1 kevacoin-tx.1
endif

28
doc/man/litecoin-cli.1 → doc/man/kevacoin-cli.1

@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH LITECOIN-CLI "1" "September 2018" "litecoin-cli v0.16.3.0" "User Commands"
.TH LITECOIN-CLI "1" "September 2018" "kevacoin-cli v0.16.3.0" "User Commands"
.SH NAME
litecoin-cli \- manual page for litecoin-cli v0.16.3.0
kevacoin-cli \- manual page for kevacoin-cli v0.16.3.0
.SH DESCRIPTION
Litecoin Core RPC client version v0.16.3.0
Kevacoin Core RPC client version v0.16.3.0
.SS "Usage:"
.TP
litecoin\-cli [options] <command> [params]
Send command to Litecoin Core
kevacoin\-cli [options] <command> [params]
Send command to Kevacoin Core
.IP
litecoin\-cli [options] \fB\-named\fR <command> [name=value] ... Send command to Litecoin Core (with named arguments)
litecoin\-cli [options] help List commands
litecoin\-cli [options] help <command> Get help for a command
kevacoin\-cli [options] \fB\-named\fR <command> [name=value] ... Send command to Kevacoin Core (with named arguments)
kevacoin\-cli [options] help List commands
kevacoin\-cli [options] help <command> Get help for a command
.SH OPTIONS
.HP
\-?
@ -20,7 +20,7 @@ This help message @@ -20,7 +20,7 @@ This help message
.HP
\fB\-conf=\fR<file>
.IP
Specify configuration file (default: litecoin.conf)
Specify configuration file (default: kevacoin.conf)
.HP
\fB\-datadir=\fR<dir>
.IP
@ -93,16 +93,16 @@ input is used for the RPC password. @@ -93,16 +93,16 @@ input is used for the RPC password.
\fB\-rpcwallet=\fR<walletname>
.IP
Send RPC for non\-default wallet on RPC server (argument is wallet
filename in litecoind directory, required if litecoind/\-Qt runs
filename in kevacoind directory, required if kevacoind/\-Qt runs
with multiple wallets)
.SH COPYRIGHT
Copyright (C) 2011-2018 The Litecoin Core developers
Copyright (C) 2011-2018 The Kevacoin Core developers
Copyright (C) 2009-2018 The Bitcoin Core developers
Please contribute if you find Litecoin Core useful. Visit
<https://litecoin.org> for further information about the software.
Please contribute if you find Kevacoin Core useful. Visit
<https://kevacoin.org> for further information about the software.
The source code is available from
<https://github.com/litecoin-project/litecoin>.
<https://github.com/kevacoin-project/kevacoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING

20
doc/man/litecoin-qt.1 → doc/man/kevacoin-qt.1

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH LITECOIN-QT "1" "September 2018" "litecoin-qt v0.16.3.0" "User Commands"
.TH LITECOIN-QT "1" "September 2018" "kevacoin-qt v0.16.3.0" "User Commands"
.SH NAME
litecoin-qt \- manual page for litecoin-qt v0.16.3.0
kevacoin-qt \- manual page for kevacoin-qt v0.16.3.0
.SH DESCRIPTION
Litecoin Core version v0.16.3.0 (64\-bit)
Kevacoin Core version v0.16.3.0 (64\-bit)
Usage:
.IP
litecoin\-qt [command\-line options]
kevacoin\-qt [command\-line options]
.SH OPTIONS
.HP
\-?
@ -38,7 +38,7 @@ testnet: @@ -38,7 +38,7 @@ testnet:
.HP
\fB\-conf=\fR<file>
.IP
Specify configuration file (default: litecoin.conf)
Specify configuration file (default: kevacoin.conf)
.HP
\fB\-datadir=\fR<dir>
.IP
@ -86,7 +86,7 @@ leave that many cores free, default: 0) @@ -86,7 +86,7 @@ leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
.IP
Specify pid file (default: litecoind.pid)
Specify pid file (default: kevacoind.pid)
.HP
\fB\-prune=\fR<n>
.IP
@ -561,13 +561,13 @@ Show splash screen on startup (default: 1) @@ -561,13 +561,13 @@ Show splash screen on startup (default: 1)
.IP
Reset all settings changed in the GUI
.SH COPYRIGHT
Copyright (C) 2011-2018 The Litecoin Core developers
Copyright (C) 2011-2018 The Kevacoin Core developers
Copyright (C) 2009-2018 The Bitcoin Core developers
Please contribute if you find Litecoin Core useful. Visit
<https://litecoin.org> for further information about the software.
Please contribute if you find Kevacoin Core useful. Visit
<https://kevacoin.org> for further information about the software.
The source code is available from
<https://github.com/litecoin-project/litecoin>.
<https://github.com/kevacoin-project/kevacoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING

22
doc/man/litecoin-tx.1 → doc/man/kevacoin-tx.1

@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH LITECOIN-TX "1" "September 2018" "litecoin-tx v0.16.3.0" "User Commands"
.TH LITECOIN-TX "1" "September 2018" "kevacoin-tx v0.16.3.0" "User Commands"
.SH NAME
litecoin-tx \- manual page for litecoin-tx v0.16.3.0
kevacoin-tx \- manual page for kevacoin-tx v0.16.3.0
.SH DESCRIPTION
Litecoin Core litecoin\-tx utility version v0.16.3.0
Kevacoin Core kevacoin\-tx utility version v0.16.3.0
.SS "Usage:"
.TP
litecoin\-tx [options] <hex\-tx> [commands]
Update hex\-encoded litecoin transaction
kevacoin\-tx [options] <hex\-tx> [commands]
Update hex\-encoded kevacoin transaction
.TP
litecoin\-tx [options] \fB\-create\fR [commands]
Create hex\-encoded litecoin transaction
kevacoin\-tx [options] \fB\-create\fR [commands]
Create hex\-encoded kevacoin transaction
.SH OPTIONS
.HP
\-?
@ -112,13 +112,13 @@ set=NAME:JSON\-STRING @@ -112,13 +112,13 @@ set=NAME:JSON\-STRING
.IP
Set register NAME to given JSON\-STRING
.SH COPYRIGHT
Copyright (C) 2011-2018 The Litecoin Core developers
Copyright (C) 2011-2018 The Kevacoin Core developers
Copyright (C) 2009-2018 The Bitcoin Core developers
Please contribute if you find Litecoin Core useful. Visit
<https://litecoin.org> for further information about the software.
Please contribute if you find Kevacoin Core useful. Visit
<https://kevacoin.org> for further information about the software.
The source code is available from
<https://github.com/litecoin-project/litecoin>.
<https://github.com/kevacoin-project/kevacoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING

22
doc/man/litecoind.1 → doc/man/kevacoind.1

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.6.
.TH LITECOIND "1" "September 2018" "litecoind v0.16.3.0" "User Commands"
.TH LITECOIND "1" "September 2018" "kevacoind v0.16.3.0" "User Commands"
.SH NAME
litecoind \- manual page for litecoind v0.16.3.0
kevacoind \- manual page for kevacoind v0.16.3.0
.SH DESCRIPTION
Litecoin Core Daemon version v0.16.3.0
Kevacoin Core Daemon version v0.16.3.0
.SS "Usage:"
.TP
litecoind [options]
Start Litecoin Core Daemon
kevacoind [options]
Start Kevacoin Core Daemon
.SH OPTIONS
.HP
\-?
@ -39,7 +39,7 @@ testnet: @@ -39,7 +39,7 @@ testnet:
.HP
\fB\-conf=\fR<file>
.IP
Specify configuration file (default: litecoin.conf)
Specify configuration file (default: kevacoin.conf)
.HP
\fB\-daemon\fR
.IP
@ -91,7 +91,7 @@ leave that many cores free, default: 0) @@ -91,7 +91,7 @@ leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
.IP
Specify pid file (default: litecoind.pid)
Specify pid file (default: kevacoind.pid)
.HP
\fB\-prune=\fR<n>
.IP
@ -540,13 +540,13 @@ non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1) @@ -540,13 +540,13 @@ non\-verbose mode, non\-segwit(0) or segwit(1) (default: 1)
.IP
Set the number of threads to service RPC calls (default: 4)
.SH COPYRIGHT
Copyright (C) 2011-2018 The Litecoin Core developers
Copyright (C) 2011-2018 The Kevacoin Core developers
Copyright (C) 2009-2018 The Bitcoin Core developers
Please contribute if you find Litecoin Core useful. Visit
<https://litecoin.org> for further information about the software.
Please contribute if you find Kevacoin Core useful. Visit
<https://kevacoin.org> for further information about the software.
The source code is available from
<https://github.com/litecoin-project/litecoin>.
<https://github.com/kevacoin-project/kevacoin>.
This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING

4
doc/reduce-traffic.md

@ -3,7 +3,7 @@ Reduce Traffic @@ -3,7 +3,7 @@ Reduce Traffic
Some node operators need to deal with bandwidth caps imposed by their ISPs.
By default, litecoin-core allows up to 125 connections to different peers, 8 of
By default, kevacoin-core allows up to 125 connections to different peers, 8 of
which are outbound. You can therefore, have at most 117 inbound connections.
The default settings can result in relatively significant traffic consumption.
@ -33,5 +33,5 @@ blocks and transactions to fewer nodes. @@ -33,5 +33,5 @@ blocks and transactions to fewer nodes.
## 3. Reduce maximum connections (`-maxconnections=<num>`)
Reducing the maximum connected nodes to a minimum could be desirable if traffic
limits are tiny. Keep in mind that litecoin's trustless model works best if you are
limits are tiny. Keep in mind that kevacoin's trustless model works best if you are
connected to a handful of nodes.

18
doc/release-notes-litecoin.md

@ -1,25 +1,25 @@ @@ -1,25 +1,25 @@
Litecoin Core version 0.16.3 is now available from:
Kevacoin Core version 0.16.3 is now available from:
<https://download.litecoin.org/litecoin-0.16.3/>
<https://download.kevacoin.org/kevacoin-0.16.3/>
This is a new minor version release, with various bugfixes
as well as updated translations.
Please report bugs using the issue tracker at GitHub:
<https://github.com/litecoin-project/litecoin/issues>
<https://github.com/kevacoin-project/kevacoin/issues>
To receive security and update notifications, please subscribe to:
<https://groups.google.com/forum/#!forum/litecoin-dev>
<https://groups.google.com/forum/#!forum/kevacoin-dev>
How to Upgrade
==============
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over `/Applications/Litecoin-Qt` (on Mac)
or `litecoind`/`litecoin-qt` (on Linux).
installer (on Windows) or just copy over `/Applications/Kevacoin-Qt` (on Mac)
or `kevacoind`/`kevacoin-qt` (on Linux).
The first time you run version 0.15.0 or newer, your chainstate database will be converted to a
new format, which will take anywhere from a few minutes to half an hour,
@ -40,10 +40,10 @@ wallets that were created with older versions are not affected by this. @@ -40,10 +40,10 @@ wallets that were created with older versions are not affected by this.
Compatibility
==============
Litecoin Core is extensively tested on multiple operating systems using
Kevacoin Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later. Windows XP is not supported.
Litecoin Core should also work on most other Unix-like systems but is not
Kevacoin Core should also work on most other Unix-like systems but is not
frequently tested on them.
Notable changes
@ -53,7 +53,7 @@ Denial-of-Service vulnerability @@ -53,7 +53,7 @@ Denial-of-Service vulnerability
-------------------------------
A denial-of-service vulnerability exploitable by miners has been discovered in
Litecoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of
Kevacoin Core versions 0.14.0 up to 0.16.2. It is recommended to upgrade any of
the vulnerable versions to 0.16.3 as soon as possible.
0.16.3 change log

126
doc/release-process.md

@ -5,7 +5,7 @@ Before every release candidate: @@ -5,7 +5,7 @@ Before every release candidate:
* Update translations (ping wumpus on IRC) see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations).
* Update manpages, see [gen-manpages.sh](https://github.com/litecoin-project/litecoin/blob/master/contrib/devtools/README.md#gen-manpagessh).
* Update manpages, see [gen-manpages.sh](https://github.com/kevacoin-project/kevacoin/blob/master/contrib/devtools/README.md#gen-manpagessh).
Before every minor and major release:
@ -33,12 +33,12 @@ If you're using the automated script (found in [contrib/gitian-build.sh](/contri @@ -33,12 +33,12 @@ If you're using the automated script (found in [contrib/gitian-build.sh](/contri
Check out the source code in the following directory hierarchy.
cd /path/to/your/toplevel/build
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
git clone https://github.com/kevacoin-project/gitian.sigs.ltc.git
git clone https://github.com/kevacoin-project/kevacoin-detached-sigs.git
git clone https://github.com/devrandom/gitian-builder.git
git clone https://github.com/litecoin-project/litecoin.git
git clone https://github.com/kevacoin-project/kevacoin.git
### Litecoin maintainers/release engineers, suggestion for writing release notes
### Kevacoin maintainers/release engineers, suggestion for writing release notes
Write release notes. git shortlog helps a lot, for example:
@ -61,7 +61,7 @@ If you're using the automated script (found in [contrib/gitian-build.sh](/contri @@ -61,7 +61,7 @@ If you're using the automated script (found in [contrib/gitian-build.sh](/contri
Setup Gitian descriptors:
pushd ./litecoin
pushd ./kevacoin
export SIGNER=(your Gitian key, ie bluematt, sipa, etc)
export VERSION=(new version, e.g. 0.8.0)
git fetch
@ -95,7 +95,7 @@ Create the OS X SDK tarball, see the [OS X readme](README_osx.md) for details, a @@ -95,7 +95,7 @@ Create the OS X SDK tarball, see the [OS X readme](README_osx.md) for details, a
By default, Gitian will fetch source files as needed. To cache them ahead of time:
pushd ./gitian-builder
make -C ../litecoin/depends download SOURCES_PATH=`pwd`/cache/common
make -C ../kevacoin/depends download SOURCES_PATH=`pwd`/cache/common
popd
Only missing files will be fetched, so this is safe to re-run for each build.
@ -103,50 +103,50 @@ Only missing files will be fetched, so this is safe to re-run for each build. @@ -103,50 +103,50 @@ Only missing files will be fetched, so this is safe to re-run for each build.
NOTE: Offline builds must use the --url flag to ensure Gitian fetches only from local URLs. For example:
pushd ./gitian-builder
./bin/gbuild --url litecoin=/path/to/litecoin,signature=/path/to/sigs {rest of arguments}
./bin/gbuild --url kevacoin=/path/to/kevacoin,signature=/path/to/sigs {rest of arguments}
popd
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
### Build and sign Litecoin Core for Linux, Windows, and OS X:
### Build and sign Kevacoin Core for Linux, Windows, and OS X:
pushd ./gitian-builder
./bin/gbuild --num-make 2 --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/litecoin-*.tar.gz build/out/src/litecoin-*.tar.gz ../
./bin/gbuild --num-make 2 --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/litecoin-*-win-unsigned.tar.gz inputs/litecoin-win-unsigned.tar.gz
mv build/out/litecoin-*.zip build/out/litecoin-*.exe ../
./bin/gbuild --num-make 2 --memory 3000 --commit litecoin=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/litecoin-*-osx-unsigned.tar.gz inputs/litecoin-osx-unsigned.tar.gz
mv build/out/litecoin-*.tar.gz build/out/litecoin-*.dmg ../
./bin/gbuild --num-make 2 --memory 3000 --commit kevacoin=v${VERSION} ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-linux --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/kevacoin-*.tar.gz build/out/src/kevacoin-*.tar.gz ../
./bin/gbuild --num-make 2 --memory 3000 --commit kevacoin=v${VERSION} ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win-unsigned --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/kevacoin-*-win-unsigned.tar.gz inputs/kevacoin-win-unsigned.tar.gz
mv build/out/kevacoin-*.zip build/out/kevacoin-*.exe ../
./bin/gbuild --num-make 2 --memory 3000 --commit kevacoin=v${VERSION} ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-unsigned --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/kevacoin-*-osx-unsigned.tar.gz inputs/kevacoin-osx-unsigned.tar.gz
mv build/out/kevacoin-*.tar.gz build/out/kevacoin-*.dmg ../
popd
Build output expected:
1. source tarball (`litecoin-${VERSION}.tar.gz`)
2. linux 32-bit and 64-bit dist tarballs (`litecoin-${VERSION}-linux[32|64].tar.gz`)
3. windows 32-bit and 64-bit unsigned installers and dist zips (`litecoin-${VERSION}-win[32|64]-setup-unsigned.exe`, `litecoin-${VERSION}-win[32|64].zip`)
4. OS X unsigned installer and dist tarball (`litecoin-${VERSION}-osx-unsigned.dmg`, `litecoin-${VERSION}-osx64.tar.gz`)
1. source tarball (`kevacoin-${VERSION}.tar.gz`)
2. linux 32-bit and 64-bit dist tarballs (`kevacoin-${VERSION}-linux[32|64].tar.gz`)
3. windows 32-bit and 64-bit unsigned installers and dist zips (`kevacoin-${VERSION}-win[32|64]-setup-unsigned.exe`, `kevacoin-${VERSION}-win[32|64].zip`)
4. OS X unsigned installer and dist tarball (`kevacoin-${VERSION}-osx-unsigned.dmg`, `kevacoin-${VERSION}-osx64.tar.gz`)
5. Gitian signatures (in `gitian.sigs.ltc/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
### Verify other gitian builders signatures to your own. (Optional)
Add other gitian builders keys to your gpg keyring, and/or refresh keys.
gpg --import litecoin/contrib/gitian-keys/*.pgp
gpg --import kevacoin/contrib/gitian-keys/*.pgp
gpg --refresh-keys
Verify the signatures
pushd ./gitian-builder
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-unsigned ../litecoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../kevacoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-unsigned ../kevacoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../kevacoin/contrib/gitian-descriptors/gitian-osx.yml
popd
### Next steps:
@ -167,22 +167,22 @@ Codesigner only: Create Windows/OS X detached signatures: @@ -167,22 +167,22 @@ Codesigner only: Create Windows/OS X detached signatures:
Codesigner only: Sign the osx binary:
transfer litecoin-osx-unsigned.tar.gz to osx for signing
tar xf litecoin-osx-unsigned.tar.gz
transfer kevacoin-osx-unsigned.tar.gz to osx for signing
tar xf kevacoin-osx-unsigned.tar.gz
./detached-sig-create.sh -s "Key ID"
Enter the keychain password and authorize the signature
Move signature-osx.tar.gz back to the gitian host
Codesigner only: Sign the windows binaries:
tar xf litecoin-win-unsigned.tar.gz
tar xf kevacoin-win-unsigned.tar.gz
./detached-sig-create.sh -key /path/to/codesign.key
Enter the passphrase for the key when prompted
signature-win.tar.gz will be created
Codesigner only: Commit the detached codesign payloads:
cd ~/litecoin-detached-sigs
cd ~/kevacoin-detached-sigs
checkout the appropriate branch for this release series
rm -rf *
tar xf signature-osx.tar.gz
@ -195,25 +195,25 @@ Codesigner only: Commit the detached codesign payloads: @@ -195,25 +195,25 @@ Codesigner only: Commit the detached codesign payloads:
Non-codesigners: wait for Windows/OS X detached signatures:
- Once the Windows/OS X builds each have 3 matching signatures, they will be signed with their respective release keys.
- Detached signatures will then be committed to the [litecoin-detached-sigs](https://github.com/litecoin-project/litecoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
- Detached signatures will then be committed to the [kevacoin-detached-sigs](https://github.com/kevacoin-project/kevacoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
Create (and optionally verify) the signed OS X binary:
pushd ./gitian-builder
./bin/gbuild -i --commit signature=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../litecoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/litecoin-osx-signed.dmg ../litecoin-${VERSION}-osx.dmg
./bin/gbuild -i --commit signature=v${VERSION} ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-osx-signed --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-signed ../kevacoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/kevacoin-osx-signed.dmg ../kevacoin-${VERSION}-osx.dmg
popd
Create (and optionally verify) the signed Windows binaries:
pushd ./gitian-builder
./bin/gbuild -i --commit signature=v${VERSION} ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs.ltc/ ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-signed ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/litecoin-*win64-setup.exe ../litecoin-${VERSION}-win64-setup.exe
mv build/out/litecoin-*win32-setup.exe ../litecoin-${VERSION}-win32-setup.exe
./bin/gbuild -i --commit signature=v${VERSION} ../kevacoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win-signed --destination ../gitian.sigs.ltc/ ../kevacoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-win-signed ../kevacoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/kevacoin-*win64-setup.exe ../kevacoin-${VERSION}-win64-setup.exe
mv build/out/kevacoin-*win32-setup.exe ../kevacoin-${VERSION}-win32-setup.exe
popd
Commit your signature for the signed OS X/Windows binaries:
@ -235,23 +235,23 @@ sha256sum * > SHA256SUMS @@ -235,23 +235,23 @@ sha256sum * > SHA256SUMS
The list of files should be:
```
litecoin-${VERSION}-aarch64-linux-gnu.tar.gz
litecoin-${VERSION}-arm-linux-gnueabihf.tar.gz
litecoin-${VERSION}-i686-pc-linux-gnu.tar.gz
litecoin-${VERSION}-x86_64-linux-gnu.tar.gz
litecoin-${VERSION}-osx64.tar.gz
litecoin-${VERSION}-osx.dmg
litecoin-${VERSION}.tar.gz
litecoin-${VERSION}-win32-setup.exe
litecoin-${VERSION}-win32.zip
litecoin-${VERSION}-win64-setup.exe
litecoin-${VERSION}-win64.zip
kevacoin-${VERSION}-aarch64-linux-gnu.tar.gz
kevacoin-${VERSION}-arm-linux-gnueabihf.tar.gz
kevacoin-${VERSION}-i686-pc-linux-gnu.tar.gz
kevacoin-${VERSION}-x86_64-linux-gnu.tar.gz
kevacoin-${VERSION}-osx64.tar.gz
kevacoin-${VERSION}-osx.dmg
kevacoin-${VERSION}.tar.gz
kevacoin-${VERSION}-win32-setup.exe
kevacoin-${VERSION}-win32.zip
kevacoin-${VERSION}-win64-setup.exe
kevacoin-${VERSION}-win64.zip
```
The `*-debug*` files generated by the gitian build contain debug symbols
for troubleshooting by developers. It is assumed that anyone that is interested
in debugging can run gitian to generate the files for themselves. To avoid
end-user confusion about which file to pick, as well as save storage
space *do not upload these to the litecoin.org server, nor put them in the torrent*.
space *do not upload these to the kevacoin.org server, nor put them in the torrent*.
- GPG-sign it, delete the unsigned file:
```
@ -261,24 +261,24 @@ rm SHA256SUMS @@ -261,24 +261,24 @@ rm SHA256SUMS
(the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files)
Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spurious/nonsensical entry.
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the litecoin.org server.
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the kevacoin.org server.
```
- Update litecoin.org version
- Update kevacoin.org version
- Announce the release:
- litecoin-dev and litecoin-dev mailing list
- kevacoin-dev and kevacoin-dev mailing list
- blog.litecoin.org blog post
- blog.kevacoin.org blog post
- Update title of #litecoin and #litecoin-dev on Freenode IRC
- Update title of #kevacoin and #kevacoin-dev on Freenode IRC
- Optionally twitter, reddit /r/Litecoin, ... but this will usually sort out itself
- Optionally twitter, reddit /r/Kevacoin, ... but this will usually sort out itself
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
- Create a [new GitHub release](https://github.com/litecoin-project/litecoin/releases/new) with a link to the archived release notes.
- Create a [new GitHub release](https://github.com/kevacoin-project/kevacoin/releases/new) with a link to the archived release notes.
- Celebrate

52
doc/tor.md

@ -1,16 +1,16 @@ @@ -1,16 +1,16 @@
TOR SUPPORT IN LITECOIN
======================
It is possible to run Litecoin as a Tor hidden service, and connect to such services.
It is possible to run Kevacoin as a Tor hidden service, and connect to such services.
The following directions assume you have a Tor proxy running on port 9050. Many distributions default to having a SOCKS proxy listening on port 9050, but others may not. In particular, the Tor Browser Bundle defaults to listening on port 9150. See [Tor Project FAQ:TBBSocksPort](https://www.torproject.org/docs/faq.html.en#TBBSocksPort) for how to properly
configure Tor.
1. Run litecoin behind a Tor proxy
1. Run kevacoin behind a Tor proxy
---------------------------------
The first step is running Litecoin behind a Tor proxy. This will already make all
The first step is running Kevacoin behind a Tor proxy. This will already make all
outgoing connections be anonymized, but more is possible.
-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy
@ -31,27 +31,27 @@ outgoing connections be anonymized, but more is possible. @@ -31,27 +31,27 @@ outgoing connections be anonymized, but more is possible.
In a typical situation, this suffices to run behind a Tor proxy:
./litecoin -proxy=127.0.0.1:9050
./kevacoin -proxy=127.0.0.1:9050
2. Run a litecoin hidden server
2. Run a kevacoin hidden server
------------------------------
If you configure your Tor system accordingly, it is possible to make your node also
reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent
config file):
HiddenServiceDir /var/lib/tor/litecoin-service/
HiddenServiceDir /var/lib/tor/kevacoin-service/
HiddenServicePort 9333 127.0.0.1:9333
HiddenServicePort 19335 127.0.0.1:19335
The directory can be different of course, but (both) port numbers should be equal to
your litecoind's P2P listen port (9333 by default).
your kevacoind's P2P listen port (9333 by default).
-externalip=X You can tell litecoin about its publicly reachable address using
-externalip=X You can tell kevacoin about its publicly reachable address using
this option, and this can be a .onion address. Given the above
configuration, you can find your onion address in
/var/lib/tor/litecoin-service/hostname. Onion addresses are given
/var/lib/tor/kevacoin-service/hostname. Onion addresses are given
preference for your node to advertise itself with, for connections
coming from unroutable addresses (such as 127.0.0.1, where the
Tor proxy typically runs).
@ -68,57 +68,57 @@ your litecoind's P2P listen port (9333 by default). @@ -68,57 +68,57 @@ your litecoind's P2P listen port (9333 by default).
In a typical situation, where you're only reachable via Tor, this should suffice:
./litecoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
./kevacoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
(obviously, replace the Onion address with your own). It should be noted that you still
listen on all devices and another node could establish a clearnet connection, when knowing
your address. To mitigate this, additionally bind the address of your Tor proxy:
./litecoind ... -bind=127.0.0.1
./kevacoind ... -bind=127.0.0.1
If you don't care too much about hiding your node, and want to be reachable on IPv4
as well, use `discover` instead:
./litecoind ... -discover
./kevacoind ... -discover
and open port 9333 on your firewall (or use -upnp).
If you only want to use Tor to reach onion addresses, but not use it as a proxy
for normal IPv4/IPv6 communication, use:
./litecoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
./kevacoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
3. Automatically listen on Tor
--------------------------------
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
API, to create and destroy 'ephemeral' hidden services programmatically.
Litecoin Core has been updated to make use of this.
Kevacoin Core has been updated to make use of this.
This means that if Tor is running (and proper authentication has been configured),
Litecoin Core automatically creates a hidden service to listen on. This will positively
Kevacoin Core automatically creates a hidden service to listen on. This will positively
affect the number of available .onion nodes.
This new feature is enabled by default if Litecoin Core is listening (`-listen`), and
This new feature is enabled by default if Kevacoin Core is listening (`-listen`), and
requires a Tor connection to work. It can be explicitly disabled with `-listenonion=0`
and, if not disabled, configured using the `-torcontrol` and `-torpassword` settings.
To show verbose debugging information, pass `-debug=tor`.
Connecting to Tor's control socket API requires one of two authentication methods to be
configured. For cookie authentication the user running litecoind must have write access
to the `CookieAuthFile` specified in Tor configuration. In some cases this is
preconfigured and the creation of a hidden service is automatic. If permission problems
are seen with `-debug=tor` they can be resolved by adding both the user running tor and
the user running litecoind to the same group and setting permissions appropriately. On
Debian-based systems the user running litecoind can be added to the debian-tor group,
which has the appropriate permissions. An alternative authentication method is the use
of the `-torpassword` flag and a `hash-password` which can be enabled and specified in
Connecting to Tor's control socket API requires one of two authentication methods to be
configured. For cookie authentication the user running kevacoind must have write access
to the `CookieAuthFile` specified in Tor configuration. In some cases this is
preconfigured and the creation of a hidden service is automatic. If permission problems
are seen with `-debug=tor` they can be resolved by adding both the user running tor and
the user running kevacoind to the same group and setting permissions appropriately. On
Debian-based systems the user running kevacoind can be added to the debian-tor group,
which has the appropriate permissions. An alternative authentication method is the use
of the `-torpassword` flag and a `hash-password` which can be enabled and specified in
Tor configuration.
4. Privacy recommendations
---------------------------
- Do not add anything but litecoin ports to the hidden service created in section 2.
- Do not add anything but kevacoin ports to the hidden service created in section 2.
If you run a web service too, create a new hidden service for that.
Otherwise it is trivial to link them, which may reduce privacy. Hidden
services created automatically (as in section 3) always have only one port

2
doc/travis-ci.md

@ -32,7 +32,7 @@ trigger cache-invalidation and rebuilds as necessary. @@ -32,7 +32,7 @@ trigger cache-invalidation and rebuilds as necessary.
These caches can be manually removed if necessary. This is one of the very few
manual operations that is possible with Travis, and it can be done by the
Litecoin Core committer via the Travis web interface.
Kevacoin Core committer via the Travis web interface.
In some cases, secure strings may be needed for hiding sensitive info such as
private keys or URLs. The travis client may be used to create these strings:

2
doc/zmq.md

@ -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. Kevacoind 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.

22
share/qt/Info.plist.in

@ -29,16 +29,16 @@ @@ -29,16 +29,16 @@
<string>????</string>
<key>CFBundleExecutable</key>
<string>Litecoin-Qt</string>
<string>Kevacoin-Qt</string>
<key>CFBundleName</key>
<string>Litecoin-Qt</string>
<string>Kevacoin-Qt</string>
<key>LSHasLocalizedDisplayName</key>
<true/>
<key>CFBundleIdentifier</key>
<string>org.litecoin.Litecoin-Qt</string>
<string>org.kevacoin.Kevacoin-Qt</string>
<key>CFBundleURLTypes</key>
<array>
@ -46,10 +46,10 @@ @@ -46,10 +46,10 @@
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>org.litecoin.LitecoinPayment</string>
<string>org.kevacoin.LitecoinPayment</string>
<key>CFBundleURLSchemes</key>
<array>
<string>litecoin</string>
<string>kevacoin</string>
</array>
</dict>
</array>
@ -58,9 +58,9 @@ @@ -58,9 +58,9 @@
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>org.litecoin.paymentrequest</string>
<string>org.kevacoin.paymentrequest</string>
<key>UTTypeDescription</key>
<string>Litecoin payment request</string>
<string>Kevacoin payment request</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>application/x-litecoin-payment-request</string>
<string>application/x-kevacoin-payment-request</string>
<key>public.filename-extension</key>
<array>
<string>litecoinpaymentrequest</string>
@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>org.litecoin.paymentrequest</string>
<string>org.kevacoin.paymentrequest</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
@ -99,7 +99,7 @@ @@ -99,7 +99,7 @@
<key>LSAppNapIsDisabled</key>
<string>True</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.finance</string>
</dict>

6
share/rpcauth/rpcauth.py

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
#!/usr/bin/env python
# Copyright (c) 2015-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
import hashlib
@ -32,10 +32,10 @@ digestmod = hashlib.sha256 @@ -32,10 +32,10 @@ digestmod = hashlib.sha256
if sys.version_info.major >= 3:
password = password.decode('utf-8')
digestmod = 'SHA256'
m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), digestmod)
result = m.hexdigest()
print("String to be appended to litecoin.conf:")
print("String to be appended to kevacoin.conf:")
print("rpcauth="+username+":"+salt+"$"+result)
print("Your password:\n"+password)

8
share/setup.nsi.in

@ -51,9 +51,9 @@ Var StartMenuGroup @@ -51,9 +51,9 @@ Var StartMenuGroup
# Installer attributes
OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-win@WINDOWS_BITS@-setup.exe
!if "@WINDOWS_BITS@" == "64"
InstallDir $PROGRAMFILES64\Litecoin
InstallDir $PROGRAMFILES64\Kevacoin
!else
InstallDir $PROGRAMFILES\Litecoin
InstallDir $PROGRAMFILES\Kevacoin
!endif
CRCCheck on
XPStyle on
@ -105,7 +105,7 @@ Section -post SEC0001 @@ -105,7 +105,7 @@ Section -post SEC0001
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
WriteRegStr HKCR "@PACKAGE_TARNAME@" "URL Protocol" ""
WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Litecoin"
WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Kevacoin"
WriteRegStr HKCR "@PACKAGE_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@
WriteRegStr HKCR "@PACKAGE_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"'
SectionEnd
@ -138,7 +138,7 @@ Section -un.post UNSEC0001 @@ -138,7 +138,7 @@ Section -un.post UNSEC0001
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk"
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@PACKAGE_NAME@ (testnet, @WINDOWS_BITS@-bit).lnk"
Delete /REBOOTOK "$SMSTARTUP\Litecoin.lnk"
Delete /REBOOTOK "$SMSTARTUP\Kevacoin.lnk"
Delete /REBOOTOK $INSTDIR\uninstall.exe
Delete /REBOOTOK $INSTDIR\debug.log
Delete /REBOOTOK $INSTDIR\db.log

2
src/chainparamsseeds.h

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#ifndef BITCOIN_CHAINPARAMSSEEDS_H
#define BITCOIN_CHAINPARAMSSEEDS_H
/**
* List of fixed seed nodes for the litecoin network
* List of fixed seed nodes for the kevacoin network
* AUTOGENERATED by contrib/seeds/generate-seeds.py
*
* Each line contains a 16-byte IPv6 address and a port.

2
src/pow.cpp

@ -52,7 +52,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead @@ -52,7 +52,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
{
assert(pindexLast != nullptr);
// Go back by what we want to be 14 days worth of blocks
// Litecoin: This fixes an issue where a 51% attack can change difficulty at will.
// Kevacoin: This fixes an issue where a 51% attack can change difficulty at will.
// Go back the full period unless it's the first retarget after genesis. Code courtesy of Art Forz
int blockstogoback = params.DifficultyAdjustmentInterval()-1;
if ((pindexLast->nHeight+1) != params.DifficultyAdjustmentInterval())

4
src/rpc/mining.cpp

@ -201,7 +201,7 @@ UniValue getmininginfo(const JSONRPCRequest& request) @@ -201,7 +201,7 @@ UniValue getmininginfo(const JSONRPCRequest& request)
" \"pooledtx\": n (numeric) The size of the mempool\n"
" \"chain\": \"xxxx\", (string) current network name as defined in BIP70 (main, test, regtest)\n"
" \"warnings\": \"...\" (string) any network and blockchain warnings\n"
" \"errors\": \"...\" (string) DEPRECATED. Same as warnings. Only shown when litecoind is started with -deprecatedrpc=getmininginfo\n"
" \"errors\": \"...\" (string) DEPRECATED. Same as warnings. Only shown when kevacoind is started with -deprecatedrpc=getmininginfo\n"
"}\n"
"\nExamples:\n"
+ HelpExampleCli("getmininginfo", "")
@ -794,7 +794,7 @@ UniValue estimatefee(const JSONRPCRequest& request) @@ -794,7 +794,7 @@ UniValue estimatefee(const JSONRPCRequest& request)
if (!IsDeprecatedRPCEnabled("estimatefee")) {
throw JSONRPCError(RPC_METHOD_DEPRECATED, "estimatefee is deprecated and will be fully removed in v0.17. "
"To use estimatefee in v0.16, restart litecoind with -deprecatedrpc=estimatefee.\n"
"To use estimatefee in v0.16, restart kevacoind with -deprecatedrpc=estimatefee.\n"
"Projects should transition to using estimatesmartfee before upgrading to v0.17");
}

4
src/rpc/misc.cpp

@ -264,7 +264,7 @@ UniValue createmultisig(const JSONRPCRequest& request) @@ -264,7 +264,7 @@ UniValue createmultisig(const JSONRPCRequest& request)
"It returns a json object with the address and redeemScript.\n"
"DEPRECATION WARNING: Using addresses with createmultisig is deprecated. Clients must\n"
"transition to using addmultisigaddress to create multisig addresses with addresses known\n"
"to the wallet before upgrading to v0.17. To use the deprecated functionality, start litecoind with -deprecatedrpc=createmultisig\n"
"to the wallet before upgrading to v0.17. To use the deprecated functionality, start kevacoind with -deprecatedrpc=createmultisig\n"
"\nArguments:\n"
"1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\n"
"2. \"keys\" (string, required) A json array of hex-encoded public keys\n"
@ -305,7 +305,7 @@ UniValue createmultisig(const JSONRPCRequest& request) @@ -305,7 +305,7 @@ UniValue createmultisig(const JSONRPCRequest& request)
#endif
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, strprintf("Invalid public key: %s\nNote that from v0.16, createmultisig no longer accepts addresses."
" Clients must transition to using addmultisigaddress to create multisig addresses with addresses known to the wallet before upgrading to v0.17."
" To use the deprecated functionality, start litecoind with -deprecatedrpc=createmultisig", keys[i].get_str()));
" To use the deprecated functionality, start kevacoind with -deprecatedrpc=createmultisig", keys[i].get_str()));
}
}

4
src/wallet/rpcdump.cpp

@ -678,7 +678,7 @@ UniValue dumpwallet(const JSONRPCRequest& request) @@ -678,7 +678,7 @@ UniValue dumpwallet(const JSONRPCRequest& request)
"Note that if your wallet contains keys which are not derived from your HD seed (e.g. imported keys), these are not covered by\n"
"only backing up the seed itself, and must be backed up too (e.g. ensure you back up the whole dumpfile).\n"
"\nArguments:\n"
"1. \"filename\" (string, required) The filename with path (either absolute or relative to litecoind)\n"
"1. \"filename\" (string, required) The filename with path (either absolute or relative to kevacoind)\n"
"\nResult:\n"
"{ (json object)\n"
" \"filename\" : { (string) The filename with full absolute path\n"
@ -1260,7 +1260,7 @@ UniValue importmulti(const JSONRPCRequest& mainRequest) @@ -1260,7 +1260,7 @@ UniValue importmulti(const JSONRPCRequest& mainRequest)
"block from time %d, which is after or within %d seconds of key creation, and "
"could contain transactions pertaining to the key. As a result, transactions "
"and coins using this key may not appear in the wallet. This error could be "
"caused by pruning or data corruption (see litecoind log for details) and could "
"caused by pruning or data corruption (see kevacoind log for details) and could "
"be dealt with by downloading and rescanning the relevant blocks (see -reindex "
"and -rescan options).",
GetImportTimestamp(request, now), scannedTime - TIMESTAMP_WINDOW - 1, TIMESTAMP_WINDOW)));

4
src/wallet/rpcwallet.cpp

@ -1249,7 +1249,7 @@ UniValue addmultisigaddress(const JSONRPCRequest& request) @@ -1249,7 +1249,7 @@ UniValue addmultisigaddress(const JSONRPCRequest& request)
" \"address\":\"multisigaddress\", (string) The value of the new multisig address.\n"
" \"redeemScript\":\"script\" (string) The string value of the hex-encoded redemption script.\n"
"}\n"
"\nResult (DEPRECATED. To see this result in v0.16 instead, please start litecoind with -deprecatedrpc=addmultisigaddress).\n"
"\nResult (DEPRECATED. To see this result in v0.16 instead, please start kevacoind with -deprecatedrpc=addmultisigaddress).\n"
" clients should transition to the new output api before upgrading to v0.17.\n"
"\"address\" (string) A kevacoin address associated with the keys.\n"
@ -1391,7 +1391,7 @@ UniValue addwitnessaddress(const JSONRPCRequest& request) @@ -1391,7 +1391,7 @@ UniValue addwitnessaddress(const JSONRPCRequest& request)
if (!IsDeprecatedRPCEnabled("addwitnessaddress")) {
throw JSONRPCError(RPC_METHOD_DEPRECATED, "addwitnessaddress is deprecated and will be fully removed in v0.17. "
"To use addwitnessaddress in v0.16, restart litecoind with -deprecatedrpc=addwitnessaddress.\n"
"To use addwitnessaddress in v0.16, restart kevacoind with -deprecatedrpc=addwitnessaddress.\n"
"Projects should transition to using the address_type argument of getnewaddress, or option -addresstype=[bech32|p2sh-segwit] instead.\n");
}

2
src/wallet/test/wallet_tests.cpp

@ -438,7 +438,7 @@ BOOST_FIXTURE_TEST_CASE(rescan, TestChain100Setup) @@ -438,7 +438,7 @@ BOOST_FIXTURE_TEST_CASE(rescan, TestChain100Setup)
"timestamp %d. There was an error reading a block from time %d, which is after or within %d "
"seconds of key creation, and could contain transactions pertaining to the key. As a result, "
"transactions and coins using this key may not appear in the wallet. This error could be caused "
"by pruning or data corruption (see litecoind log for details) and could be dealt with by "
"by pruning or data corruption (see kevacoind log for details) and could be dealt with by "
"downloading and rescanning the relevant blocks (see -reindex and -rescan "
"options).\"}},{\"success\":true}]",
0, oldTip->GetBlockTimeMax(), TIMESTAMP_WINDOW));

50
test/README.md

@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
This directory contains integration tests that test litecoind and its
This directory contains integration tests that test kevacoind and its
utilities in their entirety. It does not contain unit tests, which
can be found in [/src/test](/src/test), [/src/wallet/test](/src/wallet/test),
etc.
There are currently two sets of tests in this directory:
- [functional](/test/functional) which test the functionality of
litecoind and litecoin-qt by interacting with them through the RPC and P2P
- [functional](/test/functional) which test the functionality of
kevacoind and kevacoin-qt by interacting with them through the RPC and P2P
interfaces.
- [util](/test/util) which tests the litecoin utilities, currently only
litecoin-tx.
- [util](/test/util) which tests the kevacoin utilities, currently only
kevacoin-tx.
The util tests are run as part of `make check` target. The functional
tests are run by the travis continuous build process whenever a pull
@ -70,29 +70,29 @@ options. Run `test_runner.py -h` to see them all. @@ -70,29 +70,29 @@ options. Run `test_runner.py -h` to see them all.
##### Resource contention
The P2P and RPC ports used by the litecoind nodes-under-test are chosen to make
conflicts with other processes unlikely. However, if there is another litecoind
The P2P and RPC ports used by the kevacoind nodes-under-test are chosen to make
conflicts with other processes unlikely. However, if there is another kevacoind
process running on the system (perhaps from a previous test which hasn't successfully
killed all its litecoind nodes), then there may be a port conflict which will
killed all its kevacoind nodes), then there may be a port conflict which will
cause the test to fail. It is recommended that you run the tests on a system
where no other litecoind processes are running.
where no other kevacoind processes are running.
On linux, the test_framework will warn if there is another
litecoind process running when the tests are started.
kevacoind process running when the tests are started.
If there are zombie litecoind processes after test failure, you can kill them
If there are zombie kevacoind processes after test failure, you can kill them
by running the following commands. **Note that these commands will kill all
litecoind processes running on the system, so should not be used if any non-test
litecoind processes are being run.**
kevacoind processes running on the system, so should not be used if any non-test
kevacoind processes are being run.**
```bash
killall litecoind
killall kevacoind
```
or
```bash
pkill -9 litecoind
pkill -9 kevacoind
```
@ -103,11 +103,11 @@ functional test is run and is stored in test/cache. This speeds up @@ -103,11 +103,11 @@ functional test is run and is stored in test/cache. This speeds up
test startup times since new blockchains don't need to be generated for
each test. However, the cache may get into a bad state, in which case
tests will fail. If this happens, remove the cache directory (and make
sure litecoind processes are stopped as above):
sure kevacoind processes are stopped as above):
```bash
rm -rf cache
killall litecoind
killall kevacoind
```
##### Test logging
@ -120,13 +120,13 @@ default: @@ -120,13 +120,13 @@ default:
- when run directly, *all* logs are written to `test_framework.log` and INFO
level and above are output to the console.
- when run on Travis, no logs are output to the console. However, if a test
fails, the `test_framework.log` and litecoind `debug.log`s will all be dumped
fails, the `test_framework.log` and kevacoind `debug.log`s will all be dumped
to the console to help troubleshooting.
To change the level of logs output to the console, use the `-l` command line
argument.
`test_framework.log` and litecoind `debug.log`s can be combined into a single
`test_framework.log` and kevacoind `debug.log`s can be combined into a single
aggregate log by running the `combine_logs.py` script. The output can be plain
text, colorized text or html. For example:
@ -153,9 +153,9 @@ import pdb; pdb.set_trace() @@ -153,9 +153,9 @@ import pdb; pdb.set_trace()
```
anywhere in the test. You will then be able to inspect variables, as well as
call methods that interact with the litecoind nodes-under-test.
call methods that interact with the kevacoind nodes-under-test.
If further introspection of the litecoind instances themselves becomes
If further introspection of the kevacoind instances themselves becomes
necessary, this can be accomplished by first setting a pdb breakpoint
at an appropriate location, running the test to that point, then using
`gdb` to attach to the process and debug.
@ -169,19 +169,19 @@ For instance, to attach to `self.node[1]` during a run: @@ -169,19 +169,19 @@ For instance, to attach to `self.node[1]` during a run:
use the directory path to get the pid from the pid file:
```bash
cat /tmp/user/1000/testo9vsdjo3/node1/regtest/litecoind.pid
gdb /home/example/litecoind <pid>
cat /tmp/user/1000/testo9vsdjo3/node1/regtest/kevacoind.pid
gdb /home/example/kevacoind <pid>
```
Note: gdb attach step may require `sudo`
### Util tests
Util tests can be run locally by running `test/util/bitcoin-util-test.py`.
Util tests can be run locally by running `test/util/bitcoin-util-test.py`.
Use the `-v` option for verbose output.
# Writing functional tests
You are encouraged to write functional tests for new or existing features.
Further information about the functional test framework and individual
Further information about the functional test framework and individual
tests is found in [test/functional](/test/functional).

22
test/functional/README.md

@ -74,12 +74,12 @@ over the network (`CBlock`, `CTransaction`, etc, along with the network-level @@ -74,12 +74,12 @@ over the network (`CBlock`, `CTransaction`, etc, along with the network-level
wrappers for them, `msg_block`, `msg_tx`, etc).
- P2P tests have two threads. One thread handles all network communication
with the litecoind(s) being tested (using python's asyncore package); the other
with the kevacoind(s) being tested (using python's asyncore package); the other
implements the test logic.
- `P2PConnection` is the class used to connect to a litecoind. `P2PInterface`
- `P2PConnection` is the class used to connect to a kevacoind. `P2PInterface`
contains the higher level logic for processing P2P payloads and connecting to
the Litecoin Core node application logic. For custom behaviour, subclass the
the Kevacoin Core node application logic. For custom behaviour, subclass the
P2PInterface object and override the callback methods.
- Call `network_thread_start()` after all `P2PInterface` objects are created to
@ -92,14 +92,14 @@ Examples tests are `p2p_unrequested_blocks.py`, `p2p_compactblocks.py`. @@ -92,14 +92,14 @@ Examples tests are `p2p_unrequested_blocks.py`, `p2p_compactblocks.py`.
#### Comptool
- Comptool is a Testing framework for writing tests that compare the block/tx acceptance
behavior of a litecoind against 1 or more other litecoind instances. It should not be used
behavior of a kevacoind against 1 or more other kevacoind instances. It should not be used
to write static tests with known outcomes, since that type of test is easier to write and
maintain using the standard BitcoinTestFramework.
- Set the `num_nodes` variable (defined in `ComparisonTestFramework`) to start up
1 or more nodes. If using 1 node, then `--testbinary` can be used as a command line
option to change the litecoind binary used by the test. If using 2 or more nodes,
then `--refbinary` can be optionally used to change the litecoind that will be used
option to change the kevacoind binary used by the test. If using 2 or more nodes,
then `--refbinary` can be optionally used to change the kevacoind that will be used
on nodes 2 and up.
- Implement a (generator) function called `get_tests()` which yields `TestInstance`s.
@ -108,13 +108,13 @@ Each `TestInstance` consists of: @@ -108,13 +108,13 @@ Each `TestInstance` consists of:
* `object` is a `CBlock`, `CTransaction`, or
`CBlockHeader`. `CBlock`'s and `CTransaction`'s are tested for
acceptance. `CBlockHeader`s can be used so that the test runner can deliver
complete headers-chains when requested from the litecoind, to allow writing
complete headers-chains when requested from the kevacoind, to allow writing
tests where blocks can be delivered out of order but still processed by
headers-first litecoind's.
headers-first kevacoind's.
* `outcome` is `True`, `False`, or `None`. If `True`
or `False`, the tip is compared with the expected tip -- either the
block passed in, or the hash specified as the optional 3rd entry. If
`None` is specified, then the test will compare all the litecoind's
`None` is specified, then the test will compare all the kevacoind's
being tested to see if they all agree on what the best tip is.
* `hash` is the block hash of the tip to compare against. Optional to
specify; if left out then the hash of the block passed in will be used as
@ -128,7 +128,7 @@ Each `TestInstance` consists of: @@ -128,7 +128,7 @@ Each `TestInstance` consists of:
sequence and synced (this is slower when processing many blocks).
- `sync_every_transaction`: `True/False`. Analogous to
`sync_every_block`, except if the outcome on the last tx is "None",
then the contents of the entire mempool are compared across all litecoind
then the contents of the entire mempool are compared across all kevacoind
connections. If `True` or `False`, then only the last tx's
acceptance is tested against the given outcome.
@ -147,7 +147,7 @@ Base class for functional tests. @@ -147,7 +147,7 @@ Base class for functional tests.
Generally useful functions.
#### [test_framework/mininode.py](test_framework/mininode.py)
Basic code to support P2P connectivity to a litecoind.
Basic code to support P2P connectivity to a kevacoind.
#### [test_framework/comptool.py](test_framework/comptool.py)
Framework for comparison-tool style, P2P tests.

4
test/functional/feature_block.py

@ -666,7 +666,7 @@ class FullBlockTest(ComparisonTestFramework): @@ -666,7 +666,7 @@ class FullBlockTest(ComparisonTestFramework):
s = ser_uint256(b46.hashMerkleRoot)
yield rejected(RejectResult(16, b'bad-blk-length'))
# Litecoin: Temporarily disable test
# Kevacoin: Temporarily disable test
# A block with invalid work
#tip(44)
#b47 = block(47, solve=False)
@ -743,7 +743,7 @@ class FullBlockTest(ComparisonTestFramework): @@ -743,7 +743,7 @@ class FullBlockTest(ComparisonTestFramework):
# \-> b56p2 (16)
# \-> b56 (16)
#
# Merkle tree malleability (CVE-2012-2459): repeating sequences of transactions in a block without
# Merkle tree malleability (CVE-2012-2459): repeating sequences of transactions in a block without
# affecting the merkle root of a block, while still invalidating it.
# See: src/consensus/merkle.h
#

2
test/functional/feature_config_args.py

@ -28,7 +28,7 @@ class ConfArgsTest(BitcoinTestFramework): @@ -28,7 +28,7 @@ class ConfArgsTest(BitcoinTestFramework):
self.assert_start_raises_init_error(0, ['-datadir='+new_data_dir], 'Error: Specified data directory "' + new_data_dir + '" does not exist.')
# Check that using non-existent datadir in conf file fails
conf_file = os.path.join(default_data_dir, "litecoin.conf")
conf_file = os.path.join(default_data_dir, "kevacoin.conf")
with open(conf_file, 'a', encoding='utf8') as f:
f.write("datadir=" + new_data_dir + "\n")
self.assert_start_raises_init_error(0, ['-conf='+conf_file], 'Error reading configuration file: specified data directory "' + new_data_dir + '" does not exist.')

6
test/functional/feature_help.py

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Verify that starting litecoin with -h works as expected."""
"""Verify that starting kevacoin with -h works as expected."""
import subprocess
from test_framework.test_framework import BitcoinTestFramework
@ -18,7 +18,7 @@ class HelpTest(BitcoinTestFramework): @@ -18,7 +18,7 @@ class HelpTest(BitcoinTestFramework):
# Don't start the node
def run_test(self):
self.log.info("Start litecoin with -h for help text")
self.log.info("Start kevacoin with -h for help text")
self.nodes[0].start(extra_args=['-h'], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
# Node should exit immediately and output help to stdout.
ret_code = self.nodes[0].process.wait(timeout=1)
@ -28,7 +28,7 @@ class HelpTest(BitcoinTestFramework): @@ -28,7 +28,7 @@ class HelpTest(BitcoinTestFramework):
self.log.info("Help text received: {} (...)".format(output[0:60]))
self.nodes[0].running = False
self.log.info("Start litecoin with -version for version information")
self.log.info("Start kevacoin with -version for version information")
self.nodes[0].start(extra_args=['-version'], stderr=subprocess.PIPE, stdout=subprocess.PIPE)
# Node should exit immediately and output version to stdout.
ret_code = self.nodes[0].process.wait(timeout=1)

14
test/functional/feature_proxy.py

@ -2,13 +2,13 @@ @@ -2,13 +2,13 @@
# Copyright (c) 2015-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test litecoind with different proxy configuration.
"""Test kevacoind with different proxy configuration.
Test plan:
- Start litecoind's with different proxy configurations
- Start kevacoind's with different proxy configurations
- Use addnode to initiate connections
- Verify that proxies are connected to, and the right connection command is given
- Proxy configurations to test on litecoind side:
- Proxy configurations to test on kevacoind side:
- `-proxy` (proxy everything)
- `-onion` (proxy just onions)
- `-proxyrandomize` Circuit randomization
@ -79,9 +79,9 @@ class ProxyTest(BitcoinTestFramework): @@ -79,9 +79,9 @@ class ProxyTest(BitcoinTestFramework):
# Note: proxies are not used to connect to local nodes
# this is because the proxy to use is based on CService.GetNetwork(), which return NET_UNROUTABLE for localhost
args = [
['-listen', '-proxy=%s:%i' % (self.conf1.addr),'-proxyrandomize=1'],
['-listen', '-proxy=%s:%i' % (self.conf1.addr),'-onion=%s:%i' % (self.conf2.addr),'-proxyrandomize=0'],
['-listen', '-proxy=%s:%i' % (self.conf2.addr),'-proxyrandomize=1'],
['-listen', '-proxy=%s:%i' % (self.conf1.addr),'-proxyrandomize=1'],
['-listen', '-proxy=%s:%i' % (self.conf1.addr),'-onion=%s:%i' % (self.conf2.addr),'-proxyrandomize=0'],
['-listen', '-proxy=%s:%i' % (self.conf2.addr),'-proxyrandomize=1'],
[]
]
if self.have_ipv6:
@ -182,7 +182,7 @@ class ProxyTest(BitcoinTestFramework): @@ -182,7 +182,7 @@ class ProxyTest(BitcoinTestFramework):
assert_equal(n1['onion']['proxy'], '%s:%i' % (self.conf2.addr))
assert_equal(n1['onion']['proxy_randomize_credentials'], False)
assert_equal(n1['onion']['reachable'], True)
n2 = networks_dict(self.nodes[2].getnetworkinfo())
for net in ['ipv4','ipv6','onion']:
assert_equal(n2[net]['proxy'], '%s:%i' % (self.conf2.addr))

8
test/functional/interface_bitcoin_cli.py

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
# Copyright (c) 2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test litecoin-cli"""
"""Test kevacoin-cli"""
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import assert_equal, assert_raises_process_error, get_auth_cookie
@ -15,12 +15,12 @@ class TestBitcoinCli(BitcoinTestFramework): @@ -15,12 +15,12 @@ class TestBitcoinCli(BitcoinTestFramework):
def run_test(self):
"""Main test logic"""
self.log.info("Compare responses from gewalletinfo RPC and `litecoin-cli getwalletinfo`")
self.log.info("Compare responses from gewalletinfo RPC and `kevacoin-cli getwalletinfo`")
cli_response = self.nodes[0].cli.getwalletinfo()
rpc_response = self.nodes[0].getwalletinfo()
assert_equal(cli_response, rpc_response)
self.log.info("Compare responses from getblockchaininfo RPC and `litecoin-cli getblockchaininfo`")
self.log.info("Compare responses from getblockchaininfo RPC and `kevacoin-cli getblockchaininfo`")
cli_response = self.nodes[0].cli.getblockchaininfo()
rpc_response = self.nodes[0].getblockchaininfo()
assert_equal(cli_response, rpc_response)
@ -38,7 +38,7 @@ class TestBitcoinCli(BitcoinTestFramework): @@ -38,7 +38,7 @@ class TestBitcoinCli(BitcoinTestFramework):
self.log.info("Make sure that -getinfo with arguments fails")
assert_raises_process_error(1, "-getinfo takes no arguments", self.nodes[0].cli('-getinfo').help)
self.log.info("Compare responses from `litecoin-cli -getinfo` and the RPCs data is retrieved from.")
self.log.info("Compare responses from `kevacoin-cli -getinfo` and the RPCs data is retrieved from.")
cli_get_info = self.nodes[0].cli('-getinfo').send_cli()
wallet_info = self.nodes[0].getwalletinfo()
network_info = self.nodes[0].getnetworkinfo()

2
test/functional/interface_zmq.py

@ -52,7 +52,7 @@ class ZMQTest (BitcoinTestFramework): @@ -52,7 +52,7 @@ class ZMQTest (BitcoinTestFramework):
config.read_file(open(self.options.configfile))
if not config["components"].getboolean("ENABLE_ZMQ"):
raise SkipTest("litecoind has not been built with zmq enabled.")
raise SkipTest("kevacoind has not been built with zmq enabled.")
# Initialize ZMQ context and socket.
# All messages are received in the same socket which means

2
test/functional/mempool_persist.py

@ -104,7 +104,7 @@ class MempoolPersistTest(BitcoinTestFramework): @@ -104,7 +104,7 @@ class MempoolPersistTest(BitcoinTestFramework):
self.start_node(1, extra_args=[])
wait_until(lambda: len(self.nodes[1].getrawmempool()) == 5)
self.log.debug("Prevent litecoind from writing mempool.dat to disk. Verify that `savemempool` fails")
self.log.debug("Prevent kevacoind from writing mempool.dat to disk. Verify that `savemempool` fails")
# to test the exception we are setting bad permissions on a tmp file called mempool.dat.new
# which is an implementation detail that could change and break this test
mempooldotnew1 = mempooldat1 + '.new'

12
test/functional/p2p_segwit.py

@ -450,7 +450,7 @@ class SegWitTest(BitcoinTestFramework): @@ -450,7 +450,7 @@ class SegWitTest(BitcoinTestFramework):
block = self.build_next_block()
assert(len(self.utxo) > 0)
# Create a P2WSH transaction.
# The witness program will be a bunch of OP_2DROP's, followed by OP_TRUE.
# This should give us plenty of room to tweak the spending tx's
@ -562,7 +562,7 @@ class SegWitTest(BitcoinTestFramework): @@ -562,7 +562,7 @@ class SegWitTest(BitcoinTestFramework):
self.log.info("Testing extra witness data in tx")
assert(len(self.utxo) > 0)
block = self.build_next_block()
witness_program = CScript([OP_DROP, OP_TRUE])
@ -730,7 +730,7 @@ class SegWitTest(BitcoinTestFramework): @@ -730,7 +730,7 @@ class SegWitTest(BitcoinTestFramework):
witness_program = CScript([OP_DROP, OP_TRUE])
witness_hash = sha256(witness_program)
scriptPubKey = CScript([OP_0, witness_hash])
# Create a transaction that splits our utxo into many outputs
tx = CTransaction()
tx.vin.append(CTxIn(COutPoint(self.utxo[0].sha256, self.utxo[0].n), b""))
@ -963,7 +963,7 @@ class SegWitTest(BitcoinTestFramework): @@ -963,7 +963,7 @@ class SegWitTest(BitcoinTestFramework):
assert(self.test_node.last_message["getdata"].inv[0].type == blocktype)
test_witness_block(self.nodes[0].rpc, self.test_node, block1, True)
# Litecoin: Blocks with nVersion < VB_TOP_BITS are rejected
# Kevacoin: Blocks with nVersion < VB_TOP_BITS are rejected
# self.test_node.announce_block_and_wait_for_getdata(block2, use_header=True)
# assert(self.test_node.last_message["getdata"].inv[0].type == blocktype)
@ -1020,7 +1020,7 @@ class SegWitTest(BitcoinTestFramework): @@ -1020,7 +1020,7 @@ class SegWitTest(BitcoinTestFramework):
assert_equal(rpc_details["weight"], weight)
# Upgraded node should not ask for blocks from unupgraded
# Litecoin: Blocks with nVersion < VB_TOP_BITS are rejected
# Kevacoin: Blocks with nVersion < VB_TOP_BITS are rejected
block4 = self.build_next_block(nVersion=(VB_TOP_BITS | (1<<15)))
block4.solve()
self.old_node.getdataset = set()
@ -1577,7 +1577,7 @@ class SegWitTest(BitcoinTestFramework): @@ -1577,7 +1577,7 @@ class SegWitTest(BitcoinTestFramework):
tx2.wit.vtxinwit.append(CTxInWitness())
tx2.wit.vtxinwit[-1].scriptWitness.stack = [ witness_program ]
total_value += tx.vout[i].nValue
tx2.wit.vtxinwit[-1].scriptWitness.stack = [ witness_program_toomany ]
tx2.wit.vtxinwit[-1].scriptWitness.stack = [ witness_program_toomany ]
tx2.vout.append(CTxOut(total_value, CScript([OP_TRUE])))
tx2.rehash()

4
test/functional/p2p_unrequested_blocks.py

@ -60,8 +60,8 @@ from test_framework.blocktools import create_block, create_coinbase, create_tran @@ -60,8 +60,8 @@ from test_framework.blocktools import create_block, create_coinbase, create_tran
class AcceptBlockTest(BitcoinTestFramework):
def add_options(self, parser):
parser.add_option("--testbinary", dest="testbinary",
default=os.getenv("LITECOIND", "litecoind"),
help="litecoind binary to test")
default=os.getenv("LITECOIND", "kevacoind"),
help="kevacoind binary to test")
def set_test_params(self):
self.setup_clean_chain = True

2
test/functional/rpc_bind.py

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
# Copyright (c) 2014-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test running litecoind with the -rpcbind and -rpcallowip options."""
"""Test running kevacoind with the -rpcbind and -rpcallowip options."""
import socket
import sys

2
test/functional/rpc_fundrawtransaction.py

@ -192,7 +192,7 @@ class RawTransactionsTest(BitcoinTestFramework): @@ -192,7 +192,7 @@ class RawTransactionsTest(BitcoinTestFramework):
dec_tx = self.nodes[2].decoderawtransaction(rawtx)
assert_equal(utx['txid'], dec_tx['vin'][0]['txid'])
assert_raises_rpc_error(-5, "changeAddress must be a valid litecoin address", self.nodes[2].fundrawtransaction, rawtx, {'changeAddress':'foobar'})
assert_raises_rpc_error(-5, "changeAddress must be a valid kevacoin address", self.nodes[2].fundrawtransaction, rawtx, {'changeAddress':'foobar'})
############################################################
# test a fundrawtransaction with a provided change address #

2
test/functional/rpc_listtransactions.py

@ -91,7 +91,7 @@ class ListTransactionsTest(BitcoinTestFramework): @@ -91,7 +91,7 @@ class ListTransactionsTest(BitcoinTestFramework):
assert_array_result(self.nodes[0].listtransactions("watchonly", 100, 0, True),
{"category":"receive","amount":Decimal("0.1")},
{"txid":txid, "account" : "watchonly"} )
# Litecoin has RBF disabled
# Kevacoin has RBF disabled
# self.run_rbf_opt_in_test()
# Check that the opt-in-rbf flag works properly, for sent and received

4
test/functional/rpc_rawtransaction.py

@ -85,7 +85,7 @@ class RawTransactionsTest(BitcoinTestFramework): @@ -85,7 +85,7 @@ class RawTransactionsTest(BitcoinTestFramework):
address = self.nodes[0].getnewaddress()
assert_raises_rpc_error(-3, "Expected type object", self.nodes[0].createrawtransaction, [], 'foo')
assert_raises_rpc_error(-8, "Data must be hexadecimal string", self.nodes[0].createrawtransaction, [], {'data': 'foo'})
assert_raises_rpc_error(-5, "Invalid Litecoin address", self.nodes[0].createrawtransaction, [], {'foo': 0})
assert_raises_rpc_error(-5, "Invalid Kevacoin address", self.nodes[0].createrawtransaction, [], {'foo': 0})
assert_raises_rpc_error(-3, "Invalid amount", self.nodes[0].createrawtransaction, [], {address: 'foo'})
assert_raises_rpc_error(-3, "Amount out of range", self.nodes[0].createrawtransaction, [], {address: -1})
assert_raises_rpc_error(-8, "Invalid parameter, duplicated address: %s" % address, self.nodes[0].createrawtransaction, [], multidict([(address, 1), (address, 1)]))
@ -324,7 +324,7 @@ class RawTransactionsTest(BitcoinTestFramework): @@ -324,7 +324,7 @@ class RawTransactionsTest(BitcoinTestFramework):
encrawtx = "01000000010000000000000072c1a6a246ae63f74f931e8365e15a089c68d61900000000000000000000ffffffff0100e1f505000000000000000000"
decrawtx = self.nodes[0].decoderawtransaction(encrawtx, False) # decode as non-witness transaction
assert_equal(decrawtx['vout'][0]['value'], Decimal('1.00000000'))
# getrawtransaction tests
# 1. valid parameters - only supply txid
txHash = rawTx["hash"]

6
test/functional/rpc_users.py

@ -22,10 +22,10 @@ class HTTPBasicsTest (BitcoinTestFramework): @@ -22,10 +22,10 @@ class HTTPBasicsTest (BitcoinTestFramework):
rpcauth2 = "rpcauth=rt2:f8607b1a88861fac29dfccf9b52ff9f$ff36a0c23c8c62b4846112e50fa888416e94c17bfd4c42f88fd8f55ec6a3137e"
rpcuser = "rpcuser=rpcuser💻"
rpcpassword = "rpcpassword=rpcpassword🔑"
with open(os.path.join(self.options.tmpdir+"/node0", "litecoin.conf"), 'a', encoding='utf8') as f:
with open(os.path.join(self.options.tmpdir+"/node0", "kevacoin.conf"), 'a', encoding='utf8') as f:
f.write(rpcauth+"\n")
f.write(rpcauth2+"\n")
with open(os.path.join(self.options.tmpdir+"/node1", "litecoin.conf"), 'a', encoding='utf8') as f:
with open(os.path.join(self.options.tmpdir+"/node1", "kevacoin.conf"), 'a', encoding='utf8') as f:
f.write(rpcuser+"\n")
f.write(rpcpassword+"\n")
@ -54,7 +54,7 @@ class HTTPBasicsTest (BitcoinTestFramework): @@ -54,7 +54,7 @@ class HTTPBasicsTest (BitcoinTestFramework):
resp = conn.getresponse()
assert_equal(resp.status, 200)
conn.close()
#Use new authpair to confirm both work
headers = {"Authorization": "Basic " + str_to_b64str(authpairnew)}

2
test/functional/test_framework/coverage.py

@ -76,7 +76,7 @@ def get_filename(dirname, n_node): @@ -76,7 +76,7 @@ def get_filename(dirname, n_node):
def write_all_rpc_commands(dirname, node):
"""
Write out a list of all RPC functions available in `litecoin-cli` for
Write out a list of all RPC functions available in `kevacoin-cli` for
coverage comparison. This will only happen once per coverage
directory.

6
test/functional/test_framework/mininode.py

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
# Copyright (c) 2010-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Litecoin P2P network half-a-node.
"""Kevacoin P2P network half-a-node.
This python code was modified from ArtForz' public domain half-a-node, as
found in the mini-node branch of http://github.com/jgarzik/pynode.
@ -86,7 +86,7 @@ class P2PConnection(asyncore.dispatcher): @@ -86,7 +86,7 @@ class P2PConnection(asyncore.dispatcher):
self.network = net
self.disconnect = False
logger.info('Connecting to Litecoin Node: %s:%d' % (self.dstaddr, self.dstport))
logger.info('Connecting to Kevacoin Node: %s:%d' % (self.dstaddr, self.dstport))
try:
self.connect((dstaddr, dstport))
@ -245,7 +245,7 @@ class P2PConnection(asyncore.dispatcher): @@ -245,7 +245,7 @@ class P2PConnection(asyncore.dispatcher):
class P2PInterface(P2PConnection):
"""A high-level P2P interface class for communicating with a Litecoin node.
"""A high-level P2P interface class for communicating with a Kevacoin node.
This class provides high-level callbacks for processing P2P message
payloads, as well as convenience methods for interacting with the

32
test/functional/test_framework/test_framework.py

@ -42,9 +42,9 @@ TEST_EXIT_FAILED = 1 @@ -42,9 +42,9 @@ TEST_EXIT_FAILED = 1
TEST_EXIT_SKIPPED = 77
class BitcoinTestFramework():
"""Base class for a litecoin test script.
"""Base class for a kevacoin test script.
Individual litecoin test scripts should subclass this class and override the set_test_params() and run_test() methods.
Individual kevacoin test scripts should subclass this class and override the set_test_params() and run_test() methods.
Individual tests can also override the following methods to customize the test setup:
@ -76,7 +76,7 @@ class BitcoinTestFramework(): @@ -76,7 +76,7 @@ class BitcoinTestFramework():
parser.add_option("--noshutdown", dest="noshutdown", default=False, action="store_true",
help="Don't stop litecoinds after the test execution")
parser.add_option("--srcdir", dest="srcdir", default=os.path.normpath(os.path.dirname(os.path.realpath(__file__)) + "/../../../src"),
help="Source directory containing litecoind/litecoin-cli (default: %default)")
help="Source directory containing kevacoind/kevacoin-cli (default: %default)")
parser.add_option("--cachedir", dest="cachedir", default=os.path.normpath(os.path.dirname(os.path.realpath(__file__)) + "/../../cache"),
help="Directory for caching pregenerated datadirs")
parser.add_option("--tmpdir", dest="tmpdir", help="Root directory for datadirs")
@ -93,7 +93,7 @@ class BitcoinTestFramework(): @@ -93,7 +93,7 @@ class BitcoinTestFramework():
parser.add_option("--pdbonfailure", dest="pdbonfailure", default=False, action="store_true",
help="Attach a python debugger if test fails")
parser.add_option("--usecli", dest="usecli", default=False, action="store_true",
help="use litecoin-cli instead of RPC for all commands")
help="use kevacoin-cli instead of RPC for all commands")
self.add_options(parser)
(self.options, self.args) = parser.parse_args()
@ -223,7 +223,7 @@ class BitcoinTestFramework(): @@ -223,7 +223,7 @@ class BitcoinTestFramework():
self.nodes.append(TestNode(i, self.options.tmpdir, extra_args[i], rpchost, timewait=timewait, binary=binary[i], stderr=None, mocktime=self.mocktime, coverage_dir=self.options.coveragedir, use_cli=self.options.usecli))
def start_node(self, i, *args, **kwargs):
"""Start a litecoind"""
"""Start a kevacoind"""
node = self.nodes[i]
@ -254,12 +254,12 @@ class BitcoinTestFramework(): @@ -254,12 +254,12 @@ class BitcoinTestFramework():
coverage.write_all_rpc_commands(self.options.coveragedir, node.rpc)
def stop_node(self, i):
"""Stop a litecoind test node"""
"""Stop a kevacoind test node"""
self.nodes[i].stop_node()
self.nodes[i].wait_until_stopped()
def stop_nodes(self):
"""Stop multiple litecoind test nodes"""
"""Stop multiple kevacoind test nodes"""
for node in self.nodes:
# Issue RPC to stop nodes
node.stop_node()
@ -279,7 +279,7 @@ class BitcoinTestFramework(): @@ -279,7 +279,7 @@ class BitcoinTestFramework():
self.start_node(i, extra_args, stderr=log_stderr, *args, **kwargs)
self.stop_node(i)
except Exception as e:
assert 'litecoind exited' in str(e) # node must have shutdown
assert 'kevacoind exited' in str(e) # node must have shutdown
self.nodes[i].running = False
self.nodes[i].process = None
if expected_msg is not None:
@ -289,9 +289,9 @@ class BitcoinTestFramework(): @@ -289,9 +289,9 @@ class BitcoinTestFramework():
raise AssertionError("Expected error \"" + expected_msg + "\" not found in:\n" + stderr)
else:
if expected_msg is None:
assert_msg = "litecoind should have exited with an error"
assert_msg = "kevacoind should have exited with an error"
else:
assert_msg = "litecoind should have exited with expected error " + expected_msg
assert_msg = "kevacoind should have exited with expected error " + expected_msg
raise AssertionError(assert_msg)
def wait_for_node_exit(self, i, timeout):
@ -389,7 +389,7 @@ class BitcoinTestFramework(): @@ -389,7 +389,7 @@ class BitcoinTestFramework():
# Create cache directories, run bitcoinds:
for i in range(MAX_NODES):
datadir = initialize_datadir(self.options.cachedir, i)
args = [os.getenv("LITECOIND", "litecoind"), "-server", "-keypool=1", "-datadir=" + datadir, "-discover=0"]
args = [os.getenv("LITECOIND", "kevacoind"), "-server", "-keypool=1", "-datadir=" + datadir, "-discover=0"]
if i > 0:
args.append("-connect=127.0.0.1:" + str(p2p_port(0)))
self.nodes.append(TestNode(i, self.options.cachedir, extra_args=[], rpchost=None, timewait=None, binary=None, stderr=None, mocktime=self.mocktime, coverage_dir=None))
@ -448,7 +448,7 @@ class BitcoinTestFramework(): @@ -448,7 +448,7 @@ class BitcoinTestFramework():
class ComparisonTestFramework(BitcoinTestFramework):
"""Test framework for doing p2p comparison testing
Sets up some litecoind binaries:
Sets up some kevacoind binaries:
- 1 binary: test binary
- 2 binaries: 1 test binary, 1 ref binary
- n>2 binaries: 1 test binary, n-1 ref binaries"""
@ -459,11 +459,11 @@ class ComparisonTestFramework(BitcoinTestFramework): @@ -459,11 +459,11 @@ class ComparisonTestFramework(BitcoinTestFramework):
def add_options(self, parser):
parser.add_option("--testbinary", dest="testbinary",
default=os.getenv("LITECOIND", "litecoind"),
help="litecoind binary to test")
default=os.getenv("LITECOIND", "kevacoind"),
help="kevacoind binary to test")
parser.add_option("--refbinary", dest="refbinary",
default=os.getenv("LITECOIND", "litecoind"),
help="litecoind binary to use for reference nodes (if any)")
default=os.getenv("LITECOIND", "kevacoind"),
help="kevacoind binary to use for reference nodes (if any)")
def setup_network(self):
extra_args = [['-whitelist=127.0.0.1']] * self.num_nodes

12
test/functional/test_framework/test_node.py

@ -53,7 +53,7 @@ class TestNode(): @@ -53,7 +53,7 @@ class TestNode():
# Wait for up to 60 seconds for the RPC server to respond
self.rpc_timeout = 60
if binary is None:
self.binary = os.getenv("LITECOIND", "litecoind")
self.binary = os.getenv("LITECOIND", "kevacoind")
else:
self.binary = binary
self.stderr = stderr
@ -62,7 +62,7 @@ class TestNode(): @@ -62,7 +62,7 @@ class TestNode():
self.extra_args = extra_args
self.args = [self.binary, "-datadir=" + self.datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-logtimemicros", "-debug", "-debugexclude=libevent", "-debugexclude=leveldb", "-mocktime=" + str(mocktime), "-uacomment=testnode%d" % i]
self.cli = TestNodeCLI(os.getenv("LITECOINCLI", "litecoin-cli"), self.datadir)
self.cli = TestNodeCLI(os.getenv("LITECOINCLI", "kevacoin-cli"), self.datadir)
self.use_cli = use_cli
self.running = False
@ -105,14 +105,14 @@ class TestNode(): @@ -105,14 +105,14 @@ class TestNode():
delete_cookie_file(self.datadir)
self.process = subprocess.Popen(self.args + extra_args, stderr=stderr, *args, **kwargs)
self.running = True
self.log.debug("litecoind started, waiting for RPC to come up")
self.log.debug("kevacoind started, waiting for RPC to come up")
def wait_for_rpc_connection(self):
"""Sets up an RPC connection to the bitcoind process. Returns False if unable to connect."""
# Poll at a rate of four times per second
poll_per_s = 4
for _ in range(poll_per_s * self.rpc_timeout):
assert self.process.poll() is None, "litecoind exited with status %i during initialization" % self.process.returncode
assert self.process.poll() is None, "kevacoind exited with status %i during initialization" % self.process.returncode
try:
self.rpc = get_rpc_proxy(rpc_url(self.datadir, self.index, self.rpchost), self.index, timeout=self.rpc_timeout, coveragedir=self.coverage_dir)
self.rpc.getblockcount()
@ -131,7 +131,7 @@ class TestNode(): @@ -131,7 +131,7 @@ class TestNode():
if "No RPC credentials" not in str(e):
raise
time.sleep(1.0 / poll_per_s)
raise AssertionError("Unable to connect to litecoind")
raise AssertionError("Unable to connect to kevacoind")
def get_wallet_rpc(self, wallet_name):
if self.use_cli:
@ -266,7 +266,7 @@ class TestNodeCLI(): @@ -266,7 +266,7 @@ class TestNodeCLI():
if command is not None:
p_args += [command]
p_args += pos_args + named_args
self.log.debug("Running litecoin-cli command: %s" % command)
self.log.debug("Running kevacoin-cli command: %s" % command)
process = subprocess.Popen(p_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
cli_stdout, cli_stderr = process.communicate(input=self.input)
returncode = process.poll()

6
test/functional/test_framework/util.py

@ -287,7 +287,7 @@ def initialize_datadir(dirname, n): @@ -287,7 +287,7 @@ def initialize_datadir(dirname, n):
datadir = os.path.join(dirname, "node" + str(n))
if not os.path.isdir(datadir):
os.makedirs(datadir)
with open(os.path.join(datadir, "litecoin.conf"), 'w', encoding='utf8') as f:
with open(os.path.join(datadir, "kevacoin.conf"), 'w', encoding='utf8') as f:
f.write("regtest=1\n")
f.write("port=" + str(p2p_port(n)) + "\n")
f.write("rpcport=" + str(rpc_port(n)) + "\n")
@ -300,8 +300,8 @@ def get_datadir_path(dirname, n): @@ -300,8 +300,8 @@ def get_datadir_path(dirname, n):
def get_auth_cookie(datadir):
user = None
password = None
if os.path.isfile(os.path.join(datadir, "litecoin.conf")):
with open(os.path.join(datadir, "litecoin.conf"), 'r', encoding='utf8') as f:
if os.path.isfile(os.path.join(datadir, "kevacoin.conf")):
with open(os.path.join(datadir, "kevacoin.conf"), 'r', encoding='utf8') as f:
for line in f:
if line.startswith("rpcuser="):
assert user is None # Ensure that there is only one rpcuser line

12
test/functional/test_runner.py

@ -229,7 +229,7 @@ def main(): @@ -229,7 +229,7 @@ def main():
sys.exit(0)
if not (enable_wallet and enable_utils and enable_bitcoind):
print("No functional tests to run. Wallet, utils, and litecoind must all be enabled")
print("No functional tests to run. Wallet, utils, and kevacoind must all be enabled")
print("Rerun `configure` with -enable-wallet, -with-utils and -with-daemon and rerun make")
sys.exit(0)
@ -284,8 +284,8 @@ def main(): @@ -284,8 +284,8 @@ def main():
def run_tests(test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_coverage=False, args=[], combined_logs_len=0):
# Warn if bitcoind is already running (unix only)
try:
if subprocess.check_output(["pidof", "litecoind"]) is not None:
print("%sWARNING!%s There is already a litecoind process running on this system. Tests may fail unexpectedly due to resource contention!" % (BOLD[1], BOLD[0]))
if subprocess.check_output(["pidof", "kevacoind"]) is not None:
print("%sWARNING!%s There is already a kevacoind process running on this system. Tests may fail unexpectedly due to resource contention!" % (BOLD[1], BOLD[0]))
except (OSError, subprocess.SubprocessError):
pass
@ -296,8 +296,8 @@ def run_tests(test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_cove @@ -296,8 +296,8 @@ def run_tests(test_list, src_dir, build_dir, exeext, tmpdir, jobs=1, enable_cove
#Set env vars
if "LITECOIND" not in os.environ:
os.environ["LITECOIND"] = build_dir + '/src/litecoind' + exeext
os.environ["LITECOINCLI"] = build_dir + '/src/litecoin-cli' + exeext
os.environ["LITECOIND"] = build_dir + '/src/kevacoind' + exeext
os.environ["LITECOINCLI"] = build_dir + '/src/kevacoin-cli' + exeext
tests_dir = src_dir + '/test/functional/'
@ -512,7 +512,7 @@ class RPCCoverage(): @@ -512,7 +512,7 @@ class RPCCoverage():
Coverage calculation works by having each test script subprocess write
coverage files into a particular directory. These files contain the RPC
commands invoked during testing, as well as a complete listing of RPC
commands per `litecoin-cli help` (`rpc_interface.txt`).
commands per `kevacoin-cli help` (`rpc_interface.txt`).
After all tests complete, the commands run are combined and diff'd against
the complete list to calculate uncovered RPC commands.

2
test/functional/wallet_bumpfee.py

@ -37,7 +37,7 @@ class BumpFeeTest(BitcoinTestFramework): @@ -37,7 +37,7 @@ class BumpFeeTest(BitcoinTestFramework):
for i in range(self.num_nodes)]
def run_test(self):
raise SkipTest("Litecoin doesn't support RBF.")
raise SkipTest("Kevacoin doesn't support RBF.")
# Encrypt wallet for test_locked_wallet_fails test
self.nodes[1].node_encrypt_wallet(WALLET_PASSPHRASE)

4
test/functional/wallet_scriptaddress2.py

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
# Test new Litecoin multisig prefix functionality.
# Test new Kevacoin multisig prefix functionality.
#
from test_framework.test_framework import BitcoinTestFramework
@ -70,7 +70,7 @@ class ScriptAddress2Test(BitcoinTestFramework): @@ -70,7 +70,7 @@ class ScriptAddress2Test(BitcoinTestFramework):
multisig_addr_new = self.nodes[0].addmultisigaddress(2, addrs, "multisigaccount2")['address']
assert_equal(multisig_addr_new, 'QZ974ZrPrmqMmm1PSVp4m8YEgo3bCQZBbe')
multisig_addr_old = "2N5nLwYz9qfnGdaFLpPn3gS6oYQbmLTWPjq"
## Let's send to the old address. We can then find it in the
## new address with the new client. So basically the old
## address and the new one are the same thing.

2
test/util/bitcoin-util-test.py

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
# Copyright 2016-2017 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test framework for litecoin utils.
"""Test framework for kevacoin utils.
Runs automatically during `make check`.

126
test/util/data/bitcoin-util-test.json

@ -1,82 +1,82 @@ @@ -1,82 +1,82 @@
[
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "nversion=1"],
"output_cmp": "blanktxv1.hex",
"description": "Creates a blank v1 transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json","-create", "nversion=1"],
"output_cmp": "blanktxv1.json",
"description": "Creates a blank v1 transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-"],
"input": "blanktxv2.hex",
"output_cmp": "blanktxv2.hex",
"description": "Creates a blank transaction when nothing is piped into litecoin-tx"
"description": "Creates a blank transaction when nothing is piped into kevacoin-tx"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json","-create"],
"output_cmp": "blanktxv2.json",
"description": "Creates a blank transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json","-"],
"input": "blanktxv2.hex",
"output_cmp": "blanktxv2.json",
"description": "Creates a blank transaction when nothing is piped into litecoin-tx (output in json)"
"description": "Creates a blank transaction when nothing is piped into kevacoin-tx (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-", "delin=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delin1-out.hex",
"description": "Deletes a single input from a transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-", "delin=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delin1-out.json",
"description": "Deletes a single input from a transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-", "delin=31"],
"input": "tx394b54bb.hex",
"return_code": 1,
"error_txt": "error: Invalid TX input index '31'",
"description": "Attempts to delete an input with a bad index from a transaction. Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-", "delout=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delout1-out.hex",
"description": "Deletes a single output from a transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-", "delout=1"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-delout1-out.json",
"description": "Deletes a single output from a transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-", "delout=2"],
"input": "tx394b54bb.hex",
"return_code": 1,
"error_txt": "error: Invalid TX output index '2'",
"description": "Attempts to delete an output with a bad index from a transaction. Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-", "locktime=317000"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-locktime317000-out.hex",
"description": "Adds an nlocktime to a transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-", "locktime=317000"],
"input": "tx394b54bb.hex",
"output_cmp": "tt-locktime317000-out.json",
"description": "Adds an nlocktime to a transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"outaddr=1"],
@ -84,7 +84,7 @@ @@ -84,7 +84,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outaddr argument (no address specified). Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"outaddr=1:13tuJJDR2RgArmgfv6JScSdreahzgc4T6o:garbage"],
@ -92,7 +92,7 @@ @@ -92,7 +92,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outaddr argument (too many separators). Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"outpubkey=0"],
@ -100,7 +100,7 @@ @@ -100,7 +100,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outpubkey argument (no pubkey specified). Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W:non53nse"],
@ -108,7 +108,7 @@ @@ -108,7 +108,7 @@
"error_txt": "error: TX output missing or too many separators",
"description": "Malformed outpubkey argument (too many separators). Expected to fail."
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=5ee62e3f7757f5fd995b2fa1bdb5b744298146098d5de92959ec4b52dc77191e:1",
@ -119,7 +119,7 @@ @@ -119,7 +119,7 @@
"output_cmp": "txcreate1.hex",
"description": "Creates a new transaction with three inputs and two outputs"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"-create",
@ -131,67 +131,67 @@ @@ -131,67 +131,67 @@
"output_cmp": "txcreate1.json",
"description": "Creates a new transaction with three inputs and two outputs (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outscript=0:"],
"output_cmp": "txcreate2.hex",
"description": "Creates a new transaction with a single empty output script"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outscript=0:"],
"output_cmp": "txcreate2.json",
"description": "Creates a new transaction with a single empty output script (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["02000000000100000000000000000000000000"],
"output_cmp": "txcreate2.hex",
"description": "Parses a transation with no inputs and a single output script"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "02000000000100000000000000000000000000"],
"output_cmp": "txcreate2.json",
"description": "Parses a transation with no inputs and a single output script (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outscript=0:OP_DROP", "nversion=1"],
"output_cmp": "txcreatescript1.hex",
"description": "Create a new transaction with a single output script (OP_DROP)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP", "nversion=1"],
"output_cmp": "txcreatescript1.json",
"description": "Create a new transaction with a single output script (OP_DROP) (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outscript=0:OP_DROP:S", "nversion=1"],
"output_cmp": "txcreatescript2.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:S", "nversion=1"],
"output_cmp": "txcreatescript2.json",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outscript=0:OP_DROP:W", "nversion=1"],
"output_cmp": "txcreatescript3.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:W", "nversion=1"],
"output_cmp": "txcreatescript3.json",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outscript=0:OP_DROP:WS", "nversion=1"],
"output_cmp": "txcreatescript4.hex",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2WSH, wrapped in a P2SH"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outscript=0:OP_DROP:WS", "nversion=1"],
"output_cmp": "txcreatescript4.json",
"description": "Create a new transaction with a single output script (OP_DROP) in a P2SH, wrapped in a P2SH (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create", "nversion=1",
"in=6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7:0",
@ -202,7 +202,7 @@ @@ -202,7 +202,7 @@
"output_cmp": "txcreatesignv1.hex",
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"-create", "nversion=1",
@ -214,7 +214,7 @@ @@ -214,7 +214,7 @@
"output_cmp": "txcreatesignv1.json",
"description": "Creates a new v1 transaction with a single input and a single output, and then signs the transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=6c2789243608b46f750f49ff24f6f79a78c3010f7e56951e045e5b7ea5d07bf7:0",
@ -225,50 +225,50 @@ @@ -225,50 +225,50 @@
"output_cmp": "txcreatesignv2.hex",
"description": "Creates a new transaction with a single input and a single output, and then signs the transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
"output_cmp": "txcreateoutpubkey1.hex",
"description": "Creates a new transaction with a single pay-to-pubkey output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397", "nversion=1"],
"output_cmp": "txcreateoutpubkey1.json",
"description": "Creates a new transaction with a single pay-to-pubkey output (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
"output_cmp": "txcreateoutpubkey2.hex",
"description": "Creates a new transaction with a single pay-to-witness-pubkey output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:W", "nversion=1"],
"output_cmp": "txcreateoutpubkey2.json",
"description": "Creates a new transaction with a single pay-to-witness-pubkey output (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
"output_cmp": "txcreateoutpubkey3.hex",
"description": "Creates a new transaction with a single pay-to-witness-pubkey, wrapped in P2SH output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json", "-create", "outpubkey=0:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:WS", "nversion=1"],
"output_cmp": "txcreateoutpubkey3.json",
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json", "-create", "outpubkey=0:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS", "nversion=1"],
"return_code": 1,
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",
"description": "Creates a new transaction with a single pay-to-pub-key output, wrapped in P2SH (output as json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
@ -277,7 +277,7 @@ @@ -277,7 +277,7 @@
"error_txt": "error: invalid TX output data",
"description": "Attempts to create a new transaction with one input and an output with malformed hex data. Expected to fail"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
@ -286,7 +286,7 @@ @@ -286,7 +286,7 @@
"error_txt": "error: invalid TX output data",
"description": "Attempts to create a new transaction with one input and an output with no value and malformed hex data. Expected to fail"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
@ -295,7 +295,7 @@ @@ -295,7 +295,7 @@
"output_cmp": "txcreatedata1.hex",
"description": "Creates a new transaction with one input, one address output and one data output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"-create", "nversion=1",
@ -305,7 +305,7 @@ @@ -305,7 +305,7 @@
"output_cmp": "txcreatedata1.json",
"description": "Creates a new v1 transaction with one input, one address output and one data output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0",
@ -314,7 +314,7 @@ @@ -314,7 +314,7 @@
"output_cmp": "txcreatedata2.hex",
"description": "Creates a new transaction with one input, one address output and one data (zero value) output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"-create",
@ -324,7 +324,7 @@ @@ -324,7 +324,7 @@
"output_cmp": "txcreatedata2.json",
"description": "Creates a new transaction with one input, one address output and one data (zero value) output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-create",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:4294967293",
@ -332,7 +332,7 @@ @@ -332,7 +332,7 @@
"output_cmp": "txcreatedata_seq0.hex",
"description": "Creates a new transaction with one input with sequence number and one address output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"-create",
@ -341,14 +341,14 @@ @@ -341,14 +341,14 @@
"output_cmp": "txcreatedata_seq0.json",
"description": "Creates a new transaction with one input with sequence number and one address output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
"in=69e9c12d30a6cd598a31ddfcaabeb9d9f0baf8938bf0ba6610beb04f589cc5ef:0:1"],
"output_cmp": "txcreatedata_seq1.hex",
"description": "Adds a new input with sequence number to a transaction"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args":
["-json",
"01000000011f5c38dfcf6f1a5f5a87c416076d392c87e6d41970d5ad5e477a02d66bde97580000000000fdffffff0180a81201000000001976a9141fc11f39be1729bf973a7ab6a615ca4729d6457488ac00000000",
@ -356,52 +356,52 @@ @@ -356,52 +356,52 @@
"output_cmp": "txcreatedata_seq1.json",
"description": "Adds a new input with sequence number to a transaction (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
"output_cmp": "txcreatemultisig1.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485", "nversion=1"],
"output_cmp": "txcreatemultisig1.json",
"description": "Creates a new transaction with a single 2-of-3 multisig output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
"output_cmp": "txcreatemultisig2.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:S", "nversion=1"],
"output_cmp": "txcreatemultisig2.json",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2SH output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
"output_cmp": "txcreatemultisig3.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:W", "nversion=1"],
"output_cmp": "txcreatemultisig3.json",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
"output_cmp": "txcreatemultisig4.hex",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:02df2089105c77f266fa11a9d33f05c735234075f2e8780824c6b709415f9fb485:WS", "nversion=1"],
"output_cmp": "txcreatemultisig4.json",
"description": "Creates a new transaction with a single 2-of-3 multisig in a P2WSH output, wrapped in P2SH (output in json)"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:S"],
"output_cmp": "txcreatemultisig5.json",
"description": "Uncompressed pubkeys should work just fine for non-witness outputs"
},
{ "exec": "./litecoin-tx",
{ "exec": "./kevacoin-tx",
"args": ["-json", "-create", "outmultisig=1:2:3:02a5613bd857b7048924264d1e70e08fb2a7e6527d32b7ab1bb993ac59964ff397:021ac43c7ff740014c3b33737ede99c967e4764553d1b2b83db77c83b8715fa72d:047d1368ba7ae01c94bc32293efd70bd7e3be7aa7912d07d0b1c659c1008d179b8642f5fb90f47580feb29f045e216ff5a4716d3a0fed36da414d332046303c44a:WS"],
"return_code": 1,
"error_txt": "error: Uncompressed pubkeys are not useable for SegWit outputs",

Loading…
Cancel
Save