Litecoin: Branding
# Conflicts: # .gitignore # contrib/seeds/README.md # doc/README.md # doc/README_windows.txt # doc/release-process.md # qa/rpc-tests/README.md # src/Makefile.qt.include # src/Makefile.qttest.include # src/Makefile.test.include # src/bitcoind.cpp # src/qt/forms/intro.ui # src/qt/test/test_main.cpp # src/rpc/mining.cpp # src/rpc/rawtransaction.cpp # src/validation.cpp # src/wallet/rpcdump.cpp # src/wallet/rpcwallet.cpp
This commit is contained in:
parent
bf7d9d6c20
commit
58b7acc2e3
8
.github/ISSUE_TEMPLATE.md
vendored
8
.github/ISSUE_TEMPLATE.md
vendored
@ -1,10 +1,10 @@
|
|||||||
<!--- Remove sections that do not apply -->
|
<!--- Remove sections that do not apply -->
|
||||||
|
|
||||||
This issue tracker is only for technical issues related to bitcoin-core.
|
This issue tracker is only for technical issues related to litecoin-core.
|
||||||
|
|
||||||
General bitcoin questions and/or support requests and are best directed to the [Bitcoin StackExchange](https://bitcoin.stackexchange.com).
|
General litecoin questions and/or support requests and are best directed to the [litecointalk.io forums](https://litecointalk.io/).
|
||||||
|
|
||||||
For reporting security issues, please read instructions at [https://bitcoincore.org/en/contact/](https://bitcoincore.org/en/contact/).
|
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.
|
||||||
|
|
||||||
### Describe the issue
|
### Describe the issue
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ Tell us what happens instead
|
|||||||
### Screenshots.
|
### Screenshots.
|
||||||
If the issue is related to the GUI, screenshots can be added to this issue via drag & drop.
|
If the issue is related to the GUI, screenshots can be added to this issue via drag & drop.
|
||||||
|
|
||||||
### What version of bitcoin-core are you using?
|
### What version of litecoin-core are you using?
|
||||||
List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA.
|
List the version number/commit ID, and if it is an official binary, self compiled or a distribution package such as PPA.
|
||||||
|
|
||||||
### Machine specs:
|
### Machine specs:
|
||||||
|
|||||||
22
.gitignore
vendored
22
.gitignore
vendored
@ -1,13 +1,13 @@
|
|||||||
*.tar.gz
|
*.tar.gz
|
||||||
|
|
||||||
*.exe
|
*.exe
|
||||||
src/bitcoin
|
src/litecoin
|
||||||
src/bitcoind
|
src/litecoind
|
||||||
src/bitcoin-cli
|
src/litecoin-cli
|
||||||
src/bitcoin-tx
|
src/litecoin-tx
|
||||||
src/test/test_bitcoin
|
src/test/test_litecoin
|
||||||
src/test/test_bitcoin_fuzzy
|
src/test/test_litecoin_fuzzy
|
||||||
src/qt/test/test_bitcoin-qt
|
src/qt/test/test_litecoin-qt
|
||||||
|
|
||||||
# autoreconf
|
# autoreconf
|
||||||
Makefile.in
|
Makefile.in
|
||||||
@ -74,12 +74,12 @@ src/qt/test/moc*.cpp
|
|||||||
# Compilation and Qt preprocessor part
|
# Compilation and Qt preprocessor part
|
||||||
*.qm
|
*.qm
|
||||||
Makefile
|
Makefile
|
||||||
bitcoin-qt
|
litecoin-qt
|
||||||
Bitcoin-Qt.app
|
Litecoin-Qt.app
|
||||||
|
|
||||||
# Unit-tests
|
# Unit-tests
|
||||||
Makefile.test
|
Makefile.test
|
||||||
bitcoin-qt_test
|
litecoin-qt_test
|
||||||
|
|
||||||
# Resources cpp
|
# Resources cpp
|
||||||
qrc_*.cpp
|
qrc_*.cpp
|
||||||
@ -92,7 +92,7 @@ build
|
|||||||
*.gcno
|
*.gcno
|
||||||
*.gcda
|
*.gcda
|
||||||
/*.info
|
/*.info
|
||||||
test_bitcoin.coverage/
|
test_litecoin.coverage/
|
||||||
total.coverage/
|
total.coverage/
|
||||||
coverage_percent.txt
|
coverage_percent.txt
|
||||||
|
|
||||||
|
|||||||
10
Makefile.am
10
Makefile.am
@ -25,7 +25,7 @@ BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EX
|
|||||||
empty :=
|
empty :=
|
||||||
space := $(empty) $(empty)
|
space := $(empty) $(empty)
|
||||||
|
|
||||||
OSX_APP=Bitcoin-Qt.app
|
OSX_APP=Litecoin-Qt.app
|
||||||
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
|
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
|
||||||
OSX_DMG = $(OSX_VOLNAME).dmg
|
OSX_DMG = $(OSX_VOLNAME).dmg
|
||||||
OSX_BACKGROUND_SVG=background.svg
|
OSX_BACKGROUND_SVG=background.svg
|
||||||
@ -92,7 +92,7 @@ $(OSX_APP)/Contents/Resources/bitcoin.icns: $(OSX_INSTALLER_ICONS)
|
|||||||
$(MKDIR_P) $(@D)
|
$(MKDIR_P) $(@D)
|
||||||
$(INSTALL_DATA) $< $@
|
$(INSTALL_DATA) $< $@
|
||||||
|
|
||||||
$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(BITCOIN_QT_BIN)
|
$(OSX_APP)/Contents/MacOS/Litecoin-Qt: $(BITCOIN_QT_BIN)
|
||||||
$(MKDIR_P) $(@D)
|
$(MKDIR_P) $(@D)
|
||||||
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@
|
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $< $@
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings:
|
|||||||
|
|
||||||
OSX_APP_BUILT=$(OSX_APP)/Contents/PkgInfo $(OSX_APP)/Contents/Resources/empty.lproj \
|
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/Resources/bitcoin.icns $(OSX_APP)/Contents/Info.plist \
|
||||||
$(OSX_APP)/Contents/MacOS/Bitcoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
|
$(OSX_APP)/Contents/MacOS/Litecoin-Qt $(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings
|
||||||
|
|
||||||
osx_volname:
|
osx_volname:
|
||||||
echo $(OSX_VOLNAME) >$@
|
echo $(OSX_VOLNAME) >$@
|
||||||
@ -127,7 +127,7 @@ $(APP_DIST_DIR)/Applications:
|
|||||||
@rm -f $@
|
@rm -f $@
|
||||||
@cd $(@D); $(LN_S) /Applications $(@F)
|
@cd $(@D); $(LN_S) /Applications $(@F)
|
||||||
|
|
||||||
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt
|
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-Qt
|
||||||
|
|
||||||
$(OSX_DMG): $(APP_DIST_EXTRAS)
|
$(OSX_DMG): $(APP_DIST_EXTRAS)
|
||||||
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist
|
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist
|
||||||
@ -142,7 +142,7 @@ $(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE): $(OSX_BACKGROUND_IMAGE_DPIF
|
|||||||
$(APP_DIST_DIR)/.DS_Store: $(OSX_DSSTORE_GEN)
|
$(APP_DIST_DIR)/.DS_Store: $(OSX_DSSTORE_GEN)
|
||||||
$(PYTHON) $< "$@" "$(OSX_VOLNAME)"
|
$(PYTHON) $< "$@" "$(OSX_VOLNAME)"
|
||||||
|
|
||||||
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt: $(OSX_APP_BUILT) $(OSX_PACKAGING)
|
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Litecoin-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
|
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)
|
deploydir: $(APP_DIST_EXTRAS)
|
||||||
|
|||||||
20
configure.ac
20
configure.ac
@ -7,17 +7,17 @@ define(_CLIENT_VERSION_BUILD, 1)
|
|||||||
define(_CLIENT_VERSION_IS_RELEASE, true)
|
define(_CLIENT_VERSION_IS_RELEASE, true)
|
||||||
define(_COPYRIGHT_YEAR, 2017)
|
define(_COPYRIGHT_YEAR, 2017)
|
||||||
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
define(_COPYRIGHT_HOLDERS,[The %s developers])
|
||||||
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]])
|
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Litecoin Core]])
|
||||||
AC_INIT([Bitcoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/])
|
AC_INIT([Litecoin Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/litecoin-project/litecoin/issues],[litecoin],[https://litecoin.org/])
|
||||||
AC_CONFIG_SRCDIR([src/validation.cpp])
|
AC_CONFIG_SRCDIR([src/validation.cpp])
|
||||||
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_MACRO_DIR([build-aux/m4])
|
AC_CONFIG_MACRO_DIR([build-aux/m4])
|
||||||
|
|
||||||
BITCOIN_DAEMON_NAME=bitcoind
|
BITCOIN_DAEMON_NAME=litecoind
|
||||||
BITCOIN_GUI_NAME=bitcoin-qt
|
BITCOIN_GUI_NAME=litecoin-qt
|
||||||
BITCOIN_CLI_NAME=bitcoin-cli
|
BITCOIN_CLI_NAME=litecoin-cli
|
||||||
BITCOIN_TX_NAME=bitcoin-tx
|
BITCOIN_TX_NAME=litecoin-tx
|
||||||
|
|
||||||
dnl Unless the user specified ARFLAGS, force it to be cr
|
dnl Unless the user specified ARFLAGS, force it to be cr
|
||||||
AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to <cr> if not set])
|
AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to <cr> if not set])
|
||||||
@ -1030,11 +1030,11 @@ AC_SUBST(UNIVALUE_LIBS)
|
|||||||
|
|
||||||
BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
|
BITCOIN_QT_PATH_PROGS([PROTOC], [protoc],$protoc_bin_path)
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build bitcoind])
|
AC_MSG_CHECKING([whether to build litecoind])
|
||||||
AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
|
AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
|
||||||
AC_MSG_RESULT($build_bitcoind)
|
AC_MSG_RESULT($build_bitcoind)
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
|
AC_MSG_CHECKING([whether to build utils (litecoin-cli litecoin-tx)])
|
||||||
AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
|
AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
|
||||||
AC_MSG_RESULT($build_bitcoin_utils)
|
AC_MSG_RESULT($build_bitcoin_utils)
|
||||||
|
|
||||||
@ -1135,7 +1135,7 @@ if test x$bitcoin_enable_qt != xno; then
|
|||||||
AC_MSG_WARN("xgettext is required to update qt translations")
|
AC_MSG_WARN("xgettext is required to update qt translations")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build test_bitcoin-qt])
|
AC_MSG_CHECKING([whether to build test_litecoin-qt])
|
||||||
if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
|
if test x$use_gui_tests$bitcoin_enable_qt_test = xyesyes; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
BUILD_TEST_QT="yes"
|
BUILD_TEST_QT="yes"
|
||||||
@ -1146,7 +1146,7 @@ fi
|
|||||||
|
|
||||||
AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
|
AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build test_bitcoin])
|
AC_MSG_CHECKING([whether to build test_litecoin])
|
||||||
if test x$use_tests = xyes; then
|
if test x$use_tests = xyes; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
BUILD_TEST="yes"
|
BUILD_TEST="yes"
|
||||||
|
|||||||
@ -13,7 +13,7 @@ Construct a linear, no-fork, best version of the blockchain.
|
|||||||
|
|
||||||
### [Qos](/contrib/qos) ###
|
### [Qos](/contrib/qos) ###
|
||||||
|
|
||||||
A Linux bash script that will set up traffic control (tc) to limit the outgoing bandwidth for connections to the Bitcoin network. This means one can have an always-on bitcoind instance running, and another local bitcoind/bitcoin-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 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.
|
||||||
|
|
||||||
### [Seeds](/contrib/seeds) ###
|
### [Seeds](/contrib/seeds) ###
|
||||||
Utility to generate the pnSeed[] array that is compiled into the client.
|
Utility to generate the pnSeed[] array that is compiled into the client.
|
||||||
@ -22,20 +22,20 @@ Build Tools and Keys
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
### [Debian](/contrib/debian) ###
|
### [Debian](/contrib/debian) ###
|
||||||
Contains files used to package bitcoind/bitcoin-qt
|
Contains files used to package litecoind/litecoin-qt
|
||||||
for Debian-based Linux systems. If you compile bitcoind/bitcoin-qt yourself, there are some useful files here.
|
for Debian-based Linux systems. If you compile litecoind/litecoin-qt yourself, there are some useful files here.
|
||||||
|
|
||||||
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
|
### [Gitian-descriptors](/contrib/gitian-descriptors) ###
|
||||||
Notes on getting Gitian builds up and running using KVM.
|
Notes on getting Gitian builds up and running using KVM.
|
||||||
|
|
||||||
### [Gitian-keys](/contrib/gitian-keys)
|
### [Gitian-keys](/contrib/gitian-keys)
|
||||||
PGP keys used for signing Bitcoin Core [Gitian release](/doc/release-process.md) results.
|
PGP keys used for signing Litecoin Core [Gitian release](/doc/release-process.md) results.
|
||||||
|
|
||||||
### [MacDeploy](/contrib/macdeploy) ###
|
### [MacDeploy](/contrib/macdeploy) ###
|
||||||
Scripts and notes for Mac builds.
|
Scripts and notes for Mac builds.
|
||||||
|
|
||||||
### [RPM](/contrib/rpm) ###
|
### [RPM](/contrib/rpm) ###
|
||||||
RPM spec file for building bitcoin-core on RPM based distributions
|
RPM spec file for building litecoin-core on RPM based distributions
|
||||||
|
|
||||||
### [Gitian-build](/contrib/gitian-build.sh) ###
|
### [Gitian-build](/contrib/gitian-build.sh) ###
|
||||||
Script for running full Gitian builds.
|
Script for running full Gitian builds.
|
||||||
@ -44,7 +44,7 @@ Test and Verify Tools
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
### [TestGen](/contrib/testgen) ###
|
### [TestGen](/contrib/testgen) ###
|
||||||
Utilities to generate test vectors for the data-driven Bitcoin tests.
|
Utilities to generate test vectors for the data-driven Litecoin tests.
|
||||||
|
|
||||||
### [Verify Binaries](/contrib/verifybinaries) ###
|
### [Verify Binaries](/contrib/verifybinaries) ###
|
||||||
This script attempts to download and verify the signature file SHA256SUMS.asc from bitcoin.org.
|
This script attempts to download and verify the signature file SHA256SUMS.asc from litecoin.org.
|
||||||
|
|||||||
@ -4,15 +4,15 @@ TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)}
|
|||||||
SRCDIR=${SRCDIR:-$TOPDIR/src}
|
SRCDIR=${SRCDIR:-$TOPDIR/src}
|
||||||
MANDIR=${MANDIR:-$TOPDIR/doc/man}
|
MANDIR=${MANDIR:-$TOPDIR/doc/man}
|
||||||
|
|
||||||
BITCOIND=${BITCOIND:-$SRCDIR/bitcoind}
|
BITCOIND=${BITCOIND:-$SRCDIR/litecoind}
|
||||||
BITCOINCLI=${BITCOINCLI:-$SRCDIR/bitcoin-cli}
|
BITCOINCLI=${BITCOINCLI:-$SRCDIR/litecoin-cli}
|
||||||
BITCOINTX=${BITCOINTX:-$SRCDIR/bitcoin-tx}
|
BITCOINTX=${BITCOINTX:-$SRCDIR/litecoin-tx}
|
||||||
BITCOINQT=${BITCOINQT:-$SRCDIR/qt/bitcoin-qt}
|
BITCOINQT=${BITCOINQT:-$SRCDIR/qt/litecoin-qt}
|
||||||
|
|
||||||
[ ! -x $BITCOIND ] && echo "$BITCOIND not found or not executable." && exit 1
|
[ ! -x $BITCOIND ] && echo "$LITECOIND not found or not executable." && exit 1
|
||||||
|
|
||||||
# The autodetected version git tag can screw up manpage output a little bit
|
# The autodetected version git tag can screw up manpage output a little bit
|
||||||
BTCVER=($($BITCOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }'))
|
BTCVER=($($LITECOINCLI --version | head -n1 | awk -F'[ -]' '{ print $6, $7 }'))
|
||||||
|
|
||||||
# Create a footer file with copyright content.
|
# Create a footer file with copyright content.
|
||||||
# This gets autodetected fine for bitcoind if --version-string is not set,
|
# This gets autodetected fine for bitcoind if --version-string is not set,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
# Linearize
|
# Linearize
|
||||||
Construct a linear, no-fork, best version of the Bitcoin blockchain. The scripts
|
Construct a linear, no-fork, best version of the Litecoin blockchain. The scripts
|
||||||
run using Python 3 but are compatible with Python 2.
|
run using Python 3 but are compatible with Python 2.
|
||||||
|
|
||||||
## Step 1: Download hash list
|
## Step 1: Download hash list
|
||||||
@ -12,7 +12,7 @@ Required configuration file settings for linearize-hashes:
|
|||||||
|
|
||||||
Optional config file setting for linearize-hashes:
|
Optional config file setting for linearize-hashes:
|
||||||
* RPC: `host` (Default: `127.0.0.1`)
|
* RPC: `host` (Default: `127.0.0.1`)
|
||||||
* RPC: `port` (Default: `8332`)
|
* RPC: `port` (Default: `9332`)
|
||||||
* Blockchain: `min_height`, `max_height`
|
* Blockchain: `min_height`, `max_height`
|
||||||
* `rev_hash_bytes`: If true, the written block hash list will be
|
* `rev_hash_bytes`: If true, the written block hash list will be
|
||||||
byte-reversed. (In other words, the hash returned by getblockhash will have its
|
byte-reversed. (In other words, the hash returned by getblockhash will have its
|
||||||
@ -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 same data no matter which byte format is chosen.
|
||||||
|
|
||||||
The `linearize-hashes` script requires a connection, local or remote, to a
|
The `linearize-hashes` script requires a connection, local or remote, to a
|
||||||
JSON-RPC server. Running `bitcoind` or `bitcoin-qt -server` will be sufficient.
|
JSON-RPC server. Running `litecoind` or `litecoin-qt -server` will be sufficient.
|
||||||
|
|
||||||
## Step 2: Copy local block data
|
## Step 2: Copy local block data
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ will be printed.
|
|||||||
respectively, to the current time and to the timestamp of the most recent block
|
respectively, to the current time and to the timestamp of the most recent block
|
||||||
written to the script's blockchain.
|
written to the script's blockchain.
|
||||||
* `genesis`: The hash of the genesis block in the blockchain.
|
* `genesis`: The hash of the genesis block in the blockchain.
|
||||||
* `input`: bitcoind blocks/ directory containing blkNNNNN.dat
|
* `input`: litecoind blocks/ directory containing blkNNNNN.dat
|
||||||
* `hashlist`: text file containing list of block hashes created by
|
* `hashlist`: text file containing list of block hashes created by
|
||||||
linearize-hashes.py.
|
linearize-hashes.py.
|
||||||
* `max_out_sz`: Maximum size for files created by the `output_file` option.
|
* `max_out_sz`: Maximum size for files created by the `output_file` option.
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# bitcoind RPC settings (linearize-hashes)
|
# litecoind RPC settings (linearize-hashes)
|
||||||
rpcuser=someuser
|
rpcuser=someuser
|
||||||
rpcpassword=somepassword
|
rpcpassword=somepassword
|
||||||
#datadir=~/.bitcoin
|
#datadir=~/.bitcoin
|
||||||
@ -12,14 +12,14 @@ max_height=313000
|
|||||||
# bootstrap.dat input/output settings (linearize-data)
|
# bootstrap.dat input/output settings (linearize-data)
|
||||||
|
|
||||||
# mainnet
|
# mainnet
|
||||||
netmagic=f9beb4d9
|
netmagic=fbc0b6db
|
||||||
genesis=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
|
genesis=12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2
|
||||||
input=/home/example/.bitcoin/blocks
|
input=/home/example/.litecoin/blocks
|
||||||
|
|
||||||
# testnet
|
# testnet
|
||||||
#netmagic=0b110907
|
#netmagic=fdd2c8f1
|
||||||
#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
|
#genesis=4966625a4b2851d9fdee139e56211a0d88575f59ed816ff5e6a63deb4e3e29a0
|
||||||
#input=/home/example/.bitcoin/testnet3/blocks
|
#input=/home/example/.litecoin/testnet3/blocks
|
||||||
|
|
||||||
# "output" option causes blockchain files to be written to the given location,
|
# "output" option causes blockchain files to be written to the given location,
|
||||||
# with "output_file" ignored. If not used, "output_file" is used instead.
|
# with "output_file" ignored. If not used, "output_file" is used instead.
|
||||||
|
|||||||
@ -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
|
During the process, the disk image window will pop up briefly where the fancy
|
||||||
settings are applied. This is normal, please do not interfere.
|
settings are applied. This is normal, please do not interfere.
|
||||||
|
|
||||||
When finished, it will produce `Bitcoin-Core.dmg`.
|
When finished, it will produce `Litecoin-Core.dmg`.
|
||||||
|
|
||||||
|
|||||||
@ -45,8 +45,8 @@ alias = Alias.from_bytes(icvp['backgroundImageAlias'])
|
|||||||
alias.volume.name = package_name_ns
|
alias.volume.name = package_name_ns
|
||||||
alias.volume.posix_path = '/Volumes/' + 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.filename = package_name_ns + '.temp.dmg'
|
||||||
alias.volume.disk_image_alias.target.carbon_path = 'Macintosh HD:Users:\x00bitcoinuser:\x00Documents:\x00bitcoin:\x00bitcoin:\x00' + 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/bitcoinuser/Documents/bitcoin/bitcoin/' + package_name_ns + '.temp.dmg'
|
alias.volume.disk_image_alias.target.posix_path = 'Users/litecoinuser/Documents/litecoin/litecoin/' + package_name_ns + '.temp.dmg'
|
||||||
alias.target.carbon_path = package_name_ns + ':.background:\x00background.tiff'
|
alias.target.carbon_path = package_name_ns + ':.background:\x00background.tiff'
|
||||||
icvp['backgroundImageAlias'] = biplist.Data(alias.to_bytes())
|
icvp['backgroundImageAlias'] = biplist.Data(alias.to_bytes())
|
||||||
ds['.']['icvp'] = icvp
|
ds['.']['icvp'] = icvp
|
||||||
@ -54,7 +54,7 @@ ds['.']['icvp'] = icvp
|
|||||||
ds['.']['vSrn'] = ('long', 1)
|
ds['.']['vSrn'] = ('long', 1)
|
||||||
|
|
||||||
ds['Applications']['Iloc'] = (370, 156)
|
ds['Applications']['Iloc'] = (370, 156)
|
||||||
ds['Bitcoin-Qt.app']['Iloc'] = (128, 156)
|
ds['Litecoin-Qt.app']['Iloc'] = (128, 156)
|
||||||
|
|
||||||
ds.flush()
|
ds.flush()
|
||||||
ds.close()
|
ds.close()
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
ROOTDIR=dist
|
ROOTDIR=dist
|
||||||
BUNDLE="${ROOTDIR}/Bitcoin-Qt.app"
|
BUNDLE="${ROOTDIR}/Litecoin-Qt.app"
|
||||||
CODESIGN=codesign
|
CODESIGN=codesign
|
||||||
TEMPDIR=sign.temp
|
TEMPDIR=sign.temp
|
||||||
TEMPLIST=${TEMPDIR}/signatures.txt
|
TEMPLIST=${TEMPDIR}/signatures.txt
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<integer>370</integer>
|
<integer>370</integer>
|
||||||
<integer>156</integer>
|
<integer>156</integer>
|
||||||
</array>
|
</array>
|
||||||
<key>Bitcoin-Qt.app</key>
|
<key>Litecoin-Qt.app</key>
|
||||||
<array>
|
<array>
|
||||||
<integer>128</integer>
|
<integer>128</integer>
|
||||||
<integer>156</integer>
|
<integer>156</integer>
|
||||||
|
|||||||
@ -155,7 +155,7 @@ class FrameworkInfo(object):
|
|||||||
class ApplicationBundleInfo(object):
|
class ApplicationBundleInfo(object):
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
self.path = path
|
self.path = path
|
||||||
appName = "Bitcoin-Qt"
|
appName = "Litecoin-Qt"
|
||||||
self.binaryPath = os.path.join(path, "Contents", "MacOS", appName)
|
self.binaryPath = os.path.join(path, "Contents", "MacOS", appName)
|
||||||
if not os.path.exists(self.binaryPath):
|
if not os.path.exists(self.binaryPath):
|
||||||
raise RuntimeError("Could not find bundle binary for " + path)
|
raise RuntimeError("Could not find bundle binary for " + path)
|
||||||
@ -603,7 +603,7 @@ else:
|
|||||||
|
|
||||||
# ------------------------------------------------
|
# ------------------------------------------------
|
||||||
|
|
||||||
target = os.path.join("dist", "Bitcoin-Qt.app")
|
target = os.path.join("dist", "Litecoin-Qt.app")
|
||||||
|
|
||||||
if verbose >= 2:
|
if verbose >= 2:
|
||||||
print("+ Copying source bundle +")
|
print("+ Copying source bundle +")
|
||||||
|
|||||||
@ -6,9 +6,9 @@ Utility to generate the seeds.txt list that is compiled into the client
|
|||||||
Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
|
Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
|
||||||
and remove old versions as necessary.
|
and remove old versions as necessary.
|
||||||
|
|
||||||
The seeds compiled into the release are created from sipa's DNS seed data, like this:
|
The seeds compiled into the release are created from poolers's DNS seed data, like this:
|
||||||
|
|
||||||
curl -s http://bitcoin.sipa.be/seeds.txt.gz | gzip -dc > seeds_main.txt
|
curl -s https://www.litecoinpool.org/seeds.txt > seeds_main.txt
|
||||||
python3 makeseeds.py < seeds_main.txt > nodes_main.txt
|
python3 makeseeds.py < seeds_main.txt > nodes_main.txt
|
||||||
python3 generate-seeds.py . > ../../src/chainparamsseeds.h
|
python3 generate-seeds.py . > ../../src/chainparamsseeds.h
|
||||||
|
|
||||||
|
|||||||
@ -120,7 +120,7 @@ def main():
|
|||||||
g.write('#ifndef BITCOIN_CHAINPARAMSSEEDS_H\n')
|
g.write('#ifndef BITCOIN_CHAINPARAMSSEEDS_H\n')
|
||||||
g.write('#define BITCOIN_CHAINPARAMSSEEDS_H\n')
|
g.write('#define BITCOIN_CHAINPARAMSSEEDS_H\n')
|
||||||
g.write('/**\n')
|
g.write('/**\n')
|
||||||
g.write(' * List of fixed seed nodes for the bitcoin network\n')
|
g.write(' * List of fixed seed nodes for the litecoin network\n')
|
||||||
g.write(' * AUTOGENERATED by contrib/seeds/generate-seeds.py\n')
|
g.write(' * AUTOGENERATED by contrib/seeds/generate-seeds.py\n')
|
||||||
g.write(' *\n')
|
g.write(' *\n')
|
||||||
g.write(' * Each line contains a 16-byte IPv6 address and a port.\n')
|
g.write(' * Each line contains a 16-byte IPv6 address and a port.\n')
|
||||||
@ -130,7 +130,7 @@ def main():
|
|||||||
process_nodes(g, f, 'pnSeed6_main', 9333)
|
process_nodes(g, f, 'pnSeed6_main', 9333)
|
||||||
g.write('\n')
|
g.write('\n')
|
||||||
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
|
with open(os.path.join(indir,'nodes_test.txt'),'r') as f:
|
||||||
process_nodes(g, f, 'pnSeed6_test', 19333)
|
process_nodes(g, f, 'pnSeed6_test', 19335)
|
||||||
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
|
g.write('#endif // BITCOIN_CHAINPARAMSSEEDS_H\n')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@ -36,15 +36,15 @@ def check_json_precision():
|
|||||||
raise RuntimeError("JSON encode/decode loses precision")
|
raise RuntimeError("JSON encode/decode loses precision")
|
||||||
|
|
||||||
def determine_db_dir():
|
def determine_db_dir():
|
||||||
"""Return the default location of the bitcoin data directory"""
|
"""Return the default location of the litecoin data directory"""
|
||||||
if platform.system() == "Darwin":
|
if platform.system() == "Darwin":
|
||||||
return os.path.expanduser("~/Library/Application Support/Bitcoin/")
|
return os.path.expanduser("~/Library/Application Support/Litecoin/")
|
||||||
elif platform.system() == "Windows":
|
elif platform.system() == "Windows":
|
||||||
return os.path.join(os.environ['APPDATA'], "Bitcoin")
|
return os.path.join(os.environ['APPDATA'], "Litecoin")
|
||||||
return os.path.expanduser("~/.bitcoin")
|
return os.path.expanduser("~/.litecoin")
|
||||||
|
|
||||||
def read_bitcoin_config(dbdir):
|
def read_bitcoin_config(dbdir):
|
||||||
"""Read the bitcoin.conf file from dbdir, returns dictionary of settings"""
|
"""Read the litecoin.conf file from dbdir, returns dictionary of settings"""
|
||||||
from ConfigParser import SafeConfigParser
|
from ConfigParser import SafeConfigParser
|
||||||
|
|
||||||
class FakeSecHead(object):
|
class FakeSecHead(object):
|
||||||
@ -62,11 +62,11 @@ def read_bitcoin_config(dbdir):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
config_parser = SafeConfigParser()
|
config_parser = SafeConfigParser()
|
||||||
config_parser.readfp(FakeSecHead(open(os.path.join(dbdir, "bitcoin.conf"))))
|
config_parser.readfp(FakeSecHead(open(os.path.join(dbdir, "litecoin.conf"))))
|
||||||
return dict(config_parser.items("all"))
|
return dict(config_parser.items("all"))
|
||||||
|
|
||||||
def connect_JSON(config):
|
def connect_JSON(config):
|
||||||
"""Connect to a bitcoin JSON-RPC server"""
|
"""Connect to a litecoin JSON-RPC server"""
|
||||||
testnet = config.get('testnet', '0')
|
testnet = config.get('testnet', '0')
|
||||||
testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False
|
testnet = (int(testnet) > 0) # 0/1 in config file, convert to True/False
|
||||||
if not 'rpcport' in config:
|
if not 'rpcport' in config:
|
||||||
@ -224,15 +224,15 @@ def main():
|
|||||||
|
|
||||||
parser = optparse.OptionParser(usage="%prog [options]")
|
parser = optparse.OptionParser(usage="%prog [options]")
|
||||||
parser.add_option("--from", dest="fromaddresses", default=None,
|
parser.add_option("--from", dest="fromaddresses", default=None,
|
||||||
help="addresses to get bitcoins from")
|
help="addresses to get litecoins from")
|
||||||
parser.add_option("--to", dest="to", default=None,
|
parser.add_option("--to", dest="to", default=None,
|
||||||
help="address to get send bitcoins to")
|
help="address to get send litecoins to")
|
||||||
parser.add_option("--amount", dest="amount", default=None,
|
parser.add_option("--amount", dest="amount", default=None,
|
||||||
help="amount to send")
|
help="amount to send")
|
||||||
parser.add_option("--fee", dest="fee", default="0.0",
|
parser.add_option("--fee", dest="fee", default="0.0",
|
||||||
help="fee to include")
|
help="fee to include")
|
||||||
parser.add_option("--datadir", dest="datadir", default=determine_db_dir(),
|
parser.add_option("--datadir", dest="datadir", default=determine_db_dir(),
|
||||||
help="location of bitcoin.conf file with RPC username/password (default: %default)")
|
help="location of litecoin.conf file with RPC username/password (default: %default)")
|
||||||
parser.add_option("--testnet", dest="testnet", default=False, action="store_true",
|
parser.add_option("--testnet", dest="testnet", default=False, action="store_true",
|
||||||
help="Use the test network")
|
help="Use the test network")
|
||||||
parser.add_option("--dry_run", dest="dry_run", default=False, action="store_true",
|
parser.add_option("--dry_run", dest="dry_run", default=False, action="store_true",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
### TestGen ###
|
### TestGen ###
|
||||||
|
|
||||||
Utilities to generate test vectors for the data-driven Bitcoin tests.
|
Utilities to generate test vectors for the data-driven Litecoin tests.
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ if [ -d "$1" ]; then
|
|||||||
cd "$1"
|
cd "$1"
|
||||||
else
|
else
|
||||||
echo "Usage: $0 <datadir>" >&2
|
echo "Usage: $0 <datadir>" >&2
|
||||||
echo "Removes obsolete Bitcoin database files" >&2
|
echo "Removes obsolete Litecoin database files" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -19,22 +19,22 @@ if [ -f wallet.dat -a -f peers.dat -a -f chainstate/CURRENT -a -f blocks/index/C
|
|||||||
|
|
||||||
case $LEVEL in
|
case $LEVEL in
|
||||||
0)
|
0)
|
||||||
echo "Error: no Bitcoin datadir detected."
|
echo "Error: no Litecoin datadir detected."
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
echo "Detected old Bitcoin datadir (before 0.7)."
|
echo "Detected old Litecoin datadir (before 0.7)."
|
||||||
echo "Nothing to do."
|
echo "Nothing to do."
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
echo "Detected Bitcoin 0.7 datadir."
|
echo "Detected Litecoin 0.7 datadir."
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
echo "Detected Bitcoin pre-0.8 datadir."
|
echo "Detected Litecoin pre-0.8 datadir."
|
||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
echo "Detected Bitcoin 0.8 datadir."
|
echo "Detected Litecoin 0.8 datadir."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
@ -12,9 +12,9 @@ For example:
|
|||||||
|
|
||||||
make HOST=x86_64-w64-mingw32 -j4
|
make HOST=x86_64-w64-mingw32 -j4
|
||||||
|
|
||||||
A prefix will be generated that's suitable for plugging into Bitcoin's
|
A prefix will be generated that's suitable for plugging into Litecoin's
|
||||||
configure. In the above example, a dir named x86_64-w64-mingw32 will be
|
configure. In the above example, a dir named x86_64-w64-mingw32 will be
|
||||||
created. To use it for Bitcoin:
|
created. To use it for Litecoin:
|
||||||
|
|
||||||
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
|
./configure --prefix=`pwd`/depends/x86_64-w64-mingw32
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ The following can be set when running make: make FOO=bar
|
|||||||
BUILD_ID_SALT: Optional salt to use when generating build package ids
|
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
|
If some packages are not built, for example `make NO_WALLET=1`, the appropriate
|
||||||
options will be passed to bitcoin's configure. In this case, `--disable-wallet`.
|
options will be passed to litecoin's configure. In this case, `--disable-wallet`.
|
||||||
|
|
||||||
Additional targets:
|
Additional targets:
|
||||||
|
|
||||||
|
|||||||
@ -1,41 +1,41 @@
|
|||||||
Bitcoin Core
|
Litecoin Core
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Setup
|
Setup
|
||||||
---------------------
|
---------------------
|
||||||
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Bitcoin transactions (which is currently more than 100 GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
|
Litecoin Core is the original Litecoin client and it builds the backbone of the network. It downloads and, by default, stores the entire history of Litecoin transactions (which is currently more than 7 GBs); depending on the speed of your computer and network connection, the synchronization process can take anywhere from a few hours to a day or more.
|
||||||
|
|
||||||
To download Bitcoin Core, visit [bitcoincore.org](https://bitcoincore.org/en/releases/).
|
To download Litecoin Core, visit [litecoin.org](https://litecoin.org).
|
||||||
|
|
||||||
Running
|
Running
|
||||||
---------------------
|
---------------------
|
||||||
The following are some helpful notes on how to run Bitcoin on your native platform.
|
The following are some helpful notes on how to run Litecoin on your native platform.
|
||||||
|
|
||||||
### Unix
|
### Unix
|
||||||
|
|
||||||
Unpack the files into a directory and run:
|
Unpack the files into a directory and run:
|
||||||
|
|
||||||
- `bin/bitcoin-qt` (GUI) or
|
- `bin/litecoin-qt` (GUI) or
|
||||||
- `bin/bitcoind` (headless)
|
- `bin/litecoind` (headless)
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
Unpack the files into a directory, and then run bitcoin-qt.exe.
|
Unpack the files into a directory, and then run litecoin-qt.exe.
|
||||||
|
|
||||||
### OS X
|
### OS X
|
||||||
|
|
||||||
Drag Bitcoin-Core to your applications folder, and then run Bitcoin-Core.
|
Drag Litecoin-Core to your applications folder, and then run Litecoin-Core.
|
||||||
|
|
||||||
### Need Help?
|
### Need Help?
|
||||||
|
|
||||||
* See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
|
* See the documentation at the [Litecoin Wiki](https://litecoin.info/)
|
||||||
for help and more information.
|
for help and more information.
|
||||||
* Ask for help on [#bitcoin](http://webchat.freenode.net?channels=bitcoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=bitcoin).
|
* Ask for help on [#litecoin](http://webchat.freenode.net?channels=litecoin) on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net?channels=litecoin).
|
||||||
* Ask for help on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Technical Support board](https://bitcointalk.org/index.php?board=4.0).
|
* Ask for help on the [LitecoinTalk](https://litecointalk.io/) forums.
|
||||||
|
|
||||||
Building
|
Building
|
||||||
---------------------
|
---------------------
|
||||||
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
The following are developer notes on how to build Litecoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
|
||||||
|
|
||||||
- [OS X Build Notes](build-osx.md)
|
- [OS X Build Notes](build-osx.md)
|
||||||
- [Unix Build Notes](build-unix.md)
|
- [Unix Build Notes](build-unix.md)
|
||||||
@ -45,12 +45,12 @@ The following are developer notes on how to build Bitcoin on your native platfor
|
|||||||
|
|
||||||
Development
|
Development
|
||||||
---------------------
|
---------------------
|
||||||
The Bitcoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
The Litecoin repo's [root README](/README.md) contains relevant information on the development process and automated testing.
|
||||||
|
|
||||||
- [Developer Notes](developer-notes.md)
|
- [Developer Notes](developer-notes.md)
|
||||||
- [Release Notes](release-notes.md)
|
- [Release Notes](release-notes.md)
|
||||||
- [Release Process](release-process.md)
|
- [Release Process](release-process.md)
|
||||||
- [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/)
|
- [Source Code Documentation (External Link)](https://dev.visucore.com/litecoin/doxygen/)
|
||||||
- [Translation Process](translation_process.md)
|
- [Translation Process](translation_process.md)
|
||||||
- [Translation Strings Policy](translation_strings_policy.md)
|
- [Translation Strings Policy](translation_strings_policy.md)
|
||||||
- [Travis CI](travis-ci.md)
|
- [Travis CI](travis-ci.md)
|
||||||
@ -61,9 +61,8 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
|
|||||||
- [Benchmarking](benchmarking.md)
|
- [Benchmarking](benchmarking.md)
|
||||||
|
|
||||||
### Resources
|
### Resources
|
||||||
* Discuss on the [BitcoinTalk](https://bitcointalk.org/) forums, in the [Development & Technical Discussion board](https://bitcointalk.org/index.php?board=6.0).
|
* Discuss on the [LitecoinTalk](https://litecointalk.io/) forums.
|
||||||
* Discuss project-specific development on #bitcoin-core-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=bitcoin-core-dev).
|
* Discuss general Litecoin development on #litecoin-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=litecoin-dev).
|
||||||
* Discuss general Bitcoin development on #bitcoin-dev on Freenode. If you don't have an IRC client use [webchat here](http://webchat.freenode.net/?channels=bitcoin-dev).
|
|
||||||
|
|
||||||
### Miscellaneous
|
### Miscellaneous
|
||||||
- [Assets Attribution](assets-attribution.md)
|
- [Assets Attribution](assets-attribution.md)
|
||||||
|
|||||||
@ -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
|
that have been previously (deterministically) built in order to create a
|
||||||
final dmg.
|
final dmg.
|
||||||
- The Apple keyholder uses this unsigned app to create a detached signature,
|
- 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/bitcoin-core/bitcoin-detached-sigs).
|
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/litecoin-project/litecoin-detached-sigs).
|
||||||
- Builders feed the unsigned app + detached signature back into Gitian. It
|
- Builders feed the unsigned app + detached signature back into Gitian. It
|
||||||
uses the pre-built tools to recombine the pieces into a deterministic dmg.
|
uses the pre-built tools to recombine the pieces into a deterministic dmg.
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
Bitcoin Core
|
Litecoin Core
|
||||||
=============
|
=============
|
||||||
|
|
||||||
Intro
|
Intro
|
||||||
-----
|
-----
|
||||||
Bitcoin is a free open source peer-to-peer electronic cash system that is
|
Litecoin is a free open source peer-to-peer electronic cash system that is
|
||||||
completely decentralized, without the need for a central server or trusted
|
completely decentralized, without the need for a central server or trusted
|
||||||
parties. Users hold the crypto keys to their own money and transact directly
|
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.
|
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
|
Setup
|
||||||
-----
|
-----
|
||||||
Unpack the files into a directory and run bitcoin-qt.exe.
|
Unpack the files into a directory and run litecoin-qt.exe.
|
||||||
|
|
||||||
Bitcoin Core is the original Bitcoin client and it builds the backbone of the network.
|
Litecoin Core is the original Litecoin client and it builds the backbone of the network.
|
||||||
However, it downloads and stores the entire history of Bitcoin transactions;
|
However, it downloads and stores the entire history of Litecoin transactions;
|
||||||
depending on the speed of your computer and network connection, the synchronization
|
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.
|
process can take anywhere from a few hours to a day or more.
|
||||||
|
|
||||||
See the bitcoin wiki at:
|
See the litecoin wiki at:
|
||||||
https://en.bitcoin.it/wiki/Main_Page
|
https://litecoin.info/
|
||||||
for more help and information.
|
for more help and information.
|
||||||
|
|||||||
@ -99,4 +99,4 @@ Only supports JSON as output format.
|
|||||||
|
|
||||||
Risks
|
Risks
|
||||||
-------------
|
-------------
|
||||||
Running a web browser on the same node with a REST enabled bitcoind 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 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.
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
The list of assets used in the bitcoin source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright).
|
The list of assets used in the litecoin source and their attribution can now be found in [contrib/debian/copyright](../contrib/debian/copyright).
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
Benchmarking
|
Benchmarking
|
||||||
============
|
============
|
||||||
|
|
||||||
Bitcoin Core has an internal benchmarking framework, with benchmarks
|
Litecoin 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.
|
for cryptographic algorithms such as SHA1, SHA256, SHA512 and RIPEMD160. As well as the rolling bloom filter.
|
||||||
|
|
||||||
After compiling bitcoin-core, the benchmarks can be run with:
|
After compiling litecoin-core, the benchmarks can be run with:
|
||||||
`src/bench/bench_bitcoin`
|
`src/bench/bench_litecoin`
|
||||||
|
|
||||||
The output will look similar to:
|
The output will look similar to:
|
||||||
```
|
```
|
||||||
|
|||||||
@ -2,7 +2,7 @@ OpenBSD build guide
|
|||||||
======================
|
======================
|
||||||
(updated for OpenBSD 6.1)
|
(updated for OpenBSD 6.1)
|
||||||
|
|
||||||
This guide describes how to build bitcoind and command-line utilities on OpenBSD.
|
This guide describes how to build litecoind and command-line utilities on OpenBSD.
|
||||||
|
|
||||||
As OpenBSD is most common as a server OS, we will not bother with the GUI.
|
As OpenBSD is most common as a server OS, we will not bother with the GUI.
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ pkg_add automake # (select highest version, e.g. 1.15)
|
|||||||
pkg_add python # (select highest version, e.g. 3.5)
|
pkg_add python # (select highest version, e.g. 3.5)
|
||||||
```
|
```
|
||||||
|
|
||||||
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Litecoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler.
|
||||||
|
|
||||||
GCC
|
GCC
|
||||||
-------
|
-------
|
||||||
@ -35,16 +35,16 @@ This compiler will not overwrite the system compiler, it will be installed as `e
|
|||||||
|
|
||||||
Do not use `pkg_add boost`! The boost version installed thus is compiled using the `g++` compiler not `eg++`, which will result in a conflict between `/usr/local/lib/libestdc++.so.XX.0` and `/usr/lib/libstdc++.so.XX.0`, resulting in a test crash:
|
Do not use `pkg_add boost`! The boost version installed thus is compiled using the `g++` compiler not `eg++`, which will result in a conflict between `/usr/local/lib/libestdc++.so.XX.0` and `/usr/lib/libstdc++.so.XX.0`, resulting in a test crash:
|
||||||
|
|
||||||
test_bitcoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
|
test_litecoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
|
||||||
...
|
...
|
||||||
Segmentation fault (core dumped)
|
Segmentation fault (core dumped)
|
||||||
|
|
||||||
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
|
This makes it necessary to build boost, or at least the parts used by Litecoin Core, manually:
|
||||||
|
|
||||||
```
|
```
|
||||||
# Pick some path to install boost to, here we create a directory within the bitcoin directory
|
# Pick some path to install boost to, here we create a directory within the litecoin directory
|
||||||
BITCOIN_ROOT=$(pwd)
|
LITECOIN_ROOT=$(pwd)
|
||||||
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
|
BOOST_PREFIX="${LITECOIN_ROOT}/boost"
|
||||||
mkdir -p $BOOST_PREFIX
|
mkdir -p $BOOST_PREFIX
|
||||||
|
|
||||||
# Fetch the source and verify that it is not tampered with
|
# Fetch the source and verify that it is not tampered with
|
||||||
@ -58,7 +58,7 @@ cd boost_1_64_0
|
|||||||
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
|
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
|
||||||
patch -p0 < /usr/ports/devel/boost/patches/patch-boost_test_impl_execution_monitor_ipp
|
patch -p0 < /usr/ports/devel/boost/patches/patch-boost_test_impl_execution_monitor_ipp
|
||||||
|
|
||||||
# Build w/ minimum configuration necessary for bitcoin
|
# Build w/ minimum configuration necessary for litecoin
|
||||||
echo 'using gcc : : eg++ : <cxxflags>"-fvisibility=hidden -fPIC" <linkflags>"" <archiver>"ar" <striper>"strip" <ranlib>"ranlib" <rc>"" : ;' > user-config.jam
|
echo 'using gcc : : eg++ : <cxxflags>"-fvisibility=hidden -fPIC" <linkflags>"" <archiver>"ar" <striper>"strip" <ranlib>"ranlib" <rc>"" : ;' > user-config.jam
|
||||||
config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1"
|
config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1"
|
||||||
./bootstrap.sh --without-icu --with-libraries=chrono,filesystem,program_options,system,thread,test
|
./bootstrap.sh --without-icu --with-libraries=chrono,filesystem,program_options,system,thread,test
|
||||||
@ -74,9 +74,9 @@ See "Berkeley DB" in [build_unix.md](build_unix.md) for instructions on how to b
|
|||||||
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
You cannot use the BerkeleyDB library from ports, for the same reason as boost above (g++/libstd++ incompatibility).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
# Pick some path to install BDB to, here we create a directory within the litecoin directory
|
||||||
BITCOIN_ROOT=$(pwd)
|
LITECOIN_ROOT=$(pwd)
|
||||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
BDB_PREFIX="${LITECOIN_ROOT}/db4"
|
||||||
mkdir -p $BDB_PREFIX
|
mkdir -p $BDB_PREFIX
|
||||||
|
|
||||||
# Fetch the source and verify that it is not tampered with
|
# Fetch the source and verify that it is not tampered with
|
||||||
@ -108,7 +108,7 @@ The change will only affect the current shell and processes spawned by it. To
|
|||||||
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
make the change system-wide, change `datasize-cur` and `datasize-max` in
|
||||||
`/etc/login.conf`, and reboot.
|
`/etc/login.conf`, and reboot.
|
||||||
|
|
||||||
### Building Bitcoin Core
|
### Building Litecoin Core
|
||||||
|
|
||||||
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
|
**Important**: use `gmake`, not `make`. The non-GNU `make` will exit with a horrible error.
|
||||||
|
|
||||||
|
|||||||
@ -24,17 +24,17 @@ If you want to build the disk image with `make deploy` (.dmg / optional), you ne
|
|||||||
|
|
||||||
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
|
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
|
||||||
|
|
||||||
Build Bitcoin Core
|
Build Litecoin Core
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
1. Clone the bitcoin source code and cd into `bitcoin`
|
1. Clone the litecoin source code and cd into `litecoin`
|
||||||
|
|
||||||
git clone https://github.com/bitcoin/bitcoin
|
git clone https://github.com/litecoin-project/litecoin
|
||||||
cd bitcoin
|
cd litecoin
|
||||||
|
|
||||||
2. Build bitcoin-core:
|
2. Build litecoin-core:
|
||||||
|
|
||||||
Configure and build the headless bitcoin binaries as well as the GUI (if Qt is found).
|
Configure and build the headless litecoin binaries as well as the GUI (if Qt is found).
|
||||||
|
|
||||||
You can disable the GUI build by passing `--without-gui` to configure.
|
You can disable the GUI build by passing `--without-gui` to configure.
|
||||||
|
|
||||||
@ -53,37 +53,37 @@ Build Bitcoin Core
|
|||||||
Running
|
Running
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Bitcoin Core is now available at `./src/bitcoind`
|
Litecoin Core is now available at `./src/litecoind`
|
||||||
|
|
||||||
Before running, it's recommended you create an RPC configuration file.
|
Before running, it's recommended you create an RPC configuration file.
|
||||||
|
|
||||||
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
echo -e "rpcuser=litecoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||||
|
|
||||||
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
|
chmod 600 "/Users/${USER}/Library/Application Support/Litecoin/litecoin.conf"
|
||||||
|
|
||||||
The first time you run bitcoind, it will start downloading the blockchain. This process could take several hours.
|
The first time you run litecoind, it will start downloading the blockchain. This process could take several hours.
|
||||||
|
|
||||||
You can monitor the download process by looking at the debug.log file:
|
You can monitor the download process by looking at the debug.log file:
|
||||||
|
|
||||||
tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
|
tail -f $HOME/Library/Application\ Support/Litecoin/debug.log
|
||||||
|
|
||||||
Other commands:
|
Other commands:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
./src/bitcoind -daemon # Starts the bitcoin daemon.
|
./src/litecoind -daemon # Starts the litecoin daemon.
|
||||||
./src/bitcoin-cli --help # Outputs a list of command-line options.
|
./src/litecoin-cli --help # Outputs a list of command-line options.
|
||||||
./src/bitcoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
./src/litecoin-cli help # Outputs a list of RPC commands when the daemon is running.
|
||||||
|
|
||||||
Using Qt Creator as IDE
|
Using Qt Creator as IDE
|
||||||
------------------------
|
------------------------
|
||||||
You can use Qt Creator as an IDE, for bitcoin development.
|
You can use Qt Creator as an IDE, for litecoin development.
|
||||||
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||||
Uncheck everything except Qt Creator during the installation process.
|
Uncheck everything except Qt Creator during the installation process.
|
||||||
|
|
||||||
1. Make sure you installed everything through Homebrew mentioned above
|
1. Make sure you installed everything through Homebrew mentioned above
|
||||||
2. Do a proper ./configure --enable-debug
|
2. Do a proper ./configure --enable-debug
|
||||||
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
||||||
4. Enter "bitcoin-qt" as project name, enter src/qt as location
|
4. Enter "litecoin-qt" as project name, enter src/qt as location
|
||||||
5. Leave the file selection as it is
|
5. Leave the file selection as it is
|
||||||
6. Confirm the "summary page"
|
6. Confirm the "summary page"
|
||||||
7. In the "Projects" tab select "Manage Kits..."
|
7. In the "Projects" tab select "Manage Kits..."
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
UNIX BUILD NOTES
|
UNIX BUILD NOTES
|
||||||
====================
|
====================
|
||||||
Some notes on how to build Bitcoin Core in Unix.
|
Some notes on how to build Litecoin Core in Unix.
|
||||||
|
|
||||||
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
(for OpenBSD specific instructions, see [build-openbsd.md](build-openbsd.md))
|
||||||
|
|
||||||
Note
|
Note
|
||||||
---------------------
|
---------------------
|
||||||
Always use absolute paths to configure and compile bitcoin and the dependencies,
|
Always use absolute paths to configure and compile litecoin and the dependencies,
|
||||||
for example, when specifying the path of the dependency:
|
for example, when specifying the path of the dependency:
|
||||||
|
|
||||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||||
@ -24,7 +24,7 @@ make
|
|||||||
make install # optional
|
make install # optional
|
||||||
```
|
```
|
||||||
|
|
||||||
This will build bitcoin-qt as well if the dependencies are met.
|
This will build litecoin-qt as well if the dependencies are met.
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
---------------------
|
---------------------
|
||||||
@ -55,7 +55,7 @@ Memory Requirements
|
|||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
|
C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of
|
||||||
memory available when compiling Bitcoin Core. On systems with less, gcc can be
|
memory available when compiling Litecoin Core. On systems with less, gcc can be
|
||||||
tuned to conserve memory with additional CXXFLAGS:
|
tuned to conserve memory with additional CXXFLAGS:
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distri
|
|||||||
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
|
are based on BerkeleyDB 4.8. If you do not care about wallet compatibility,
|
||||||
pass `--with-incompatible-bdb` to configure.
|
pass `--with-incompatible-bdb` to configure.
|
||||||
|
|
||||||
See the section "Disable-wallet mode" to build Bitcoin Core without wallet.
|
See the section "Disable-wallet mode" to build Litecoin Core without wallet.
|
||||||
|
|
||||||
Optional (see --with-miniupnpc and --enable-upnp-default):
|
Optional (see --with-miniupnpc and --enable-upnp-default):
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ ZMQ dependencies (provides ZMQ API 4.x):
|
|||||||
Dependencies for the GUI: Ubuntu & Debian
|
Dependencies for the GUI: Ubuntu & Debian
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
If you want to build Bitcoin-Qt, make sure that the required packages for Qt development
|
If you want to build Litecoin-Qt, make sure that the required packages for Qt development
|
||||||
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
|
are installed. Either Qt 5 or Qt 4 are necessary to build the GUI.
|
||||||
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
|
If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass `--with-gui=qt4` to configure to choose Qt4.
|
||||||
To build without GUI pass `--without-gui`.
|
To build without GUI pass `--without-gui`.
|
||||||
@ -124,7 +124,7 @@ libqrencode (optional) can be installed with:
|
|||||||
|
|
||||||
sudo apt-get install libqrencode-dev
|
sudo apt-get install libqrencode-dev
|
||||||
|
|
||||||
Once these are installed, they will be found by configure and a bitcoin-qt executable will be
|
Once these are installed, they will be found by configure and a litecoin-qt executable will be
|
||||||
built by default.
|
built by default.
|
||||||
|
|
||||||
Dependency Build Instructions: Fedora
|
Dependency Build Instructions: Fedora
|
||||||
@ -147,7 +147,7 @@ libqrencode (optional) can be installed with:
|
|||||||
|
|
||||||
Notes
|
Notes
|
||||||
-----
|
-----
|
||||||
The release is built with GCC and then "strip bitcoind" to strip the debug
|
The release is built with GCC and then "strip litecoind" to strip the debug
|
||||||
symbols, which reduces the executable size by about 90%.
|
symbols, which reduces the executable size by about 90%.
|
||||||
|
|
||||||
|
|
||||||
@ -168,10 +168,10 @@ Berkeley DB
|
|||||||
It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
|
It is recommended to use Berkeley DB 4.8. If you have to build it yourself:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BITCOIN_ROOT=$(pwd)
|
LITECOIN_ROOT=$(pwd)
|
||||||
|
|
||||||
# Pick some path to install BDB to, here we create a directory within the bitcoin directory
|
# Pick some path to install BDB to, here we create a directory within the litecoin directory
|
||||||
BDB_PREFIX="${BITCOIN_ROOT}/db4"
|
BDB_PREFIX="${LITECOIN_ROOT}/db4"
|
||||||
mkdir -p $BDB_PREFIX
|
mkdir -p $BDB_PREFIX
|
||||||
|
|
||||||
# Fetch the source and verify that it is not tampered with
|
# Fetch the source and verify that it is not tampered with
|
||||||
@ -186,8 +186,8 @@ cd db-4.8.30.NC/build_unix/
|
|||||||
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX
|
||||||
make install
|
make install
|
||||||
|
|
||||||
# Configure Bitcoin Core to use our own-built instance of BDB
|
# Configure Litecoin Core to use our own-built instance of BDB
|
||||||
cd $BITCOIN_ROOT
|
cd $LITECOIN_ROOT
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...)
|
||||||
```
|
```
|
||||||
@ -205,7 +205,7 @@ If you need to build Boost yourself:
|
|||||||
|
|
||||||
Security
|
Security
|
||||||
--------
|
--------
|
||||||
To help make your bitcoin installation more secure by making certain attacks impossible to
|
To help make your litecoin installation more secure by making certain attacks impossible to
|
||||||
exploit even if a vulnerability is found, binaries are hardened by default.
|
exploit even if a vulnerability is found, binaries are hardened by default.
|
||||||
This can be disabled with:
|
This can be disabled with:
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ Hardening enables the following features:
|
|||||||
|
|
||||||
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
|
To test that you have built PIE executable, install scanelf, part of paxutils, and use:
|
||||||
|
|
||||||
scanelf -e ./bitcoin
|
scanelf -e ./litecoin
|
||||||
|
|
||||||
The output should contain:
|
The output should contain:
|
||||||
|
|
||||||
@ -238,13 +238,13 @@ Hardening enables the following features:
|
|||||||
|
|
||||||
* Non-executable Stack
|
* Non-executable Stack
|
||||||
If the stack is executable then trivial stack based buffer overflow exploits are possible if
|
If the stack is executable then trivial stack based buffer overflow exploits are possible if
|
||||||
vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack
|
vulnerable buffers are found. By default, litecoin should be built with a non-executable stack
|
||||||
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
|
but if one of the libraries it uses asks for an executable stack or someone makes a mistake
|
||||||
and uses a compiler extension which requires an executable stack, it will silently build an
|
and uses a compiler extension which requires an executable stack, it will silently build an
|
||||||
executable without the non-executable stack protection.
|
executable without the non-executable stack protection.
|
||||||
|
|
||||||
To verify that the stack is non-executable after compiling use:
|
To verify that the stack is non-executable after compiling use:
|
||||||
`scanelf -e ./bitcoin`
|
`scanelf -e ./litecoin`
|
||||||
|
|
||||||
the output should contain:
|
the output should contain:
|
||||||
STK/REL/PTL
|
STK/REL/PTL
|
||||||
@ -254,7 +254,7 @@ Hardening enables the following features:
|
|||||||
|
|
||||||
Disable-wallet mode
|
Disable-wallet mode
|
||||||
--------------------
|
--------------------
|
||||||
When the intention is to run only a P2P node without a wallet, bitcoin may be compiled in
|
When the intention is to run only a P2P node without a wallet, litecoin may be compiled in
|
||||||
disable-wallet mode with:
|
disable-wallet mode with:
|
||||||
|
|
||||||
./configure --disable-wallet
|
./configure --disable-wallet
|
||||||
@ -276,8 +276,8 @@ Setup and Build Example: Arch Linux
|
|||||||
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:
|
||||||
|
|
||||||
pacman -S git base-devel boost libevent python
|
pacman -S git base-devel boost libevent python
|
||||||
git clone https://github.com/bitcoin/bitcoin.git
|
git clone https://github.com/litecoin-project/litecoin.git
|
||||||
cd bitcoin/
|
cd litecoin/
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure --disable-wallet --without-gui --without-miniupnpc
|
./configure --disable-wallet --without-gui --without-miniupnpc
|
||||||
make check
|
make check
|
||||||
@ -286,7 +286,7 @@ Note:
|
|||||||
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package `db`) using `--with-incompatible-bdb`,
|
||||||
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using
|
||||||
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
`--with-incompatible-bdb` according to the [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/bitcoin/trunk/PKGBUILD).
|
||||||
As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built
|
As mentioned above, when maintaining portability of the wallet between the standard Litecoin Core distributions and independently built
|
||||||
node software is desired, Berkeley DB 4.8 must be used.
|
node software is desired, Berkeley DB 4.8 must be used.
|
||||||
|
|
||||||
|
|
||||||
@ -334,7 +334,7 @@ For the wallet (optional):
|
|||||||
This will give a warning "configure: WARNING: Found Berkeley DB other
|
This will give a warning "configure: WARNING: Found Berkeley DB other
|
||||||
than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never
|
than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never
|
||||||
had a binary release, this may not matter. If backwards compatibility
|
had a binary release, this may not matter. If backwards compatibility
|
||||||
with 4.8-built Bitcoin Core is needed follow the steps under "Berkeley DB" above.
|
with 4.8-built Litecoin Core is needed follow the steps under "Berkeley DB" above.
|
||||||
|
|
||||||
Then build using:
|
Then build using:
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
WINDOWS BUILD NOTES
|
WINDOWS BUILD NOTES
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Below are some notes on how to build Bitcoin Core for Windows.
|
Below are some notes on how to build Litecoin Core for Windows.
|
||||||
|
|
||||||
Most developers use cross-compilation from Ubuntu to build executables for
|
Most developers use cross-compilation from Ubuntu to build executables for
|
||||||
Windows. This is also used to build the release binaries.
|
Windows. This is also used to build the release binaries.
|
||||||
@ -102,6 +102,6 @@ Installation
|
|||||||
After building using the Windows subsystem it can be useful to copy the compiled
|
After building using the Windows subsystem it can be useful to copy the compiled
|
||||||
executables to a directory on the windows drive in the same directory structure
|
executables to a directory on the windows drive in the same directory structure
|
||||||
as they appear in the release `.zip` archive. This can be done in the following
|
as they appear in the release `.zip` archive. This can be done in the following
|
||||||
way. This will install to `c:\workspace\bitcoin`, for example:
|
way. This will install to `c:\workspace\litecoin`, for example:
|
||||||
|
|
||||||
make install DESTDIR=/mnt/c/workspace/bitcoin
|
make install DESTDIR=/mnt/c/workspace/litecoin
|
||||||
|
|||||||
@ -151,7 +151,7 @@ to see it.
|
|||||||
|
|
||||||
**testnet and regtest modes**
|
**testnet and regtest modes**
|
||||||
|
|
||||||
Run with the -testnet option to run with "play bitcoins" on the test network, if you
|
Run with the -testnet option to run with "play litecoins" on the test network, if you
|
||||||
are testing multi-machine code that needs to operate across the internet.
|
are testing multi-machine code that needs to operate across the internet.
|
||||||
|
|
||||||
If you are testing something that can run on one machine, run with the -regtest option.
|
If you are testing something that can run on one machine, run with the -regtest option.
|
||||||
@ -160,7 +160,7 @@ that run in -regtest mode.
|
|||||||
|
|
||||||
**DEBUG_LOCKORDER**
|
**DEBUG_LOCKORDER**
|
||||||
|
|
||||||
Bitcoin Core is a multithreaded application, and deadlocks or other multithreading bugs
|
Litecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
|
||||||
can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure
|
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
|
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.
|
are held, and adds warnings to the debug.log file if inconsistencies are detected.
|
||||||
@ -209,7 +209,7 @@ Threads
|
|||||||
|
|
||||||
- ThreadRPCServer : Remote procedure call handler, listens on port 9332 for connections and services them.
|
- ThreadRPCServer : Remote procedure call handler, listens on port 9332 for connections and services them.
|
||||||
|
|
||||||
- BitcoinMiner : Generates bitcoins (if wallet is enabled).
|
- BitcoinMiner : Generates litecoins (if wallet is enabled).
|
||||||
|
|
||||||
- Shutdown : Does an orderly shutdown of everything.
|
- Shutdown : Does an orderly shutdown of everything.
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ Ignoring IDE/editor files
|
|||||||
In closed-source environments in which everyone uses the same IDE it is common
|
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.
|
to add temporary files it produces to the project-wide `.gitignore` file.
|
||||||
|
|
||||||
However, in open source software such as Bitcoin Core, where everyone uses
|
However, in open source software such as Litecoin Core, where everyone uses
|
||||||
their own editors/IDE/tools, it is less common. Only you know what files your
|
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
|
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`:
|
to do this is thus to create your local gitignore. Add this to `~/.gitconfig`:
|
||||||
@ -249,9 +249,9 @@ Development guidelines
|
|||||||
============================
|
============================
|
||||||
|
|
||||||
A few non-style-related recommendations for developers, as well as points to
|
A few non-style-related recommendations for developers, as well as points to
|
||||||
pay attention to for reviewers of Bitcoin Core code.
|
pay attention to for reviewers of Litecoin Core code.
|
||||||
|
|
||||||
General Bitcoin Core
|
General Litecoin Core
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
- New features should be exposed on RPC first, then can be made available in the GUI
|
- New features should be exposed on RPC first, then can be made available in the GUI
|
||||||
@ -361,7 +361,7 @@ Strings and formatting
|
|||||||
|
|
||||||
- For `strprintf`, `LogPrint`, `LogPrintf` formatting characters don't need size specifiers
|
- For `strprintf`, `LogPrint`, `LogPrintf` formatting characters don't need size specifiers
|
||||||
|
|
||||||
- *Rationale*: Bitcoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
|
- *Rationale*: Litecoin Core uses tinyformat, which is type safe. Leave them out to avoid confusion
|
||||||
|
|
||||||
Variable names
|
Variable names
|
||||||
--------------
|
--------------
|
||||||
@ -467,12 +467,12 @@ Subtrees
|
|||||||
|
|
||||||
Several parts of the repository are subtrees of software maintained elsewhere.
|
Several parts of the repository are subtrees of software maintained elsewhere.
|
||||||
|
|
||||||
Some of these are maintained by active developers of Bitcoin Core, in which case changes should probably go
|
Some of these are maintained by active developers of Litecoin 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
|
directly upstream without being PRed directly against the project. They will be merged back in the next
|
||||||
subtree merge.
|
subtree merge.
|
||||||
|
|
||||||
Others are external projects without a tight relationship with our project. Changes to these should also
|
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 Bitcoin Core so that they can be integrated
|
be sent upstream but bugfixes may also be prudent to PR against Litecoin Core so that they can be integrated
|
||||||
quickly. Cosmetic changes should be purely taken upstream.
|
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
|
There is a tool in contrib/devtools/git-subtree-check.sh to check a subtree directory for consistency with
|
||||||
@ -535,7 +535,7 @@ Git and GitHub tips
|
|||||||
|
|
||||||
[remote "upstream-pull"]
|
[remote "upstream-pull"]
|
||||||
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
|
fetch = +refs/pull/*:refs/remotes/upstream-pull/*
|
||||||
url = git@github.com:bitcoin/bitcoin.git
|
url = git@github.com:litecoin-project/litecoin.git
|
||||||
|
|
||||||
This will add an `upstream-pull` remote to your git repository, which can be fetched using `git fetch --all`
|
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`,
|
or `git fetch upstream-pull`. Afterwards, you can use `upstream-pull/NUMBER/head` in arguments to `git show`,
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
Expectations for DNS Seed operators
|
Expectations for DNS Seed operators
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
Bitcoin Core attempts to minimize the level of trust in DNS seeds,
|
Litecoin Core attempts to minimize the level of trust in DNS seeds,
|
||||||
but DNS seeds still pose a small amount of risk for the network.
|
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
|
As such, DNS seeds must be run by entities which have some minimum
|
||||||
level of trust within the Bitcoin community.
|
level of trust within the Litecoin community.
|
||||||
|
|
||||||
Other implementations of Bitcoin software may also use the same
|
Other implementations of Litecoin software may also use the same
|
||||||
seeds and may be more exposed. In light of this exposure, this
|
seeds and may be more exposed. In light of this exposure, this
|
||||||
document establishes some basic expectations for operating dnsseeds.
|
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
|
|||||||
contracted by the operator are equally expected to uphold these expectations.
|
contracted by the operator are equally expected to uphold these expectations.
|
||||||
|
|
||||||
1. The DNS seed results must consist exclusively of fairly selected and
|
1. The DNS seed results must consist exclusively of fairly selected and
|
||||||
functioning Bitcoin nodes from the public network to the best of the
|
functioning Litecoin nodes from the public network to the best of the
|
||||||
operator's understanding and capability.
|
operator's understanding and capability.
|
||||||
|
|
||||||
2. For the avoidance of doubt, the results may be randomized but must not
|
2. For the avoidance of doubt, the results may be randomized but must not
|
||||||
@ -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.
|
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
|
4. Any logging of DNS queries should be only that which is necessary
|
||||||
for the operation of the service or urgent health of the Bitcoin
|
for the operation of the service or urgent health of the Litecoin
|
||||||
network and must not be retained longer than necessary nor disclosed
|
network and must not be retained longer than necessary nor disclosed
|
||||||
to any third party.
|
to any third party.
|
||||||
|
|
||||||
@ -42,13 +42,13 @@ details of their operating practices.
|
|||||||
related to the DNS seed operation.
|
related to the DNS seed operation.
|
||||||
|
|
||||||
If these expectations cannot be satisfied the operator should
|
If these expectations cannot be satisfied the operator should
|
||||||
discontinue providing services and contact the active Bitcoin
|
discontinue providing services and contact the active Litecoin
|
||||||
Core development team as well as posting on
|
Core development team as well as posting on
|
||||||
[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
|
[litecoin-dev](https://groups.google.com/forum/#!forum/litecoin-dev).
|
||||||
|
|
||||||
Behavior outside of these expectations may be reasonable in some
|
Behavior outside of these expectations may be reasonable in some
|
||||||
situations but should be discussed in public in advance.
|
situations but should be discussed in public in advance.
|
||||||
|
|
||||||
See also
|
See also
|
||||||
----------
|
----------
|
||||||
- [bitcoin-seeder](https://github.com/sipa/bitcoin-seeder) is a reference implementation of a DNS seed.
|
- [litecoin-seeder](https://github.com/pooler/litecoin-seeder) is a reference implementation of a DNS seed.
|
||||||
|
|||||||
@ -1,14 +1,14 @@
|
|||||||
|
|
||||||
* banlist.dat: stores the IPs/Subnets of banned nodes
|
* banlist.dat: stores the IPs/Subnets of banned nodes
|
||||||
* bitcoin.conf: contains configuration settings for bitcoind or bitcoin-qt
|
* litecoin.conf: contains configuration settings for litecoind or litecoin-qt
|
||||||
* bitcoind.pid: stores the process id of bitcoind while running
|
* litecoind.pid: stores the process id of litecoind while running
|
||||||
* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
|
* 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/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
|
* blocks/index/*; block index (LevelDB); since 0.8.0
|
||||||
* chainstate/*; block chain state database (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
|
* database/*: BDB database environment; only used for wallet since 0.8.0
|
||||||
* db.log: wallet database log file
|
* db.log: wallet database log file
|
||||||
* debug.log: contains debug information and general logging generated by bitcoind or bitcoin-qt
|
* debug.log: contains debug information and general logging generated by litecoind or litecoin-qt
|
||||||
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
|
* 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.
|
* mempool.dat: dump of the mempool's transactions; since 0.14.0.
|
||||||
* peers.dat: peer IP address database (custom format); since 0.7.0
|
* peers.dat: peer IP address database (custom format); since 0.7.0
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
Fuzz-testing Bitcoin Core
|
Fuzz-testing Litecoin Core
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
A special test harness `test_bitcoin_fuzzy` is provided to provide an easy
|
A special test harness `test_litecoin_fuzzy` is provided to provide an easy
|
||||||
entry point for fuzzers and the like. In this document we'll describe how to
|
entry point for fuzzers and the like. In this document we'll describe how to
|
||||||
use it with AFL.
|
use it with AFL.
|
||||||
|
|
||||||
@ -20,13 +20,13 @@ export AFLPATH=$PWD
|
|||||||
Instrumentation
|
Instrumentation
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
To build Bitcoin Core using AFL instrumentation (this assumes that the
|
To build Litecoin Core using AFL instrumentation (this assumes that the
|
||||||
`AFLPATH` was set as above):
|
`AFLPATH` was set as above):
|
||||||
```
|
```
|
||||||
./configure --disable-ccache --disable-shared --enable-tests CC=${AFLPATH}/afl-gcc CXX=${AFLPATH}/afl-g++
|
./configure --disable-ccache --disable-shared --enable-tests CC=${AFLPATH}/afl-gcc CXX=${AFLPATH}/afl-g++
|
||||||
export AFL_HARDEN=1
|
export AFL_HARDEN=1
|
||||||
cd src/
|
cd src/
|
||||||
make test/test_bitcoin_fuzzy
|
make test/test_litecoin_fuzzy
|
||||||
```
|
```
|
||||||
We disable ccache because we don't want to pollute the ccache with instrumented
|
We disable ccache because we don't want to pollute the ccache with instrumented
|
||||||
objects, and similarly don't want to use non-instrumented cached objects linked
|
objects, and similarly don't want to use non-instrumented cached objects linked
|
||||||
@ -65,7 +65,7 @@ Fuzzing
|
|||||||
|
|
||||||
To start the actual fuzzing use:
|
To start the actual fuzzing use:
|
||||||
```
|
```
|
||||||
$AFLPATH/afl-fuzz -i ${AFLIN} -o ${AFLOUT} -m52 -- test/test_bitcoin_fuzzy
|
$AFLPATH/afl-fuzz -i ${AFLIN} -o ${AFLOUT} -m52 -- test/test_litecoin_fuzzy
|
||||||
```
|
```
|
||||||
|
|
||||||
You may have to change a few kernel parameters to test optimally - `afl-fuzz`
|
You may have to change a few kernel parameters to test optimally - `afl-fuzz`
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
Gitian building
|
Gitian building
|
||||||
================
|
================
|
||||||
|
|
||||||
*Setup instructions for a Gitian build of Bitcoin Core using a Debian VM or physical system.*
|
*Setup instructions for a Gitian build of Litecoin Core using a Debian VM or physical system.*
|
||||||
|
|
||||||
Gitian is the deterministic build process that is used to build the Bitcoin
|
Gitian is the deterministic build process that is used to build the Litecoin
|
||||||
Core executables. It provides a way to be reasonably sure that the
|
Core executables. It provides a way to be reasonably sure that the
|
||||||
executables are really built from the source on GitHub. It also makes sure that
|
executables are really built from the source on GitHub. It also makes sure that
|
||||||
the same, tested dependencies are used and statically built into the executable.
|
the same, tested dependencies are used and statically built into the executable.
|
||||||
@ -11,7 +11,7 @@ the same, tested dependencies are used and statically built into the executable.
|
|||||||
Multiple developers build the source code by following a specific descriptor
|
Multiple developers build the source code by following a specific descriptor
|
||||||
("recipe"), cryptographically sign the result, and upload the resulting signature.
|
("recipe"), cryptographically sign the result, and upload the resulting signature.
|
||||||
These results are compared and only if they match, the build is accepted and uploaded
|
These results are compared and only if they match, the build is accepted and uploaded
|
||||||
to bitcoin.org.
|
to litecoin.org.
|
||||||
|
|
||||||
More independent Gitian builders are needed, which is why this guide exists.
|
More independent Gitian builders are needed, which is why this guide exists.
|
||||||
It is preferred you follow these steps yourself instead of using someone else's
|
It is preferred you follow these steps yourself instead of using someone else's
|
||||||
@ -26,7 +26,7 @@ Table of Contents
|
|||||||
- [Installing Gitian](#installing-gitian)
|
- [Installing Gitian](#installing-gitian)
|
||||||
- [Setting up the Gitian image](#setting-up-the-gitian-image)
|
- [Setting up the Gitian image](#setting-up-the-gitian-image)
|
||||||
- [Getting and building the inputs](#getting-and-building-the-inputs)
|
- [Getting and building the inputs](#getting-and-building-the-inputs)
|
||||||
- [Building Bitcoin Core](#building-bitcoin-core)
|
- [Building Litecoin Core](#building-litecoin-core)
|
||||||
- [Building an alternative repository](#building-an-alternative-repository)
|
- [Building an alternative repository](#building-an-alternative-repository)
|
||||||
- [Signing externally](#signing-externally)
|
- [Signing externally](#signing-externally)
|
||||||
- [Uploading signatures](#uploading-signatures)
|
- [Uploading signatures](#uploading-signatures)
|
||||||
@ -310,12 +310,12 @@ cd ..
|
|||||||
|
|
||||||
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
|
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
|
||||||
|
|
||||||
Clone the git repositories for bitcoin and Gitian.
|
Clone the git repositories for litecoin and Gitian.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/devrandom/gitian-builder.git
|
git clone https://github.com/devrandom/gitian-builder.git
|
||||||
git clone https://github.com/bitcoin/bitcoin
|
git clone https://github.com/litecoin-project/litecoin
|
||||||
git clone https://github.com/bitcoin-core/gitian.sigs.git
|
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
|
||||||
```
|
```
|
||||||
|
|
||||||
Setting up the Gitian image
|
Setting up the Gitian image
|
||||||
@ -344,16 +344,16 @@ Getting and building the inputs
|
|||||||
At this point you have two options, you can either use the automated script (found in [contrib/gitian-build.sh](/contrib/gitian-build.sh)) or you could manually do everything by following this guide. If you're using the automated script, then run it with the "--setup" command. Afterwards, run it with the "--build" command (example: "contrib/gitian-build.sh -b signer 0.13.0"). Otherwise ignore this.
|
At this point you have two options, you can either use the automated script (found in [contrib/gitian-build.sh](/contrib/gitian-build.sh)) or you could manually do everything by following this guide. If you're using the automated script, then run it with the "--setup" command. Afterwards, run it with the "--build" command (example: "contrib/gitian-build.sh -b signer 0.13.0"). Otherwise ignore this.
|
||||||
|
|
||||||
Follow the instructions in [doc/release-process.md](release-process.md#fetch-and-create-inputs-first-time-or-when-dependency-versions-change)
|
Follow the instructions in [doc/release-process.md](release-process.md#fetch-and-create-inputs-first-time-or-when-dependency-versions-change)
|
||||||
in the bitcoin repository under 'Fetch and create inputs' to install sources which require
|
in the litecoin repository under 'Fetch and create inputs' to install sources which require
|
||||||
manual intervention. Also optionally follow the next step: 'Seed the Gitian sources cache
|
manual intervention. Also optionally follow the next step: 'Seed the Gitian sources cache
|
||||||
and offline git repositories' which will fetch the remaining files required for building
|
and offline git repositories' which will fetch the remaining files required for building
|
||||||
offline.
|
offline.
|
||||||
|
|
||||||
Building Bitcoin Core
|
Building Litecoin Core
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
To build Bitcoin Core (for Linux, OS X and Windows) just follow the steps under 'perform
|
To build Litecoin Core (for Linux, OS X and Windows) just follow the steps under 'perform
|
||||||
Gitian builds' in [doc/release-process.md](release-process.md#perform-gitian-builds) in the bitcoin repository.
|
Gitian builds' in [doc/release-process.md](release-process.md#perform-gitian-builds) in the litecoin repository.
|
||||||
|
|
||||||
This may take some time as it will build all the dependencies needed for each descriptor.
|
This may take some time as it will build all the dependencies needed for each descriptor.
|
||||||
These dependencies will be cached after a successful build to avoid rebuilding them when possible.
|
These dependencies will be cached after a successful build to avoid rebuilding them when possible.
|
||||||
@ -367,12 +367,12 @@ tail -f var/build.log
|
|||||||
|
|
||||||
Output from `gbuild` will look something like
|
Output from `gbuild` will look something like
|
||||||
|
|
||||||
Initialized empty Git repository in /home/debian/gitian-builder/inputs/bitcoin/.git/
|
Initialized empty Git repository in /home/debian/gitian-builder/inputs/litecoin/.git/
|
||||||
remote: Counting objects: 57959, done.
|
remote: Counting objects: 57959, done.
|
||||||
remote: Total 57959 (delta 0), reused 0 (delta 0), pack-reused 57958
|
remote: Total 57959 (delta 0), reused 0 (delta 0), pack-reused 57958
|
||||||
Receiving objects: 100% (57959/57959), 53.76 MiB | 484.00 KiB/s, done.
|
Receiving objects: 100% (57959/57959), 53.76 MiB | 484.00 KiB/s, done.
|
||||||
Resolving deltas: 100% (41590/41590), done.
|
Resolving deltas: 100% (41590/41590), done.
|
||||||
From https://github.com/bitcoin/bitcoin
|
From https://github.com/litecoin-project/litecoin
|
||||||
... (new tags, new branch etc)
|
... (new tags, new branch etc)
|
||||||
--- Building for trusty amd64 ---
|
--- Building for trusty amd64 ---
|
||||||
Stopping target if it is up
|
Stopping target if it is up
|
||||||
@ -398,18 +398,18 @@ and inputs.
|
|||||||
|
|
||||||
For example:
|
For example:
|
||||||
```bash
|
```bash
|
||||||
URL=https://github.com/laanwj/bitcoin.git
|
URL=https://github.com/thrasher-/litecoin.git
|
||||||
COMMIT=2014_03_windows_unicode_path
|
COMMIT=2014_03_windows_unicode_path
|
||||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-win.yml
|
||||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
./bin/gbuild --commit litecoin=${COMMIT} --url litecoin=${URL} ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
Building fully offline
|
Building fully offline
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
For building fully offline including attaching signatures to unsigned builds, the detached-sigs repository
|
For building fully offline including attaching signatures to unsigned builds, the detached-sigs repository
|
||||||
and the bitcoin git repository with the desired tag must both be available locally, and then gbuild must be
|
and the litecoin git repository with the desired tag must both be available locally, and then gbuild must be
|
||||||
told where to find them. It also requires an apt-cacher-ng which is fully-populated but set to offline mode, or
|
told where to find them. It also requires an apt-cacher-ng which is fully-populated but set to offline mode, or
|
||||||
manually disabling gitian-builder's use of apt-get to update the VM build environment.
|
manually disabling gitian-builder's use of apt-get to update the VM build environment.
|
||||||
|
|
||||||
@ -428,7 +428,7 @@ cd /path/to/gitian-builder
|
|||||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get update
|
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get update
|
||||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root \
|
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root \
|
||||||
-e DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install \
|
-e DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install \
|
||||||
$( sed -ne '/^packages:/,/[^-] .*/ {/^- .*/{s/"//g;s/- //;p}}' ../bitcoin/contrib/gitian-descriptors/*|sort|uniq )
|
$( sed -ne '/^packages:/,/[^-] .*/ {/^- .*/{s/"//g;s/- //;p}}' ../litecoin/contrib/gitian-descriptors/*|sort|uniq )
|
||||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get -q -y purge grub
|
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root apt-get -q -y purge grub
|
||||||
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root -e DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
|
LXC_ARCH=amd64 LXC_SUITE=trusty on-target -u root -e DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
|
||||||
```
|
```
|
||||||
@ -448,12 +448,12 @@ Then when building, override the remote URLs that gbuild would otherwise pull fr
|
|||||||
```bash
|
```bash
|
||||||
|
|
||||||
cd /some/root/path/
|
cd /some/root/path/
|
||||||
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
|
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
|
||||||
|
|
||||||
BTCPATH=/some/root/path/bitcoin
|
BTCPATH=/some/root/path/litecoin
|
||||||
SIGPATH=/some/root/path/bitcoin-detached-sigs
|
SIGPATH=/some/root/path/litecoin-detached-sigs
|
||||||
|
|
||||||
./bin/gbuild --url bitcoin=${BTCPATH},signature=${SIGPATH} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
./bin/gbuild --url litecoin=${BTCPATH},signature=${SIGPATH} ../litecoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
Signing externally
|
Signing externally
|
||||||
@ -468,9 +468,9 @@ When you execute `gsign` you will get an error from GPG, which can be ignored. C
|
|||||||
in `gitian.sigs` to your signing machine and do
|
in `gitian.sigs` to your signing machine and do
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gpg --detach-sign ${VERSION}-linux/${SIGNER}/bitcoin-linux-build.assert
|
gpg --detach-sign ${VERSION}-linux/${SIGNER}/litecoin-linux-build.assert
|
||||||
gpg --detach-sign ${VERSION}-win/${SIGNER}/bitcoin-win-build.assert
|
gpg --detach-sign ${VERSION}-win/${SIGNER}/litecoin-win-build.assert
|
||||||
gpg --detach-sign ${VERSION}-osx-unsigned/${SIGNER}/bitcoin-osx-build.assert
|
gpg --detach-sign ${VERSION}-osx-unsigned/${SIGNER}/litecoin-osx-build.assert
|
||||||
```
|
```
|
||||||
|
|
||||||
This will create the `.sig` files that can be committed together with the `.assert` files to assert your
|
This will create the `.sig` files that can be committed together with the `.assert` files to assert your
|
||||||
@ -480,5 +480,5 @@ Uploading signatures
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the
|
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the
|
||||||
[bitcoin-core/gitian.sigs](https://github.com/bitcoin-core/gitian.sigs/) repository, or if that's not possible create a pull
|
[litecoin-project/gitian.sigs.ltc](https://github.com/litecoin-project/gitian.sigs.ltc/) repository, or if that's not possible create a pull
|
||||||
request. You can also mail the files to Wladimir (laanwj@gmail.com) and he will commit them.
|
request. You can also mail the files to thrasher (thrasher@addictionsofware.com) and he will commit them.
|
||||||
|
|||||||
@ -3,7 +3,7 @@ Reduce Traffic
|
|||||||
|
|
||||||
Some node operators need to deal with bandwidth caps imposed by their ISPs.
|
Some node operators need to deal with bandwidth caps imposed by their ISPs.
|
||||||
|
|
||||||
By default, bitcoin-core allows up to 125 connections to different peers, 8 of
|
By default, litecoin-core allows up to 125 connections to different peers, 8 of
|
||||||
which are outbound. You can therefore, have at most 117 inbound connections.
|
which are outbound. You can therefore, have at most 117 inbound connections.
|
||||||
|
|
||||||
The default settings can result in relatively significant traffic consumption.
|
The default settings can result in relatively significant traffic consumption.
|
||||||
@ -33,5 +33,5 @@ blocks and transactions to fewer nodes.
|
|||||||
## 3. Reduce maximum connections (`-maxconnections=<num>`)
|
## 3. Reduce maximum connections (`-maxconnections=<num>`)
|
||||||
|
|
||||||
Reducing the maximum connected nodes to a minimum could be desirable if traffic
|
Reducing the maximum connected nodes to a minimum could be desirable if traffic
|
||||||
limits are tiny. Keep in mind that bitcoin's trustless model works best if you are
|
limits are tiny. Keep in mind that litecoin's trustless model works best if you are
|
||||||
connected to a handful of nodes.
|
connected to a handful of nodes.
|
||||||
|
|||||||
@ -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 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/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagessh).
|
* Update manpages, see [gen-manpages.sh](https://github.com/litecoin-project/litecoin/blob/master/contrib/devtools/README.md#gen-manpagessh).
|
||||||
|
|
||||||
Before every minor and major release:
|
Before every minor and major release:
|
||||||
|
|
||||||
@ -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.
|
Check out the source code in the following directory hierarchy.
|
||||||
|
|
||||||
cd /path/to/your/toplevel/build
|
cd /path/to/your/toplevel/build
|
||||||
git clone https://github.com/bitcoin-core/gitian.sigs.git
|
git clone https://github.com/litecoin-project/gitian.sigs.ltc.git
|
||||||
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
|
git clone https://github.com/litecoin-project/litecoin-detached-sigs.git
|
||||||
git clone https://github.com/devrandom/gitian-builder.git
|
git clone https://github.com/devrandom/gitian-builder.git
|
||||||
git clone https://github.com/bitcoin/bitcoin.git
|
git clone https://github.com/litecoin-project/litecoin.git
|
||||||
|
|
||||||
### Bitcoin maintainers/release engineers, suggestion for writing release notes
|
### Litecoin maintainers/release engineers, suggestion for writing release notes
|
||||||
|
|
||||||
Write release notes. git shortlog helps a lot, for example:
|
Write release notes. git shortlog helps a lot, for example:
|
||||||
|
|
||||||
@ -61,16 +61,16 @@ If you're using the automated script (found in [contrib/gitian-build.sh](/contri
|
|||||||
|
|
||||||
Setup Gitian descriptors:
|
Setup Gitian descriptors:
|
||||||
|
|
||||||
pushd ./bitcoin
|
pushd ./litecoin
|
||||||
export SIGNER=(your Gitian key, ie bluematt, sipa, etc)
|
export SIGNER=(your Gitian key, ie bluematt, sipa, etc)
|
||||||
export VERSION=(new version, e.g. 0.8.0)
|
export VERSION=(new version, e.g. 0.8.0)
|
||||||
git fetch
|
git fetch
|
||||||
git checkout v${VERSION}
|
git checkout v${VERSION}
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Ensure your gitian.sigs are up-to-date if you wish to gverify your builds against other Gitian signatures.
|
Ensure your gitian.sigs.ltc are up-to-date if you wish to gverify your builds against other Gitian signatures.
|
||||||
|
|
||||||
pushd ./gitian.sigs
|
pushd ./gitian.sigs.ltc
|
||||||
git pull
|
git pull
|
||||||
popd
|
popd
|
||||||
|
|
||||||
@ -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:
|
By default, Gitian will fetch source files as needed. To cache them ahead of time:
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
|
make -C ../litecoin/depends download SOURCES_PATH=`pwd`/cache/common
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Only missing files will be fetched, so this is safe to re-run for each build.
|
Only missing files will be fetched, so this is safe to re-run for each build.
|
||||||
@ -103,62 +103,62 @@ 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:
|
NOTE: Offline builds must use the --url flag to ensure Gitian fetches only from local URLs. For example:
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
./bin/gbuild --url bitcoin=/path/to/bitcoin,signature=/path/to/sigs {rest of arguments}
|
./bin/gbuild --url litecoin=/path/to/litecoin,signature=/path/to/sigs {rest of arguments}
|
||||||
popd
|
popd
|
||||||
|
|
||||||
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
|
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
|
||||||
|
|
||||||
### Build and sign Bitcoin Core for Linux, Windows, and OS X:
|
### Build and sign Litecoin Core for Linux, Windows, and OS X:
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
./bin/gbuild --num-make 2 --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
./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/ ../bitcoin/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/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../
|
mv build/out/litecoin-*.tar.gz build/out/src/litecoin-*.tar.gz ../
|
||||||
|
|
||||||
./bin/gbuild --num-make 2 --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
./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/ ../bitcoin/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/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
|
mv build/out/litecoin-*-win-unsigned.tar.gz inputs/litecoin-win-unsigned.tar.gz
|
||||||
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../
|
mv build/out/litecoin-*.zip build/out/litecoin-*.exe ../
|
||||||
|
|
||||||
./bin/gbuild --num-make 2 --memory 3000 --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
./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/ ../bitcoin/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/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
|
mv build/out/litecoin-*-osx-unsigned.tar.gz inputs/litecoin-osx-unsigned.tar.gz
|
||||||
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../
|
mv build/out/litecoin-*.tar.gz build/out/litecoin-*.dmg ../
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Build output expected:
|
Build output expected:
|
||||||
|
|
||||||
1. source tarball (`bitcoin-${VERSION}.tar.gz`)
|
1. source tarball (`litecoin-${VERSION}.tar.gz`)
|
||||||
2. linux 32-bit and 64-bit dist tarballs (`bitcoin-${VERSION}-linux[32|64].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 (`bitcoin-${VERSION}-win[32|64]-setup-unsigned.exe`, `bitcoin-${VERSION}-win[32|64].zip`)
|
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 (`bitcoin-${VERSION}-osx-unsigned.dmg`, `bitcoin-${VERSION}-osx64.tar.gz`)
|
4. OS X unsigned installer and dist tarball (`litecoin-${VERSION}-osx-unsigned.dmg`, `litecoin-${VERSION}-osx64.tar.gz`)
|
||||||
5. Gitian signatures (in `gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
|
5. Gitian signatures (in `gitian.sigs.ltc/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/`)
|
||||||
|
|
||||||
### Verify other gitian builders signatures to your own. (Optional)
|
### Verify other gitian builders signatures to your own. (Optional)
|
||||||
|
|
||||||
Add other gitian builders keys to your gpg keyring, and/or refresh keys.
|
Add other gitian builders keys to your gpg keyring, and/or refresh keys.
|
||||||
|
|
||||||
gpg --import bitcoin/contrib/gitian-keys/*.pgp
|
gpg --import litecoin/contrib/gitian-keys/*.pgp
|
||||||
gpg --refresh-keys
|
gpg --refresh-keys
|
||||||
|
|
||||||
Verify the signatures
|
Verify the signatures
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-linux ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-linux ../litecoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||||
./bin/gverify -v -d ../gitian.sigs/ -r ${VERSION}-win-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-win.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/ -r ${VERSION}-osx-unsigned ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
./bin/gverify -v -d ../gitian.sigs.ltc/ -r ${VERSION}-osx-unsigned ../litecoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||||
popd
|
popd
|
||||||
|
|
||||||
### Next steps:
|
### Next steps:
|
||||||
|
|
||||||
Commit your signature to gitian.sigs:
|
Commit your signature to gitian.sigs.ltc:
|
||||||
|
|
||||||
pushd gitian.sigs
|
pushd gitian.sigs.ltc
|
||||||
git add ${VERSION}-linux/${SIGNER}
|
git add ${VERSION}-linux/${SIGNER}
|
||||||
git add ${VERSION}-win-unsigned/${SIGNER}
|
git add ${VERSION}-win-unsigned/${SIGNER}
|
||||||
git add ${VERSION}-osx-unsigned/${SIGNER}
|
git add ${VERSION}-osx-unsigned/${SIGNER}
|
||||||
git commit -a
|
git commit -a
|
||||||
git push # Assuming you can push to the gitian.sigs tree
|
git push # Assuming you can push to the gitian.sigs.ltc tree
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Codesigner only: Create Windows/OS X detached signatures:
|
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:
|
Codesigner only: Sign the osx binary:
|
||||||
|
|
||||||
transfer bitcoin-osx-unsigned.tar.gz to osx for signing
|
transfer litecoin-osx-unsigned.tar.gz to osx for signing
|
||||||
tar xf bitcoin-osx-unsigned.tar.gz
|
tar xf litecoin-osx-unsigned.tar.gz
|
||||||
./detached-sig-create.sh -s "Key ID"
|
./detached-sig-create.sh -s "Key ID"
|
||||||
Enter the keychain password and authorize the signature
|
Enter the keychain password and authorize the signature
|
||||||
Move signature-osx.tar.gz back to the gitian host
|
Move signature-osx.tar.gz back to the gitian host
|
||||||
|
|
||||||
Codesigner only: Sign the windows binaries:
|
Codesigner only: Sign the windows binaries:
|
||||||
|
|
||||||
tar xf bitcoin-win-unsigned.tar.gz
|
tar xf litecoin-win-unsigned.tar.gz
|
||||||
./detached-sig-create.sh -key /path/to/codesign.key
|
./detached-sig-create.sh -key /path/to/codesign.key
|
||||||
Enter the passphrase for the key when prompted
|
Enter the passphrase for the key when prompted
|
||||||
signature-win.tar.gz will be created
|
signature-win.tar.gz will be created
|
||||||
|
|
||||||
Codesigner only: Commit the detached codesign payloads:
|
Codesigner only: Commit the detached codesign payloads:
|
||||||
|
|
||||||
cd ~/bitcoin-detached-sigs
|
cd ~/litecoin-detached-sigs
|
||||||
checkout the appropriate branch for this release series
|
checkout the appropriate branch for this release series
|
||||||
rm -rf *
|
rm -rf *
|
||||||
tar xf signature-osx.tar.gz
|
tar xf signature-osx.tar.gz
|
||||||
@ -195,34 +195,34 @@ Codesigner only: Commit the detached codesign payloads:
|
|||||||
Non-codesigners: wait for Windows/OS X detached signatures:
|
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.
|
- 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 [bitcoin-detached-sigs](https://github.com/bitcoin-core/bitcoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
|
- 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.
|
||||||
|
|
||||||
Create (and optionally verify) the signed OS X binary:
|
Create (and optionally verify) the signed OS X binary:
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
./bin/gbuild -i --commit signature=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
|
./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/ ../bitcoin/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/ -r ${VERSION}-osx-signed ../bitcoin/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/bitcoin-osx-signed.dmg ../bitcoin-${VERSION}-osx.dmg
|
mv build/out/litecoin-osx-signed.dmg ../litecoin-${VERSION}-osx.dmg
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Create (and optionally verify) the signed Windows binaries:
|
Create (and optionally verify) the signed Windows binaries:
|
||||||
|
|
||||||
pushd ./gitian-builder
|
pushd ./gitian-builder
|
||||||
./bin/gbuild -i --commit signature=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
|
./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/ ../bitcoin/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/ -r ${VERSION}-win-signed ../bitcoin/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/bitcoin-*win64-setup.exe ../bitcoin-${VERSION}-win64-setup.exe
|
mv build/out/litecoin-*win64-setup.exe ../litecoin-${VERSION}-win64-setup.exe
|
||||||
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-${VERSION}-win32-setup.exe
|
mv build/out/litecoin-*win32-setup.exe ../litecoin-${VERSION}-win32-setup.exe
|
||||||
popd
|
popd
|
||||||
|
|
||||||
Commit your signature for the signed OS X/Windows binaries:
|
Commit your signature for the signed OS X/Windows binaries:
|
||||||
|
|
||||||
pushd gitian.sigs
|
pushd gitian.sigs.ltc
|
||||||
git add ${VERSION}-osx-signed/${SIGNER}
|
git add ${VERSION}-osx-signed/${SIGNER}
|
||||||
git add ${VERSION}-win-signed/${SIGNER}
|
git add ${VERSION}-win-signed/${SIGNER}
|
||||||
git commit -a
|
git commit -a
|
||||||
git push # Assuming you can push to the gitian.sigs tree
|
git push # Assuming you can push to the gitian.sigs.ltc tree
|
||||||
popd
|
popd
|
||||||
|
|
||||||
### After 3 or more people have gitian-built and their results match:
|
### After 3 or more people have gitian-built and their results match:
|
||||||
@ -235,23 +235,23 @@ sha256sum * > SHA256SUMS
|
|||||||
|
|
||||||
The list of files should be:
|
The list of files should be:
|
||||||
```
|
```
|
||||||
bitcoin-${VERSION}-aarch64-linux-gnu.tar.gz
|
litecoin-${VERSION}-aarch64-linux-gnu.tar.gz
|
||||||
bitcoin-${VERSION}-arm-linux-gnueabihf.tar.gz
|
litecoin-${VERSION}-arm-linux-gnueabihf.tar.gz
|
||||||
bitcoin-${VERSION}-i686-pc-linux-gnu.tar.gz
|
litecoin-${VERSION}-i686-pc-linux-gnu.tar.gz
|
||||||
bitcoin-${VERSION}-x86_64-linux-gnu.tar.gz
|
litecoin-${VERSION}-x86_64-linux-gnu.tar.gz
|
||||||
bitcoin-${VERSION}-osx64.tar.gz
|
litecoin-${VERSION}-osx64.tar.gz
|
||||||
bitcoin-${VERSION}-osx.dmg
|
litecoin-${VERSION}-osx.dmg
|
||||||
bitcoin-${VERSION}.tar.gz
|
litecoin-${VERSION}.tar.gz
|
||||||
bitcoin-${VERSION}-win32-setup.exe
|
litecoin-${VERSION}-win32-setup.exe
|
||||||
bitcoin-${VERSION}-win32.zip
|
litecoin-${VERSION}-win32.zip
|
||||||
bitcoin-${VERSION}-win64-setup.exe
|
litecoin-${VERSION}-win64-setup.exe
|
||||||
bitcoin-${VERSION}-win64.zip
|
litecoin-${VERSION}-win64.zip
|
||||||
```
|
```
|
||||||
The `*-debug*` files generated by the gitian build contain debug symbols
|
The `*-debug*` files generated by the gitian build contain debug symbols
|
||||||
for troubleshooting by developers. It is assumed that anyone that is interested
|
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
|
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
|
end-user confusion about which file to pick, as well as save storage
|
||||||
space *do not upload these to the bitcoin.org server, nor put them in the torrent*.
|
space *do not upload these to the litecoin.org server, nor put them in the torrent*.
|
||||||
|
|
||||||
- GPG-sign it, delete the unsigned file:
|
- GPG-sign it, delete the unsigned file:
|
||||||
```
|
```
|
||||||
@ -261,49 +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)
|
(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.
|
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 bitcoin.org server
|
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the litecoin.org server.
|
||||||
into `/var/www/bin/bitcoin-core-${VERSION}`
|
|
||||||
|
|
||||||
- A `.torrent` will appear in the directory after a few minutes. Optionally help seed this torrent. To get the `magnet:` URI use:
|
|
||||||
```bash
|
|
||||||
transmission-show -m <torrent file>
|
|
||||||
```
|
```
|
||||||
Insert the magnet URI into the announcement sent to mailing lists. This permits
|
|
||||||
people without access to `bitcoin.org` to download the binary distribution.
|
|
||||||
Also put it into the `optional_magnetlink:` slot in the YAML file for
|
|
||||||
bitcoin.org (see below for bitcoin.org update instructions).
|
|
||||||
|
|
||||||
- Update bitcoin.org version
|
- Update litecoin.org version
|
||||||
|
|
||||||
- First, check to see if the Bitcoin.org maintainers have prepared a
|
|
||||||
release: https://github.com/bitcoin-dot-org/bitcoin.org/labels/Releases
|
|
||||||
|
|
||||||
- If they have, it will have previously failed their Travis CI
|
|
||||||
checks because the final release files weren't uploaded.
|
|
||||||
Trigger a Travis CI rebuild---if it passes, merge.
|
|
||||||
|
|
||||||
- If they have not prepared a release, follow the Bitcoin.org release
|
|
||||||
instructions: https://github.com/bitcoin-dot-org/bitcoin.org#release-notes
|
|
||||||
|
|
||||||
- After the pull request is merged, the website will automatically show the newest version within 15 minutes, as well
|
|
||||||
as update the OS download links. Ping @saivann/@harding (saivann/harding on Freenode) in case anything goes wrong
|
|
||||||
|
|
||||||
- Announce the release:
|
- Announce the release:
|
||||||
|
|
||||||
- bitcoin-dev and bitcoin-core-dev mailing list
|
- litecoin-dev and litecoin-dev mailing list
|
||||||
|
|
||||||
- Bitcoin Core announcements list https://bitcoincore.org/en/list/announcements/join/
|
- blog.litecoin.org blog post
|
||||||
|
|
||||||
- bitcoincore.org blog post
|
- Update title of #litecoin and #litecoin-dev on Freenode IRC
|
||||||
|
|
||||||
- Update title of #bitcoin on Freenode IRC
|
- Optionally twitter, reddit /r/Litecoin, ... but this will usually sort out itself
|
||||||
|
|
||||||
- Optionally twitter, reddit /r/Bitcoin, ... but this will usually sort out itself
|
|
||||||
|
|
||||||
- Notify BlueMatt so that he can start building [the PPAs](https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin)
|
|
||||||
|
|
||||||
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
|
- 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/bitcoin/bitcoin/releases/new) with a link to the archived release notes.
|
- Create a [new GitHub release](https://github.com/litecoin-project/litecoin/releases/new) with a link to the archived release notes.
|
||||||
|
|
||||||
- Celebrate
|
- Celebrate
|
||||||
|
|||||||
44
doc/tor.md
44
doc/tor.md
@ -1,16 +1,16 @@
|
|||||||
TOR SUPPORT IN BITCOIN
|
TOR SUPPORT IN LITECOIN
|
||||||
======================
|
======================
|
||||||
|
|
||||||
It is possible to run Bitcoin as a Tor hidden service, and connect to such services.
|
It is possible to run Litecoin 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
|
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.
|
configure Tor.
|
||||||
|
|
||||||
|
|
||||||
1. Run bitcoin behind a Tor proxy
|
1. Run litecoin behind a Tor proxy
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
The first step is running Bitcoin behind a Tor proxy. This will already make all
|
The first step is running Litecoin behind a Tor proxy. This will already make all
|
||||||
outgoing connections be anonymized, but more is possible.
|
outgoing connections be anonymized, but more is possible.
|
||||||
|
|
||||||
-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy
|
-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.
|
|||||||
|
|
||||||
In a typical situation, this suffices to run behind a Tor proxy:
|
In a typical situation, this suffices to run behind a Tor proxy:
|
||||||
|
|
||||||
./bitcoin -proxy=127.0.0.1:9050
|
./litecoin -proxy=127.0.0.1:9050
|
||||||
|
|
||||||
|
|
||||||
2. Run a bitcoin hidden server
|
2. Run a litecoin hidden server
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
If you configure your Tor system accordingly, it is possible to make your node also
|
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
|
reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent
|
||||||
config file):
|
config file):
|
||||||
|
|
||||||
HiddenServiceDir /var/lib/tor/bitcoin-service/
|
HiddenServiceDir /var/lib/tor/litecoin-service/
|
||||||
HiddenServicePort 9333 127.0.0.1:9333
|
HiddenServicePort 9333 127.0.0.1:9333
|
||||||
HiddenServicePort 19333 127.0.0.1:19333
|
HiddenServicePort 19335 127.0.0.1:19335
|
||||||
|
|
||||||
The directory can be different of course, but (both) port numbers should be equal to
|
The directory can be different of course, but (both) port numbers should be equal to
|
||||||
your bitcoind's P2P listen port (9333 by default).
|
your litecoind's P2P listen port (9333 by default).
|
||||||
|
|
||||||
-externalip=X You can tell bitcoin about its publicly reachable address using
|
-externalip=X You can tell litecoin about its publicly reachable address using
|
||||||
this option, and this can be a .onion address. Given the above
|
this option, and this can be a .onion address. Given the above
|
||||||
configuration, you can find your onion address in
|
configuration, you can find your onion address in
|
||||||
/var/lib/tor/bitcoin-service/hostname. Onion addresses are given
|
/var/lib/tor/litecoin-service/hostname. Onion addresses are given
|
||||||
preference for your node to advertise itself with, for connections
|
preference for your node to advertise itself with, for connections
|
||||||
coming from unroutable addresses (such as 127.0.0.1, where the
|
coming from unroutable addresses (such as 127.0.0.1, where the
|
||||||
Tor proxy typically runs).
|
Tor proxy typically runs).
|
||||||
@ -68,49 +68,49 @@ your bitcoind's P2P listen port (9333 by default).
|
|||||||
|
|
||||||
In a typical situation, where you're only reachable via Tor, this should suffice:
|
In a typical situation, where you're only reachable via Tor, this should suffice:
|
||||||
|
|
||||||
./bitcoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen
|
./litecoind -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
|
(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
|
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:
|
your address. To mitigate this, additionally bind the address of your Tor proxy:
|
||||||
|
|
||||||
./bitcoind ... -bind=127.0.0.1
|
./litecoind ... -bind=127.0.0.1
|
||||||
|
|
||||||
If you don't care too much about hiding your node, and want to be reachable on IPv4
|
If you don't care too much about hiding your node, and want to be reachable on IPv4
|
||||||
as well, use `discover` instead:
|
as well, use `discover` instead:
|
||||||
|
|
||||||
./bitcoind ... -discover
|
./litecoind ... -discover
|
||||||
|
|
||||||
and open port 9333 on your firewall (or use -upnp).
|
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
|
If you only want to use Tor to reach onion addresses, but not use it as a proxy
|
||||||
for normal IPv4/IPv6 communication, use:
|
for normal IPv4/IPv6 communication, use:
|
||||||
|
|
||||||
./bitcoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
|
./litecoin -onion=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover
|
||||||
|
|
||||||
3. Automatically listen on Tor
|
3. Automatically listen on Tor
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket
|
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.
|
API, to create and destroy 'ephemeral' hidden services programmatically.
|
||||||
Bitcoin Core has been updated to make use of this.
|
Litecoin Core has been updated to make use of this.
|
||||||
|
|
||||||
This means that if Tor is running (and proper authentication has been configured),
|
This means that if Tor is running (and proper authentication has been configured),
|
||||||
Bitcoin Core automatically creates a hidden service to listen on. This will positively
|
Litecoin Core automatically creates a hidden service to listen on. This will positively
|
||||||
affect the number of available .onion nodes.
|
affect the number of available .onion nodes.
|
||||||
|
|
||||||
This new feature is enabled by default if Bitcoin Core is listening (`-listen`), and
|
This new feature is enabled by default if Litecoin Core is listening (`-listen`), and
|
||||||
requires a Tor connection to work. It can be explicitly disabled with `-listenonion=0`
|
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.
|
and, if not disabled, configured using the `-torcontrol` and `-torpassword` settings.
|
||||||
To show verbose debugging information, pass `-debug=tor`.
|
To show verbose debugging information, pass `-debug=tor`.
|
||||||
|
|
||||||
Connecting to Tor's control socket API requires one of two authentication methods to be
|
Connecting to Tor's control socket API requires one of two authentication methods to be
|
||||||
configured. For cookie authentication the user running bitcoind must have write access
|
configured. For cookie authentication the user running litecoind must have write access
|
||||||
to the `CookieAuthFile` specified in Tor configuration. In some cases this is
|
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
|
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
|
are seen with `-debug=tor` they can be resolved by adding both the user running tor and
|
||||||
the user running bitcoind to the same group and setting permissions appropriately. On
|
the user running litecoind to the same group and setting permissions appropriately. On
|
||||||
Debian-based systems the user running bitcoind can be added to the debian-tor group,
|
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
|
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
|
of the `-torpassword` flag and a `hash-password` which can be enabled and specified in
|
||||||
Tor configuration.
|
Tor configuration.
|
||||||
@ -118,7 +118,7 @@ Tor configuration.
|
|||||||
4. Privacy recommendations
|
4. Privacy recommendations
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
- Do not add anything but bitcoin ports to the hidden service created in section 2.
|
- Do not add anything but litecoin ports to the hidden service created in section 2.
|
||||||
If you run a web service too, create a new hidden service for that.
|
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
|
Otherwise it is trivial to link them, which may reduce privacy. Hidden
|
||||||
services created automatically (as in section 3) always have only one port
|
services created automatically (as in section 3) always have only one port
|
||||||
|
|||||||
@ -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
|
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
|
manual operations that is possible with Travis, and it can be done by the
|
||||||
Bitcoin Core committer via the Travis web interface.
|
Litecoin Core committer via the Travis web interface.
|
||||||
|
|
||||||
In some cases, secure strings may be needed for hiding sensitive info such as
|
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:
|
private keys or URLs. The travis client may be used to create these strings:
|
||||||
|
|||||||
20
doc/zmq.md
20
doc/zmq.md
@ -5,8 +5,8 @@ connections, inter-process communication, and shared-memory,
|
|||||||
providing various message-oriented semantics such as publish/subscribe,
|
providing various message-oriented semantics such as publish/subscribe,
|
||||||
request/reply, and push/pull.
|
request/reply, and push/pull.
|
||||||
|
|
||||||
The Bitcoin Core daemon can be configured to act as a trusted "border
|
The Litecoin Core daemon can be configured to act as a trusted "border
|
||||||
router", implementing the bitcoin wire protocol and relay, making
|
router", implementing the litecoin wire protocol and relay, making
|
||||||
consensus decisions, maintaining the local blockchain database,
|
consensus decisions, maintaining the local blockchain database,
|
||||||
broadcasting locally generated transactions into the network, and
|
broadcasting locally generated transactions into the network, and
|
||||||
providing a queryable RPC interface to interact on a polled basis for
|
providing a queryable RPC interface to interact on a polled basis for
|
||||||
@ -33,7 +33,7 @@ buffering or reassembly.
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
The ZeroMQ feature in Bitcoin Core requires ZeroMQ API version 4.x or
|
The ZeroMQ feature in Litecoin Core requires ZeroMQ API version 4.x or
|
||||||
newer. Typically, it is packaged by distributions as something like
|
newer. Typically, it is packaged by distributions as something like
|
||||||
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed.
|
*libzmq3-dev*. The C++ wrapper for ZeroMQ is *not* needed.
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ operation.
|
|||||||
|
|
||||||
By default, the ZeroMQ feature is automatically compiled in if the
|
By default, the ZeroMQ feature is automatically compiled in if the
|
||||||
necessary prerequisites are found. To disable, use --disable-zmq
|
necessary prerequisites are found. To disable, use --disable-zmq
|
||||||
during the *configure* step of building bitcoind:
|
during the *configure* step of building litecoind:
|
||||||
|
|
||||||
$ ./configure --disable-zmq (other options)
|
$ ./configure --disable-zmq (other options)
|
||||||
|
|
||||||
@ -66,8 +66,8 @@ address. The same address can be used in more than one notification.
|
|||||||
|
|
||||||
For instance:
|
For instance:
|
||||||
|
|
||||||
$ bitcoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
$ litecoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||||
-zmqpubrawtx=ipc:///tmp/bitcoind.tx.raw
|
-zmqpubrawtx=ipc:///tmp/litecoind.tx.raw
|
||||||
|
|
||||||
Each PUB notification has a topic and body, where the header
|
Each PUB notification has a topic and body, where the header
|
||||||
corresponds to the notification type. For instance, for the
|
corresponds to the notification type. For instance, for the
|
||||||
@ -75,7 +75,7 @@ notification `-zmqpubhashtx` the topic is `hashtx` (no null
|
|||||||
terminator) and the body is the hexadecimal transaction hash (32
|
terminator) and the body is the hexadecimal transaction hash (32
|
||||||
bytes).
|
bytes).
|
||||||
|
|
||||||
These options can also be provided in bitcoin.conf.
|
These options can also be provided in litecoin.conf.
|
||||||
|
|
||||||
ZeroMQ endpoint specifiers for TCP (and others) are documented in the
|
ZeroMQ endpoint specifiers for TCP (and others) are documented in the
|
||||||
[ZeroMQ API](http://api.zeromq.org/4-0:_start).
|
[ZeroMQ API](http://api.zeromq.org/4-0:_start).
|
||||||
@ -87,9 +87,9 @@ arriving. Please see `contrib/zmq/zmq_sub.py` for a working example.
|
|||||||
|
|
||||||
## Remarks
|
## Remarks
|
||||||
|
|
||||||
From the perspective of bitcoind, the ZeroMQ socket is write-only; PUB
|
From the perspective of litecoind, the ZeroMQ socket is write-only; PUB
|
||||||
sockets don't even have a read function. Thus, there is no state
|
sockets don't even have a read function. Thus, there is no state
|
||||||
introduced into bitcoind directly. Furthermore, no information is
|
introduced into litecoind directly. Furthermore, no information is
|
||||||
broadcast that wasn't already received from the public P2P network.
|
broadcast that wasn't already received from the public P2P network.
|
||||||
|
|
||||||
No authentication or authorization is done on connecting clients; it
|
No authentication or authorization is done on connecting clients; it
|
||||||
@ -102,5 +102,5 @@ retrieve the chain from the last known block to the new tip.
|
|||||||
|
|
||||||
There are several possibilities that ZMQ notification can get lost
|
There are several possibilities that ZMQ notification can get lost
|
||||||
during transmission depending on the communication type your are
|
during transmission depending on the communication type your are
|
||||||
using. Bitcoind appends an up-counting sequence number to each
|
using. Litecoind appends an up-counting sequence number to each
|
||||||
notification which allows listeners to detect lost notifications.
|
notification which allows listeners to detect lost notifications.
|
||||||
|
|||||||
@ -29,16 +29,16 @@
|
|||||||
<string>????</string>
|
<string>????</string>
|
||||||
|
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>Bitcoin-Qt</string>
|
<string>Litecoin-Qt</string>
|
||||||
|
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>Bitcoin-Qt</string>
|
<string>Litecoin-Qt</string>
|
||||||
|
|
||||||
<key>LSHasLocalizedDisplayName</key>
|
<key>LSHasLocalizedDisplayName</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>org.bitcoinfoundation.Bitcoin-Qt</string>
|
<string>org.litecoin.Litecoin-Qt</string>
|
||||||
|
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
<array>
|
<array>
|
||||||
@ -46,10 +46,10 @@
|
|||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
<key>CFBundleURLName</key>
|
<key>CFBundleURLName</key>
|
||||||
<string>org.bitcoin.BitcoinPayment</string>
|
<string>org.litecoin.LitecoinPayment</string>
|
||||||
<key>CFBundleURLSchemes</key>
|
<key>CFBundleURLSchemes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>bitcoin</string>
|
<string>litecoin</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
@ -58,9 +58,9 @@
|
|||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
<key>UTTypeIdentifier</key>
|
<key>UTTypeIdentifier</key>
|
||||||
<string>org.bitcoin.paymentrequest</string>
|
<string>org.litecoin.paymentrequest</string>
|
||||||
<key>UTTypeDescription</key>
|
<key>UTTypeDescription</key>
|
||||||
<string>Bitcoin payment request</string>
|
<string>Litecoin payment request</string>
|
||||||
<key>UTTypeConformsTo</key>
|
<key>UTTypeConformsTo</key>
|
||||||
<array>
|
<array>
|
||||||
<string>public.data</string>
|
<string>public.data</string>
|
||||||
@ -68,10 +68,10 @@
|
|||||||
<key>UTTypeTagSpecification</key>
|
<key>UTTypeTagSpecification</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>public.mime-type</key>
|
<key>public.mime-type</key>
|
||||||
<string>application/x-bitcoin-payment-request</string>
|
<string>application/x-litecoin-payment-request</string>
|
||||||
<key>public.filename-extension</key>
|
<key>public.filename-extension</key>
|
||||||
<array>
|
<array>
|
||||||
<string>bitcoinpaymentrequest</string>
|
<string>litecoinpaymentrequest</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
@ -84,7 +84,7 @@
|
|||||||
<string>Editor</string>
|
<string>Editor</string>
|
||||||
<key>LSItemContentTypes</key>
|
<key>LSItemContentTypes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>org.bitcoin.paymentrequest</string>
|
<string>org.litecoin.paymentrequest</string>
|
||||||
</array>
|
</array>
|
||||||
<key>LSHandlerRank</key>
|
<key>LSHandlerRank</key>
|
||||||
<string>Owner</string>
|
<string>Owner</string>
|
||||||
|
|||||||
@ -36,6 +36,6 @@ if sys.version_info.major >= 3:
|
|||||||
m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), digestmod)
|
m = hmac.new(bytearray(salt, 'utf-8'), bytearray(password, 'utf-8'), digestmod)
|
||||||
result = m.hexdigest()
|
result = m.hexdigest()
|
||||||
|
|
||||||
print("String to be appended to bitcoin.conf:")
|
print("String to be appended to litecoin.conf:")
|
||||||
print("rpcauth="+username+":"+salt+"$"+result)
|
print("rpcauth="+username+":"+salt+"$"+result)
|
||||||
print("Your password:\n"+password)
|
print("Your password:\n"+password)
|
||||||
|
|||||||
@ -50,9 +50,9 @@ Var StartMenuGroup
|
|||||||
# Installer attributes
|
# Installer attributes
|
||||||
OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-win@WINDOWS_BITS@-setup.exe
|
OutFile @abs_top_srcdir@/@PACKAGE_TARNAME@-${VERSION}-win@WINDOWS_BITS@-setup.exe
|
||||||
!if "@WINDOWS_BITS@" == "64"
|
!if "@WINDOWS_BITS@" == "64"
|
||||||
InstallDir $PROGRAMFILES64\Bitcoin
|
InstallDir $PROGRAMFILES64\Litecoin
|
||||||
!else
|
!else
|
||||||
InstallDir $PROGRAMFILES\Bitcoin
|
InstallDir $PROGRAMFILES\Litecoin
|
||||||
!endif
|
!endif
|
||||||
CRCCheck on
|
CRCCheck on
|
||||||
XPStyle on
|
XPStyle on
|
||||||
@ -104,7 +104,7 @@ Section -post SEC0001
|
|||||||
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
|
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoModify 1
|
||||||
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
|
WriteRegDWORD HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" NoRepair 1
|
||||||
WriteRegStr HKCR "@PACKAGE_TARNAME@" "URL Protocol" ""
|
WriteRegStr HKCR "@PACKAGE_TARNAME@" "URL Protocol" ""
|
||||||
WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Bitcoin"
|
WriteRegStr HKCR "@PACKAGE_TARNAME@" "" "URL:Litecoin"
|
||||||
WriteRegStr HKCR "@PACKAGE_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@
|
WriteRegStr HKCR "@PACKAGE_TARNAME@\DefaultIcon" "" $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@
|
||||||
WriteRegStr HKCR "@PACKAGE_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"'
|
WriteRegStr HKCR "@PACKAGE_TARNAME@\shell\open\command" "" '"$INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@" "%1"'
|
||||||
SectionEnd
|
SectionEnd
|
||||||
@ -137,7 +137,7 @@ Section -un.post UNSEC0001
|
|||||||
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk"
|
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall $(^Name).lnk"
|
||||||
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk"
|
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk"
|
||||||
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@PACKAGE_NAME@ (testnet, @WINDOWS_BITS@-bit).lnk"
|
Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\@PACKAGE_NAME@ (testnet, @WINDOWS_BITS@-bit).lnk"
|
||||||
Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"
|
Delete /REBOOTOK "$SMSTARTUP\Litecoin.lnk"
|
||||||
Delete /REBOOTOK $INSTDIR\uninstall.exe
|
Delete /REBOOTOK $INSTDIR\uninstall.exe
|
||||||
Delete /REBOOTOK $INSTDIR\debug.log
|
Delete /REBOOTOK $INSTDIR\debug.log
|
||||||
Delete /REBOOTOK $INSTDIR\db.log
|
Delete /REBOOTOK $INSTDIR\db.log
|
||||||
|
|||||||
@ -66,11 +66,11 @@ TESTS =
|
|||||||
BENCHMARKS =
|
BENCHMARKS =
|
||||||
|
|
||||||
if BUILD_BITCOIND
|
if BUILD_BITCOIND
|
||||||
bin_PROGRAMS += bitcoind
|
bin_PROGRAMS += litecoind
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if BUILD_BITCOIN_UTILS
|
if BUILD_BITCOIN_UTILS
|
||||||
bin_PROGRAMS += bitcoin-cli bitcoin-tx
|
bin_PROGRAMS += litecoin-cli litecoin-tx
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: FORCE check-symbols check-security
|
.PHONY: FORCE check-symbols check-security
|
||||||
@ -369,16 +369,16 @@ nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
|
|||||||
#
|
#
|
||||||
|
|
||||||
# bitcoind binary #
|
# bitcoind binary #
|
||||||
bitcoind_SOURCES = bitcoind.cpp
|
litecoind_SOURCES = bitcoind.cpp
|
||||||
bitcoind_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
litecoind_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
bitcoind_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
litecoind_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoind_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
litecoind_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoind_SOURCES += bitcoind-res.rc
|
litecoind_SOURCES += bitcoind-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoind_LDADD = \
|
litecoind_LDADD = \
|
||||||
$(LIBBITCOIN_SERVER) \
|
$(LIBBITCOIN_SERVER) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
@ -392,38 +392,38 @@ bitcoind_LDADD = \
|
|||||||
$(LIBMEMENV) \
|
$(LIBMEMENV) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
|
||||||
bitcoind_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS)
|
litecoind_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS)
|
||||||
|
|
||||||
# bitcoin-cli binary #
|
# bitcoin-cli binary #
|
||||||
bitcoin_cli_SOURCES = bitcoin-cli.cpp
|
litecoin_cli_SOURCES = bitcoin-cli.cpp
|
||||||
bitcoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
litecoin_cli_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
|
||||||
bitcoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
litecoin_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
litecoin_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_cli_SOURCES += bitcoin-cli-res.rc
|
litecoin_cli_SOURCES += bitcoin-cli-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoin_cli_LDADD = \
|
litecoin_cli_LDADD = \
|
||||||
$(LIBBITCOIN_CLI) \
|
$(LIBBITCOIN_CLI) \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
$(LIBBITCOIN_CRYPTO)
|
$(LIBBITCOIN_CRYPTO)
|
||||||
|
|
||||||
bitcoin_cli_LDADD += $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS)
|
litecoin_cli_LDADD += $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoin-tx binary #
|
# bitcoin-tx binary #
|
||||||
bitcoin_tx_SOURCES = bitcoin-tx.cpp
|
litecoin_tx_SOURCES = bitcoin-tx.cpp
|
||||||
bitcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
litecoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
bitcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
litecoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bitcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
litecoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
bitcoin_tx_SOURCES += bitcoin-tx-res.rc
|
litecoin_tx_SOURCES += bitcoin-tx-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bitcoin_tx_LDADD = \
|
litecoin_tx_LDADD = \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
@ -431,7 +431,7 @@ bitcoin_tx_LDADD = \
|
|||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
|
||||||
bitcoin_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
litecoin_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoinconsensus library #
|
# bitcoinconsensus library #
|
||||||
|
|||||||
@ -2,15 +2,15 @@
|
|||||||
# 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.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += bench/bench_bitcoin
|
bin_PROGRAMS += bench/bench_litecoin
|
||||||
BENCH_SRCDIR = bench
|
BENCH_SRCDIR = bench
|
||||||
BENCH_BINARY = bench/bench_bitcoin$(EXEEXT)
|
BENCH_BINARY = bench/bench_litecoin$(EXEEXT)
|
||||||
|
|
||||||
RAW_TEST_FILES = \
|
RAW_TEST_FILES = \
|
||||||
bench/data/block413567.raw
|
bench/data/block413567.raw
|
||||||
GENERATED_TEST_FILES = $(RAW_TEST_FILES:.raw=.raw.h)
|
GENERATED_TEST_FILES = $(RAW_TEST_FILES:.raw=.raw.h)
|
||||||
|
|
||||||
bench_bench_bitcoin_SOURCES = \
|
bench_bench_litecoin_SOURCES = \
|
||||||
bench/bench_bitcoin.cpp \
|
bench/bench_bitcoin.cpp \
|
||||||
bench/bench.cpp \
|
bench/bench.cpp \
|
||||||
bench/bench.h \
|
bench/bench.h \
|
||||||
@ -28,11 +28,11 @@ bench_bench_bitcoin_SOURCES = \
|
|||||||
bench/perf.h \
|
bench/perf.h \
|
||||||
bench/prevector_destructor.cpp
|
bench/prevector_destructor.cpp
|
||||||
|
|
||||||
nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_TEST_FILES)
|
nodist_bench_bench_litecoin_SOURCES = $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
|
bench_bench_litecoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CLFAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
|
||||||
bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
bench_bench_litecoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
bench_bench_bitcoin_LDADD = \
|
bench_bench_litecoin_LDADD = \
|
||||||
$(LIBBITCOIN_SERVER) \
|
$(LIBBITCOIN_SERVER) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
@ -45,16 +45,16 @@ bench_bench_bitcoin_LDADD = \
|
|||||||
$(LIBUNIVALUE)
|
$(LIBUNIVALUE)
|
||||||
|
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
bench_bench_litecoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp
|
bench_bench_litecoin_SOURCES += bench/coin_selection.cpp
|
||||||
bench_bench_bitcoin_LDADD += $(LIBBITCOIN_WALLET) $(LIBBITCOIN_CRYPTO)
|
bench_bench_litecoin_LDADD += $(LIBBITCOIN_WALLET) $(LIBBITCOIN_CRYPTO)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
bench_bench_bitcoin_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
bench_bench_litecoin_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
||||||
bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
bench_bench_litecoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_TEST_FILES)
|
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
# 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.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += qt/bitcoin-qt
|
bin_PROGRAMS += qt/litecoin-qt
|
||||||
EXTRA_LIBRARIES += qt/libbitcoinqt.a
|
EXTRA_LIBRARIES += qt/libbitcoinqt.a
|
||||||
|
|
||||||
# bitcoin qt core #
|
# bitcoin qt core #
|
||||||
@ -396,7 +396,7 @@ QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:
|
|||||||
# Most files will depend on the forms and moc files as includes. Generate them
|
# Most files will depend on the forms and moc files as includes. Generate them
|
||||||
# before anything else.
|
# before anything else.
|
||||||
$(QT_MOC): $(QT_FORMS_H)
|
$(QT_MOC): $(QT_FORMS_H)
|
||||||
$(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) : | $(QT_MOC)
|
$(qt_libbitcoinqt_a_OBJECTS) $(qt_litecoin_qt_OBJECTS) : | $(QT_MOC)
|
||||||
|
|
||||||
#Generating these with a half-written protobuf header leads to wacky results.
|
#Generating these with a half-written protobuf header leads to wacky results.
|
||||||
#This makes sure it's done.
|
#This makes sure it's done.
|
||||||
@ -404,29 +404,29 @@ $(QT_MOC): $(PROTOBUF_H)
|
|||||||
$(QT_MOC_CPP): $(PROTOBUF_H)
|
$(QT_MOC_CPP): $(PROTOBUF_H)
|
||||||
|
|
||||||
# bitcoin-qt binary #
|
# bitcoin-qt binary #
|
||||||
qt_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
qt_litecoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||||
$(QT_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS)
|
$(QT_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS)
|
||||||
qt_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
qt_litecoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
||||||
|
|
||||||
qt_bitcoin_qt_SOURCES = qt/bitcoin.cpp
|
qt_litecoin_qt_SOURCES = qt/bitcoin.cpp
|
||||||
if TARGET_DARWIN
|
if TARGET_DARWIN
|
||||||
qt_bitcoin_qt_SOURCES += $(BITCOIN_MM)
|
qt_litecoin_qt_SOURCES += $(BITCOIN_MM)
|
||||||
endif
|
endif
|
||||||
if TARGET_WINDOWS
|
if TARGET_WINDOWS
|
||||||
qt_bitcoin_qt_SOURCES += $(BITCOIN_RC)
|
qt_litecoin_qt_SOURCES += $(BITCOIN_RC)
|
||||||
endif
|
endif
|
||||||
qt_bitcoin_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER)
|
qt_litecoin_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
qt_bitcoin_qt_LDADD += $(LIBBITCOIN_WALLET)
|
qt_litecoin_qt_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
qt_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
qt_litecoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
qt_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \
|
qt_litecoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \
|
||||||
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
||||||
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
||||||
qt_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
qt_litecoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
qt_bitcoin_qt_LIBTOOLFLAGS = --tag CXX
|
qt_litecoin_qt_LIBTOOLFLAGS = --tag CXX
|
||||||
|
|
||||||
#locale/foo.ts -> locale/foo.qm
|
#locale/foo.ts -> locale/foo.qm
|
||||||
QT_QM=$(QT_TS:.ts=.qm)
|
QT_QM=$(QT_TS:.ts=.qm)
|
||||||
@ -458,9 +458,9 @@ CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda
|
|||||||
CLEANFILES += $(CLEAN_QT)
|
CLEANFILES += $(CLEAN_QT)
|
||||||
|
|
||||||
bitcoin_qt_clean: FORCE
|
bitcoin_qt_clean: FORCE
|
||||||
rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_bitcoin_qt_OBJECTS) qt/bitcoin-qt$(EXEEXT) $(LIBBITCOINQT)
|
rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_litecoin_qt_OBJECTS) qt/litecoin-qt$(EXEEXT) $(LIBBITCOINQT)
|
||||||
|
|
||||||
bitcoin_qt : qt/bitcoin-qt$(EXEEXT)
|
bitcoin_qt : qt/litecoin-qt$(EXEEXT)
|
||||||
|
|
||||||
ui_%.h: %.ui
|
ui_%.h: %.ui
|
||||||
@test -f $(UIC)
|
@test -f $(UIC)
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
# 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.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
bin_PROGRAMS += qt/test/test_bitcoin-qt
|
bin_PROGRAMS += qt/test/test_litecoin-qt
|
||||||
TESTS += qt/test/test_bitcoin-qt
|
TESTS += qt/test/test_litecoin-qt
|
||||||
|
|
||||||
TEST_QT_MOC_CPP = \
|
TEST_QT_MOC_CPP = \
|
||||||
qt/test/moc_compattests.cpp \
|
qt/test/moc_compattests.cpp \
|
||||||
@ -32,10 +32,10 @@ TEST_BITCOIN_H = \
|
|||||||
test/test_bitcoin.h \
|
test/test_bitcoin.h \
|
||||||
test/testutil.h
|
test/testutil.h
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
qt_test_test_litecoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
|
||||||
$(QT_INCLUDES) $(QT_TEST_INCLUDES) $(PROTOBUF_CFLAGS)
|
$(QT_INCLUDES) $(QT_TEST_INCLUDES) $(PROTOBUF_CFLAGS)
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_SOURCES = \
|
qt_test_test_litecoin_qt_SOURCES = \
|
||||||
qt/test/compattests.cpp \
|
qt/test/compattests.cpp \
|
||||||
qt/test/rpcnestedtests.cpp \
|
qt/test/rpcnestedtests.cpp \
|
||||||
qt/test/test_main.cpp \
|
qt/test/test_main.cpp \
|
||||||
@ -44,35 +44,35 @@ qt_test_test_bitcoin_qt_SOURCES = \
|
|||||||
$(TEST_BITCOIN_CPP) \
|
$(TEST_BITCOIN_CPP) \
|
||||||
$(TEST_BITCOIN_H)
|
$(TEST_BITCOIN_H)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
qt_test_test_bitcoin_qt_SOURCES += \
|
qt_test_test_litecoin_qt_SOURCES += \
|
||||||
qt/test/paymentservertests.cpp \
|
qt/test/paymentservertests.cpp \
|
||||||
qt/test/wallettests.cpp \
|
qt/test/wallettests.cpp \
|
||||||
wallet/test/wallet_test_fixture.cpp
|
wallet/test/wallet_test_fixture.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
nodist_qt_test_test_bitcoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
|
nodist_qt_test_test_litecoin_qt_SOURCES = $(TEST_QT_MOC_CPP)
|
||||||
|
|
||||||
qt_test_test_bitcoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER)
|
qt_test_test_litecoin_qt_LDADD = $(LIBBITCOINQT) $(LIBBITCOIN_SERVER)
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_WALLET)
|
qt_test_test_litecoin_qt_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
qt_test_test_litecoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
qt_test_test_bitcoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \
|
qt_test_test_litecoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) \
|
||||||
$(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \
|
$(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(QT_DBUS_LIBS) $(QT_TEST_LIBS) $(QT_LIBS) \
|
||||||
$(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
$(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
|
||||||
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
|
||||||
qt_test_test_bitcoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
qt_test_test_litecoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
qt_test_test_bitcoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
qt_test_test_litecoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
|
||||||
|
|
||||||
CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno
|
CLEAN_BITCOIN_QT_TEST = $(TEST_QT_MOC_CPP) qt/test/*.gcda qt/test/*.gcno
|
||||||
|
|
||||||
CLEANFILES += $(CLEAN_BITCOIN_QT_TEST)
|
CLEANFILES += $(CLEAN_BITCOIN_QT_TEST)
|
||||||
|
|
||||||
test_bitcoin_qt : qt/test/test_bitcoin-qt$(EXEEXT)
|
test_bitcoin_qt : qt/test/test_litecoin-qt$(EXEEXT)
|
||||||
|
|
||||||
test_bitcoin_qt_check : qt/test/test_bitcoin-qt$(EXEEXT) FORCE
|
test_bitcoin_qt_check : qt/test/test_litecoin-qt$(EXEEXT) FORCE
|
||||||
$(MAKE) check-TESTS TESTS=$^
|
$(MAKE) check-TESTS TESTS=$^
|
||||||
|
|
||||||
test_bitcoin_qt_clean: FORCE
|
test_bitcoin_qt_clean: FORCE
|
||||||
|
|||||||
@ -2,11 +2,11 @@
|
|||||||
# 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.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
TESTS += test/test_bitcoin
|
TESTS += test/test_litecoin
|
||||||
bin_PROGRAMS += test/test_bitcoin
|
bin_PROGRAMS += test/test_litecoin
|
||||||
noinst_PROGRAMS += test/test_bitcoin_fuzzy
|
noinst_PROGRAMS += test/test_litecoin_fuzzy
|
||||||
TEST_SRCDIR = test
|
TEST_SRCDIR = test
|
||||||
TEST_BINARY=test/test_bitcoin$(EXEEXT)
|
TEST_BINARY=test/test_litecoin$(EXEEXT)
|
||||||
|
|
||||||
JSON_TEST_FILES = \
|
JSON_TEST_FILES = \
|
||||||
test/data/script_tests.json \
|
test/data/script_tests.json \
|
||||||
@ -94,31 +94,31 @@ BITCOIN_TESTS += \
|
|||||||
wallet/test/crypto_tests.cpp
|
wallet/test/crypto_tests.cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_test_bitcoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
test_test_litecoin_SOURCES = $(BITCOIN_TESTS) $(JSON_TEST_FILES) $(RAW_TEST_FILES)
|
||||||
test_test_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) $(EVENT_CFLAGS)
|
test_test_litecoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -I$(builddir)/test/ $(TESTDEFS) $(EVENT_CFLAGS)
|
||||||
test_test_bitcoin_LDADD =
|
test_test_litecoin_LDADD =
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
|
test_test_litecoin_LDADD += $(LIBBITCOIN_WALLET)
|
||||||
endif
|
endif
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
|
test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
|
||||||
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
|
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
|
||||||
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
|
|
||||||
test_test_bitcoin_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS)
|
test_test_litecoin_LDADD += $(LIBBITCOIN_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS)
|
||||||
test_test_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
test_test_litecoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
||||||
|
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
test_test_bitcoin_LDADD += $(ZMQ_LIBS)
|
test_test_litecoin_LDADD += $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
#
|
#
|
||||||
|
|
||||||
# test_bitcoin_fuzzy binary #
|
# test_bitcoin_fuzzy binary #
|
||||||
test_test_bitcoin_fuzzy_SOURCES = test/test_bitcoin_fuzzy.cpp
|
test_test_litecoin_fuzzy_SOURCES = test/test_bitcoin_fuzzy.cpp
|
||||||
test_test_bitcoin_fuzzy_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
test_test_litecoin_fuzzy_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
|
||||||
test_test_bitcoin_fuzzy_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
test_test_litecoin_fuzzy_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
test_test_bitcoin_fuzzy_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
test_test_litecoin_fuzzy_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
|
||||||
|
|
||||||
test_test_bitcoin_fuzzy_LDADD = \
|
test_test_litecoin_fuzzy_LDADD = \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_SERVER) \
|
$(LIBBITCOIN_SERVER) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
@ -127,10 +127,10 @@ test_test_bitcoin_fuzzy_LDADD = \
|
|||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBSECP256K1)
|
$(LIBSECP256K1)
|
||||||
|
|
||||||
test_test_bitcoin_fuzzy_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
test_test_litecoin_fuzzy_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
||||||
#
|
#
|
||||||
|
|
||||||
nodist_test_test_bitcoin_SOURCES = $(GENERATED_TEST_FILES)
|
nodist_test_test_litecoin_SOURCES = $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
$(BITCOIN_TESTS): $(GENERATED_TEST_FILES)
|
$(BITCOIN_TESTS): $(GENERATED_TEST_FILES)
|
||||||
|
|
||||||
|
|||||||
2
src/bench/.gitignore
vendored
2
src/bench/.gitignore
vendored
@ -1 +1 @@
|
|||||||
bench_bitcoin
|
bench_litecoin
|
||||||
|
|||||||
@ -16,14 +16,14 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Litecoin"
|
||||||
VALUE "FileDescription", "bitcoin-cli (JSON-RPC client for " PACKAGE_NAME ")"
|
VALUE "FileDescription", "litecoin-cli (JSON-RPC client for " PACKAGE_NAME ")"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-cli"
|
VALUE "InternalName", "litecoin-cli"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-cli.exe"
|
VALUE "OriginalFilename", "litecoin-cli.exe"
|
||||||
VALUE "ProductName", "bitcoin-cli"
|
VALUE "ProductName", "litecoin-cli"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|||||||
@ -84,10 +84,10 @@ static int AppInitRPC(int argc, char* argv[])
|
|||||||
std::string strUsage = strprintf(_("%s RPC client version"), _(PACKAGE_NAME)) + " " + FormatFullVersion() + "\n";
|
std::string strUsage = strprintf(_("%s RPC client version"), _(PACKAGE_NAME)) + " " + FormatFullVersion() + "\n";
|
||||||
if (!gArgs.IsArgSet("-version")) {
|
if (!gArgs.IsArgSet("-version")) {
|
||||||
strUsage += "\n" + _("Usage:") + "\n" +
|
strUsage += "\n" + _("Usage:") + "\n" +
|
||||||
" bitcoin-cli [options] <command> [params] " + strprintf(_("Send command to %s"), _(PACKAGE_NAME)) + "\n" +
|
" litecoin-cli [options] <command> [params] " + strprintf(_("Send command to %s"), _(PACKAGE_NAME)) + "\n" +
|
||||||
" bitcoin-cli [options] -named <command> [name=value] ... " + strprintf(_("Send command to %s (with named arguments)"), _(PACKAGE_NAME)) + "\n" +
|
" litecoin-cli [options] -named <command> [name=value] ... " + strprintf(_("Send command to %s (with named arguments)"), _(PACKAGE_NAME)) + "\n" +
|
||||||
" bitcoin-cli [options] help " + _("List commands") + "\n" +
|
" litecoin-cli [options] help " + _("List commands") + "\n" +
|
||||||
" bitcoin-cli [options] help <command> " + _("Get help for a command") + "\n";
|
" litecoin-cli [options] help <command> " + _("Get help for a command") + "\n";
|
||||||
|
|
||||||
strUsage += "\n" + HelpMessageCli();
|
strUsage += "\n" + HelpMessageCli();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,14 +16,14 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Litecoin"
|
||||||
VALUE "FileDescription", "bitcoin-tx (CLI Bitcoin transaction editor utility)"
|
VALUE "FileDescription", "litecoin-tx (CLI Litecoin transaction editor utility)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-tx"
|
VALUE "InternalName", "litecoin-tx"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-tx.exe"
|
VALUE "OriginalFilename", "litecoin-tx.exe"
|
||||||
VALUE "ProductName", "bitcoin-tx"
|
VALUE "ProductName", "litecoin-tx"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|||||||
@ -54,10 +54,10 @@ static int AppInitRawTx(int argc, char* argv[])
|
|||||||
if (argc<2 || gArgs.IsArgSet("-?") || gArgs.IsArgSet("-h") || gArgs.IsArgSet("-help"))
|
if (argc<2 || gArgs.IsArgSet("-?") || gArgs.IsArgSet("-h") || gArgs.IsArgSet("-help"))
|
||||||
{
|
{
|
||||||
// First part of help message is specific to this utility
|
// First part of help message is specific to this utility
|
||||||
std::string strUsage = strprintf(_("%s bitcoin-tx utility version"), _(PACKAGE_NAME)) + " " + FormatFullVersion() + "\n\n" +
|
std::string strUsage = strprintf(_("%s litecoin-tx utility version"), _(PACKAGE_NAME)) + " " + FormatFullVersion() + "\n\n" +
|
||||||
_("Usage:") + "\n" +
|
_("Usage:") + "\n" +
|
||||||
" bitcoin-tx [options] <hex-tx> [commands] " + _("Update hex-encoded bitcoin transaction") + "\n" +
|
" litecoin-tx [options] <hex-tx> [commands] " + _("Update hex-encoded litecoin transaction") + "\n" +
|
||||||
" bitcoin-tx [options] -create [commands] " + _("Create hex-encoded bitcoin transaction") + "\n" +
|
" litecoin-tx [options] -create [commands] " + _("Create hex-encoded litecoin transaction") + "\n" +
|
||||||
"\n";
|
"\n";
|
||||||
|
|
||||||
fprintf(stdout, "%s", strUsage.c_str());
|
fprintf(stdout, "%s", strUsage.c_str());
|
||||||
|
|||||||
@ -16,14 +16,14 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Litecoin"
|
||||||
VALUE "FileDescription", "bitcoind (Bitcoin node with a JSON-RPC server)"
|
VALUE "FileDescription", "litecoind (Litecoin node with a JSON-RPC server)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoind"
|
VALUE "InternalName", "litecoind"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoind.exe"
|
VALUE "OriginalFilename", "litecoind.exe"
|
||||||
VALUE "ProductName", "bitcoind"
|
VALUE "ProductName", "litecoind"
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|||||||
@ -85,7 +85,7 @@ bool AppInit(int argc, char* argv[])
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
strUsage += "\n" + _("Usage:") + "\n" +
|
strUsage += "\n" + _("Usage:") + "\n" +
|
||||||
" bitcoind [options] " + strprintf(_("Start %s Daemon"), _(PACKAGE_NAME)) + "\n";
|
" litecoind [options] " + strprintf(_("Start %s Daemon"), _(PACKAGE_NAME)) + "\n";
|
||||||
|
|
||||||
strUsage += "\n" + HelpMessage(HMM_BITCOIND);
|
strUsage += "\n" + HelpMessage(HMM_BITCOIND);
|
||||||
}
|
}
|
||||||
@ -119,7 +119,7 @@ bool AppInit(int argc, char* argv[])
|
|||||||
// Error out when loose non-argument tokens are encountered on command line
|
// Error out when loose non-argument tokens are encountered on command line
|
||||||
for (int i = 1; i < argc; i++) {
|
for (int i = 1; i < argc; i++) {
|
||||||
if (!IsSwitchChar(argv[i][0])) {
|
if (!IsSwitchChar(argv[i][0])) {
|
||||||
fprintf(stderr, "Error: Command line contains unexpected token '%s', see bitcoind -h for a list of options.\n", argv[i]);
|
fprintf(stderr, "Error: Command line contains unexpected token '%s', see litecoind -h for a list of options.\n", argv[i]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ bool AppInit(int argc, char* argv[])
|
|||||||
if (gArgs.GetBoolArg("-daemon", false))
|
if (gArgs.GetBoolArg("-daemon", false))
|
||||||
{
|
{
|
||||||
#if HAVE_DECL_DAEMON
|
#if HAVE_DECL_DAEMON
|
||||||
fprintf(stdout, "Bitcoin server starting\n");
|
fprintf(stdout, "Litecoin server starting\n");
|
||||||
|
|
||||||
// Daemonize
|
// Daemonize
|
||||||
if (daemon(1, 0)) { // don't chdir (1), do close FDs (0)
|
if (daemon(1, 0)) { // don't chdir (1), do close FDs (0)
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
* for both bitcoind and bitcoin-core, to make it harder for attackers to
|
* for both bitcoind and bitcoin-core, to make it harder for attackers to
|
||||||
* target servers or GUI users specifically.
|
* target servers or GUI users specifically.
|
||||||
*/
|
*/
|
||||||
const std::string CLIENT_NAME("Satoshi");
|
const std::string CLIENT_NAME("LitecoinCore");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Client version number
|
* Client version number
|
||||||
|
|||||||
@ -811,7 +811,7 @@ void InitLogging()
|
|||||||
fLogIPs = gArgs.GetBoolArg("-logips", DEFAULT_LOGIPS);
|
fLogIPs = gArgs.GetBoolArg("-logips", DEFAULT_LOGIPS);
|
||||||
|
|
||||||
LogPrintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
LogPrintf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
|
||||||
LogPrintf("Bitcoin version %s\n", FormatFullVersion());
|
LogPrintf("Litecoin version %s\n", FormatFullVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace { // Variables internal to initialization process only
|
namespace { // Variables internal to initialization process only
|
||||||
|
|||||||
@ -1483,7 +1483,7 @@ void ThreadMapPort()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string strDesc = "Bitcoin " + FormatFullVersion();
|
std::string strDesc = "Litecoin " + FormatFullVersion();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
while (true) {
|
while (true) {
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
#include "validationinterface.h"
|
#include "validationinterface.h"
|
||||||
|
|
||||||
#if defined(NDEBUG)
|
#if defined(NDEBUG)
|
||||||
# error "Bitcoin cannot be compiled without assertions."
|
# error "Litecoin cannot be compiled without assertions."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::atomic<int64_t> nTimeBestReceived(0); // Used only to inform the wallet of when we last received a block
|
std::atomic<int64_t> nTimeBestReceived(0); // Used only to inform the wallet of when we last received a block
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include "tinyformat.h"
|
#include "tinyformat.h"
|
||||||
|
|
||||||
const std::string CURRENCY_UNIT = "BTC";
|
const std::string CURRENCY_UNIT = "LTC";
|
||||||
|
|
||||||
CFeeRate::CFeeRate(const CAmount& nFeePaid, size_t nBytes_)
|
CFeeRate::CFeeRate(const CAmount& nFeePaid, size_t nBytes_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -67,11 +67,11 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode,
|
|||||||
switch(tab)
|
switch(tab)
|
||||||
{
|
{
|
||||||
case SendingTab:
|
case SendingTab:
|
||||||
ui->labelExplanation->setText(tr("These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins."));
|
ui->labelExplanation->setText(tr("These are your Litecoin addresses for sending payments. Always check the amount and the receiving address before sending coins."));
|
||||||
ui->deleteAddress->setVisible(true);
|
ui->deleteAddress->setVisible(true);
|
||||||
break;
|
break;
|
||||||
case ReceivingTab:
|
case ReceivingTab:
|
||||||
ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction."));
|
ui->labelExplanation->setText(tr("These are your Litecoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction."));
|
||||||
ui->deleteAddress->setVisible(false);
|
ui->deleteAddress->setVisible(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,7 +111,7 @@ void AskPassphraseDialog::accept()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm wallet encryption"),
|
QMessageBox::StandardButton retval = QMessageBox::question(this, tr("Confirm wallet encryption"),
|
||||||
tr("Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!") + "<br><br>" + tr("Are you sure you wish to encrypt your wallet?"),
|
tr("Warning: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR LITECOINS</b>!") + "<br><br>" + tr("Are you sure you wish to encrypt your wallet?"),
|
||||||
QMessageBox::Yes|QMessageBox::Cancel,
|
QMessageBox::Yes|QMessageBox::Cancel,
|
||||||
QMessageBox::Cancel);
|
QMessageBox::Cancel);
|
||||||
if(retval == QMessageBox::Yes)
|
if(retval == QMessageBox::Yes)
|
||||||
@ -124,7 +124,7 @@ void AskPassphraseDialog::accept()
|
|||||||
"<qt>" +
|
"<qt>" +
|
||||||
tr("%1 will close now to finish the encryption process. "
|
tr("%1 will close now to finish the encryption process. "
|
||||||
"Remember that encrypting your wallet cannot fully protect "
|
"Remember that encrypting your wallet cannot fully protect "
|
||||||
"your bitcoins from being stolen by malware infecting your computer.").arg(tr(PACKAGE_NAME)) +
|
"your litecoins from being stolen by malware infecting your computer.").arg(tr(PACKAGE_NAME)) +
|
||||||
"<br><br><b>" +
|
"<br><br><b>" +
|
||||||
tr("IMPORTANT: Any previous backups you have made of your wallet file "
|
tr("IMPORTANT: Any previous backups you have made of your wallet file "
|
||||||
"should be replaced with the newly generated, encrypted wallet file. "
|
"should be replaced with the newly generated, encrypted wallet file. "
|
||||||
|
|||||||
@ -531,7 +531,7 @@ void BitcoinApplication::shutdownResult()
|
|||||||
|
|
||||||
void BitcoinApplication::handleRunawayException(const QString &message)
|
void BitcoinApplication::handleRunawayException(const QString &message)
|
||||||
{
|
{
|
||||||
QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Bitcoin can no longer continue safely and will quit.") + QString("\n\n") + message);
|
QMessageBox::critical(0, "Runaway exception", BitcoinGUI::tr("A fatal error occurred. Litecoin can no longer continue safely and will quit.") + QString("\n\n") + message);
|
||||||
::exit(EXIT_FAILURE);
|
::exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -284,7 +284,7 @@ void BitcoinGUI::createActions()
|
|||||||
tabGroup->addAction(overviewAction);
|
tabGroup->addAction(overviewAction);
|
||||||
|
|
||||||
sendCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
sendCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/send"), tr("&Send"), this);
|
||||||
sendCoinsAction->setStatusTip(tr("Send coins to a Bitcoin address"));
|
sendCoinsAction->setStatusTip(tr("Send coins to a Litecoin address"));
|
||||||
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
sendCoinsAction->setToolTip(sendCoinsAction->statusTip());
|
||||||
sendCoinsAction->setCheckable(true);
|
sendCoinsAction->setCheckable(true);
|
||||||
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
|
||||||
@ -295,7 +295,7 @@ void BitcoinGUI::createActions()
|
|||||||
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
sendCoinsMenuAction->setToolTip(sendCoinsMenuAction->statusTip());
|
||||||
|
|
||||||
receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
receiveCoinsAction = new QAction(platformStyle->SingleColorIcon(":/icons/receiving_addresses"), tr("&Receive"), this);
|
||||||
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and bitcoin: URIs)"));
|
receiveCoinsAction->setStatusTip(tr("Request payments (generates QR codes and litecoin: URIs)"));
|
||||||
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
receiveCoinsAction->setToolTip(receiveCoinsAction->statusTip());
|
||||||
receiveCoinsAction->setCheckable(true);
|
receiveCoinsAction->setCheckable(true);
|
||||||
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
receiveCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_3));
|
||||||
@ -355,9 +355,9 @@ void BitcoinGUI::createActions()
|
|||||||
changePassphraseAction = new QAction(platformStyle->TextColorIcon(":/icons/key"), tr("&Change Passphrase..."), this);
|
changePassphraseAction = new QAction(platformStyle->TextColorIcon(":/icons/key"), tr("&Change Passphrase..."), this);
|
||||||
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
changePassphraseAction->setStatusTip(tr("Change the passphrase used for wallet encryption"));
|
||||||
signMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/edit"), tr("Sign &message..."), this);
|
signMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/edit"), tr("Sign &message..."), this);
|
||||||
signMessageAction->setStatusTip(tr("Sign messages with your Bitcoin addresses to prove you own them"));
|
signMessageAction->setStatusTip(tr("Sign messages with your Litecoin addresses to prove you own them"));
|
||||||
verifyMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/verify"), tr("&Verify message..."), this);
|
verifyMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/verify"), tr("&Verify message..."), this);
|
||||||
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Bitcoin addresses"));
|
verifyMessageAction->setStatusTip(tr("Verify messages to ensure they were signed with specified Litecoin addresses"));
|
||||||
|
|
||||||
openRPCConsoleAction = new QAction(platformStyle->TextColorIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
openRPCConsoleAction = new QAction(platformStyle->TextColorIcon(":/icons/debugwindow"), tr("&Debug window"), this);
|
||||||
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
|
openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console"));
|
||||||
@ -370,11 +370,11 @@ void BitcoinGUI::createActions()
|
|||||||
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels"));
|
||||||
|
|
||||||
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
openAction = new QAction(platformStyle->TextColorIcon(":/icons/open"), tr("Open &URI..."), this);
|
||||||
openAction->setStatusTip(tr("Open a bitcoin: URI or payment request"));
|
openAction->setStatusTip(tr("Open a litecoin: URI or payment request"));
|
||||||
|
|
||||||
showHelpMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/info"), tr("&Command-line options"), this);
|
showHelpMessageAction = new QAction(platformStyle->TextColorIcon(":/icons/info"), tr("&Command-line options"), this);
|
||||||
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
||||||
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Bitcoin command-line options").arg(tr(PACKAGE_NAME)));
|
showHelpMessageAction->setStatusTip(tr("Show the %1 help message to get a list with possible Litecoin command-line options").arg(tr(PACKAGE_NAME)));
|
||||||
|
|
||||||
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||||
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
||||||
@ -728,7 +728,7 @@ void BitcoinGUI::updateNetworkState()
|
|||||||
QString tooltip;
|
QString tooltip;
|
||||||
|
|
||||||
if (clientModel->getNetworkActive()) {
|
if (clientModel->getNetworkActive()) {
|
||||||
tooltip = tr("%n active connection(s) to Bitcoin network", "", count) + QString(".<br>") + tr("Click to disable network activity.");
|
tooltip = tr("%n active connection(s) to Litecoin network", "", count) + QString(".<br>") + tr("Click to disable network activity.");
|
||||||
} else {
|
} else {
|
||||||
tooltip = tr("Network activity disabled.") + QString("<br>") + tr("Click to enable network activity again.");
|
tooltip = tr("Network activity disabled.") + QString("<br>") + tr("Click to enable network activity again.");
|
||||||
icon = ":/icons/network_disabled";
|
icon = ":/icons/network_disabled";
|
||||||
@ -872,7 +872,7 @@ void BitcoinGUI::setNumBlocks(int count, const QDateTime& blockDate, double nVer
|
|||||||
|
|
||||||
void BitcoinGUI::message(const QString &title, const QString &message, unsigned int style, bool *ret)
|
void BitcoinGUI::message(const QString &title, const QString &message, unsigned int style, bool *ret)
|
||||||
{
|
{
|
||||||
QString strTitle = tr("Bitcoin"); // default title
|
QString strTitle = tr("Litecoin"); // default title
|
||||||
// Default to information icon
|
// Default to information icon
|
||||||
int nMBoxIcon = QMessageBox::Information;
|
int nMBoxIcon = QMessageBox::Information;
|
||||||
int nNotifyIcon = Notificator::Information;
|
int nNotifyIcon = Notificator::Information;
|
||||||
|
|||||||
@ -40,9 +40,9 @@ QString BitcoinUnits::name(int unit)
|
|||||||
{
|
{
|
||||||
switch(unit)
|
switch(unit)
|
||||||
{
|
{
|
||||||
case BTC: return QString("BTC");
|
case BTC: return QString("LTC");
|
||||||
case mBTC: return QString("mBTC");
|
case mBTC: return QString("mLTC");
|
||||||
case uBTC: return QString::fromUtf8("μBTC");
|
case uBTC: return QString::fromUtf8("μLTC");
|
||||||
default: return QString("???");
|
default: return QString("???");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,9 +51,9 @@ QString BitcoinUnits::description(int unit)
|
|||||||
{
|
{
|
||||||
switch(unit)
|
switch(unit)
|
||||||
{
|
{
|
||||||
case BTC: return QString("Bitcoins");
|
case BTC: return QString("Litecoins");
|
||||||
case mBTC: return QString("Milli-Bitcoins (1 / 1" THIN_SP_UTF8 "000)");
|
case mBTC: return QString("Milli-Litecoins (1 / 1" THIN_SP_UTF8 "000)");
|
||||||
case uBTC: return QString("Micro-Bitcoins (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
case uBTC: return QString("Micro-Litecoins (1 / 1" THIN_SP_UTF8 "000" THIN_SP_UTF8 "000)");
|
||||||
default: return QString("???");
|
default: return QString("???");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -107,7 +107,7 @@ void EditAddressDialog::accept()
|
|||||||
break;
|
break;
|
||||||
case AddressTableModel::INVALID_ADDRESS:
|
case AddressTableModel::INVALID_ADDRESS:
|
||||||
QMessageBox::warning(this, windowTitle(),
|
QMessageBox::warning(this, windowTitle(),
|
||||||
tr("The entered address \"%1\" is not a valid Bitcoin address.").arg(ui->addressEdit->text()),
|
tr("The entered address \"%1\" is not a valid Litecoin address.").arg(ui->addressEdit->text()),
|
||||||
QMessageBox::Ok, QMessageBox::Ok);
|
QMessageBox::Ok, QMessageBox::Ok);
|
||||||
break;
|
break;
|
||||||
case AddressTableModel::DUPLICATE_ADDRESS:
|
case AddressTableModel::DUPLICATE_ADDRESS:
|
||||||
|
|||||||
@ -132,7 +132,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -212,7 +212,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -257,7 +257,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -292,7 +292,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
|||||||
@ -130,7 +130,7 @@ QLabel { color: rgb(40,40,40); }</string>
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="infoText">
|
<widget class="QLabel" name="infoText">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the bitcoin network, as detailed below.</string>
|
<string>Recent transactions may not yet be visible, and therefore your wallet's balance might be incorrect. This information will be correct once your wallet has finished synchronizing with the litecoin network, as detailed below.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::RichText</enum>
|
<enum>Qt::RichText</enum>
|
||||||
@ -149,7 +149,7 @@ QLabel { color: rgb(40,40,40); }</string>
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Attempting to spend bitcoins that are affected by not-yet-displayed transactions will not be accepted by the network.</string>
|
<string>Attempting to spend litecoins that are affected by not-yet-displayed transactions will not be accepted by the network.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::RichText</enum>
|
<enum>Qt::RichText</enum>
|
||||||
|
|||||||
@ -189,7 +189,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="mapPortUpnp">
|
<widget class="QCheckBox" name="mapPortUpnp">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</string>
|
<string>Automatically open the Litecoin client port on the router. This only works when your router supports UPnP and it is enabled.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Map port using &UPnP</string>
|
<string>Map port using &UPnP</string>
|
||||||
@ -209,7 +209,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="connectSocks">
|
<widget class="QCheckBox" name="connectSocks">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Connect to the Bitcoin network through a SOCKS5 proxy.</string>
|
<string>Connect to the Litecoin network through a SOCKS5 proxy.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Connect through SOCKS5 proxy (default proxy):</string>
|
<string>&Connect through SOCKS5 proxy (default proxy):</string>
|
||||||
@ -396,7 +396,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="connectSocksTor">
|
<widget class="QCheckBox" name="connectSocksTor">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Connect to the Bitcoin network through a separate SOCKS5 proxy for Tor hidden services.</string>
|
<string>Connect to the Litecoin network through a separate SOCKS5 proxy for Tor hidden services.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</string>
|
<string>Use separate SOCKS5 proxy to reach peers via Tor hidden services:</string>
|
||||||
|
|||||||
@ -73,7 +73,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</string>
|
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the Litecoin network after a connection is established, but this process has not completed yet.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
@ -129,7 +129,7 @@
|
|||||||
<string>Unconfirmed transactions to watch-only addresses</string>
|
<string>Unconfirmed transactions to watch-only addresses</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -154,7 +154,7 @@
|
|||||||
<string>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</string>
|
<string>Total of transactions that have yet to be confirmed, and do not yet count toward the spendable balance</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -179,7 +179,7 @@
|
|||||||
<string>Mined balance in watch-only addresses that has not yet matured</string>
|
<string>Mined balance in watch-only addresses that has not yet matured</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -237,7 +237,7 @@
|
|||||||
<string>Mined balance that has not yet matured</string>
|
<string>Mined balance that has not yet matured</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -282,7 +282,7 @@
|
|||||||
<string>Your current total balance</string>
|
<string>Your current total balance</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -307,7 +307,7 @@
|
|||||||
<string>Current total balance in watch-only addresses</string>
|
<string>Current total balance in watch-only addresses</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -349,7 +349,7 @@
|
|||||||
<string>Your current spendable balance</string>
|
<string>Your current spendable balance</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -374,7 +374,7 @@
|
|||||||
<string>Your current balance in watch-only addresses</string>
|
<string>Your current balance in watch-only addresses</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.000 000 00 BTC</string>
|
<string notr="true">0.000 000 00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
@ -459,7 +459,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</string>
|
<string>The displayed information may be out of date. Your wallet automatically synchronizes with the Litecoin network after a connection is established, but this process has not completed yet.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
<item row="6" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</string>
|
<string>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Litecoin network.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Message:</string>
|
<string>&Message:</string>
|
||||||
@ -71,7 +71,7 @@
|
|||||||
<item row="6" column="2">
|
<item row="6" column="2">
|
||||||
<widget class="QLineEdit" name="reqMessage">
|
<widget class="QLineEdit" name="reqMessage">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Bitcoin network.</string>
|
<string>An optional message to attach to the payment request, which will be displayed when the request is opened. Note: The message will not be sent with the payment over the Litecoin network.</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@ -324,7 +324,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -404,7 +404,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -455,7 +455,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -484,7 +484,7 @@
|
|||||||
<enum>Qt::ActionsContextMenu</enum>
|
<enum>Qt::ActionsContextMenu</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">0.00 BTC</string>
|
<string notr="true">0.00 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
@ -884,7 +884,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBoxMinimumFee">
|
<widget class="QCheckBox" name="checkBoxMinimumFee">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</string>
|
<string>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for litecoin transactions than the network can process.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
@ -897,7 +897,7 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for bitcoin transactions than the network can process.</string>
|
<string>Paying only the minimum fee is just fine as long as there is less transaction volume than space in the blocks. But be aware that this can end up in a never confirming transaction once there is more demand for litecoin transactions than the network can process.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>(read the tooltip)</string>
|
<string>(read the tooltip)</string>
|
||||||
@ -1253,7 +1253,7 @@
|
|||||||
<cursorShape>IBeamCursor</cursorShape>
|
<cursorShape>IBeamCursor</cursorShape>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">123.456 BTC</string>
|
<string notr="true">123.456 LTC</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QValidatedLineEdit" name="payTo">
|
<widget class="QValidatedLineEdit" name="payTo">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The Bitcoin address to send the payment to</string>
|
<string>The Litecoin address to send the payment to</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -170,7 +170,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkboxSubtractFeeFromAmount">
|
<widget class="QCheckBox" name="checkboxSubtractFeeFromAmount">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The fee will be deducted from the amount being sent. The recipient will receive less bitcoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</string>
|
<string>The fee will be deducted from the amount being sent. The recipient will receive less litecoins than you enter in the amount field. If multiple recipients are selected, the fee is split equally.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>S&ubtract fee from amount</string>
|
<string>S&ubtract fee from amount</string>
|
||||||
@ -192,7 +192,7 @@
|
|||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QLabel" name="messageTextLabel">
|
<widget class="QLabel" name="messageTextLabel">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>A message that was attached to the bitcoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Bitcoin network.</string>
|
<string>A message that was attached to the litecoin: URI which will be stored with the transaction for your reference. Note: This message will not be sent over the Litecoin network.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::PlainText</enum>
|
<enum>Qt::PlainText</enum>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="infoLabel_SM">
|
<widget class="QLabel" name="infoLabel_SM">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>You can sign messages/agreements with your addresses to prove you can receive bitcoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</string>
|
<string>You can sign messages/agreements with your addresses to prove you can receive litecoins sent to them. Be careful not to sign anything vague or random, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textFormat">
|
<property name="textFormat">
|
||||||
<enum>Qt::PlainText</enum>
|
<enum>Qt::PlainText</enum>
|
||||||
@ -48,7 +48,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QValidatedLineEdit" name="addressIn_SM">
|
<widget class="QValidatedLineEdit" name="addressIn_SM">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The Bitcoin address to sign the message with</string>
|
<string>The Litecoin address to sign the message with</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -152,7 +152,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="signMessageButton_SM">
|
<widget class="QPushButton" name="signMessageButton_SM">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Sign the message to prove you own this Bitcoin address</string>
|
<string>Sign the message to prove you own this Litecoin address</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Sign &Message</string>
|
<string>Sign &Message</string>
|
||||||
@ -258,7 +258,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QValidatedLineEdit" name="addressIn_VM">
|
<widget class="QValidatedLineEdit" name="addressIn_VM">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>The Bitcoin address the message was signed with</string>
|
<string>The Litecoin address the message was signed with</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -295,7 +295,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="verifyMessageButton_VM">
|
<widget class="QPushButton" name="verifyMessageButton_VM">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Verify the message to ensure it was signed with the specified Bitcoin address</string>
|
<string>Verify the message to ensure it was signed with the specified Litecoin address</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Verify &Message</string>
|
<string>Verify &Message</string>
|
||||||
|
|||||||
@ -48,9 +48,9 @@ static const int MAX_URI_LENGTH = 255;
|
|||||||
/* Number of frames in spinner animation */
|
/* Number of frames in spinner animation */
|
||||||
#define SPINNER_FRAMES 36
|
#define SPINNER_FRAMES 36
|
||||||
|
|
||||||
#define QAPP_ORG_NAME "Bitcoin"
|
#define QAPP_ORG_NAME "Litecoin"
|
||||||
#define QAPP_ORG_DOMAIN "bitcoin.org"
|
#define QAPP_ORG_DOMAIN "litecoin.org"
|
||||||
#define QAPP_APP_NAME_DEFAULT "Bitcoin-Qt"
|
#define QAPP_APP_NAME_DEFAULT "Litecoin-Qt"
|
||||||
#define QAPP_APP_NAME_TESTNET "Bitcoin-Qt-testnet"
|
#define QAPP_APP_NAME_TESTNET "Litecoin-Qt-testnet"
|
||||||
|
|
||||||
#endif // BITCOIN_QT_GUICONSTANTS_H
|
#endif // BITCOIN_QT_GUICONSTANTS_H
|
||||||
|
|||||||
@ -127,7 +127,7 @@ void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent)
|
|||||||
#if QT_VERSION >= 0x040700
|
#if QT_VERSION >= 0x040700
|
||||||
// We don't want translators to use own addresses in translations
|
// We don't want translators to use own addresses in translations
|
||||||
// and this is the only place, where this address is supplied.
|
// and this is the only place, where this address is supplied.
|
||||||
widget->setPlaceholderText(QObject::tr("Enter a Bitcoin address (e.g. %1)").arg(
|
widget->setPlaceholderText(QObject::tr("Enter a Litecoin address (e.g. %1)").arg(
|
||||||
QString::fromStdString(DummyAddress(Params()))));
|
QString::fromStdString(DummyAddress(Params()))));
|
||||||
#endif
|
#endif
|
||||||
widget->setValidator(new BitcoinAddressEntryValidator(parent));
|
widget->setValidator(new BitcoinAddressEntryValidator(parent));
|
||||||
@ -615,10 +615,10 @@ fs::path static StartupShortcutPath()
|
|||||||
{
|
{
|
||||||
std::string chain = ChainNameFromCommandLine();
|
std::string chain = ChainNameFromCommandLine();
|
||||||
if (chain == CBaseChainParams::MAIN)
|
if (chain == CBaseChainParams::MAIN)
|
||||||
return GetSpecialFolderPath(CSIDL_STARTUP) / "Bitcoin.lnk";
|
return GetSpecialFolderPath(CSIDL_STARTUP) / "Litecoin.lnk";
|
||||||
if (chain == CBaseChainParams::TESTNET) // Remove this special case when CBaseChainParams::TESTNET = "testnet4"
|
if (chain == CBaseChainParams::TESTNET) // Remove this special case when CBaseChainParams::TESTNET = "testnet4"
|
||||||
return GetSpecialFolderPath(CSIDL_STARTUP) / "Bitcoin (testnet).lnk";
|
return GetSpecialFolderPath(CSIDL_STARTUP) / "Litecoin (testnet).lnk";
|
||||||
return GetSpecialFolderPath(CSIDL_STARTUP) / strprintf("Bitcoin (%s).lnk", chain);
|
return GetSpecialFolderPath(CSIDL_STARTUP) / strprintf("Litecoin (%s).lnk", chain);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetStartOnSystemStartup()
|
bool GetStartOnSystemStartup()
|
||||||
@ -713,8 +713,8 @@ fs::path static GetAutostartFilePath()
|
|||||||
{
|
{
|
||||||
std::string chain = ChainNameFromCommandLine();
|
std::string chain = ChainNameFromCommandLine();
|
||||||
if (chain == CBaseChainParams::MAIN)
|
if (chain == CBaseChainParams::MAIN)
|
||||||
return GetAutostartDir() / "bitcoin.desktop";
|
return GetAutostartDir() / "litecoin.desktop";
|
||||||
return GetAutostartDir() / strprintf("bitcoin-%s.lnk", chain);
|
return GetAutostartDir() / strprintf("litecoin-%s.lnk", chain);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetStartOnSystemStartup()
|
bool GetStartOnSystemStartup()
|
||||||
@ -757,9 +757,9 @@ bool SetStartOnSystemStartup(bool fAutoStart)
|
|||||||
optionFile << "[Desktop Entry]\n";
|
optionFile << "[Desktop Entry]\n";
|
||||||
optionFile << "Type=Application\n";
|
optionFile << "Type=Application\n";
|
||||||
if (chain == CBaseChainParams::MAIN)
|
if (chain == CBaseChainParams::MAIN)
|
||||||
optionFile << "Name=Bitcoin\n";
|
optionFile << "Name=Litecoin\n";
|
||||||
else
|
else
|
||||||
optionFile << strprintf("Name=Bitcoin (%s)\n", chain);
|
optionFile << strprintf("Name=Litecoin (%s)\n", chain);
|
||||||
optionFile << "Exec=" << pszExePath << strprintf(" -min -testnet=%d -regtest=%d\n", gArgs.GetBoolArg("-testnet", false), gArgs.GetBoolArg("-regtest", false));
|
optionFile << "Exec=" << pszExePath << strprintf(" -min -testnet=%d -regtest=%d\n", gArgs.GetBoolArg("-testnet", false), gArgs.GetBoolArg("-regtest", false));
|
||||||
optionFile << "Terminal=false\n";
|
optionFile << "Terminal=false\n";
|
||||||
optionFile << "Hidden=false\n";
|
optionFile << "Hidden=false\n";
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
- (NSString *)__bundleIdentifier
|
- (NSString *)__bundleIdentifier
|
||||||
{
|
{
|
||||||
if (self == [NSBundle mainBundle]) {
|
if (self == [NSBundle mainBundle]) {
|
||||||
return @"org.bitcoinfoundation.Bitcoin-Qt";
|
return @"org.litecoin.Litecoin-Qt";
|
||||||
} else {
|
} else {
|
||||||
return [self __bundleIdentifier];
|
return [self __bundleIdentifier];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ OpenURIDialog::OpenURIDialog(QWidget *parent) :
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
#if QT_VERSION >= 0x040700
|
#if QT_VERSION >= 0x040700
|
||||||
ui->uriEdit->setPlaceholderText("bitcoin:");
|
ui->uriEdit->setPlaceholderText("litecoin:");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,5 +48,5 @@ void OpenURIDialog::on_selectFileButton_clicked()
|
|||||||
if(filename.isEmpty())
|
if(filename.isEmpty())
|
||||||
return;
|
return;
|
||||||
QUrl fileUri = QUrl::fromLocalFile(filename);
|
QUrl fileUri = QUrl::fromLocalFile(filename);
|
||||||
ui->uriEdit->setText("bitcoin:?r=" + QUrl::toPercentEncoding(fileUri.toString()));
|
ui->uriEdit->setText("litecoin:?r=" + QUrl::toPercentEncoding(fileUri.toString()));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
syntax = "proto2";
|
syntax = "proto2";
|
||||||
|
|
||||||
package payments;
|
package payments;
|
||||||
option java_package = "org.bitcoin.protocols.payments";
|
option java_package = "org.litecoin.protocols.payments";
|
||||||
option java_outer_classname = "Protos";
|
option java_outer_classname = "Protos";
|
||||||
|
|
||||||
// Generalized form of "send payment to this/these bitcoin addresses"
|
// Generalized form of "send payment to this/these bitcoin addresses"
|
||||||
|
|||||||
@ -47,14 +47,14 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
const int BITCOIN_IPC_CONNECT_TIMEOUT = 1000; // milliseconds
|
||||||
const QString BITCOIN_IPC_PREFIX("bitcoin:");
|
const QString BITCOIN_IPC_PREFIX("litecoin:");
|
||||||
// BIP70 payment protocol messages
|
// BIP70 payment protocol messages
|
||||||
const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK";
|
const char* BIP70_MESSAGE_PAYMENTACK = "PaymentACK";
|
||||||
const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest";
|
const char* BIP70_MESSAGE_PAYMENTREQUEST = "PaymentRequest";
|
||||||
// BIP71 payment protocol media types
|
// BIP71 payment protocol media types
|
||||||
const char* BIP71_MIMETYPE_PAYMENT = "application/bitcoin-payment";
|
const char* BIP71_MIMETYPE_PAYMENT = "application/litecoin-payment";
|
||||||
const char* BIP71_MIMETYPE_PAYMENTACK = "application/bitcoin-paymentack";
|
const char* BIP71_MIMETYPE_PAYMENTACK = "application/litecoin-paymentack";
|
||||||
const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/bitcoin-paymentrequest";
|
const char* BIP71_MIMETYPE_PAYMENTREQUEST = "application/litecoin-paymentrequest";
|
||||||
|
|
||||||
struct X509StoreDeleter {
|
struct X509StoreDeleter {
|
||||||
void operator()(X509_STORE* b) {
|
void operator()(X509_STORE* b) {
|
||||||
@ -78,7 +78,7 @@ namespace // Anon namespace
|
|||||||
//
|
//
|
||||||
static QString ipcServerName()
|
static QString ipcServerName()
|
||||||
{
|
{
|
||||||
QString name("BitcoinQt");
|
QString name("LitecoinQt");
|
||||||
|
|
||||||
// Append a simple hash of the datadir
|
// Append a simple hash of the datadir
|
||||||
// Note that GetDataDir(true) returns a different path
|
// Note that GetDataDir(true) returns a different path
|
||||||
@ -326,7 +326,7 @@ PaymentServer::PaymentServer(QObject* parent, bool startLocalServer) :
|
|||||||
if (!uriServer->listen(name)) {
|
if (!uriServer->listen(name)) {
|
||||||
// constructor is called early in init, so don't use "Q_EMIT message()" here
|
// constructor is called early in init, so don't use "Q_EMIT message()" here
|
||||||
QMessageBox::critical(0, tr("Payment request error"),
|
QMessageBox::critical(0, tr("Payment request error"),
|
||||||
tr("Cannot start bitcoin: click-to-pay handler"));
|
tr("Cannot start litecoin: click-to-pay handler"));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
connect(uriServer, SIGNAL(newConnection()), this, SLOT(handleURIConnection()));
|
connect(uriServer, SIGNAL(newConnection()), this, SLOT(handleURIConnection()));
|
||||||
@ -451,7 +451,7 @@ void PaymentServer::handleURIOrFile(const QString& s)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
Q_EMIT message(tr("URI handling"),
|
Q_EMIT message(tr("URI handling"),
|
||||||
tr("URI cannot be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
|
tr("URI cannot be parsed! This can be caused by an invalid Litecoin address or malformed URI parameters."),
|
||||||
CClientUIInterface::ICON_WARNING);
|
CClientUIInterface::ICON_WARNING);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -19,13 +19,13 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
BLOCK "040904E4" // U.S. English - multilingual (hex)
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Bitcoin"
|
VALUE "CompanyName", "Litecoin"
|
||||||
VALUE "FileDescription", PACKAGE_NAME " (GUI node for Bitcoin)"
|
VALUE "FileDescription", PACKAGE_NAME " (GUI node for Litecoin)"
|
||||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||||
VALUE "InternalName", "bitcoin-qt"
|
VALUE "InternalName", "litecoin-qt"
|
||||||
VALUE "LegalCopyright", COPYRIGHT_STR
|
VALUE "LegalCopyright", COPYRIGHT_STR
|
||||||
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
VALUE "LegalTrademarks1", "Distributed under the MIT software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
|
||||||
VALUE "OriginalFilename", "bitcoin-qt.exe"
|
VALUE "OriginalFilename", "litecoin-qt.exe"
|
||||||
VALUE "ProductName", PACKAGE_NAME
|
VALUE "ProductName", PACKAGE_NAME
|
||||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||||
END
|
END
|
||||||
|
|||||||
@ -785,7 +785,7 @@ void SendCoinsDialog::coinControlChangeEdited(const QString& text)
|
|||||||
}
|
}
|
||||||
else if (!addr.IsValid()) // Invalid address
|
else if (!addr.IsValid()) // Invalid address
|
||||||
{
|
{
|
||||||
ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid Bitcoin address"));
|
ui->labelCoinControlChangeLabel->setText(tr("Warning: Invalid Litecoin address"));
|
||||||
}
|
}
|
||||||
else // Valid address
|
else // Valid address
|
||||||
{
|
{
|
||||||
|
|||||||
@ -68,7 +68,7 @@ int main(int argc, char *argv[])
|
|||||||
// Don't remove this, it's needed to access
|
// Don't remove this, it's needed to access
|
||||||
// QApplication:: and QCoreApplication:: in the tests
|
// QApplication:: and QCoreApplication:: in the tests
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
app.setApplicationName("Bitcoin-Qt-test");
|
app.setApplicationName("Litecoin-Qt-test");
|
||||||
|
|
||||||
SSL_library_init();
|
SSL_library_init();
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
|||||||
} else {
|
} else {
|
||||||
setWindowTitle(tr("Command-line options"));
|
setWindowTitle(tr("Command-line options"));
|
||||||
QString header = tr("Usage:") + "\n" +
|
QString header = tr("Usage:") + "\n" +
|
||||||
" bitcoin-qt [" + tr("command-line options") + "] " + "\n";
|
" litecoin-qt [" + tr("command-line options") + "] " + "\n";
|
||||||
QTextCursor cursor(ui->helpMessage->document());
|
QTextCursor cursor(ui->helpMessage->document());
|
||||||
cursor.insertText(version);
|
cursor.insertText(version);
|
||||||
cursor.insertBlock();
|
cursor.insertBlock();
|
||||||
|
|||||||
@ -656,8 +656,8 @@ UniValue getblockheader(const JSONRPCRequest& request)
|
|||||||
"\nResult (for verbose=false):\n"
|
"\nResult (for verbose=false):\n"
|
||||||
"\"data\" (string) A string that is serialized, hex-encoded data for block 'hash'.\n"
|
"\"data\" (string) A string that is serialized, hex-encoded data for block 'hash'.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("getblockheader", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09\"")
|
+ HelpExampleCli("getblockheader", "\"e2acdf2dd19a702e5d12a925f1e984b01e47a933562ca893656d4afb38b44ee3\"")
|
||||||
+ HelpExampleRpc("getblockheader", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09\"")
|
+ HelpExampleRpc("getblockheader", "\"e2acdf2dd19a702e5d12a925f1e984b01e47a933562ca893656d4afb38b44ee3\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
@ -731,8 +731,8 @@ UniValue getblock(const JSONRPCRequest& request)
|
|||||||
" ,... Same output as verbosity = 1.\n"
|
" ,... Same output as verbosity = 1.\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("getblock", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09\"")
|
+ HelpExampleCli("getblock", "\"e2acdf2dd19a702e5d12a925f1e984b01e47a933562ca893656d4afb38b44ee3\"")
|
||||||
+ HelpExampleRpc("getblock", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09\"")
|
+ HelpExampleRpc("getblock", "\"e2acdf2dd19a702e5d12a925f1e984b01e47a933562ca893656d4afb38b44ee3\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
@ -957,8 +957,8 @@ UniValue gettxout(const JSONRPCRequest& request)
|
|||||||
" \"hex\" : \"hex\", (string) \n"
|
" \"hex\" : \"hex\", (string) \n"
|
||||||
" \"reqSigs\" : n, (numeric) Number of required signatures\n"
|
" \"reqSigs\" : n, (numeric) Number of required signatures\n"
|
||||||
" \"type\" : \"pubkeyhash\", (string) The type, eg pubkeyhash\n"
|
" \"type\" : \"pubkeyhash\", (string) The type, eg pubkeyhash\n"
|
||||||
" \"addresses\" : [ (array of string) array of bitcoin addresses\n"
|
" \"addresses\" : [ (array of string) array of litecoin addresses\n"
|
||||||
" \"address\" (string) bitcoin address\n"
|
" \"address\" (string) litecoin address\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
|
|||||||
@ -161,7 +161,7 @@ UniValue generatetoaddress(const JSONRPCRequest& request)
|
|||||||
"\nMine blocks immediately to a specified address (before the RPC call returns)\n"
|
"\nMine blocks immediately to a specified address (before the RPC call returns)\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. nblocks (numeric, required) How many blocks are generated immediately.\n"
|
"1. nblocks (numeric, required) How many blocks are generated immediately.\n"
|
||||||
"2. address (string, required) The address to send the newly generated bitcoin to.\n"
|
"2. address (string, required) The address to send the newly generated litecoin to.\n"
|
||||||
"3. maxtries (numeric, optional) How many iterations to try (default = 1000000).\n"
|
"3. maxtries (numeric, optional) How many iterations to try (default = 1000000).\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"[ blockhashes ] (array) hashes of blocks generated\n"
|
"[ blockhashes ] (array) hashes of blocks generated\n"
|
||||||
@ -440,10 +440,10 @@ UniValue getblocktemplate(const JSONRPCRequest& request)
|
|||||||
throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled");
|
throw JSONRPCError(RPC_CLIENT_P2P_DISABLED, "Error: Peer-to-peer functionality missing or disabled");
|
||||||
|
|
||||||
if (g_connman->GetNodeCount(CConnman::CONNECTIONS_ALL) == 0)
|
if (g_connman->GetNodeCount(CConnman::CONNECTIONS_ALL) == 0)
|
||||||
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Bitcoin is not connected!");
|
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Litecoin is not connected!");
|
||||||
|
|
||||||
if (IsInitialBlockDownload())
|
if (IsInitialBlockDownload())
|
||||||
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Bitcoin is downloading blocks...");
|
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Litecoin is downloading blocks...");
|
||||||
|
|
||||||
static unsigned int nTransactionsUpdatedLast;
|
static unsigned int nTransactionsUpdatedLast;
|
||||||
|
|
||||||
@ -825,7 +825,7 @@ UniValue estimatesmartfee(const JSONRPCRequest& request)
|
|||||||
" \"CONSERVATIVE\"\n"
|
" \"CONSERVATIVE\"\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" \"feerate\" : x.x, (numeric, optional) estimate fee-per-kilobyte (in BTC)\n"
|
" \"feerate\" : x.x, (numeric, optional) estimate fee-per-kilobyte (in LTC)\n"
|
||||||
" \"errors\": [ str... ] (json array of strings, optional) Errors encountered during processing\n"
|
" \"errors\": [ str... ] (json array of strings, optional) Errors encountered during processing\n"
|
||||||
" \"blocks\" : n (numeric) block number where estimate was found\n"
|
" \"blocks\" : n (numeric) block number where estimate was found\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
|
|||||||
@ -56,7 +56,7 @@ UniValue getinfo(const JSONRPCRequest& request)
|
|||||||
" \"version\": xxxxx, (numeric) the server version\n"
|
" \"version\": xxxxx, (numeric) the server version\n"
|
||||||
" \"protocolversion\": xxxxx, (numeric) the protocol version\n"
|
" \"protocolversion\": xxxxx, (numeric) the protocol version\n"
|
||||||
" \"walletversion\": xxxxx, (numeric) the wallet version\n"
|
" \"walletversion\": xxxxx, (numeric) the wallet version\n"
|
||||||
" \"balance\": xxxxxxx, (numeric) the total bitcoin balance of the wallet\n"
|
" \"balance\": xxxxxxx, (numeric) the total litecoin balance of the wallet\n"
|
||||||
" \"blocks\": xxxxxx, (numeric) the current number of blocks processed in the server\n"
|
" \"blocks\": xxxxxx, (numeric) the current number of blocks processed in the server\n"
|
||||||
" \"timeoffset\": xxxxx, (numeric) the time offset\n"
|
" \"timeoffset\": xxxxx, (numeric) the time offset\n"
|
||||||
" \"connections\": xxxxx, (numeric) the number of connections\n"
|
" \"connections\": xxxxx, (numeric) the number of connections\n"
|
||||||
@ -168,13 +168,13 @@ UniValue validateaddress(const JSONRPCRequest& request)
|
|||||||
if (request.fHelp || request.params.size() != 1)
|
if (request.fHelp || request.params.size() != 1)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"validateaddress \"address\"\n"
|
"validateaddress \"address\"\n"
|
||||||
"\nReturn information about the given bitcoin address.\n"
|
"\nReturn information about the given litecoin address.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address to validate\n"
|
"1. \"address\" (string, required) The litecoin address to validate\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" \"isvalid\" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned.\n"
|
" \"isvalid\" : true|false, (boolean) If the address is valid or not. If not, this is the only property returned.\n"
|
||||||
" \"address\" : \"address\", (string) The bitcoin address validated\n"
|
" \"address\" : \"address\", (string) The litecoin address validated\n"
|
||||||
" \"scriptPubKey\" : \"hex\", (string) The hex encoded scriptPubKey generated by the address\n"
|
" \"scriptPubKey\" : \"hex\", (string) The hex encoded scriptPubKey generated by the address\n"
|
||||||
" \"ismine\" : true|false, (boolean) If the address is yours or not\n"
|
" \"ismine\" : true|false, (boolean) If the address is yours or not\n"
|
||||||
" \"iswatchonly\" : true|false, (boolean) If the address is watchonly\n"
|
" \"iswatchonly\" : true|false, (boolean) If the address is watchonly\n"
|
||||||
@ -195,8 +195,8 @@ UniValue validateaddress(const JSONRPCRequest& request)
|
|||||||
" \"hdmasterkeyid\" : \"<hash160>\" (string, optional) The Hash160 of the HD master pubkey\n"
|
" \"hdmasterkeyid\" : \"<hash160>\" (string, optional) The Hash160 of the HD master pubkey\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("validateaddress", "\"1PSSGeFHDnKNxiEyFrD1wcEaHr9hrQDDWc\"")
|
+ HelpExampleCli("validateaddress", "\"LER4HnAEFwYHbmGxCfP2po1nPrUeiK8KM2\"")
|
||||||
+ HelpExampleRpc("validateaddress", "\"1PSSGeFHDnKNxiEyFrD1wcEaHr9hrQDDWc\"")
|
+ HelpExampleRpc("validateaddress", "\"LER4HnAEFwYHbmGxCfP2po1nPrUeiK8KM2\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
@ -333,9 +333,9 @@ UniValue createmultisig(const JSONRPCRequest& request)
|
|||||||
|
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\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 keys which are bitcoin addresses or hex-encoded public keys\n"
|
"2. \"keys\" (string, required) A json array of keys which are litecoin addresses or hex-encoded public keys\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" \"key\" (string) bitcoin address or hex-encoded public key\n"
|
" \"key\" (string) litecoin address or hex-encoded public key\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
|
|
||||||
@ -347,9 +347,9 @@ UniValue createmultisig(const JSONRPCRequest& request)
|
|||||||
|
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nCreate a multisig address from 2 addresses\n"
|
"\nCreate a multisig address from 2 addresses\n"
|
||||||
+ HelpExampleCli("createmultisig", "2 \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"") +
|
+ HelpExampleCli("createmultisig", "2 \"[\\\"LEr4hnAefwYhBmGxcFP2Po1NPrUEIk8KM2\\\",\\\"LYKr1oaPSqShthukmLDhdZsqUJgzVnQiAQ\\\"]\"") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("createmultisig", "2, \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"")
|
+ HelpExampleRpc("createmultisig", "2, \"[\\\"LEr4hnAefwYhBmGxcFP2Po1NPrUEIk8KM2\\\",\\\"LYKr1oaPSqShthukmLDhdZsqUJgzVnQiAQ\\\"]\"")
|
||||||
;
|
;
|
||||||
throw std::runtime_error(msg);
|
throw std::runtime_error(msg);
|
||||||
}
|
}
|
||||||
@ -373,7 +373,7 @@ UniValue verifymessage(const JSONRPCRequest& request)
|
|||||||
"verifymessage \"address\" \"signature\" \"message\"\n"
|
"verifymessage \"address\" \"signature\" \"message\"\n"
|
||||||
"\nVerify a signed message\n"
|
"\nVerify a signed message\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address to use for the signature.\n"
|
"1. \"address\" (string, required) The litecoin address to use for the signature.\n"
|
||||||
"2. \"signature\" (string, required) The signature provided by the signer in base 64 encoding (see signmessage).\n"
|
"2. \"signature\" (string, required) The signature provided by the signer in base 64 encoding (see signmessage).\n"
|
||||||
"3. \"message\" (string, required) The message that was signed.\n"
|
"3. \"message\" (string, required) The message that was signed.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
@ -382,11 +382,11 @@ UniValue verifymessage(const JSONRPCRequest& request)
|
|||||||
"\nUnlock the wallet for 30 seconds\n"
|
"\nUnlock the wallet for 30 seconds\n"
|
||||||
+ HelpExampleCli("walletpassphrase", "\"mypassphrase\" 30") +
|
+ HelpExampleCli("walletpassphrase", "\"mypassphrase\" 30") +
|
||||||
"\nCreate the signature\n"
|
"\nCreate the signature\n"
|
||||||
+ HelpExampleCli("signmessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"my message\"") +
|
+ HelpExampleCli("signmessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"my message\"") +
|
||||||
"\nVerify the signature\n"
|
"\nVerify the signature\n"
|
||||||
+ HelpExampleCli("verifymessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"signature\" \"my message\"") +
|
+ HelpExampleCli("verifymessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"signature\" \"my message\"") +
|
||||||
"\nAs json rpc\n"
|
"\nAs json rpc\n"
|
||||||
+ HelpExampleRpc("verifymessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", \"signature\", \"my message\"")
|
+ HelpExampleRpc("verifymessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\", \"signature\", \"my message\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
@ -435,7 +435,7 @@ UniValue signmessagewithprivkey(const JSONRPCRequest& request)
|
|||||||
"\nCreate the signature\n"
|
"\nCreate the signature\n"
|
||||||
+ HelpExampleCli("signmessagewithprivkey", "\"privkey\" \"my message\"") +
|
+ HelpExampleCli("signmessagewithprivkey", "\"privkey\" \"my message\"") +
|
||||||
"\nVerify the signature\n"
|
"\nVerify the signature\n"
|
||||||
+ HelpExampleCli("verifymessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"signature\" \"my message\"") +
|
+ HelpExampleCli("verifymessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"signature\" \"my message\"") +
|
||||||
"\nAs json rpc\n"
|
"\nAs json rpc\n"
|
||||||
+ HelpExampleRpc("signmessagewithprivkey", "\"privkey\", \"my message\"")
|
+ HelpExampleRpc("signmessagewithprivkey", "\"privkey\", \"my message\"")
|
||||||
);
|
);
|
||||||
@ -642,7 +642,7 @@ UniValue echo(const JSONRPCRequest& request)
|
|||||||
"echo|echojson \"message\" ...\n"
|
"echo|echojson \"message\" ...\n"
|
||||||
"\nSimply echo back the input arguments. This command is for testing.\n"
|
"\nSimply echo back the input arguments. This command is for testing.\n"
|
||||||
"\nThe difference between echo and echojson is that echojson has argument conversion enabled in the client-side table in"
|
"\nThe difference between echo and echojson is that echojson has argument conversion enabled in the client-side table in"
|
||||||
"bitcoin-cli and the GUI. There is no server-side difference."
|
"litecoin-cli and the GUI. There is no server-side difference."
|
||||||
);
|
);
|
||||||
|
|
||||||
return request.params;
|
return request.params;
|
||||||
|
|||||||
@ -112,7 +112,7 @@ UniValue getrawtransaction(const JSONRPCRequest& request)
|
|||||||
" \"reqSigs\" : n, (numeric) The required sigs\n"
|
" \"reqSigs\" : n, (numeric) The required sigs\n"
|
||||||
" \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n"
|
" \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n"
|
||||||
" \"addresses\" : [ (json array of string)\n"
|
" \"addresses\" : [ (json array of string)\n"
|
||||||
" \"address\" (string) bitcoin address\n"
|
" \"address\" (string) litecoin address\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
@ -310,7 +310,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
|||||||
" ]\n"
|
" ]\n"
|
||||||
"2. \"outputs\" (object, required) a json object with outputs\n"
|
"2. \"outputs\" (object, required) a json object with outputs\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"address\": x.xxx, (numeric or string, required) The key is the bitcoin address, the numeric value (can be string) is the " + CURRENCY_UNIT + " amount\n"
|
" \"address\": x.xxx, (numeric or string, required) The key is the litecoin address, the numeric value (can be string) is the " + CURRENCY_UNIT + " amount\n"
|
||||||
" \"data\": \"hex\" (string, required) The key is \"data\", the value is hex encoded data\n"
|
" \"data\": \"hex\" (string, required) The key is \"data\", the value is hex encoded data\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
@ -395,7 +395,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request)
|
|||||||
} else {
|
} else {
|
||||||
CBitcoinAddress address(name_);
|
CBitcoinAddress address(name_);
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ")+name_);
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Litecoin address: ")+name_);
|
||||||
|
|
||||||
if (setAddress.count(address))
|
if (setAddress.count(address))
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+name_);
|
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+name_);
|
||||||
@ -457,7 +457,7 @@ UniValue decoderawtransaction(const JSONRPCRequest& request)
|
|||||||
" \"reqSigs\" : n, (numeric) The required sigs\n"
|
" \"reqSigs\" : n, (numeric) The required sigs\n"
|
||||||
" \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n"
|
" \"type\" : \"pubkeyhash\", (string) The type, eg 'pubkeyhash'\n"
|
||||||
" \"addresses\" : [ (json array of string)\n"
|
" \"addresses\" : [ (json array of string)\n"
|
||||||
" \"12tvKAXCxZjSmdNbao16dKXC8tRWfcF5oc\" (string) bitcoin address\n"
|
" \"12tvKAXCxZjSmdNbao16dKXC8tRWfcF5oc\" (string) litecoin address\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
@ -500,7 +500,7 @@ UniValue decodescript(const JSONRPCRequest& request)
|
|||||||
" \"type\":\"type\", (string) The output type\n"
|
" \"type\":\"type\", (string) The output type\n"
|
||||||
" \"reqSigs\": n, (numeric) The required signatures\n"
|
" \"reqSigs\": n, (numeric) The required signatures\n"
|
||||||
" \"addresses\": [ (json array of string)\n"
|
" \"addresses\": [ (json array of string)\n"
|
||||||
" \"address\" (string) bitcoin address\n"
|
" \"address\" (string) litecoin address\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ],\n"
|
" ],\n"
|
||||||
" \"p2sh\",\"address\" (string) address of P2SH script wrapping this redeem script (not returned if the script is already a P2SH).\n"
|
" \"p2sh\",\"address\" (string) address of P2SH script wrapping this redeem script (not returned if the script is already a P2SH).\n"
|
||||||
|
|||||||
@ -240,11 +240,11 @@ UniValue stop(const JSONRPCRequest& jsonRequest)
|
|||||||
if (jsonRequest.fHelp || jsonRequest.params.size() > 1)
|
if (jsonRequest.fHelp || jsonRequest.params.size() > 1)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"stop\n"
|
"stop\n"
|
||||||
"\nStop Bitcoin server.");
|
"\nStop Litecoin server.");
|
||||||
// Event loop will exit after current HTTP requests have been handled, so
|
// Event loop will exit after current HTTP requests have been handled, so
|
||||||
// this reply will get back to the client.
|
// this reply will get back to the client.
|
||||||
StartShutdown();
|
StartShutdown();
|
||||||
return "Bitcoin server stopping";
|
return "Litecoin server stopping";
|
||||||
}
|
}
|
||||||
|
|
||||||
UniValue uptime(const JSONRPCRequest& jsonRequest)
|
UniValue uptime(const JSONRPCRequest& jsonRequest)
|
||||||
@ -514,7 +514,7 @@ std::vector<std::string> CRPCTable::listCommands() const
|
|||||||
|
|
||||||
std::string HelpExampleCli(const std::string& methodname, const std::string& args)
|
std::string HelpExampleCli(const std::string& methodname, const std::string& args)
|
||||||
{
|
{
|
||||||
return "> bitcoin-cli " + methodname + " " + args + "\n";
|
return "> litecoin-cli " + methodname + " " + args + "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string HelpExampleRpc(const std::string& methodname, const std::string& args)
|
std::string HelpExampleRpc(const std::string& methodname, const std::string& args)
|
||||||
|
|||||||
12
src/util.cpp
12
src/util.cpp
@ -87,8 +87,8 @@
|
|||||||
// Application startup time (used for uptime calculation)
|
// Application startup time (used for uptime calculation)
|
||||||
const int64_t nStartupTime = GetTime();
|
const int64_t nStartupTime = GetTime();
|
||||||
|
|
||||||
const char * const BITCOIN_CONF_FILENAME = "bitcoin.conf";
|
const char * const BITCOIN_CONF_FILENAME = "litecoin.conf";
|
||||||
const char * const BITCOIN_PID_FILENAME = "bitcoind.pid";
|
const char * const BITCOIN_PID_FILENAME = "litecoin.pid";
|
||||||
|
|
||||||
ArgsManager gArgs;
|
ArgsManager gArgs;
|
||||||
bool fPrintToConsole = false;
|
bool fPrintToConsole = false;
|
||||||
@ -505,7 +505,7 @@ static std::string FormatException(const std::exception* pex, const char* pszThr
|
|||||||
char pszModule[MAX_PATH] = "";
|
char pszModule[MAX_PATH] = "";
|
||||||
GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule));
|
GetModuleFileNameA(nullptr, pszModule, sizeof(pszModule));
|
||||||
#else
|
#else
|
||||||
const char* pszModule = "bitcoin";
|
const char* pszModule = "litecoin";
|
||||||
#endif
|
#endif
|
||||||
if (pex)
|
if (pex)
|
||||||
return strprintf(
|
return strprintf(
|
||||||
@ -530,7 +530,7 @@ fs::path GetDefaultDataDir()
|
|||||||
// Unix: ~/.bitcoin
|
// Unix: ~/.bitcoin
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
// Windows
|
// Windows
|
||||||
return GetSpecialFolderPath(CSIDL_APPDATA) / "Bitcoin";
|
return GetSpecialFolderPath(CSIDL_APPDATA) / "Litecoin";
|
||||||
#else
|
#else
|
||||||
fs::path pathRet;
|
fs::path pathRet;
|
||||||
char* pszHome = getenv("HOME");
|
char* pszHome = getenv("HOME");
|
||||||
@ -540,10 +540,10 @@ fs::path GetDefaultDataDir()
|
|||||||
pathRet = fs::path(pszHome);
|
pathRet = fs::path(pszHome);
|
||||||
#ifdef MAC_OSX
|
#ifdef MAC_OSX
|
||||||
// Mac
|
// Mac
|
||||||
return pathRet / "Library/Application Support/Bitcoin";
|
return pathRet / "Library/Application Support/Litecoin";
|
||||||
#else
|
#else
|
||||||
// Unix
|
// Unix
|
||||||
return pathRet / ".bitcoin";
|
return pathRet / ".litecoin";
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
|
|
||||||
#if defined(NDEBUG)
|
#if defined(NDEBUG)
|
||||||
# error "Bitcoin cannot be compiled without assertions."
|
# error "Litecoin cannot be compiled without assertions."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -92,7 +92,7 @@ static void CheckBlockIndex(const Consensus::Params& consensusParams);
|
|||||||
/** Constant stuff for coinbase transactions we create: */
|
/** Constant stuff for coinbase transactions we create: */
|
||||||
CScript COINBASE_FLAGS;
|
CScript COINBASE_FLAGS;
|
||||||
|
|
||||||
const std::string strMessageMagic = "Bitcoin Signed Message:\n";
|
const std::string strMessageMagic = "Litecoin Signed Message:\n";
|
||||||
|
|
||||||
// Internal stuff
|
// Internal stuff
|
||||||
namespace {
|
namespace {
|
||||||
@ -839,7 +839,7 @@ static bool AcceptToMemoryPoolWorker(const CChainParams& chainparams, CTxMemPool
|
|||||||
// Remove conflicting transactions from the mempool
|
// Remove conflicting transactions from the mempool
|
||||||
for (const CTxMemPool::txiter it : allConflicting)
|
for (const CTxMemPool::txiter it : allConflicting)
|
||||||
{
|
{
|
||||||
LogPrint(BCLog::MEMPOOL, "replacing tx %s with %s for %s BTC additional fees, %d delta bytes\n",
|
LogPrint(BCLog::MEMPOOL, "replacing tx %s with %s for %s LTC additional fees, %d delta bytes\n",
|
||||||
it->GetTx().GetHash().ToString(),
|
it->GetTx().GetHash().ToString(),
|
||||||
hash.ToString(),
|
hash.ToString(),
|
||||||
FormatMoney(nModifiedFees - nConflictingFees),
|
FormatMoney(nModifiedFees - nConflictingFees),
|
||||||
|
|||||||
@ -79,10 +79,10 @@ UniValue importprivkey(const JSONRPCRequest& request)
|
|||||||
|
|
||||||
if (request.fHelp || request.params.size() < 1 || request.params.size() > 3)
|
if (request.fHelp || request.params.size() < 1 || request.params.size() > 3)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"importprivkey \"bitcoinprivkey\" ( \"label\" ) ( rescan )\n"
|
"importprivkey \"litecoinprivkey\" ( \"label\" ) ( rescan )\n"
|
||||||
"\nAdds a private key (as returned by dumpprivkey) to your wallet.\n"
|
"\nAdds a private key (as returned by dumpprivkey) to your wallet.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"bitcoinprivkey\" (string, required) The private key (see dumpprivkey)\n"
|
"1. \"litecoinprivkey\" (string, required) The private key (see dumpprivkey)\n"
|
||||||
"2. \"label\" (string, optional, default=\"\") An optional label\n"
|
"2. \"label\" (string, optional, default=\"\") An optional label\n"
|
||||||
"3. rescan (boolean, optional, default=true) Rescan the wallet for transactions\n"
|
"3. rescan (boolean, optional, default=true) Rescan the wallet for transactions\n"
|
||||||
"\nNote: This call can take minutes to complete if rescan is true.\n"
|
"\nNote: This call can take minutes to complete if rescan is true.\n"
|
||||||
@ -272,7 +272,7 @@ UniValue importaddress(const JSONRPCRequest& request)
|
|||||||
std::vector<unsigned char> data(ParseHex(request.params[0].get_str()));
|
std::vector<unsigned char> data(ParseHex(request.params[0].get_str()));
|
||||||
ImportScript(pwallet, CScript(data.begin(), data.end()), strLabel, fP2SH);
|
ImportScript(pwallet, CScript(data.begin(), data.end()), strLabel, fP2SH);
|
||||||
} else {
|
} else {
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address or script");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address or script");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fRescan)
|
if (fRescan)
|
||||||
@ -359,9 +359,9 @@ UniValue removeprunedfunds(const JSONRPCRequest& request)
|
|||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"txid\" (string, required) The hex-encoded id of the transaction you are deleting\n"
|
"1. \"txid\" (string, required) The hex-encoded id of the transaction you are deleting\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("removeprunedfunds", "\"a8d0c0184dde994a09ec054286f1ce581bebf46446a512166eae7628734ea0a5\"") +
|
+ HelpExampleCli("removeprunedfunds", "\"c54357a1ff9f4e792198e75c01fc633acc6d093abd67ec1849596637c3457bf2\"") +
|
||||||
"\nAs a JSON-RPC call\n"
|
"\nAs a JSON-RPC call\n"
|
||||||
+ HelpExampleRpc("removeprunedfunds", "\"a8d0c0184dde994a09ec054286f1ce581bebf46446a512166eae7628734ea0a5\"")
|
+ HelpExampleRpc("removeprunedfunds", "\"c54357a1ff9f4e792198e75c01fc633acc6d093abd67ec1849596637c3457bf2\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -557,7 +557,7 @@ UniValue dumpprivkey(const JSONRPCRequest& request)
|
|||||||
"\nReveals the private key corresponding to 'address'.\n"
|
"\nReveals the private key corresponding to 'address'.\n"
|
||||||
"Then the importprivkey can be used with this output\n"
|
"Then the importprivkey can be used with this output\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address for the private key\n"
|
"1. \"address\" (string, required) The litecoin address for the private key\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"key\" (string) The private key\n"
|
"\"key\" (string) The private key\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
@ -573,7 +573,7 @@ UniValue dumpprivkey(const JSONRPCRequest& request)
|
|||||||
std::string strAddress = request.params[0].get_str();
|
std::string strAddress = request.params[0].get_str();
|
||||||
CBitcoinAddress address;
|
CBitcoinAddress address;
|
||||||
if (!address.SetString(strAddress))
|
if (!address.SetString(strAddress))
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
CKeyID keyID;
|
CKeyID keyID;
|
||||||
if (!address.GetKeyID(keyID))
|
if (!address.GetKeyID(keyID))
|
||||||
throw JSONRPCError(RPC_TYPE_ERROR, "Address does not refer to a key");
|
throw JSONRPCError(RPC_TYPE_ERROR, "Address does not refer to a key");
|
||||||
@ -597,7 +597,7 @@ UniValue dumpwallet(const JSONRPCRequest& request)
|
|||||||
"dumpwallet \"filename\"\n"
|
"dumpwallet \"filename\"\n"
|
||||||
"\nDumps all wallet keys in a human-readable format.\n"
|
"\nDumps all wallet keys in a human-readable format.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"filename\" (string, required) The filename with path (either absolute or relative to bitcoind)\n"
|
"1. \"filename\" (string, required) The filename with path (either absolute or relative to litecoind)\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"{ (json object)\n"
|
"{ (json object)\n"
|
||||||
" \"filename\" : { (string) The filename with full absolute path\n"
|
" \"filename\" : { (string) The filename with full absolute path\n"
|
||||||
@ -633,7 +633,7 @@ UniValue dumpwallet(const JSONRPCRequest& request)
|
|||||||
std::sort(vKeyBirth.begin(), vKeyBirth.end());
|
std::sort(vKeyBirth.begin(), vKeyBirth.end());
|
||||||
|
|
||||||
// produce output
|
// produce output
|
||||||
file << strprintf("# Wallet dump created by Bitcoin %s\n", CLIENT_BUILD);
|
file << strprintf("# Wallet dump created by Litecoin %s\n", CLIENT_BUILD);
|
||||||
file << strprintf("# * Created on %s\n", EncodeDumpTime(GetTime()));
|
file << strprintf("# * Created on %s\n", EncodeDumpTime(GetTime()));
|
||||||
file << strprintf("# * Best block at time of backup was %i (%s),\n", chainActive.Height(), chainActive.Tip()->GetBlockHash().ToString());
|
file << strprintf("# * Best block at time of backup was %i (%s),\n", chainActive.Height(), chainActive.Tip()->GetBlockHash().ToString());
|
||||||
file << strprintf("# mined on %s\n", EncodeDumpTime(chainActive.Tip()->GetBlockTime()));
|
file << strprintf("# mined on %s\n", EncodeDumpTime(chainActive.Tip()->GetBlockTime()));
|
||||||
|
|||||||
@ -136,13 +136,13 @@ UniValue getnewaddress(const JSONRPCRequest& request)
|
|||||||
if (request.fHelp || request.params.size() > 1)
|
if (request.fHelp || request.params.size() > 1)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"getnewaddress ( \"account\" )\n"
|
"getnewaddress ( \"account\" )\n"
|
||||||
"\nReturns a new Bitcoin address for receiving payments.\n"
|
"\nReturns a new Litecoin address for receiving payments.\n"
|
||||||
"If 'account' is specified (DEPRECATED), it is added to the address book \n"
|
"If 'account' is specified (DEPRECATED), it is added to the address book \n"
|
||||||
"so payments received with the address will be credited to 'account'.\n"
|
"so payments received with the address will be credited to 'account'.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"account\" (string, optional) DEPRECATED. The account name for the address to be linked to. If not provided, the default account \"\" is used. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created if there is no account by the given name.\n"
|
"1. \"account\" (string, optional) DEPRECATED. The account name for the address to be linked to. If not provided, the default account \"\" is used. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created if there is no account by the given name.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"address\" (string) The new bitcoin address\n"
|
"\"address\" (string) The new litecoin address\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("getnewaddress", "")
|
+ HelpExampleCli("getnewaddress", "")
|
||||||
+ HelpExampleRpc("getnewaddress", "")
|
+ HelpExampleRpc("getnewaddress", "")
|
||||||
@ -192,11 +192,11 @@ UniValue getaccountaddress(const JSONRPCRequest& request)
|
|||||||
if (request.fHelp || request.params.size() != 1)
|
if (request.fHelp || request.params.size() != 1)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"getaccountaddress \"account\"\n"
|
"getaccountaddress \"account\"\n"
|
||||||
"\nDEPRECATED. Returns the current Bitcoin address for receiving payments to this account.\n"
|
"\nDEPRECATED. Returns the current Litecoin address for receiving payments to this account.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"account\" (string, required) The account name for the address. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created and a new address created if there is no account by the given name.\n"
|
"1. \"account\" (string, required) The account name for the address. It can also be set to the empty string \"\" to represent the default account. The account does not need to exist, it will be created and a new address created if there is no account by the given name.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"address\" (string) The account bitcoin address\n"
|
"\"address\" (string) The account litecoin address\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("getaccountaddress", "")
|
+ HelpExampleCli("getaccountaddress", "")
|
||||||
+ HelpExampleCli("getaccountaddress", "\"\"")
|
+ HelpExampleCli("getaccountaddress", "\"\"")
|
||||||
@ -226,7 +226,7 @@ UniValue getrawchangeaddress(const JSONRPCRequest& request)
|
|||||||
if (request.fHelp || request.params.size() > 0)
|
if (request.fHelp || request.params.size() > 0)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"getrawchangeaddress\n"
|
"getrawchangeaddress\n"
|
||||||
"\nReturns a new Bitcoin address, for receiving change.\n"
|
"\nReturns a new Litecoin address, for receiving change.\n"
|
||||||
"This is for use with raw transactions, NOT normal use.\n"
|
"This is for use with raw transactions, NOT normal use.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"address\" (string) The address\n"
|
"\"address\" (string) The address\n"
|
||||||
@ -266,18 +266,18 @@ UniValue setaccount(const JSONRPCRequest& request)
|
|||||||
"setaccount \"address\" \"account\"\n"
|
"setaccount \"address\" \"account\"\n"
|
||||||
"\nDEPRECATED. Sets the account associated with the given address.\n"
|
"\nDEPRECATED. Sets the account associated with the given address.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address to be associated with an account.\n"
|
"1. \"address\" (string, required) The litecoin address to be associated with an account.\n"
|
||||||
"2. \"account\" (string, required) The account to assign the address to.\n"
|
"2. \"account\" (string, required) The account to assign the address to.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("setaccount", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"tabby\"")
|
+ HelpExampleCli("setaccount", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"tabby\"")
|
||||||
+ HelpExampleRpc("setaccount", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", \"tabby\"")
|
+ HelpExampleRpc("setaccount", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\", \"tabby\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
|
|
||||||
CBitcoinAddress address(request.params[0].get_str());
|
CBitcoinAddress address(request.params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
|
|
||||||
std::string strAccount;
|
std::string strAccount;
|
||||||
if (request.params.size() > 1)
|
if (request.params.size() > 1)
|
||||||
@ -313,19 +313,19 @@ UniValue getaccount(const JSONRPCRequest& request)
|
|||||||
"getaccount \"address\"\n"
|
"getaccount \"address\"\n"
|
||||||
"\nDEPRECATED. Returns the account associated with the given address.\n"
|
"\nDEPRECATED. Returns the account associated with the given address.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address for account lookup.\n"
|
"1. \"address\" (string, required) The litecoin address for account lookup.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"accountname\" (string) the account address\n"
|
"\"accountname\" (string) the account address\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("getaccount", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\"")
|
+ HelpExampleCli("getaccount", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\"")
|
||||||
+ HelpExampleRpc("getaccount", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\"")
|
+ HelpExampleRpc("getaccount", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
|
|
||||||
CBitcoinAddress address(request.params[0].get_str());
|
CBitcoinAddress address(request.params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
|
|
||||||
std::string strAccount;
|
std::string strAccount;
|
||||||
std::map<CTxDestination, CAddressBookData>::iterator mi = pwallet->mapAddressBook.find(address.Get());
|
std::map<CTxDestination, CAddressBookData>::iterator mi = pwallet->mapAddressBook.find(address.Get());
|
||||||
@ -351,7 +351,7 @@ UniValue getaddressesbyaccount(const JSONRPCRequest& request)
|
|||||||
"1. \"account\" (string, required) The account name.\n"
|
"1. \"account\" (string, required) The account name.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"[ (json array of string)\n"
|
"[ (json array of string)\n"
|
||||||
" \"address\" (string) a bitcoin address associated with the given account\n"
|
" \"address\" (string) a litecoin address associated with the given account\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
"]\n"
|
"]\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
@ -425,7 +425,7 @@ UniValue sendtoaddress(const JSONRPCRequest& request)
|
|||||||
"\nSend an amount to a given address.\n"
|
"\nSend an amount to a given address.\n"
|
||||||
+ HelpRequiringPassphrase(pwallet) +
|
+ HelpRequiringPassphrase(pwallet) +
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address to send to.\n"
|
"1. \"address\" (string, required) The litecoin address to send to.\n"
|
||||||
"2. \"amount\" (numeric or string, required) The amount in " + CURRENCY_UNIT + " to send. eg 0.1\n"
|
"2. \"amount\" (numeric or string, required) The amount in " + CURRENCY_UNIT + " to send. eg 0.1\n"
|
||||||
"3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n"
|
"3. \"comment\" (string, optional) A comment used to store what the transaction is for. \n"
|
||||||
" This is not part of the transaction, just kept in your wallet.\n"
|
" This is not part of the transaction, just kept in your wallet.\n"
|
||||||
@ -433,7 +433,7 @@ UniValue sendtoaddress(const JSONRPCRequest& request)
|
|||||||
" to which you're sending the transaction. This is not part of the \n"
|
" to which you're sending the transaction. This is not part of the \n"
|
||||||
" transaction, just kept in your wallet.\n"
|
" transaction, just kept in your wallet.\n"
|
||||||
"5. subtractfeefromamount (boolean, optional, default=false) The fee will be deducted from the amount being sent.\n"
|
"5. subtractfeefromamount (boolean, optional, default=false) The fee will be deducted from the amount being sent.\n"
|
||||||
" The recipient will receive less bitcoins than you enter in the amount field.\n"
|
" The recipient will receive less litecoins than you enter in the amount field.\n"
|
||||||
"6. replaceable (boolean, optional) Allow this transaction to be replaced by a transaction with higher fees via BIP 125\n"
|
"6. replaceable (boolean, optional) Allow this transaction to be replaced by a transaction with higher fees via BIP 125\n"
|
||||||
"7. conf_target (numeric, optional) Confirmation target (in blocks)\n"
|
"7. conf_target (numeric, optional) Confirmation target (in blocks)\n"
|
||||||
"8. \"estimate_mode\" (string, optional, default=UNSET) The fee estimate mode, must be one of:\n"
|
"8. \"estimate_mode\" (string, optional, default=UNSET) The fee estimate mode, must be one of:\n"
|
||||||
@ -443,17 +443,17 @@ UniValue sendtoaddress(const JSONRPCRequest& request)
|
|||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"txid\" (string) The transaction id.\n"
|
"\"txid\" (string) The transaction id.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1")
|
+ HelpExampleCli("sendtoaddress", "\"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 0.1")
|
||||||
+ HelpExampleCli("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1 \"donation\" \"seans outpost\"")
|
+ HelpExampleCli("sendtoaddress", "\"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 0.1 \"donation\" \"seans outpost\"")
|
||||||
+ HelpExampleCli("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.1 \"\" \"\" true")
|
+ HelpExampleCli("sendtoaddress", "\"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 0.1 \"\" \"\" true")
|
||||||
+ HelpExampleRpc("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\", 0.1, \"donation\", \"seans outpost\"")
|
+ HelpExampleRpc("sendtoaddress", "\"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\", 0.1, \"donation\", \"seans outpost\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
|
|
||||||
CBitcoinAddress address(request.params[0].get_str());
|
CBitcoinAddress address(request.params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
|
|
||||||
// Amount
|
// Amount
|
||||||
CAmount nAmount = AmountFromValue(request.params[1]);
|
CAmount nAmount = AmountFromValue(request.params[1]);
|
||||||
@ -512,7 +512,7 @@ UniValue listaddressgroupings(const JSONRPCRequest& request)
|
|||||||
"[\n"
|
"[\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" \"address\", (string) The bitcoin address\n"
|
" \"address\", (string) The litecoin address\n"
|
||||||
" amount, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
" amount, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
||||||
" \"account\" (string, optional) DEPRECATED. The account\n"
|
" \"account\" (string, optional) DEPRECATED. The account\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
@ -561,7 +561,7 @@ UniValue signmessage(const JSONRPCRequest& request)
|
|||||||
"\nSign a message with the private key of an address"
|
"\nSign a message with the private key of an address"
|
||||||
+ HelpRequiringPassphrase(pwallet) + "\n"
|
+ HelpRequiringPassphrase(pwallet) + "\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address to use for the private key.\n"
|
"1. \"address\" (string, required) The litecoin address to use for the private key.\n"
|
||||||
"2. \"message\" (string, required) The message to create a signature of.\n"
|
"2. \"message\" (string, required) The message to create a signature of.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"signature\" (string) The signature of the message encoded in base 64\n"
|
"\"signature\" (string) The signature of the message encoded in base 64\n"
|
||||||
@ -569,11 +569,11 @@ UniValue signmessage(const JSONRPCRequest& request)
|
|||||||
"\nUnlock the wallet for 30 seconds\n"
|
"\nUnlock the wallet for 30 seconds\n"
|
||||||
+ HelpExampleCli("walletpassphrase", "\"mypassphrase\" 30") +
|
+ HelpExampleCli("walletpassphrase", "\"mypassphrase\" 30") +
|
||||||
"\nCreate the signature\n"
|
"\nCreate the signature\n"
|
||||||
+ HelpExampleCli("signmessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"my message\"") +
|
+ HelpExampleCli("signmessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"my message\"") +
|
||||||
"\nVerify the signature\n"
|
"\nVerify the signature\n"
|
||||||
+ HelpExampleCli("verifymessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" \"signature\" \"my message\"") +
|
+ HelpExampleCli("verifymessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" \"signature\" \"my message\"") +
|
||||||
"\nAs json rpc\n"
|
"\nAs json rpc\n"
|
||||||
+ HelpExampleRpc("signmessage", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", \"my message\"")
|
+ HelpExampleRpc("signmessage", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\", \"my message\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -619,19 +619,19 @@ UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
|||||||
"getreceivedbyaddress \"address\" ( minconf )\n"
|
"getreceivedbyaddress \"address\" ( minconf )\n"
|
||||||
"\nReturns the total amount received by the given address in transactions with at least minconf confirmations.\n"
|
"\nReturns the total amount received by the given address in transactions with at least minconf confirmations.\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"address\" (string, required) The bitcoin address for transactions.\n"
|
"1. \"address\" (string, required) The litecoin address for transactions.\n"
|
||||||
"2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"
|
"2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"amount (numeric) The total amount in " + CURRENCY_UNIT + " received at this address.\n"
|
"amount (numeric) The total amount in " + CURRENCY_UNIT + " received at this address.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nThe amount from transactions with at least 1 confirmation\n"
|
"\nThe amount from transactions with at least 1 confirmation\n"
|
||||||
+ HelpExampleCli("getreceivedbyaddress", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\"") +
|
+ HelpExampleCli("getreceivedbyaddress", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\"") +
|
||||||
"\nThe amount including unconfirmed transactions, zero confirmations\n"
|
"\nThe amount including unconfirmed transactions, zero confirmations\n"
|
||||||
+ HelpExampleCli("getreceivedbyaddress", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" 0") +
|
+ HelpExampleCli("getreceivedbyaddress", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" 0") +
|
||||||
"\nThe amount with at least 6 confirmations\n"
|
"\nThe amount with at least 6 confirmations\n"
|
||||||
+ HelpExampleCli("getreceivedbyaddress", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\" 6") +
|
+ HelpExampleCli("getreceivedbyaddress", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\" 6") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("getreceivedbyaddress", "\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\", 6")
|
+ HelpExampleRpc("getreceivedbyaddress", "\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\", 6")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -639,7 +639,7 @@ UniValue getreceivedbyaddress(const JSONRPCRequest& request)
|
|||||||
// Bitcoin address
|
// Bitcoin address
|
||||||
CBitcoinAddress address = CBitcoinAddress(request.params[0].get_str());
|
CBitcoinAddress address = CBitcoinAddress(request.params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
CScript scriptPubKey = GetScriptForDestination(address.Get());
|
CScript scriptPubKey = GetScriptForDestination(address.Get());
|
||||||
if (!IsMine(*pwallet, scriptPubKey)) {
|
if (!IsMine(*pwallet, scriptPubKey)) {
|
||||||
return ValueFromAmount(0);
|
return ValueFromAmount(0);
|
||||||
@ -863,14 +863,14 @@ UniValue sendfrom(const JSONRPCRequest& request)
|
|||||||
if (request.fHelp || request.params.size() < 3 || request.params.size() > 6)
|
if (request.fHelp || request.params.size() < 3 || request.params.size() > 6)
|
||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"sendfrom \"fromaccount\" \"toaddress\" amount ( minconf \"comment\" \"comment_to\" )\n"
|
"sendfrom \"fromaccount\" \"toaddress\" amount ( minconf \"comment\" \"comment_to\" )\n"
|
||||||
"\nDEPRECATED (use sendtoaddress). Sent an amount from an account to a bitcoin address."
|
"\nDEPRECATED (use sendtoaddress). Sent an amount from an account to a litecoin address."
|
||||||
+ HelpRequiringPassphrase(pwallet) + "\n"
|
+ HelpRequiringPassphrase(pwallet) + "\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"fromaccount\" (string, required) The name of the account to send funds from. May be the default account using \"\".\n"
|
"1. \"fromaccount\" (string, required) The name of the account to send funds from. May be the default account using \"\".\n"
|
||||||
" Specifying an account does not influence coin selection, but it does associate the newly created\n"
|
" Specifying an account does not influence coin selection, but it does associate the newly created\n"
|
||||||
" transaction with the account, so the account's balance computation and transaction history can reflect\n"
|
" transaction with the account, so the account's balance computation and transaction history can reflect\n"
|
||||||
" the spend.\n"
|
" the spend.\n"
|
||||||
"2. \"toaddress\" (string, required) The bitcoin address to send funds to.\n"
|
"2. \"toaddress\" (string, required) The litecoin address to send funds to.\n"
|
||||||
"3. amount (numeric or string, required) The amount in " + CURRENCY_UNIT + " (transaction fee is added on top).\n"
|
"3. amount (numeric or string, required) The amount in " + CURRENCY_UNIT + " (transaction fee is added on top).\n"
|
||||||
"4. minconf (numeric, optional, default=1) Only use funds with at least this many confirmations.\n"
|
"4. minconf (numeric, optional, default=1) Only use funds with at least this many confirmations.\n"
|
||||||
"5. \"comment\" (string, optional) A comment used to store what the transaction is for. \n"
|
"5. \"comment\" (string, optional) A comment used to store what the transaction is for. \n"
|
||||||
@ -882,11 +882,11 @@ UniValue sendfrom(const JSONRPCRequest& request)
|
|||||||
"\"txid\" (string) The transaction id.\n"
|
"\"txid\" (string) The transaction id.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nSend 0.01 " + CURRENCY_UNIT + " from the default account to the address, must have at least 1 confirmation\n"
|
"\nSend 0.01 " + CURRENCY_UNIT + " from the default account to the address, must have at least 1 confirmation\n"
|
||||||
+ HelpExampleCli("sendfrom", "\"\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.01") +
|
+ HelpExampleCli("sendfrom", "\"\" \"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 0.01") +
|
||||||
"\nSend 0.01 from the tabby account to the given address, funds must have at least 6 confirmations\n"
|
"\nSend 0.01 from the tabby account to the given address, funds must have at least 6 confirmations\n"
|
||||||
+ HelpExampleCli("sendfrom", "\"tabby\" \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 0.01 6 \"donation\" \"seans outpost\"") +
|
+ HelpExampleCli("sendfrom", "\"tabby\" \"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 0.01 6 \"donation\" \"seans outpost\"") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("sendfrom", "\"tabby\", \"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\", 0.01, 6, \"donation\", \"seans outpost\"")
|
+ HelpExampleRpc("sendfrom", "\"tabby\", \"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\", 0.01, 6, \"donation\", \"seans outpost\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -894,7 +894,7 @@ UniValue sendfrom(const JSONRPCRequest& request)
|
|||||||
std::string strAccount = AccountFromValue(request.params[0]);
|
std::string strAccount = AccountFromValue(request.params[0]);
|
||||||
CBitcoinAddress address(request.params[1].get_str());
|
CBitcoinAddress address(request.params[1].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
CAmount nAmount = AmountFromValue(request.params[2]);
|
CAmount nAmount = AmountFromValue(request.params[2]);
|
||||||
if (nAmount <= 0)
|
if (nAmount <= 0)
|
||||||
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount for send");
|
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid amount for send");
|
||||||
@ -939,14 +939,14 @@ UniValue sendmany(const JSONRPCRequest& request)
|
|||||||
"1. \"fromaccount\" (string, required) DEPRECATED. The account to send the funds from. Should be \"\" for the default account\n"
|
"1. \"fromaccount\" (string, required) DEPRECATED. The account to send the funds from. Should be \"\" for the default account\n"
|
||||||
"2. \"amounts\" (string, required) A json object with addresses and amounts\n"
|
"2. \"amounts\" (string, required) A json object with addresses and amounts\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"address\":amount (numeric or string) The bitcoin address is the key, the numeric amount (can be string) in " + CURRENCY_UNIT + " is the value\n"
|
" \"address\":amount (numeric or string) The litecoin address is the key, the numeric amount (can be string) in " + CURRENCY_UNIT + " is the value\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n"
|
"3. minconf (numeric, optional, default=1) Only use the balance confirmed at least this many times.\n"
|
||||||
"4. \"comment\" (string, optional) A comment\n"
|
"4. \"comment\" (string, optional) A comment\n"
|
||||||
"5. subtractfeefrom (array, optional) A json array with addresses.\n"
|
"5. subtractfeefrom (array, optional) A json array with addresses.\n"
|
||||||
" The fee will be equally deducted from the amount of each selected address.\n"
|
" The fee will be equally deducted from the amount of each selected address.\n"
|
||||||
" Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n"
|
" Those recipients will receive less litecoins than you enter in their corresponding amount field.\n"
|
||||||
" If no addresses are specified here, the sender pays the fee.\n"
|
" If no addresses are specified here, the sender pays the fee.\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" \"address\" (string) Subtract fee from this address\n"
|
" \"address\" (string) Subtract fee from this address\n"
|
||||||
@ -963,13 +963,13 @@ UniValue sendmany(const JSONRPCRequest& request)
|
|||||||
" the number of addresses.\n"
|
" the number of addresses.\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nSend two amounts to two different addresses:\n"
|
"\nSend two amounts to two different addresses:\n"
|
||||||
+ HelpExampleCli("sendmany", "\"\" \"{\\\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\\\":0.01,\\\"1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\\\":0.02}\"") +
|
+ HelpExampleCli("sendmany", "\"\" \"{\\\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\\\":0.01,\\\"LbhhnrHHVFP1eUjP1tdNIYeEVsNHfN9FCw\\\":0.02}\"") +
|
||||||
"\nSend two amounts to two different addresses setting the confirmation and comment:\n"
|
"\nSend two amounts to two different addresses setting the confirmation and comment:\n"
|
||||||
+ HelpExampleCli("sendmany", "\"\" \"{\\\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\\\":0.01,\\\"1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\\\":0.02}\" 6 \"testing\"") +
|
+ HelpExampleCli("sendmany", "\"\" \"{\\\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\\\":0.01,\\\"LbhhnrHHVFP1eUjP1tdNIYeEVsNHfN9FCw\\\":0.02}\" 6 \"testing\"") +
|
||||||
"\nSend two amounts to two different addresses, subtract fee from amount:\n"
|
"\nSend two amounts to two different addresses, subtract fee from amount:\n"
|
||||||
+ HelpExampleCli("sendmany", "\"\" \"{\\\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\\\":0.01,\\\"1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\\\":0.02}\" 1 \"\" \"[\\\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\\\",\\\"1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\\\"]\"") +
|
+ HelpExampleCli("sendmany", "\"\" \"{\\\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\\\":0.01,\\\"LbhhnrHHVFP1eUjP1tdNIYeEVsNHfN9FCw\\\":0.02}\" 1 \"\" \"[\\\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\\\",\\\"LbhhnrHHVFP1eUjP1tdNIYeEVsNHfN9FCw\\\"]\"") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("sendmany", "\"\", \"{\\\"1D1ZrZNe3JUo7ZycKEYQQiQAWd9y54F4XX\\\":0.01,\\\"1353tsE8YMTA4EuV7dgUXGjNFf9KpVvKHz\\\":0.02}\", 6, \"testing\"")
|
+ HelpExampleRpc("sendmany", "\"\", \"{\\\"LEr4hNAefWYhBMgxCFP2Po1NPrUeiK8kM2\\\":0.01,\\\"LbhhnrHHVFP1eUjP1tdNIYeEVsNHfN9FCw\\\":0.02}\", 6, \"testing\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -1017,7 +1017,7 @@ UniValue sendmany(const JSONRPCRequest& request)
|
|||||||
{
|
{
|
||||||
CBitcoinAddress address(name_);
|
CBitcoinAddress address(name_);
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ")+name_);
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Litecoin address: ")+name_);
|
||||||
|
|
||||||
if (setAddress.count(address))
|
if (setAddress.count(address))
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+name_);
|
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+name_);
|
||||||
@ -1078,26 +1078,26 @@ UniValue addmultisigaddress(const JSONRPCRequest& request)
|
|||||||
{
|
{
|
||||||
std::string msg = "addmultisigaddress nrequired [\"key\",...] ( \"account\" )\n"
|
std::string msg = "addmultisigaddress nrequired [\"key\",...] ( \"account\" )\n"
|
||||||
"\nAdd a nrequired-to-sign multisignature address to the wallet.\n"
|
"\nAdd a nrequired-to-sign multisignature address to the wallet.\n"
|
||||||
"Each key is a Bitcoin address or hex-encoded public key.\n"
|
"Each key is a Litecoin address or hex-encoded public key.\n"
|
||||||
"If 'account' is specified (DEPRECATED), assign address to that account.\n"
|
"If 'account' is specified (DEPRECATED), assign address to that account.\n"
|
||||||
|
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. nrequired (numeric, required) The number of required signatures out of the n keys or addresses.\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 bitcoin addresses or hex-encoded public keys\n"
|
"2. \"keys\" (string, required) A json array of litecoin addresses or hex-encoded public keys\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" \"address\" (string) bitcoin address or hex-encoded public key\n"
|
" \"address\" (string) litecoin address or hex-encoded public key\n"
|
||||||
" ...,\n"
|
" ...,\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"3. \"account\" (string, optional) DEPRECATED. An account to assign the addresses to.\n"
|
"3. \"account\" (string, optional) DEPRECATED. An account to assign the addresses to.\n"
|
||||||
|
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\"address\" (string) A bitcoin address associated with the keys.\n"
|
"\"address\" (string) A litecoin address associated with the keys.\n"
|
||||||
|
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nAdd a multisig address from 2 addresses\n"
|
"\nAdd a multisig address from 2 addresses\n"
|
||||||
+ HelpExampleCli("addmultisigaddress", "2 \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"") +
|
+ HelpExampleCli("addmultisigaddress", "2 \"[\\\"LEr4hnAefwYhBmGxcFP2Po1NPrUEIk8KM2\\\",\\\"LYKr1oaPSqShthukmLDhdZsqUJgzVnQiAQ\\\"]\"") +
|
||||||
"\nAs json rpc call\n"
|
"\nAs json rpc call\n"
|
||||||
+ HelpExampleRpc("addmultisigaddress", "2, \"[\\\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\\\",\\\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\\\"]\"")
|
+ HelpExampleRpc("addmultisigaddress", "2, \"[\\\"LEr4hnAefwYhBmGxcFP2Po1NPrUEIk8KM2\\\",\\\"LYKr1oaPSqShthukmLDhdZsqUJgzVnQiAQ\\\"]\"")
|
||||||
;
|
;
|
||||||
throw std::runtime_error(msg);
|
throw std::runtime_error(msg);
|
||||||
}
|
}
|
||||||
@ -1204,7 +1204,7 @@ UniValue addwitnessaddress(const JSONRPCRequest& request)
|
|||||||
|
|
||||||
CBitcoinAddress address(request.params[0].get_str());
|
CBitcoinAddress address(request.params[0].get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid Litecoin address");
|
||||||
|
|
||||||
Witnessifier w(pwallet);
|
Witnessifier w(pwallet);
|
||||||
CTxDestination dest = address.Get();
|
CTxDestination dest = address.Get();
|
||||||
@ -1569,7 +1569,7 @@ UniValue listtransactions(const JSONRPCRequest& request)
|
|||||||
" {\n"
|
" {\n"
|
||||||
" \"account\":\"accountname\", (string) DEPRECATED. The account name associated with the transaction. \n"
|
" \"account\":\"accountname\", (string) DEPRECATED. The account name associated with the transaction. \n"
|
||||||
" It will be \"\" for the default account.\n"
|
" It will be \"\" for the default account.\n"
|
||||||
" \"address\":\"address\", (string) The bitcoin address of the transaction. Not present for \n"
|
" \"address\":\"address\", (string) The litecoin address of the transaction. Not present for \n"
|
||||||
" move transactions (category = move).\n"
|
" move transactions (category = move).\n"
|
||||||
" \"category\":\"send|receive|move\", (string) The transaction category. 'move' is a local (off blockchain)\n"
|
" \"category\":\"send|receive|move\", (string) The transaction category. 'move' is a local (off blockchain)\n"
|
||||||
" transaction between accounts, and not associated with an address,\n"
|
" transaction between accounts, and not associated with an address,\n"
|
||||||
@ -1783,7 +1783,7 @@ UniValue listsinceblock(const JSONRPCRequest& request)
|
|||||||
"{\n"
|
"{\n"
|
||||||
" \"transactions\": [\n"
|
" \"transactions\": [\n"
|
||||||
" \"account\":\"accountname\", (string) DEPRECATED. The account name associated with the transaction. Will be \"\" for the default account.\n"
|
" \"account\":\"accountname\", (string) DEPRECATED. The account name associated with the transaction. Will be \"\" for the default account.\n"
|
||||||
" \"address\":\"address\", (string) The bitcoin address of the transaction. Not present for move transactions (category = move).\n"
|
" \"address\":\"address\", (string) The litecoin address of the transaction. Not present for move transactions (category = move).\n"
|
||||||
" \"category\":\"send|receive\", (string) The transaction category. 'send' has negative amounts, 'receive' has positive amounts.\n"
|
" \"category\":\"send|receive\", (string) The transaction category. 'send' has negative amounts, 'receive' has positive amounts.\n"
|
||||||
" \"amount\": x.xxx, (numeric) The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and for the 'move' category for moves \n"
|
" \"amount\": x.xxx, (numeric) The amount in " + CURRENCY_UNIT + ". This is negative for the 'send' category, and for the 'move' category for moves \n"
|
||||||
" outbound. It is positive for the 'receive' category, and for the 'move' category for inbound funds.\n"
|
" outbound. It is positive for the 'receive' category, and for the 'move' category for inbound funds.\n"
|
||||||
@ -1812,8 +1812,8 @@ UniValue listsinceblock(const JSONRPCRequest& request)
|
|||||||
"}\n"
|
"}\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("listsinceblock", "")
|
+ HelpExampleCli("listsinceblock", "")
|
||||||
+ HelpExampleCli("listsinceblock", "\"000000000000000bacf66f7497b7dc45ef753ee9a7d38571037cdb1a57f663ad\" 6")
|
+ HelpExampleCli("listsinceblock", "\"2c5a0ff9e4d8a7cdece6cc0f11d8f949a0c58b2028fab79b90485a811253e217\" 6")
|
||||||
+ HelpExampleRpc("listsinceblock", "\"000000000000000bacf66f7497b7dc45ef753ee9a7d38571037cdb1a57f663ad\", 6")
|
+ HelpExampleRpc("listsinceblock", "\"2c5a0ff9e4d8a7cdece6cc0f11d8f949a0c58b2028fab79b90485a811253e217\", 6")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -1925,7 +1925,7 @@ UniValue gettransaction(const JSONRPCRequest& request)
|
|||||||
" \"details\" : [\n"
|
" \"details\" : [\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"account\" : \"accountname\", (string) DEPRECATED. The account name involved in the transaction, can be \"\" for the default account.\n"
|
" \"account\" : \"accountname\", (string) DEPRECATED. The account name involved in the transaction, can be \"\" for the default account.\n"
|
||||||
" \"address\" : \"address\", (string) The bitcoin address involved in the transaction\n"
|
" \"address\" : \"address\", (string) The litecoin address involved in the transaction\n"
|
||||||
" \"category\" : \"send|receive\", (string) The category, either 'send' or 'receive'\n"
|
" \"category\" : \"send|receive\", (string) The category, either 'send' or 'receive'\n"
|
||||||
" \"amount\" : x.xxx, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
" \"amount\" : x.xxx, (numeric) The amount in " + CURRENCY_UNIT + "\n"
|
||||||
" \"label\" : \"label\", (string) A comment for the address/transaction, if any\n"
|
" \"label\" : \"label\", (string) A comment for the address/transaction, if any\n"
|
||||||
@ -1941,9 +1941,9 @@ UniValue gettransaction(const JSONRPCRequest& request)
|
|||||||
"}\n"
|
"}\n"
|
||||||
|
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("gettransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\"")
|
+ HelpExampleCli("gettransaction", "\"c1700d6dd3e690866de56686e893cbe4e637eb5d84e3591cdfbbdbb0fcee49f8\"")
|
||||||
+ HelpExampleCli("gettransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\" true")
|
+ HelpExampleCli("gettransaction", "\"c1700d6dd3e690866de56686e893cbe4e637eb5d84e3591cdfbbdbb0fcee49f8\" true")
|
||||||
+ HelpExampleRpc("gettransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\"")
|
+ HelpExampleRpc("gettransaction", "\"c1700d6dd3e690866de56686e893cbe4e637eb5d84e3591cdfbbdbb0fcee49f8\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -2002,8 +2002,8 @@ UniValue abandontransaction(const JSONRPCRequest& request)
|
|||||||
"1. \"txid\" (string, required) The transaction id\n"
|
"1. \"txid\" (string, required) The transaction id\n"
|
||||||
"\nResult:\n"
|
"\nResult:\n"
|
||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
+ HelpExampleCli("abandontransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\"")
|
+ HelpExampleCli("abandontransaction", "\"c1700d6dd3e690866de56686e893cbe4e637eb5d84e3591cdfbbdbb0fcee49f8\"")
|
||||||
+ HelpExampleRpc("abandontransaction", "\"1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d\"")
|
+ HelpExampleRpc("abandontransaction", "\"c1700d6dd3e690866de56686e893cbe4e637eb5d84e3591cdfbbdbb0fcee49f8\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -2109,7 +2109,7 @@ UniValue walletpassphrase(const JSONRPCRequest& request)
|
|||||||
throw std::runtime_error(
|
throw std::runtime_error(
|
||||||
"walletpassphrase \"passphrase\" timeout\n"
|
"walletpassphrase \"passphrase\" timeout\n"
|
||||||
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
|
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
|
||||||
"This is needed prior to performing transactions related to private keys such as sending bitcoins\n"
|
"This is needed prior to performing transactions related to private keys such as sending litecoins\n"
|
||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. \"passphrase\" (string, required) The wallet passphrase\n"
|
"1. \"passphrase\" (string, required) The wallet passphrase\n"
|
||||||
"2. timeout (numeric, required) The time to keep the decryption key in seconds.\n"
|
"2. timeout (numeric, required) The time to keep the decryption key in seconds.\n"
|
||||||
@ -2230,7 +2230,7 @@ UniValue walletlock(const JSONRPCRequest& request)
|
|||||||
"\nSet the passphrase for 2 minutes to perform a transaction\n"
|
"\nSet the passphrase for 2 minutes to perform a transaction\n"
|
||||||
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\" 120") +
|
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\" 120") +
|
||||||
"\nPerform a send (requires passphrase set)\n"
|
"\nPerform a send (requires passphrase set)\n"
|
||||||
+ HelpExampleCli("sendtoaddress", "\"1M72Sfpbz1BPpXFHz9m3CdqATR44Jvaydd\" 1.0") +
|
+ HelpExampleCli("sendtoaddress", "\"LEr4HnaefWYHbMGXcFp2Po1NPRUeIk8km2\" 1.0") +
|
||||||
"\nClear the passphrase since we are done before 2 minutes is up\n"
|
"\nClear the passphrase since we are done before 2 minutes is up\n"
|
||||||
+ HelpExampleCli("walletlock", "") +
|
+ HelpExampleCli("walletlock", "") +
|
||||||
"\nAs json rpc call\n"
|
"\nAs json rpc call\n"
|
||||||
@ -2274,7 +2274,7 @@ UniValue encryptwallet(const JSONRPCRequest& request)
|
|||||||
"\nExamples:\n"
|
"\nExamples:\n"
|
||||||
"\nEncrypt your wallet\n"
|
"\nEncrypt your wallet\n"
|
||||||
+ HelpExampleCli("encryptwallet", "\"my pass phrase\"") +
|
+ HelpExampleCli("encryptwallet", "\"my pass phrase\"") +
|
||||||
"\nNow set the passphrase to use the wallet, such as for signing or sending bitcoin\n"
|
"\nNow set the passphrase to use the wallet, such as for signing or sending litecoin\n"
|
||||||
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\"") +
|
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\"") +
|
||||||
"\nNow we can do something like sign\n"
|
"\nNow we can do something like sign\n"
|
||||||
+ HelpExampleCli("signmessage", "\"address\" \"test message\"") +
|
+ HelpExampleCli("signmessage", "\"address\" \"test message\"") +
|
||||||
@ -2312,7 +2312,7 @@ UniValue encryptwallet(const JSONRPCRequest& request)
|
|||||||
// slack space in .dat files; that is bad if the old data is
|
// slack space in .dat files; that is bad if the old data is
|
||||||
// unencrypted private keys. So:
|
// unencrypted private keys. So:
|
||||||
StartShutdown();
|
StartShutdown();
|
||||||
return "wallet encrypted; Bitcoin server stopping, restart to run with encrypted wallet. The keypool has been flushed and a new HD seed was generated (if you are using HD). You need to make a new backup.";
|
return "wallet encrypted; Litecoin server stopping, restart to run with encrypted wallet. The keypool has been flushed and a new HD seed was generated (if you are using HD). You need to make a new backup.";
|
||||||
}
|
}
|
||||||
|
|
||||||
UniValue lockunspent(const JSONRPCRequest& request)
|
UniValue lockunspent(const JSONRPCRequest& request)
|
||||||
@ -2328,7 +2328,7 @@ UniValue lockunspent(const JSONRPCRequest& request)
|
|||||||
"\nUpdates list of temporarily unspendable outputs.\n"
|
"\nUpdates list of temporarily unspendable outputs.\n"
|
||||||
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n"
|
"Temporarily lock (unlock=false) or unlock (unlock=true) specified transaction outputs.\n"
|
||||||
"If no transaction outputs are specified when unlocking then all current locked transaction outputs are unlocked.\n"
|
"If no transaction outputs are specified when unlocking then all current locked transaction outputs are unlocked.\n"
|
||||||
"A locked transaction output will not be chosen by automatic coin selection, when spending bitcoins.\n"
|
"A locked transaction output will not be chosen by automatic coin selection, when spending litecoins.\n"
|
||||||
"Locks are stored in memory only. Nodes start with zero locked outputs, and the locked output list\n"
|
"Locks are stored in memory only. Nodes start with zero locked outputs, and the locked output list\n"
|
||||||
"is always cleared (by virtue of process exit) when a node stops or fails.\n"
|
"is always cleared (by virtue of process exit) when a node stops or fails.\n"
|
||||||
"Also see the listunspent call\n"
|
"Also see the listunspent call\n"
|
||||||
@ -2350,13 +2350,13 @@ UniValue lockunspent(const JSONRPCRequest& request)
|
|||||||
"\nList the unspent transactions\n"
|
"\nList the unspent transactions\n"
|
||||||
+ HelpExampleCli("listunspent", "") +
|
+ HelpExampleCli("listunspent", "") +
|
||||||
"\nLock an unspent transaction\n"
|
"\nLock an unspent transaction\n"
|
||||||
+ HelpExampleCli("lockunspent", "false \"[{\\\"txid\\\":\\\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\\\",\\\"vout\\\":1}]\"") +
|
+ HelpExampleCli("lockunspent", "false \"[{\\\"txid\\\":\\\"daaf44ec1e64e66ffda4a7e195ea60d5c8c8b602fc6bf22928582d3ff2530462\\\",\\\"vout\\\":1}]\"") +
|
||||||
"\nList the locked transactions\n"
|
"\nList the locked transactions\n"
|
||||||
+ HelpExampleCli("listlockunspent", "") +
|
+ HelpExampleCli("listlockunspent", "") +
|
||||||
"\nUnlock the transaction again\n"
|
"\nUnlock the transaction again\n"
|
||||||
+ HelpExampleCli("lockunspent", "true \"[{\\\"txid\\\":\\\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\\\",\\\"vout\\\":1}]\"") +
|
+ HelpExampleCli("lockunspent", "true \"[{\\\"txid\\\":\\\"daaf44ec1e64e66ffda4a7e195ea60d5c8c8b602fc6bf22928582d3ff2530462\\\",\\\"vout\\\":1}]\"") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("lockunspent", "false, \"[{\\\"txid\\\":\\\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\\\",\\\"vout\\\":1}]\"")
|
+ HelpExampleRpc("lockunspent", "false, \"[{\\\"txid\\\":\\\"daaf44ec1e64e66ffda4a7e195ea60d5c8c8b602fc6bf22928582d3ff2530462\\\",\\\"vout\\\":1}]\"")
|
||||||
);
|
);
|
||||||
|
|
||||||
LOCK2(cs_main, pwallet->cs_wallet);
|
LOCK2(cs_main, pwallet->cs_wallet);
|
||||||
@ -2430,11 +2430,11 @@ UniValue listlockunspent(const JSONRPCRequest& request)
|
|||||||
"\nList the unspent transactions\n"
|
"\nList the unspent transactions\n"
|
||||||
+ HelpExampleCli("listunspent", "") +
|
+ HelpExampleCli("listunspent", "") +
|
||||||
"\nLock an unspent transaction\n"
|
"\nLock an unspent transaction\n"
|
||||||
+ HelpExampleCli("lockunspent", "false \"[{\\\"txid\\\":\\\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\\\",\\\"vout\\\":1}]\"") +
|
+ HelpExampleCli("lockunspent", "false \"[{\\\"txid\\\":\\\"daaf44ec1e64e66ffda4a7e195ea60d5c8c8b602fc6bf22928582d3ff2530462\\\",\\\"vout\\\":1}]\"") +
|
||||||
"\nList the locked transactions\n"
|
"\nList the locked transactions\n"
|
||||||
+ HelpExampleCli("listlockunspent", "") +
|
+ HelpExampleCli("listlockunspent", "") +
|
||||||
"\nUnlock the transaction again\n"
|
"\nUnlock the transaction again\n"
|
||||||
+ HelpExampleCli("lockunspent", "true \"[{\\\"txid\\\":\\\"a08e6907dbbd3d809776dbfc5d82e371b764ed838b5655e72f463568df1aadf0\\\",\\\"vout\\\":1}]\"") +
|
+ HelpExampleCli("lockunspent", "true \"[{\\\"txid\\\":\\\"daaf44ec1e64e66ffda4a7e195ea60d5c8c8b602fc6bf22928582d3ff2530462\\\",\\\"vout\\\":1}]\"") +
|
||||||
"\nAs a json rpc call\n"
|
"\nAs a json rpc call\n"
|
||||||
+ HelpExampleRpc("listlockunspent", "")
|
+ HelpExampleRpc("listlockunspent", "")
|
||||||
);
|
);
|
||||||
@ -2627,9 +2627,9 @@ UniValue listunspent(const JSONRPCRequest& request)
|
|||||||
"\nArguments:\n"
|
"\nArguments:\n"
|
||||||
"1. minconf (numeric, optional, default=1) The minimum confirmations to filter\n"
|
"1. minconf (numeric, optional, default=1) The minimum confirmations to filter\n"
|
||||||
"2. maxconf (numeric, optional, default=9999999) The maximum confirmations to filter\n"
|
"2. maxconf (numeric, optional, default=9999999) The maximum confirmations to filter\n"
|
||||||
"3. \"addresses\" (string) A json array of bitcoin addresses to filter\n"
|
"3. \"addresses\" (string) A json array of litecoin addresses to filter\n"
|
||||||
" [\n"
|
" [\n"
|
||||||
" \"address\" (string) bitcoin address\n"
|
" \"address\" (string) litecoin address\n"
|
||||||
" ,...\n"
|
" ,...\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"4. include_unsafe (bool, optional, default=true) Include outputs that are not safe to spend\n"
|
"4. include_unsafe (bool, optional, default=true) Include outputs that are not safe to spend\n"
|
||||||
@ -2646,7 +2646,7 @@ UniValue listunspent(const JSONRPCRequest& request)
|
|||||||
" {\n"
|
" {\n"
|
||||||
" \"txid\" : \"txid\", (string) the transaction id \n"
|
" \"txid\" : \"txid\", (string) the transaction id \n"
|
||||||
" \"vout\" : n, (numeric) the vout value\n"
|
" \"vout\" : n, (numeric) the vout value\n"
|
||||||
" \"address\" : \"address\", (string) the bitcoin address\n"
|
" \"address\" : \"address\", (string) the litecoin address\n"
|
||||||
" \"account\" : \"account\", (string) DEPRECATED. The associated account, or \"\" for the default account\n"
|
" \"account\" : \"account\", (string) DEPRECATED. The associated account, or \"\" for the default account\n"
|
||||||
" \"scriptPubKey\" : \"key\", (string) the script key\n"
|
" \"scriptPubKey\" : \"key\", (string) the script key\n"
|
||||||
" \"amount\" : x.xxx, (numeric) the transaction output amount in " + CURRENCY_UNIT + "\n"
|
" \"amount\" : x.xxx, (numeric) the transaction output amount in " + CURRENCY_UNIT + "\n"
|
||||||
@ -2663,8 +2663,8 @@ UniValue listunspent(const JSONRPCRequest& request)
|
|||||||
|
|
||||||
"\nExamples\n"
|
"\nExamples\n"
|
||||||
+ HelpExampleCli("listunspent", "")
|
+ HelpExampleCli("listunspent", "")
|
||||||
+ HelpExampleCli("listunspent", "6 9999999 \"[\\\"1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\\\",\\\"1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\\\"]\"")
|
+ HelpExampleCli("listunspent", "6 9999999 \"[\\\"LGPYcOdyoBnraaWX5tknkJZZWafjRAGVzx\\\",\\\"LLmraTr3qBjE2YseA3CnZ55la4TQmWnRY3\\\"]\"")
|
||||||
+ HelpExampleRpc("listunspent", "6, 9999999 \"[\\\"1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\\\",\\\"1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\\\"]\"")
|
+ HelpExampleRpc("listunspent", "6, 9999999 \"[\\\"LGPYcOdyoBnraaWX5tknkJZZWafjRAGVzx\\\",\\\"LLmraTr3qBjE2YseA3CnZ55la4TQmWnRY3\\\"]\"")
|
||||||
+ HelpExampleCli("listunspent", "6 9999999 '[]' true '{ \"minimumAmount\": 0.005 }'")
|
+ HelpExampleCli("listunspent", "6 9999999 '[]' true '{ \"minimumAmount\": 0.005 }'")
|
||||||
+ HelpExampleRpc("listunspent", "6, 9999999, [] , true, { \"minimumAmount\": 0.005 } ")
|
+ HelpExampleRpc("listunspent", "6, 9999999, [] , true, { \"minimumAmount\": 0.005 } ")
|
||||||
);
|
);
|
||||||
@ -2689,7 +2689,7 @@ UniValue listunspent(const JSONRPCRequest& request)
|
|||||||
const UniValue& input = inputs[idx];
|
const UniValue& input = inputs[idx];
|
||||||
CBitcoinAddress address(input.get_str());
|
CBitcoinAddress address(input.get_str());
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Bitcoin address: ")+input.get_str());
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, std::string("Invalid Litecoin address: ")+input.get_str());
|
||||||
if (setAddress.count(address))
|
if (setAddress.count(address))
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+input.get_str());
|
throw JSONRPCError(RPC_INVALID_PARAMETER, std::string("Invalid parameter, duplicated address: ")+input.get_str());
|
||||||
setAddress.insert(address);
|
setAddress.insert(address);
|
||||||
@ -2793,7 +2793,7 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
"1. \"hexstring\" (string, required) The hex string of the raw transaction\n"
|
"1. \"hexstring\" (string, required) The hex string of the raw transaction\n"
|
||||||
"2. options (object, optional)\n"
|
"2. options (object, optional)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"changeAddress\" (string, optional, default pool address) The bitcoin address to receive the change\n"
|
" \"changeAddress\" (string, optional, default pool address) The litecoin address to receive the change\n"
|
||||||
" \"changePosition\" (numeric, optional, default random) The index of the change output\n"
|
" \"changePosition\" (numeric, optional, default random) The index of the change output\n"
|
||||||
" \"includeWatching\" (boolean, optional, default false) Also select inputs which are watch only\n"
|
" \"includeWatching\" (boolean, optional, default false) Also select inputs which are watch only\n"
|
||||||
" \"lockUnspents\" (boolean, optional, default false) Lock selected unspent outputs\n"
|
" \"lockUnspents\" (boolean, optional, default false) Lock selected unspent outputs\n"
|
||||||
@ -2801,7 +2801,7 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
" \"subtractFeeFromOutputs\" (array, optional) A json array of integers.\n"
|
" \"subtractFeeFromOutputs\" (array, optional) A json array of integers.\n"
|
||||||
" The fee will be equally deducted from the amount of each specified output.\n"
|
" The fee will be equally deducted from the amount of each specified output.\n"
|
||||||
" The outputs are specified by their zero-based index, before any change output is added.\n"
|
" The outputs are specified by their zero-based index, before any change output is added.\n"
|
||||||
" Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n"
|
" Those recipients will receive less litecoins than you enter in their corresponding amount field.\n"
|
||||||
" If no outputs are specified here, the sender pays the fee.\n"
|
" If no outputs are specified here, the sender pays the fee.\n"
|
||||||
" [vout_index,...]\n"
|
" [vout_index,...]\n"
|
||||||
" \"replaceable\" (boolean, optional) Marks this transaction as BIP125 replaceable.\n"
|
" \"replaceable\" (boolean, optional) Marks this transaction as BIP125 replaceable.\n"
|
||||||
@ -2867,7 +2867,7 @@ UniValue fundrawtransaction(const JSONRPCRequest& request)
|
|||||||
CBitcoinAddress address(options["changeAddress"].get_str());
|
CBitcoinAddress address(options["changeAddress"].get_str());
|
||||||
|
|
||||||
if (!address.IsValid())
|
if (!address.IsValid())
|
||||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "changeAddress must be a valid bitcoin address");
|
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "changeAddress must be a valid litecoin address");
|
||||||
|
|
||||||
coinControl.destChange = address.Get();
|
coinControl.destChange = address.Get();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user