:: [Libbitcoin] Master libbitcoin-serv…
Top Page
Delete this message
Reply to this message
Author: Police Terror
Date:  
To: libbitcoin
Subject: [Libbitcoin] Master libbitcoin-server on testnet
I'm using the current master branch to sync with testnet, but I'm
getting this error:

...
14:15:56.657549 WARNING [server] Failed to connect secure notification
worker: operation failed
14:15:56.756083 WARNING [server] Failed to connect secure notification
worker: operation failed
terminate called after throwing an instance of 'std::runtime_error'
what(): random_device::random_device(const std::string&)
14:15:57.415901 INFO [server] Stop signal detected (code: 6).
Aborted (core dumped)

Here's what debug.log is showing:

14:15:57.415478 DEBUG [network] Failure connecting outbound: operation
failed
14:15:57.415501 DEBUG [network] Failure connecting outbound: operation
failed
14:15:57.415570 DEBUG [node] Redundant block
[0000000057bd296621bc2f314e3594c412a0cd9e94f1083554c3184160612450] from
[177.189.250.198:18333]
14:15:57.415605 DEBUG [network] Connecting to [121.40.72.188:18333]
14:15:57.415703 DEBUG [network] Valid block payload from
[177.189.250.198:18333] (207 bytes)
14:15:57.415757 DEBUG [network] Connecting to [212.93.226.185:18333]
14:15:57.415816 DEBUG [network] Connecting to [2.55.186.124:18333]
14:15:57.415901 INFO [server] Stop signal detected (code: 6).
14:15:57.415937 DEBUG [node] Redundant block
[000000008a675b534ea86b312f29c9fdcce7b7b07ca1879c144b8e20215ac201] from
[177.189.250.198:18333]
14:15:57.416008 DEBUG [network] Valid block payload from
[177.189.250.198:18333] (207 bytes)
g

I've attached the .cfg file I'm using.

Looking at libbitcoin/src/utility/random.cpp, I see that
nonzero_pseudo_random() is throwing. Why isn't that an assert instead?

https://github.com/libbitcoin/libbitcoin/blob/master/src/utility/random.cpp#L46

Here is the backtrace:

#9  libbitcoin::pseudo_random () at src/utility/random.cpp:39
#10 0x00007ffff5a3d48d in libbitcoin::network::hosts::fetch
(this=this@entry=0x657310,
    out=...) at src/collections/hosts.cpp:76
#11 0x00007ffff5a27e7a in
libbitcoin::network::p2p::fetch_address(std::function<void
(std::error_code const&, libbitcoin::message::network_address const&)>)
const (this=0x656ad0,
    handler=...) at src/p2p.cpp:430
#12 0x00007ffff5a5ae5f in
libbitcoin::network::session::fetch_address(std::function<void
(std::error_code const&, libbitcoin::config::authority const&)>) const (
    this=this@entry=0x7fff280d6330, handler=...) at
src/sessions/session.cpp:83
#13 0x00007ffff5a6064e in
libbitcoin::network::session_batch::new_connect(std::shared_ptr<libbitcoin::network::connector>,
std::function<void (std::error_code const&,
std::shared_ptr<libbitcoin::network::channel>)>)
(this=this@entry=0x7fff280d6330,
    connect=std::shared_ptr (count 115, weak 1) 0x7ffef03f5760, handler=...)
    at src/sessions/session_batch.cpp:70
#14 0x00007ffff5a60b53 in
libbitcoin::network::session_batch::connect(std::shared_ptr<libbitcoin::network::connector>,
std::function<void (std::error_code const&,
std::shared_ptr<libbitcoin::network::channel>)>) (this=0x7fff280d6330,
    connect=std::shared_ptr (count 115, weak 1) 0x7ffef03f5760, handler=...)
    at src/sessions/session_batch.cpp:56
#15 0x00007ffff5a6f335 in
libbitcoin::network::session_outbound::new_connection (
    this=this@entry=0x7fff280d6330,
    connect=std::shared_ptr (count 115, weak 1) 0x7ffef03f5760)
    at src/sessions/session_outbound.cpp:87
#16 0x00007ffff5a6f7d1 in
libbitcoin::network::session_outbound::handle_connect (
    this=0x7fff280d6330, ec=..., channel=...,
    connect=std::shared_ptr (count 115, weak 1) 0x7ffef03f5760)
    at src/sessions/session_outbound.cpp:97

