steemit / fc Goto Github PK
View Code? Open in Web Editor NEWThis project forked from cryptonomex/fc
This project forked from cryptonomex/fc
when i am building fc in Ubuntu 16.04 x86_64 system.
why it is always printing error like following:
src/crypto/_elliptic_impl_priv.hpp:11:7: error: ‘secp256k1_context_t’ does not name a type
const secp256k1_context_t* _get_context();
I am trying to find the declaration of this type secp256k1_context_t in the code but found none.
any one could help ? thx in advance.
In our logging for appbase we see lines of the form 'parse error: Invalid numeric literal at line 1, column 7'
This is due to the thread name portion of the log file. We are now using boost threads instead of fc threads and some of the assumptions of the format of the thread are incorrect. This can lead to printing of non-ASCII characters. I suggest removing this part of the log message.
@Gandalf-the-Grey suggests that log lines like:
526454ms th_a websocket_api.cpp:88 on_message ] message: {"jsonrpc": "2.0",
"id": 1
"method": "get_dynamic_global_properties",
"params": [],}
should be avoided. The problem is that wdump()
outputs the raw string received from the user.
To make it as easy as possible for users to get a backtrace, we want to add functionality to log a backtrace on SIGSEGV.
gcc version 6.3.0 20170516 (Debian 6.3.0-18)
-- OPENSSL_FOUND = TRUE
-- OPENSSL_INCLUDE_DIR = /usr/include
-- OPENSSL_LIBRARIES = /usr/lib/x86_64-linux-gnu/libssl.a;/usr/lib/x86_64-linux-gnu/libcrypto.a
-- OPENSSL_VERSION = 1.1.0f
[ 7%] Building CXX object libraries/fc/CMakeFiles/fc.dir/src/crypto/base58.cpp.o
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:69:24: error: invalid use of incomplete type ‘BIGNUM {aka struct bignum_st}’
class CBigNum : public BIGNUM
^~~~~~
In file included from /usr/include/openssl/bn.h:32:0,
from /home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:30:
/usr/include/openssl/ossl_typ.h:80:16: note: forward declaration of ‘BIGNUM {aka struct bignum_st}’
typedef struct bignum_st BIGNUM;
^~~~~~~~~
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum()’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:74:21: error: ‘BN_init’ was not declared in this scope
BN_init(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In copy constructor ‘CBigNum::CBigNum(const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:79:21: error: ‘BN_init’ was not declared in this scope
BN_init(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:80:30: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)’
if (!BN_copy(this, &b))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:82:31: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_clear_free(BIGNUM*)’
BN_clear_free(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator=(const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:89:30: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘BIGNUM* BN_copy(BIGNUM*, const BIGNUM*)’
if (!BN_copy(this, &b))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In destructor ‘CBigNum::~CBigNum()’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:96:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_clear_free(BIGNUM*)’
BN_clear_free(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(signed char)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:100:47: error: ‘BN_init’ was not declared in this scope
CBigNum(signed char n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(short int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:101:47: error: ‘BN_init’ was not declared in this scope
CBigNum(short n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:102:47: error: ‘BN_init’ was not declared in this scope
CBigNum(int n) { BN_init(this); if (n >= 0) setulong(n); else setint64(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(int64_t)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:104:47: error: ‘BN_init’ was not declared in this scope
CBigNum(int64_t n) { BN_init(this); setint64(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(unsigned char)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:105:47: error: ‘BN_init’ was not declared in this scope
CBigNum(unsigned char n) { BN_init(this); setulong(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(short unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:106:47: error: ‘BN_init’ was not declared in this scope
CBigNum(unsigned short n) { BN_init(this); setulong(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:107:47: error: ‘BN_init’ was not declared in this scope
CBigNum(unsigned int n) { BN_init(this); setulong(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(uint64_t)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:109:49: error: ‘BN_init’ was not declared in this scope
CBigNum(uint64_t n) { BN_init(this); setuint64(n); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In constructor ‘CBigNum::CBigNum(const std::vector<unsigned char>&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:113:21: error: ‘BN_init’ was not declared in this scope
BN_init(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘void CBigNum::setulong(long unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:119:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_set_word(BIGNUM*, long unsigned int)’
if (!BN_set_word(this, n))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘long unsigned int CBigNum::getulong() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:125:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
return BN_get_word(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘unsigned int CBigNum::getuint() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:130:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
return BN_get_word(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘int CBigNum::getint() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:135:43: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘long unsigned int BN_get_word(const BIGNUM*)’
unsigned long n = BN_get_word(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:136:33: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
if (!BN_is_negative(this))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘void CBigNum::setint64(int64_t)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:174:37: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
BN_mpi2bn(pch, p - pch, this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘void CBigNum::setuint64(uint64_t)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:201:37: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
BN_mpi2bn(pch, p - pch, this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘void CBigNum::setvch(const std::vector<unsigned char>&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:217:46: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
BN_mpi2bn(&vch2[0], vch2.size(), this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘std::vector<unsigned char> CBigNum::getvch() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:222:50: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
unsigned int nSize = BN_bn2mpi(this, NULL);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:226:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
BN_bn2mpi(this, &vch[0]);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::SetCompact(unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:240:44: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘3’ to ‘BIGNUM* BN_mpi2bn(const unsigned char*, int, BIGNUM*)’
BN_mpi2bn(&vch[0], vch.size(), this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘unsigned int CBigNum::GetCompact() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:246:50: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
unsigned int nSize = BN_bn2mpi(this, NULL);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:249:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_bn2mpi(const BIGNUM*, unsigned char*)’
BN_bn2mpi(this, &vch[0]);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘std::__cxx11::string CBigNum::ToString(int) const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:294:35: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘void BN_set_negative(BIGNUM*, int)’
BN_set_negative(&bn, false);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:297:29: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
if (BN_cmp(&bn, &bn0) == 0)
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:299:32: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
while (BN_cmp(&bn, &bn0) > 0)
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:301:54: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_div(&dv, &rem, &bn, &bnBase, pctx))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:307:32: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
if (BN_is_negative(this))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘bool CBigNum::operator!() const’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:322:31: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_zero(const BIGNUM*)’
return BN_is_zero(this);
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator+=(const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:327:35: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
if (!BN_add(this, this, &b))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator*=(const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:341:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_mul(this, this, &b, pctx))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator<<=(unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:360:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM*, const BIGNUM*, int)’
if (!BN_lshift(this, this, shift))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator>>=(unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:371:28: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
if (BN_cmp(&a, this) > 0)
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:377:41: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_rshift(BIGNUM*, const BIGNUM*, int)’
if (!BN_rshift(this, this, shift))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator++()’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:386:47: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
if (!BN_add(this, this, BN_value_one()))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In member function ‘CBigNum& CBigNum::operator--()’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:403:45: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)’
if (!BN_sub(&r, this, BN_value_one()))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator+(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:428:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_add(BIGNUM*, const BIGNUM*, const BIGNUM*)’
if (!BN_add(&r, &a, &b))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator-(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:436:27: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_sub(BIGNUM*, const BIGNUM*, const BIGNUM*)’
if (!BN_sub(&r, &a, &b))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator-(const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:444:43: error: cannot convert ‘CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_is_negative(const BIGNUM*)’
BN_set_negative(&r, !BN_is_negative(&r));
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator*(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:452:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_mul(&r, &a, &b, pctx))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator/(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:461:39: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_div(&r, NULL, &a, &b, pctx))
^
In file included from /home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:30:0:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator%(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:470:10: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘2’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_mod(&r, &a, &b, pctx))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘const CBigNum operator<<(const CBigNum&, unsigned int)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:478:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM*, const BIGNUM*, int)’
if (!BN_lshift(&r, &a, shift))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator==(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:490:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator!=(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:491:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator<=(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:492:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator>=(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:493:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator<(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:494:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool operator>(const CBigNum&, const CBigNum&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:495:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘std::__cxx11::string EncodeBase58(const unsigned char*, const unsigned char*)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:525:48: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_div(BIGNUM*, BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_div(&dv, &rem, &bn, &bn58, pctx))
^
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp: In function ‘bool DecodeBase58(const char*, std::vector<unsigned char>&)’:
/home/jnordberg/steem/libraries/fc/src/crypto/base58.cpp:575:42: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_mul(BIGNUM*, const BIGNUM*, const BIGNUM*, BN_CTX*)’
if (!BN_mul(&bn, &bn, &bn58, pctx))
^
libraries/fc/CMakeFiles/fc.dir/build.make:1310: recipe for target 'libraries/fc/CMakeFiles/fc.dir/src/crypto/base58.cpp.o' failed
make[3]: *** [libraries/fc/CMakeFiles/fc.dir/src/crypto/base58.cpp.o] Error 1
CMakeFiles/Makefile2:199: recipe for target 'libraries/fc/CMakeFiles/fc.dir/all' failed
make[2]: *** [libraries/fc/CMakeFiles/fc.dir/all] Error 2
CMakeFiles/Makefile2:2704: recipe for target 'programs/steemd/CMakeFiles/steemd.dir/rule' failed
make[1]: *** [programs/steemd/CMakeFiles/steemd.dir/rule] Error 2
Makefile:734: recipe for target 'steemd' failed
make: *** [steemd] Error 2
@vogel76 suggests the following:
I think initialization shall be done as follows:
struct sigaction sigact = {0};
sigset_t block_mask = {0};
sigemptyset (&block_mask);
sigact.sa_sigaction = segfault_handler;
sigact.sa_flags = SA_RESTART | SA_SIGINFO;
sigact.sa_mask = block_mask;
Valgrind complains about sa_mask
field, and I think it is dangerous to leave trash there. Also I am not sure if inside this handler SIGINT
shall be blocked to avoid spawning standard break handler during execution of SIGSEGV
This is for steemit/steem#829
FC should time API call execution times and display an error when execution time exceeds 1 second and a warning when it exceeds 750 ms. This is to both increase responsiveness of the API but also to ensure that an API call always reads consistent data from the database.
There are some miscellaneous changes for steemit/steem#1265
Putting them in one branch for review.
With some minor tweaks, we can improve our json rpc responses significantly.
Returning the jsonrpc
field is an easy win and increases compatibility with other libraries steemit/steem#66
Additionally, a minor tweak to exception::to_string
increases readability of errors significantly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.