Add support for carrot (legacy, view-incoming, and view-balance keys)#185
Add support for carrot (legacy, view-incoming, and view-balance keys)#185
Conversation
b5f9a65 to
9d44b7a
Compare
9d44b7a to
4de5926
Compare
|
View-balance keys have a decent amount of tests now for scanning, showing that it works. Only the REST API needs to be validated. A bug in fcmp++ subaddress generation code prevents the tests from passing right now. |
|
Additionally view-incoming keys should work out-of-the-box, except subaddresses is broken for them. A fix for this will come a bit later. |
4de5926 to
a179709
Compare
a179709 to
cc1aa4e
Compare
|
Updated With this, the view-incoming-key support is basically complete. Internal spends will be completely missed, but that is intended (and technically desired by end user). |
cc1aa4e to
acbb604
Compare
|
Realized I needed to enhance the tests for legacy-view keys with subaddress provisioning. So that was done. |
|
I am trying to test lws on stressnet but building this PR with docker fails in Ubuntu 24.04.3 LTS In Dockerfile I have made following changes.
Logs#17 685.0 [ 96%] Built target daemon_rpc_server
#17 685.0 make[3]: Entering directory '/monero/build/release'
#17 685.1 Scanning dependencies of target daemon
#17 685.1 make[3]: Leaving directory '/monero/build/release'
#17 685.1 make[3]: Entering directory '/monero/build/release'
#17 685.1 [ 98%] Building CXX object src/daemon/CMakeFiles/daemon.dir/command_server.cpp.o
#17 685.1 [ 98%] Building CXX object src/daemon/CMakeFiles/daemon.dir/command_parser_executor.cpp.o
#17 704.7 [ 98%] Building CXX object src/daemon/CMakeFiles/daemon.dir/daemon.cpp.o
#17 706.3 [ 98%] Building CXX object src/daemon/CMakeFiles/daemon.dir/executor.cpp.o
#17 709.1 [ 98%] Building CXX object src/daemon/CMakeFiles/daemon.dir/main.cpp.o
#17 730.4 [100%] Building CXX object src/daemon/CMakeFiles/daemon.dir/rpc_command_executor.cpp.o
#17 770.7 [100%] Linking CXX executable ../../bin/monerod
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-socket_base.o): in function `zmq::socket_base_t::connect(char const*)':
#17 772.5 (.text+0x5f2b): undefined reference to `pgm_freeaddrinfo'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::~gssapi_client_t()':
#17 772.5 (.text+0x5d): undefined reference to `gss_release_cred'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::process_next_token(zmq::msg_t*) [clone .part.0]':
#17 772.5 (.text+0x246): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::~gssapi_client_t()':
#17 772.5 (.text+0x780): undefined reference to `gss_release_cred'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::initialize_context()':
#17 772.5 (.text+0x7fd): undefined reference to `gss_init_sec_context'
#17 772.5 /usr/bin/ld: (.text+0x84d): undefined reference to `gss_import_name'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_client.o): in function `zmq::gssapi_client_t::produce_next_token(zmq::msg_t*)':
#17 772.5 (.text+0x8a0): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: (.text+0x8c2): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: (.text+0x8ce): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: (.text+0x8e2): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: (.text+0x8f7): undefined reference to `gss_delete_sec_context'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::~gssapi_server_t()':
#17 772.5 (.text+0x21c): undefined reference to `gss_release_cred'
#17 772.5 /usr/bin/ld: (.text+0x230): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::~gssapi_server_t()':
#17 772.5 (.text+0x36a): undefined reference to `gss_release_cred'
#17 772.5 /usr/bin/ld: (.text+0x37e): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::send_zap_request()':
#17 772.5 (.text+0x423): undefined reference to `gss_display_name'
#17 772.5 /usr/bin/ld: (.text+0x44c): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::produce_next_token(zmq::msg_t*)':
#17 772.5 (.text+0x4ae): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: (.text+0x4c0): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: (.text+0x4d5): undefined reference to `gss_delete_sec_context'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::process_next_token(zmq::msg_t*)':
#17 772.5 (.text+0x5ca): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_server.o): in function `zmq::gssapi_server_t::accept_context()':
#17 772.5 (.text+0x60a): undefined reference to `gss_accept_sec_context'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::init_address(char const*, pgm_addrinfo_t**, unsigned short*)':
#17 772.5 (.text+0xb2): undefined reference to `pgm_getaddrinfo'
#17 772.5 /usr/bin/ld: (.text+0x19f): undefined reference to `pgm_error_free'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::get_receiver_fds(int*, int*)':
#17 772.5 (.text+0x22a): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: (.text+0x25d): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::get_sender_fds(int*, int*, int*, int*)':
#17 772.5 (.text+0x4f6): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: (.text+0x529): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: (.text+0x55c): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o):(.text+0x58f): more undefined references to `pgm_getsockopt' follow
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::send(unsigned char*, unsigned long)':
#17 772.5 (.text+0x9c3): undefined reference to `pgm_send'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::get_rx_timeout()':
#17 772.5 (.text+0xba0): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::get_tx_timeout()':
#17 772.5 (.text+0xc92): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::get_max_tsdu_size()':
#17 772.5 (.text+0xd7d): undefined reference to `pgm_getsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::init(bool, char const*)':
#17 772.5 (.text+0xf1f): undefined reference to `pgm_socket'
#17 772.5 /usr/bin/ld: (.text+0xfc5): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0xfe8): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x102d): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x105f): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x1109): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o):(.text+0x112e): more undefined references to `pgm_setsockopt' follow
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::init(bool, char const*)':
#17 772.5 (.text+0x1297): undefined reference to `pgm_gsi_create_from_data'
#17 772.5 /usr/bin/ld: (.text+0x12eb): undefined reference to `pgm_bind3'
#17 772.5 /usr/bin/ld: (.text+0x13bc): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x13cf): undefined reference to `pgm_close'
#17 772.5 /usr/bin/ld: (.text+0x13e5): undefined reference to `pgm_freeaddrinfo'
#17 772.5 /usr/bin/ld: (.text+0x13fd): undefined reference to `pgm_error_free'
#17 772.5 /usr/bin/ld: (.text+0x144e): undefined reference to `pgm_socket'
#17 772.5 /usr/bin/ld: (.text+0x1566): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x1593): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x15bb): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x15de): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x1618): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x162a): undefined reference to `pgm_freeaddrinfo'
#17 772.5 /usr/bin/ld: (.text+0x1658): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x1685): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x16b8): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x16db): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: (.text+0x16ee): undefined reference to `pgm_connect'
#17 772.5 /usr/bin/ld: (.text+0x1786): undefined reference to `pgm_setsockopt'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::receive(void**, pgm_tsi_t const**)':
#17 772.5 (.text+0x1c0b): undefined reference to `pgm_recvmsgv'
#17 772.5 /usr/bin/ld: (.text+0x1ecf): undefined reference to `pgm_free'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::process_upstream()':
#17 772.5 (.text+0x21af): undefined reference to `pgm_recvmsgv'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-pgm_socket.o): in function `zmq::pgm_socket_t::~pgm_socket_t()':
#17 772.5 (.text+0x2317): undefined reference to `pgm_close'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::init(char const*, bool, bool)':
#17 772.5 (.text+0x65): undefined reference to `NORM_NODE_ANY'
#17 772.5 /usr/bin/ld: (.text+0x187): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x19e): undefined reference to `NormCreateSession'
#17 772.5 /usr/bin/ld: (.text+0x1a5): undefined reference to `NORM_SESSION_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x1ba): undefined reference to `NormIsUnicastAddress'
#17 772.5 /usr/bin/ld: (.text+0x1d3): undefined reference to `NormSetTTL'
#17 772.5 /usr/bin/ld: (.text+0x1eb): undefined reference to `NormSetRxPortReuse'
#17 772.5 /usr/bin/ld: (.text+0x1fc): undefined reference to `NormSetLoopback'
#17 772.5 /usr/bin/ld: (.text+0x210): undefined reference to `NormSetMulticastInterface'
#17 772.5 /usr/bin/ld: (.text+0x256): undefined reference to `NormSetDefaultUnicastNack'
#17 772.5 /usr/bin/ld: (.text+0x26c): undefined reference to `NormSetDefaultSyncPolicy'
#17 772.5 /usr/bin/ld: (.text+0x27d): undefined reference to `NormStartReceiver'
#17 772.5 /usr/bin/ld: (.text+0x298): undefined reference to `NormGetRandomSessionId'
#17 772.5 /usr/bin/ld: (.text+0x2c3): undefined reference to `NormStartSender'
#17 772.5 /usr/bin/ld: (.text+0x2df): undefined reference to `NormSetCongestionControl'
#17 772.5 /usr/bin/ld: (.text+0x302): undefined reference to `NormStreamOpen'
#17 772.5 /usr/bin/ld: (.text+0x309): undefined reference to `NORM_OBJECT_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x32d): undefined reference to `NormDestroyInstance'
#17 772.5 /usr/bin/ld: (.text+0x334): undefined reference to `NORM_SESSION_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x342): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x363): undefined reference to `NormCreateInstance'
#17 772.5 /usr/bin/ld: (.text+0x36a): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x3b0): undefined reference to `NormDestroyInstance'
#17 772.5 /usr/bin/ld: (.text+0x3b7): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::send_data()':
#17 772.5 (.text+0x79a): undefined reference to `NormStreamWrite'
#17 772.5 /usr/bin/ld: (.text+0x7f2): undefined reference to `NormStreamFlush'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::plug(zmq::io_thread_t*, zmq::session_base_t*)':
#17 772.5 (.text+0xa64): undefined reference to `NormGetDescriptor'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::recv_data(void const*)':
#17 772.5 (.text+0x1189): undefined reference to `NORM_OBJECT_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x119a): undefined reference to `NormObjectGetType'
#17 772.5 /usr/bin/ld: (.text+0x11ab): undefined reference to `NormObjectGetUserData'
#17 772.5 /usr/bin/ld: (.text+0x12b4): undefined reference to `NormStreamSeekMsgStart'
#17 772.5 /usr/bin/ld: (.text+0x12d5): undefined reference to `NormStreamRead'
#17 772.5 /usr/bin/ld: (.text+0x131a): undefined reference to `NormStreamRead'
#17 772.5 /usr/bin/ld: (.text+0x1848): undefined reference to `NormObjectSetUserData'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::restart_input()':
#17 772.5 (.text+0x19cc): undefined reference to `NORM_OBJECT_INVALID'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::in_event()':
#17 772.5 (.text+0x1a2c): undefined reference to `NormGetNextEvent'
#17 772.5 /usr/bin/ld: (.text+0x1a66): undefined reference to `NormObjectGetUserData'
#17 772.5 /usr/bin/ld: (.text+0x1b7e): undefined reference to `NormNodeDelete'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::shutdown()':
#17 772.5 (.text+0x1c8d): undefined reference to `NORM_SESSION_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x1c97): undefined reference to `NormDestroySession'
#17 772.5 /usr/bin/ld: (.text+0x1cac): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x1cb6): undefined reference to `NormStopInstance'
#17 772.5 /usr/bin/ld: (.text+0x1cc2): undefined reference to `NormDestroyInstance'
#17 772.5 /usr/bin/ld: (.text+0x1cd9): undefined reference to `NormStopReceiver'
#17 772.5 /usr/bin/ld: (.text+0x1d1d): undefined reference to `NormStopSender'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-norm_engine.o): in function `zmq::norm_engine_t::norm_engine_t(zmq::io_thread_t*, zmq::options_t const&)':
#17 772.5 (.text+0x26d3): undefined reference to `NORM_INSTANCE_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x26e1): undefined reference to `NORM_SESSION_INVALID'
#17 772.5 /usr/bin/ld: (.text+0x26fd): undefined reference to `NORM_OBJECT_INVALID'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-ip.o): in function `zmq::initialize_network()':
#17 772.5 (.text+0x4a6): undefined reference to `pgm_init'
#17 772.5 /usr/bin/ld: (.text+0x539): undefined reference to `pgm_error_free'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-ip.o): in function `zmq::shutdown_network()':
#17 772.5 (.text+0x5b9): undefined reference to `pgm_shutdown'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::~gssapi_mechanism_base_t()':
#17 772.5 (.text+0x12a): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: (.text+0x140): undefined reference to `gss_delete_sec_context'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::~gssapi_mechanism_base_t()':
#17 772.5 (.text+0x17a): undefined reference to `gss_release_name'
#17 772.5 /usr/bin/ld: (.text+0x190): undefined reference to `gss_delete_sec_context'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::encode_message(zmq::msg_t*)':
#17 772.5 (.text+0x28d): undefined reference to `gss_wrap'
#17 772.5 /usr/bin/ld: (.text+0x30c): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::decode_message(zmq::msg_t*)':
#17 772.5 (.text+0x5b9): undefined reference to `gss_unwrap'
#17 772.5 /usr/bin/ld: (.text+0x650): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: (.text+0x8ac): undefined reference to `gss_release_buffer'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::convert_nametype(int)':
#17 772.5 (.text+0xe47): undefined reference to `GSS_C_NT_USER_NAME'
#17 772.5 /usr/bin/ld: (.text+0xe53): undefined reference to `GSS_C_NT_HOSTBASED_SERVICE'
#17 772.5 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libzmq.a(libzmq_la-gssapi_mechanism_base.o): in function `zmq::gssapi_mechanism_base_t::acquire_credentials(char*, gss_cred_id_struct**, gss_OID_desc_struct*)':
#17 772.5 (.text+0xeb0): undefined reference to `gss_import_name'
#17 772.5 /usr/bin/ld: (.text+0xecf): undefined reference to `gss_acquire_cred'
#17 772.5 /usr/bin/ld: (.text+0xee0): undefined reference to `gss_release_name'
#17 772.5 collect2: error: ld returned 1 exit status
#17 772.5 make[3]: *** [src/daemon/CMakeFiles/daemon.dir/build.make:228: bin/monerod] Error 1
#17 772.5 make[3]: Leaving directory '/monero/build/release'
#17 772.5 make[2]: Leaving directory '/monero/build/release'
#17 772.5 make[2]: *** [CMakeFiles/Makefile2:4280: src/daemon/CMakeFiles/daemon.dir/all] Error 2
#17 772.5 make[1]: *** [CMakeFiles/Makefile2:4287: src/daemon/CMakeFiles/daemon.dir/rule] Error 2
#17 772.5 make[1]: Leaving directory '/monero/build/release'
#17 772.5 make: Leaving directory '/monero/build/release'
#17 772.5 make: *** [Makefile:1397: daemon] Error 2
#17 ERROR: process "/bin/sh -c . $HOME/.cargo/env && git clone --recursive --branch ${MONERO_BRANCH} https://github.com/seraphis-migration/monero . && test `git rev-parse HEAD` = ${MONERO_COMMIT_HASH} || exit 1 && git submodule init && git submodule update && mkdir -p build/release && cd build/release && case ${TARGETARCH:-amd64} in \"arm64\") cmake -D STATIC=ON -D ARCH=\"armv8-a\" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=release -D BUILD_TAG=\"linux-armv8\" ../.. ;; \"amd64\") cmake -D STATIC=ON -D ARCH=\"x86-64\" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=release -D BUILD_TAG=\"linux-x64\" ../.. ;; *) echo \"Dockerfile does not support this platform\"; exit 1 ;; esac && cd /monero && . $HOME/.cargo/env && nice -n 19 ionice -c2 -n7 make -j${NPROC:-$(nproc)} -C build/release daemon lmdb_lib multisig" did not complete successfully: exit code: 2
------
> [build 9/12] RUN . $HOME/.cargo/env && git clone --recursive --branch v0.19.0.0-alpha.1.4 https://github.com/seraphis-migration/monero . && test `git rev-parse HEAD` = 6a5fbd96f63c68074fb5d8e206d77452fa471de9 || exit 1 && git submodule init && git submodule update && mkdir -p build/release && cd build/release && case amd64 in "arm64") cmake -D STATIC=ON -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=release -D BUILD_TAG="linux-armv8" ../.. ;; "amd64") cmake -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=release -D BUILD_TAG="linux-x64" ../.. ;; *) echo "Dockerfile does not support this platform"; exit 1 ;; esac && cd /monero && . $HOME/.cargo/env && nice -n 19 ionice -c2 -n7 make -j${NPROC:-$(nproc)} -C build/release daemon lmdb_lib multisig:
772.5 /usr/bin/ld: (.text+0xee0): undefined reference to `gss_release_name'
772.5 collect2: error: ld returned 1 exit status
772.5 make[3]: *** [src/daemon/CMakeFiles/daemon.dir/build.make:228: bin/monerod] Error 1
772.5 make[3]: Leaving directory '/monero/build/release'
772.5 make[2]: Leaving directory '/monero/build/release'
772.5 make[2]: *** [CMakeFiles/Makefile2:4280: src/daemon/CMakeFiles/daemon.dir/all] Error 2
772.5 make[1]: *** [CMakeFiles/Makefile2:4287: src/daemon/CMakeFiles/daemon.dir/rule] Error 2
772.5 make[1]: Leaving directory '/monero/build/release'
772.5 make: Leaving directory '/monero/build/release'
772.5 make: *** [Makefile:1397: daemon] Error 2
------
Dockerfile:85
|
|
Use the latest |
|
Using Logs > [build 16/16] RUN set -ex && git submodule init && git submodule update && rm -rf build && mkdir build && cd build && cmake -D CMAKE_BUILD_TYPE=Release -D STATIC=ON -D BUILD_TESTS=ON -D WITH_RMQ=ON -D MONERO_SOURCE_DIR=/monero -D MONERO_BUILD_DIR=/monero/build/release .. && make -j${NPROC:-$(nproc)} && ./tests/unit/monero-lws-unit:
10.59 -- Detecting CXX compiler ABI info - done
10.60 -- Check for working CXX compiler: /usr/bin/c++ - skipped
10.60 -- Detecting CXX compile features
10.60 -- Detecting CXX compile features - done
10.60 CMake Error at CMakeLists.txt:173 (message):
10.60 Unable to find required Monero library wallet
10.60
10.60
10.60 -- Configuring incomplete, errors occurred!
10.60 See also "/monero-lws/build/CMakeFiles/CMakeOutput.log".
------
Dockerfile:122
|
acbb604 to
d4eb3da
Compare
|
Rebased and fixed a small DB upgrade issue. |
d4eb3da to
b440c4e
Compare
|
Added missing files. |
b440c4e to
b6e0a27
Compare
|
Updates to build process. @sa8ab try now with these latest changes. The Dockerfile should work, provided you use the correct branch. |
|
With last changes Dockerfile builds but with a small change After adding an account it starts logging too many messages which are same and with very low delay in between for example ( about 50 per second ): Logs
lws | 2025-11-28 00:20:42.247 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.247 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.248 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.264 I Retrieving current active account list lws | 2025-11-28 00:20:42.264 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.369 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.369 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.370 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.370 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.372 I Retrieving current active account list lws | 2025-11-28 00:20:42.372 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.473 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.473 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.474 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.474 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.475 I Retrieving current active account list lws | 2025-11-28 00:20:42.475 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.574 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.574 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.575 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.575 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.575 I Retrieving current active account list lws | 2025-11-28 00:20:42.576 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.677 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.677 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.677 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.677 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.678 I Retrieving current active account list lws | 2025-11-28 00:20:42.678 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.778 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.778 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.779 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.779 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.780 I Retrieving current active account list lws | 2025-11-28 00:20:42.780 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.881 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.881 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.882 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.882 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.883 I Retrieving current active account list lws | 2025-11-28 00:20:42.883 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:42.982 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:42.982 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:42.982 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:42.983 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:42.983 I Retrieving current active account list lws | 2025-11-28 00:20:42.984 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.085 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.085 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.086 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.086 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.087 I Retrieving current active account list lws | 2025-11-28 00:20:43.087 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.186 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.186 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.187 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.187 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.188 I Retrieving current active account list lws | 2025-11-28 00:20:43.188 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.288 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.288 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.289 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.289 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.290 I Retrieving current active account list lws | 2025-11-28 00:20:43.290 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.388 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.388 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.389 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.389 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.390 I Retrieving current active account list lws | 2025-11-28 00:20:43.390 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.491 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.491 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.492 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.492 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.493 I Retrieving current active account list lws | 2025-11-28 00:20:43.493 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.593 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.593 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.594 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.594 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.595 I Retrieving current active account list lws | 2025-11-28 00:20:43.595 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.694 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.694 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.694 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.695 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.695 I Retrieving current active account list lws | 2025-11-28 00:20:43.696 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.794 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.794 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.795 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.795 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.796 I Retrieving current active account list lws | 2025-11-28 00:20:43.796 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.895 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.895 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:43.896 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:43.896 I Starting blockchain sync with daemon lws | 2025-11-28 00:20:43.897 I Retrieving current active account list lws | 2025-11-28 00:20:43.897 I Starting scan loops on 2 thread(s) with 1 account(s) lws | 2025-11-28 00:20:43.999 I Thread 1 processed 11 blocks(s) @ height 2885361 against 1 account(s) lws | 2025-11-28 00:20:43.999 I Blockchain reorg detected, resetting state lws | 2025-11-28 00:20:44.001 D Stopping rpc::scanner::server async operations lws | 2025-11-28 00:20:44.001 I Starting blockchain sync with daemon And new transactions are not triggering the webhook, at least as I noticed cause there are too many logs. Final Dockerfile: Details
# Initial base from https://github.com/sethforprivacy/monero-lws/blob/588c7f1965d3afbda8a65dc870645650e063e897/Dockerfile
# Set monerod version to install from github
ARG MONERO_COMMIT_HASH=6a5fbd96f63c68074fb5d8e206d77452fa471de9
# Select ubuntu:22.04 for the build image base
FROM ubuntu:22.04 as build
# Install all dependencies for a static build
# Added DEBIAN_FRONTEND=noninteractive to workaround tzdata prompt on installation
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get upgrade --no-install-recommends -y
RUN apt-get install --no-install-recommends -y \
build-essential \
ca-certificates \
cargo \
ccache \
cmake \
doxygen \
git \
libgnutls30 \
libldns-dev \
liblzma-dev \
libprotobuf-dev \
librabbitmq-dev \
libsodium-dev \
libssl-dev \
libudev-dev \
libunwind8-dev \
libusb-1.0-0-dev \
pkg-config \
wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Set necessary args and environment variables for building Monero
ARG MONERO_BRANCH
ARG MONERO_COMMIT_HASH
ARG NPROC
ARG TARGETARCH
ENV CFLAGS='-fPIC'
ENV CXXFLAGS='-fPIC -DELPP_FEATURE_CRASH_LOG'
ENV USE_SINGLE_BUILDDIR 1
ENV BOOST_DEBUG 1
# Build expat, a dependency for libunbound
RUN set -ex && wget https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.bz2 && \
echo "59c31441fec9a66205307749eccfee551055f2d792f329f18d97099e919a3b2f expat-2.7.3.tar.bz2" | sha256sum -c && \
tar -xf expat-2.7.3.tar.bz2 && \
rm expat-2.7.3.tar.bz2 && \
cd expat-2.7.3 && \
./configure --enable-static --disable-shared --prefix=/usr && \
make -j${NPROC:-$(nproc)} && \
make -j${NPROC:-$(nproc)} install
# Build libunbound for static builds
WORKDIR /tmp
RUN set -ex && wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.24.1.tar.gz && \
echo "7f2b1633e239409619ae0527f67878b0f33ae0ec0ee5a3a51c042c359ba1eeab unbound-1.24.1.tar.gz" | sha256sum -c && \
tar -xzf unbound-1.24.1.tar.gz && \
rm unbound-1.24.1.tar.gz && \
cd unbound-1.24.1 && \
./configure --disable-shared --enable-static --without-pyunbound --with-libexpat=/usr --with-ssl=/usr --with-libevent=no --without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only --with-pic && \
make -j${NPROC:-$(nproc)} && \
make -j${NPROC:-$(nproc)} install
# Build libzmq for static builds
WORKDIR /tmp
RUN set -ex && wget https://github.com/zeromq/libzmq/releases/download/v4.3.5/zeromq-4.3.5.tar.gz && \
echo "6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43 zeromq-4.3.5.tar.gz" | sha256sum -c && \
tar -xzf zeromq-4.3.5.tar.gz && \
rm zeromq-4.3.5.tar.gz && \
cd zeromq-4.3.5 && \
./configure --disable-shared --enable-static --with-libsodium --disable-libunwind --with-pic && \
make -j${NPROC:-$(nproc)} && \
make -j${NPROC:-$(nproc)} install
# Build boost for latest security updates
WORKDIR /tmp
RUN set -ex && wget https://archives.boost.io/release/1.89.0/source/boost_1_89_0.tar.bz2 && \
echo "85a33fa22621b4f314f8e85e1a5e2a9363d22e4f4992925d4bb3bc631b5a0c7a boost_1_89_0.tar.bz2" | sha256sum -c && \
tar -xf boost_1_89_0.tar.bz2 && \
rm boost_1_89_0.tar.bz2 && \
cd boost_1_89_0 && \
./bootstrap.sh && \
./b2 -j${NPROC:-$(nproc)} runtime-link=static link=static threading=multi variant=release \
--with-chrono --with-context --with-coroutine --with-date_time --with-filesystem --with-locale \
--with-program_options --with-regex --with-serialization --with-serialization install
# Switch to Monero source directory
WORKDIR /monero
# Git pull Monero source at specified tag/branch and compile monerod binary
RUN git clone --recursive \
https://github.com/seraphis-migration/monero . \
&& git checkout ${MONERO_COMMIT_HASH} \
&& git submodule init && git submodule update \
&& mkdir -p build/release && cd build/release \
# Create make build files manually for release-static-linux-${TARGETARCH}
&& case ${TARGETARCH:-amd64} in \
"arm64") cmake -D STATIC=ON -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-armv8" ../.. ;; \
"amd64") cmake -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=Release -D BUILD_TAG="linux-x64" ../.. ;; \
*) echo "Dockerfile does not support this platform"; exit 1 ;; \
esac \
# Build only monerod binary using number of available threads
&& cd /monero && nice -n 19 ionice -c2 -n7 make -j${NPROC:-$(nproc)} -C build/release daemon lmdb_lib multisig wallet
# Switch to monero-lws source directory
WORKDIR /monero-lws
COPY . .
ARG NPROC
RUN set -ex \
&& git submodule init && git submodule update \
&& rm -rf build && mkdir build && cd build \
&& cmake -D CMAKE_BUILD_TYPE=Release -D STATIC=ON -D BUILD_TESTS=ON -D WITH_RMQ=ON -D MONERO_SOURCE_DIR=/monero -D MONERO_BUILD_DIR=/monero/build/release .. \
&& make -j${NPROC:-$(nproc)}
# && ./tests/unit/monero-lws-unit
# Begin final image build
# Select Ubuntu 20.04LTS for the image base
FROM ubuntu:22.04
# Add user and setup directories for monero-lws
RUN useradd -ms /bin/bash monero-lws \
&& mkdir -p /home/monero-lws/.bitmonero/light_wallet_server \
&& chown -R monero-lws:monero-lws /home/monero-lws/.bitmonero
USER monero-lws
# Switch to home directory and install newly built monero-lws binary
WORKDIR /home/monero-lws
COPY --chown=monero-lws:monero-lws --from=build /monero-lws/build/src/monero-lws-daemon /usr/local/bin/
COPY --chown=monero-lws:monero-lws --from=build /monero-lws/build/src/monero-lws-admin /usr/local/bin/
# Expose REST server port
EXPOSE 8443
ENTRYPOINT ["monero-lws-daemon"]
# CMD ["--daemon=tcp://monerod:18082", "--sub=tcp://monerod:18083", "--log-level=4"]
|
|
Adding accounts and webhooks work as expected ( they appear in list webhooks ) but I looks like nothing happens on transaction or confirmations ( 0 or 1 ). The webhooks are not called and I don't see the logs for them either. The logs have been same as previous comment but they now appear about every 4 seconds. Logs
lws | 2025-11-30 14:25:57.540 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:25:57.548 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:25:57.548 I Starting blockchain sync with daemon lws | 2025-11-30 14:25:57.551 I Retrieving current active account list lws | 2025-11-30 14:25:57.553 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:02.054 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:02.054 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:02.313 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:02.313 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:02.322 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:02.322 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:02.323 I Retrieving current active account list lws | 2025-11-30 14:26:02.325 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:06.944 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:06.944 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:07.137 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:07.137 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:07.146 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:07.146 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:07.148 I Retrieving current active account list lws | 2025-11-30 14:26:07.149 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:11.773 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:11.773 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:12.122 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:12.122 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:12.135 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:12.135 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:12.138 I Retrieving current active account list lws | 2025-11-30 14:26:12.138 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:17.021 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:17.022 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:17.146 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:17.146 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:17.154 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:17.154 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:17.156 I Retrieving current active account list lws | 2025-11-30 14:26:17.157 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:21.823 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:21.823 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:21.986 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:21.986 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:21.997 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:21.997 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:21.998 I Retrieving current active account list lws | 2025-11-30 14:26:22.000 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:26.959 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:26.959 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:27.203 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:27.203 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:27.212 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:27.212 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:27.214 I Retrieving current active account list lws | 2025-11-30 14:26:27.215 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:31.727 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:31.727 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:32.073 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:32.073 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:32.085 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:32.085 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:32.087 I Retrieving current active account list lws | 2025-11-30 14:26:32.088 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-11-30 14:26:36.796 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-11-30 14:26:36.796 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:36.971 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-11-30 14:26:36.971 I Blockchain reorg detected, resetting state lws | 2025-11-30 14:26:36.981 D Stopping rpc::scanner::server async operations lws | 2025-11-30 14:26:36.981 I Starting blockchain sync with daemon lws | 2025-11-30 14:26:37.089 I Retrieving current active account list lws | 2025-11-30 14:26:37.089 I Starting scan loops on 2 thread(s) with 2 account(s) |
|
Why is there so many reorgs detected? Thats more critical than the webhooks. Looks like something is broken with multi-thread scanning. Also, conf-0 webhooks require usage of the |
|
Actually, thats why nothing is being reported, the scan is never making any progress. |
|
I am using same configuration as with the release branch for running both The logs for reord are still active but now it is about 5-6 seconds each Details
lws | 2025-12-01 12:27:14.951 I Retrieving current active account list lws | 2025-12-01 12:27:14.953 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:19.525 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:19.525 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:19.941 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:19.941 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:19.951 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:19.951 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:19.952 I Retrieving current active account list lws | 2025-12-01 12:27:19.955 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:24.428 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:24.428 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:24.849 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:24.849 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:24.859 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:24.859 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:24.860 I Retrieving current active account list lws | 2025-12-01 12:27:24.861 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:29.395 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:29.396 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:29.666 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:29.666 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:29.680 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:29.680 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:29.681 I Retrieving current active account list lws | 2025-12-01 12:27:29.682 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:35.088 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:35.088 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:35.409 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:35.409 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:35.423 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:35.423 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:38.639 I Retrieving current active account list lws | 2025-12-01 12:27:38.640 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:46.614 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:46.615 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:48.998 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:48.998 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:49.008 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:49.008 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:49.927 I Retrieving current active account list lws | 2025-12-01 12:27:49.927 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:27:54.459 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:27:54.459 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:54.748 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:27:54.748 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:27:54.756 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:27:54.756 I Starting blockchain sync with daemon lws | 2025-12-01 12:27:54.759 I Retrieving current active account list lws | 2025-12-01 12:27:54.759 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:28:00.334 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:28:00.334 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:00.754 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:28:00.754 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:00.767 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:28:00.767 I Starting blockchain sync with daemon lws | 2025-12-01 12:28:00.768 I Retrieving current active account list lws | 2025-12-01 12:28:00.771 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:28:05.269 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:28:05.270 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:06.715 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:28:06.715 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:06.725 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:28:06.725 I Starting blockchain sync with daemon lws | 2025-12-01 12:28:06.726 I Retrieving current active account list lws | 2025-12-01 12:28:06.727 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:28:10.860 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:28:10.861 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:12.176 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:28:12.176 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:12.186 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:28:12.186 I Starting blockchain sync with daemon lws | 2025-12-01 12:28:12.187 I Retrieving current active account list lws | 2025-12-01 12:28:12.189 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:28:16.535 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:28:16.535 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:17.827 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:28:17.827 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:17.836 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:28:17.836 I Starting blockchain sync with daemon lws | 2025-12-01 12:28:17.837 I Retrieving current active account list lws | 2025-12-01 12:28:17.838 I Starting scan loops on 2 thread(s) with 2 account(s) lws | 2025-12-01 12:28:22.646 I Thread 1 processed 381 blocks(s) @ height 2885731 against 1 account(s) lws | 2025-12-01 12:28:22.646 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:22.664 I Thread 0 processed 292 blocks(s) @ height 2886381 against 1 account(s) lws | 2025-12-01 12:28:22.664 I Blockchain reorg detected, resetting state lws | 2025-12-01 12:28:22.676 D Stopping rpc::scanner::server async operations lws | 2025-12-01 12:28:22.676 I Starting blockchain sync with daemon lws | 2025-12-01 12:28:22.678 I Retrieving current active account list lws | 2025-12-01 12:28:22.679 I Starting scan loops on 2 thread(s) with 2 account(s) |
bd7de5f to
df8d1d2
Compare
|
The tests halted because of a racy bug in the scanner. This has been fixed, and will likely be a separate PR to take care it quicker. The scanner was unable to make progress because some info was being left out of a block - the tree root hash and depth numbers. This has been fixed, but requires a corresponding patch in |
|
For those interested, I did a rebase + fixed a few outstanding things with this patch. |
|
@sa8ab The changes were just merged to stressnet+stage branches, so try running your tests again with latest from seraphis-migration and this PR. |
|
Tried out with latest from this PR and Monero LWS options: Monerod options Sometimes I get this from monero ( not sure if related but sharing if useful ) Monerod logsmonero | 2025-12-09 17:55:56.707 E tx included reference block that was too high monero | 2025-12-09 17:55:56.707 E failed to get tree root monero | 2025-12-09 17:55:56.709 E tx <0a1cd7b00b5121f43580fddff2c9bb42f004bc5a84e73b263ac9e77cdcbdf1aa> included reference block that was too high monero | 2025-12-09 17:55:56.709 E failed to get tree root monero | 2025-12-09 17:55:56.718 E tx <6347a4ed47c2588a1346c4aaaec7baa3bb4b911dbe2ffd063e3b23759d28fcae> included reference block that was too high monero | 2025-12-09 17:55:56.718 E failed to get tree root monero | 2025-12-09 17:55:56.720 E tx <785cffea5bd4f8a149045a38ae1c03c50be2bc874b5f0f994d6ddfb4ec93aaaf> included reference block that was too high monero | 2025-12-09 17:55:56.720 E failed to get tree root Then this from LWS LWS Logs
Next I am trying multiple recipients in single transaction ( |
|
Not sure why 0-conf failed. Some fcmp++ fields are missing, but it shouldn't matter for 0-conf as everything in |
|
Debug mechanism -> I will debug/try this locally, unless you provide more logs with some txpool related error. |
df8d1d2 to
f15bf71
Compare
|
Latest round of changes gets it working with |
|
I have this error with |
|
Why do you think the error is related to memory usage? And stressnet should have higher than normal memory usage due to the volume of txes. |
|
Anyway this explains why 0-conf isn't working. |
After stopping monero lws the usage went to normal but apparently it was because of the node, not just LWS. It sounds to be normal now after I used the latest update from this PR seraphis-migration/monero#275, but the error still exists. |
the txpool is full. Well over 100mb |
Does that mean you know what change is needed to get 0 conf to work? |
|
@FiatDemise not exactly. The log indicates that some array bounds check failed, but not which one. |
|
The logs ( On the last test I did still only conf-1 worked. |
|
On last tests I started lws with new database, on monero node I have these logs that appear sometimes On lws it was all normal, only once after the log of Tried adding new accounts and testing the webhooks with them. Still conf-0 is not working and only conf-1 is working. |
|
This log message is expected when a re-org occurs. |
f15bf71 to
c36f406
Compare
|
Force pushed a change that includes support for new ZMQ-RPC endpoints |
|
@sa8ab I cannot reproduce your issue - 0-conf is still working in my tests. It was missing some fields ( My best guess is that there is something wrong with your |
c36f406 to
438ea91
Compare
|
Force pushed a change to include latest fcmp++ fields in the output side. |
|
Also @sa8ab , this may be something |
438ea91 to
85fa2ef
Compare
|
Force pushed a rebase, and a slight change to the REST API naming scheme. |
85fa2ef to
064e3c0
Compare
|
Force pushed a rebase + changes to match the latest carrot/fcmp++ branch. The corresponding changes to |
064e3c0 to
38b9722
Compare
|
Force pushed some bug fixes after testing with lwsf. |
This is a draft for the carrot/fcmp++ changes that are upcoming. The CI should fail initially, as this only works with the fcmp++ branch of Monero. This PR will be in draft status until fcmp++ code is merged into the Monero repo, and then proper CI will run.
Latest Status 2026/04/02
The unit tests indicate that legacy, view-incoming, and view-balance key scanning works with incoming carrot/fcmp++ XMR, which is useful for xmrchat et al which need real-time reporting. The same tests also verify that legacy and view-balance keys detect spends, making lws useful for displaying the balance of recovered wallets. This branch now supports the newest changes to the key-image generation.
This PR also provides a new REST endpoint:
get_tree_paths. That endpoint takes "legacy" output ids or new "unified" output ids, and returns everything needed to construct a fcmp++ tree needed for transaction construction. In other words, this PR is fully ready for fcmp++ receiving and spending.