# Libbitcoin Server configuration file

[network]
# The minimum number of threads in the network threadpool, defaults to 50.
threads = 50
# The maximum network protocol version, defaults to 70012.
protocol_maximum = 70012
# The minimum network protocol version, defaults to 31402.
protocol_minimum = 31402
# The services exposed by network connections, defaults to 1 (full node).
services = 1
# The magic number for message headers, defaults to 3652501241 (use 118034699 for testnet).
#identifier = 3652501241
identifier = 118034699
# The port for incoming connections, defaults to 8333 (use 18333 for testnet).
#inbound_port = 8333
inbound_port = 18333
# The target number of incoming network connections, defaults to 8.
inbound_connections = 0
# The target number of outgoing network connections, defaults to 8.
outbound_connections = 8
# The attempt limit for manual connection establishment, defaults to 0 (forever).
manual_attempt_limit = 0
# The number of concurrent attempts to establish one connection, defaults to 5.
connect_batch_size = 5
# The time limit for connection establishment, defaults to 5.
connect_timeout_seconds = 5
# The time limit to complete the connection handshake, defaults to 30.
channel_handshake_seconds = 30
# The time between ping messages, defaults to 5.
channel_heartbeat_minutes = 5
# The inactivity time limit for any connection, defaults to 30.
channel_inactivity_minutes = 30
# The age limit for an outbound connection, defaults to 1440.
channel_expiration_minutes = 1440
# The time limit for obtaining seed addresses, defaults to 30.
channel_germination_seconds = 30
# The maximum number of peer hosts in the pool, defaults to 1000.
host_pool_capacity = 1000
# Request that peers relay transactions, defaults to true.
relay_transactions = true
# The peer hosts cache file path, defaults to 'hosts.cache'.
hosts_file = hosts.cache
# The debug log file path, defaults to 'debug.log'.
debug_file = debug.log
# The error log file path, defaults to 'error.log'.
error_file = error.log
# The advertised public address of this node, defaults to none.
self = 0.0.0.0:0
# IP address to disallow as a peer, multiple entries allowed.
#blacklist = 127.0.0.1
# Persistent host:port channels, multiple entries allowed.
#peer = obelisk.airbitz.co:8333
# A seed node for initializing the host pool, multiple entries allowed, defaults shown.
#seed = seed.bitnodes.io:8333
#seed = seed.bitcoinstats.com:8333
#seed = seed.bitcoin.sipa.be:8333
#seed = dnsseed.bluematt.me:8333
#seed = seed.bitcoin.jonasschnelli.ch:8333
#seed = dnsseed.bitcoin.dashjr.org:8333
# Testnet seed nodes.
seed = testnet-seed.bitcoin.petertodd.org:18333
seed = testnet-seed.bitcoin.schildbach.de:18333
seed = testnet-seed.bluematt.me:18333

[database]
# The lower limit of address and spend indexing, defaults to 0.
index_start_height = 0
# The blockchain database directory, defaults to 'mainnet-blockchain'.
directory = testnet-blockchain

