diff --git a/README.md b/README.md index f892c6b3a..8e697d04b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Koto 1.1.2 +Koto 1.1.2.1 ============= What is Koto? diff --git a/configure.ac b/configure.ac index c477d69d6..96d0c3b55 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 1) define(_CLIENT_VERSION_MINOR, 1) -define(_CLIENT_VERSION_REVISION, 2) +define(_CLIENT_VERSION_REVISION, 2.1) define(_CLIENT_VERSION_BUILD, 50) define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50))) define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1))) diff --git a/doc/man/koto-cli.1 b/doc/man/koto-cli.1 index 1695a7a38..e0efbc15b 100644 --- a/doc/man/koto-cli.1 +++ b/doc/man/koto-cli.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3. -.TH KOTO-CLI "1" "July 2018" "koto-cli v1.1.2" "User Commands" +.TH KOTO-CLI "1" "September 2018" "koto-cli v1.1.2.1" "User Commands" .SH NAME -koto-cli \- manual page for koto-cli v1.1.2 +koto-cli \- manual page for koto-cli v1.1.2.1 .SH DESCRIPTION -Koto RPC client version v1.1.2 +Koto RPC client version v1.1.2.1 .PP In order to ensure you are adequately protecting your privacy when using Koto, please see . diff --git a/doc/man/koto-qt.1 b/doc/man/koto-qt.1 index e75a82ea0..a0578dedc 100644 --- a/doc/man/koto-qt.1 +++ b/doc/man/koto-qt.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH LITECOINZ-QT "1" "June 2018" "koto-qt v1.1.2" "User Commands" +.TH LITECOINZ-QT "1" "September 2018" "koto-qt v1.1.2.1" "User Commands" .SH NAME -koto-qt \- manual page for koto-qt v1.1.2 +koto-qt \- manual page for koto-qt v1.1.2.1 .SH DESCRIPTION -LitecoinZ version v1.1.2 (64\-bit) +Koto version v1.1.2.1 (64\-bit) Usage: .IP koto\-qt [command\-line options] diff --git a/doc/man/koto-tx.1 b/doc/man/koto-tx.1 index 7bbfac0de..b4b5aa77f 100644 --- a/doc/man/koto-tx.1 +++ b/doc/man/koto-tx.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3. -.TH KOTO-TX "1" "July 2018" "koto-tx v1.1.2" "User Commands" +.TH KOTO-TX "1" "September 2018" "koto-tx v1.1.2.1" "User Commands" .SH NAME -koto-tx \- manual page for koto-tx v1.1.2 +koto-tx \- manual page for koto-tx v1.1.2.1 .SH DESCRIPTION -Koto koto\-tx utility version v1.1.2 +Koto koto\-tx utility version v1.1.2.1 .SS "Usage:" .TP koto\-tx [options] [commands] diff --git a/doc/man/kotod.1 b/doc/man/kotod.1 index ee23227f5..b00d560cb 100644 --- a/doc/man/kotod.1 +++ b/doc/man/kotod.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3. -.TH KOTOD "1" "July 2018" "kotod v1.1.2" "User Commands" +.TH KOTOD "1" "September 2018" "kotod v1.1.2.1" "User Commands" .SH NAME -kotod \- manual page for kotod v1.1.2 +kotod \- manual page for kotod v1.1.2.1 .SH DESCRIPTION -Koto Daemon version v1.1.2 +Koto Daemon version v1.1.2.1 .PP In order to ensure you are adequately protecting your privacy when using Koto, please see . diff --git a/src/clientversion.h b/src/clientversion.h index 4bf392c58..ad8432052 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -17,7 +17,7 @@ //! These need to be macros, as clientversion.cpp's and bitcoin*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 1 #define CLIENT_VERSION_MINOR 1 -#define CLIENT_VERSION_REVISION 2 +#define CLIENT_VERSION_REVISION 2.1 #define CLIENT_VERSION_BUILD 50 //! Set to true for release, false for prerelease or test build diff --git a/src/deprecation.h b/src/deprecation.h index e27cf24be..fc3697ab6 100644 --- a/src/deprecation.h +++ b/src/deprecation.h @@ -8,7 +8,7 @@ // Deprecation policy: // * Shut down 16 weeks' worth of blocks after the estimated release block height. // * A warning is shown during the 2 weeks' worth of blocks prior to shut down. -static const int APPROX_RELEASE_HEIGHT = 386640; +static const int APPROX_RELEASE_HEIGHT = 400000; static const int WEEKS_UNTIL_DEPRECATION = 16; static const int DEPRECATION_HEIGHT = APPROX_RELEASE_HEIGHT + (WEEKS_UNTIL_DEPRECATION * 7 * 24 * 60); diff --git a/src/sysendian.h b/src/sysendian.h index 049519464..52c1fe73b 100644 --- a/src/sysendian.h +++ b/src/sysendian.h @@ -1,5 +1,5 @@ /*- - * Copyright 2007-2009 Colin Percival + * Copyright 2007-2014 Colin Percival * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,37 +22,31 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * This file was originally written by Colin Percival as part of the Tarsnap - * online backup system. */ + #ifndef _SYSENDIAN_H_ #define _SYSENDIAN_H_ -/* If we don't have be64enc, the we have isn't usable. */ -#if !HAVE_DECL_BE64ENC -#undef HAVE_SYS_ENDIAN_H -#endif - -#ifdef HAVE_SYS_ENDIAN_H - -#include - -#else - #include +/* Avoid namespace collisions with BSD . */ +#define be32dec libcperciva_be32dec +#define be32enc libcperciva_be32enc +#define be64enc libcperciva_be64enc +#define le32dec libcperciva_le32dec +#define le32enc libcperciva_le32enc + static inline uint32_t -be32dec(const void *pp) +be32dec(const void * pp) { - const uint8_t *p = (uint8_t const *)pp; + const uint8_t * p = (uint8_t const *)pp; return ((uint32_t)(p[3]) + ((uint32_t)(p[2]) << 8) + ((uint32_t)(p[1]) << 16) + ((uint32_t)(p[0]) << 24)); } static inline void -be32enc(void *pp, uint32_t x) +be32enc(void * pp, uint32_t x) { uint8_t * p = (uint8_t *)pp; @@ -62,19 +56,8 @@ be32enc(void *pp, uint32_t x) p[0] = (x >> 24) & 0xff; } -static inline uint64_t -be64dec(const void *pp) -{ - const uint8_t *p = (uint8_t const *)pp; - - return ((uint64_t)(p[7]) + ((uint64_t)(p[6]) << 8) + - ((uint64_t)(p[5]) << 16) + ((uint64_t)(p[4]) << 24) + - ((uint64_t)(p[3]) << 32) + ((uint64_t)(p[2]) << 40) + - ((uint64_t)(p[1]) << 48) + ((uint64_t)(p[0]) << 56)); -} - static inline void -be64enc(void *pp, uint64_t x) +be64enc(void * pp, uint64_t x) { uint8_t * p = (uint8_t *)pp; @@ -89,38 +72,16 @@ be64enc(void *pp, uint64_t x) } static inline uint32_t -le32dec(const void *pp) +le32dec(const void * pp) { - const uint8_t *p = (uint8_t const *)pp; + const uint8_t * p = (uint8_t const *)pp; return ((uint32_t)(p[0]) + ((uint32_t)(p[1]) << 8) + ((uint32_t)(p[2]) << 16) + ((uint32_t)(p[3]) << 24)); } static inline void -le32enc(void *pp, uint32_t x) -{ - uint8_t * p = (uint8_t *)pp; - - p[0] = x & 0xff; - p[1] = (x >> 8) & 0xff; - p[2] = (x >> 16) & 0xff; - p[3] = (x >> 24) & 0xff; -} - -static inline uint64_t -le64dec(const void *pp) -{ - const uint8_t *p = (uint8_t const *)pp; - - return ((uint64_t)(p[0]) + ((uint64_t)(p[1]) << 8) + - ((uint64_t)(p[2]) << 16) + ((uint64_t)(p[3]) << 24) + - ((uint64_t)(p[4]) << 32) + ((uint64_t)(p[5]) << 40) + - ((uint64_t)(p[6]) << 48) + ((uint64_t)(p[7]) << 56)); -} - -static inline void -le64enc(void *pp, uint64_t x) +le32enc(void * pp, uint32_t x) { uint8_t * p = (uint8_t *)pp; @@ -128,11 +89,6 @@ le64enc(void *pp, uint64_t x) p[1] = (x >> 8) & 0xff; p[2] = (x >> 16) & 0xff; p[3] = (x >> 24) & 0xff; - p[4] = (x >> 32) & 0xff; - p[5] = (x >> 40) & 0xff; - p[6] = (x >> 48) & 0xff; - p[7] = (x >> 56) & 0xff; } -#endif /* !HAVE_SYS_ENDIAN_H */ #endif /* !_SYSENDIAN_H_ */ diff --git a/src/yespower-opt.c b/src/yespower-opt.c index 7d9b70a62..c0d4d6233 100644 --- a/src/yespower-opt.c +++ b/src/yespower-opt.c @@ -496,8 +496,7 @@ typedef struct { ((uint64_t)(uint32_t)_mm_cvtsi128_si32(HI32(X)) << 32)) #endif -//#if defined(__x86_64__) && (defined(__AVX__) || !defined(__GNUC__)) -#if 0 /* XXX The follwoing code is slower XXX */ +#if defined(__x86_64__) && (defined(__AVX__) || !defined(__GNUC__)) /* 64-bit with AVX */ /* Force use of 64-bit AND instead of two 32-bit ANDs */ #undef DECL_SMASK2REG diff --git a/src/yespower.c b/src/yespower.c index 67cf58c64..1b930724e 100644 --- a/src/yespower.c +++ b/src/yespower.c @@ -1,5 +1,5 @@ /*- - * Copyright 2013-2018 Alexander Peslyak + * Copyright (c) 2018 The Koto developers * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -21,6 +21,7 @@ #include #include #include +#include /* for abort() */ #include "yespower.h" @@ -33,5 +34,6 @@ void yespower_hash(const char *input, size_t inputlen, char *output) .pers = (const uint8_t *)input, .perslen = inputlen }; - yespower_tls((unsigned char *)input, inputlen, ¶ms, (yespower_binary_t *)output); + if (yespower_tls((unsigned char *)input, inputlen, ¶ms, (yespower_binary_t *)output)) + abort(); } diff --git a/src/yespower.h b/src/yespower.h index f7109ec15..9faaf3fb0 100644 --- a/src/yespower.h +++ b/src/yespower.h @@ -37,6 +37,9 @@ extern "C" { #endif +/** + * yespower_hash() is a Koto addition, not part of yespower proper. + */ extern void yespower_hash(const char *input, size_t inputlen, char *output); /**