[blockchain]
# The number of threads dedicated to block validation, defaults to 8.
threads = 8
# Use high thread priority for block validation, defaults to true.
priority = true
# Use libconsensus for script validation if integrated, defaults to false.
use_libconsensus = false
# Use testnet rules for determination of work required, defaults to false.
use_testnet_rules = true
# Flush each reorganization to disk, defaults to false.
flush_reorganizations = false
# Enforce consistency between the pool and the blockchain, defaults to false.
transaction_pool_consistency = false
# The maximum number of transactions in the pool, defaults to 2000.
transaction_pool_capacity = 2000
# The maximum number of orphan blocks in the pool, defaults to 50.
block_pool_capacity = 50
# A hash:height checkpoint, multiple entries allowed, defaults shown.
#checkpoint = 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f:0
#checkpoint = 0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d:11111
#checkpoint = 000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6:33333
#checkpoint = 00000000001e1b4903550a0b96e9a9405c8a95f387162e4944e8d9fbe501cd6a:68555
#checkpoint = 00000000006a49b14bcf27462068f1264c961f11fa2e0eddd2be0791e1d4124a:70567
#checkpoint = 0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20:74000
#checkpoint = 00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97:105000
#checkpoint = 000000000000774a7f8a7a12dc906ddb9e17e75d684f15e00f8767f9e8f36553:118000
#checkpoint = 00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe:134444
#checkpoint = 000000000000033b512028abb90e1626d8b346fd0ed598ac0a3c371138dce2bd:140700
#checkpoint = 000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763:168000
#checkpoint = 000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317:193000
#checkpoint = 000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e:210000
#checkpoint = 00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e:216116
#checkpoint = 00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932:225430
#checkpoint = 000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214:250000
#checkpoint = 0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40:279000
#checkpoint = 00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983:295000
#checkpoint = 000000000000000017a4b176294583519076f06cd2b5e4ef139dada8d44838d8:330791
#checkpoint = 000000000000000017522241d7afd686bb2315930fc1121861c9abf52e8c37f1:337459
#checkpoint = 0000000000000000086672a8c97ad666f89cf04736951791150015419810d586:368991
#checkpoint = 000000000000000004ec466ce4732fe6f1ed1cddc2ed4b328fff5224276e3f6f:400000
# Testnet checkpoints.
checkpoint = 000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943:0
checkpoint = 00000000009e2958c15ff9290d571bf9459e93b19765c6801ddeccadbb160a1e:100000
checkpoint = 0000000000287bffd321963ef05feab753ebe274e1d78b2fd4e2bfe9ad3aa6f2:200000
checkpoint = 000000000000226f7618566e70a2b5e020e29579b46743f05348427239bf41a1:300000
checkpoint = 000000000598cbbb1e79057b79eef828c495d4fc31050e6b179c57d07d00367c:400000
checkpoint = 000000000001a7c0aaa2630fbb2c0e476aafffc60f82177375b2aaa22209f606:500000
checkpoint = 000000000000624f06c69d3a9fe8d25e0a9030569128d63ad1b704bbb3059a16:600000

[node]
# The time limit for block receipt during initial block download, defaults to 5.
block_timeout_seconds = 5
# The maximum number of connections for initial block download, defaults to 8.
initial_connections = 8
# Flush to disk after this number of blocks during initial block download, defaults to 0 (disabled).
initial_flush_size = 0
# Refresh the transaction pool on reorganization and channel start, defaults to true.
transaction_pool_refresh = true

[server]
# The maximum number of query worker threads per endpoint, defaults to 1.
query_workers = 1
# The heartbeat interval, defaults to 5.
heartbeat_interval_seconds = 5
# The subscription expiration time, defaults to 10.
subscription_expiration_minutes = 10
# The maximum number of subscriptions, defaults to 100000000.
subscription_limit = 100000000
# Write service requests to the log, defaults to false.
log_requests = false
# Disable public endpoints, defaults to false.
secure_only = false
# Enable the query service, defaults to true.
query_service_enabled = true
# Enable the heartbeat service, defaults to false.
heartbeat_service_enabled = false
# Enable the block publishing service, defaults to false.
block_service_enabled = false
# Enable the transaction publishing service, defaults to false.
transaction_service_enabled = false
# The public query endpoint, defaults to 'tcp://*:9091'.
public_query_endpoint = tcp://*:9091
# The public heartbeat endpoint, defaults to 'tcp://*:9092'.
public_heartbeat_endpoint = tcp://*:9092
# The public block publishing endpoint, defaults to 'tcp://*:9093'.
public_block_endpoint = tcp://*:9093
# The public transaction publishing endpoint, defaults to 'tcp://*:9094'.
public_transaction_endpoint = tcp://*:9094
# The secure query endpoint, defaults to 'tcp://*:9081'.
secure_query_endpoint = tcp://*:9081
# The secure heartbeat endpoint, defaults to 'tcp://*:9082'.
secure_heartbeat_endpoint = tcp://*:9082
# The secure block publishing endpoint, defaults to 'tcp://*:9083'.
secure_block_endpoint = tcp://*:9083
# The secure transaction publishing endpoint, defaults to 'tcp://*:9084'.
secure_transaction_endpoint = tcp://*:9084
# The Z85-encoded private key of the server, enables secure endpoints.
#server_private_key =
# Allowed Z85-encoded public key of the client, multiple entries allowed.
#client_public_key =
# Allowed client IP address, multiple entries allowed.
#client_address = 127.0.0.1