Git Product home page Git Product logo

monero-lws's People

Contributors

j-berman avatar leonero avatar serhack avatar thecharlatan avatar trasherdk avatar vdo avatar vtnerd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

monero-lws's Issues

Monero zmq crash takes down `monero-lws-daemon`. (Probably)

monerod is running, all good.

tcp        0      0 0.0.0.0:38080      0.0.0.0:*               LISTEN      7425/monerod        
tcp        0      0 127.0.0.1:38081    0.0.0.0:*               LISTEN      7425/monerod        
tcp        0      0 1.2.3.4:38082      0.0.0.0:*               LISTEN      7425/monerod        
tcp        0      0 1.2.3.4:38083      0.0.0.0:*               LISTEN      7425/monerod        
tcp        0      0 1.2.3.4:38084      0.0.0.0:*               LISTEN      7425/monerod        

monerod is still running, but zmq is gone.

tcp        0      0 0.0.0.0:38080      0.0.0.0:*               LISTEN      6527/monerod        
tcp        0      0 127.0.0.1:38081    0.0.0.0:*               LISTEN      6527/monerod        
tcp        0      0 1.2.3.4:38084      0.0.0.0:*               LISTEN      6527/monerod        

monero-lws-daemon is running on a different host.
After some time, after zmq is gone, this happens.

2022-11-11 21:34:43.847 I Retrieving current active account list
2022-11-11 21:34:43.847 I No active accounts
2022-11-11 21:34:53.848 I Starting blockchain sync with daemon
2022-11-11 21:35:24.315 W Failed to connect to daemon at tcp://1.2.3.4:38082
2022-11-11 21:35:24.315 I Retrieving current active account list
2022-11-11 21:35:24.315 I No active accounts
2022-11-11 21:35:34.356 E thrown at scanner.cpp:800: Too many open files

There's a shitload of Failed to connect to daemon at tcp://1.2.3.4:38082 before the crash, so how long after, I don't know.

Unable to build monero-lws

Hello, tried to build monero-lws against current monero release-v0.18 and received an error: undefined reference to symbol 'crypto_verify_32

Full build log:
`

dem@dem-mate:~/monero-lws/build$ cmake -DMONERO_SOURCE_DIR=/home/dem/monero -DMONERO_BUILD_DIR=/home/dem/monero/build/Linux/release-v0.18/release ..
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dem/monero-lws/build

end of make command:
[ 51%] Built target monero-lws-util
[ 53%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/error.cpp.o
[ 55%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/read.cpp.o
[ 58%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/write.cpp.o
[ 60%] Linking CXX static library libmonero-lws-wire-json.a
[ 60%] Built target monero-lws-wire-json
[ 62%] Building CXX object src/wire/wrapper/CMakeFiles/monero-lws-wire-wrapper.dir/variant.cpp.o
[ 65%] Linking CXX static library libmonero-lws-wire-wrapper.a
[ 65%] Built target monero-lws-wire-wrapper
[ 67%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/admin.cpp.o
[ 69%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/client.cpp.o
[ 72%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/daemon_pub.cpp.o
[ 74%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/daemon_zmq.cpp.o
[ 76%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/light_wallet.cpp.o
[ 79%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/lws_pub.cpp.o
[ 81%] Building CXX object src/rpc/CMakeFiles/monero-lws-rpc.dir/rates.cpp.o
[ 83%] Linking CXX static library libmonero-lws-rpc.a
[ 83%] Built target monero-lws-rpc
[ 86%] Building CXX object src/CMakeFiles/monero-lws-daemon-common.dir/rest_server.cpp.o
[ 88%] Building CXX object src/CMakeFiles/monero-lws-daemon-common.dir/scanner.cpp.o
[ 90%] Linking CXX static library libmonero-lws-daemon-common.a
[ 90%] Built target monero-lws-daemon-common
[ 93%] Building CXX object src/CMakeFiles/monero-lws-daemon.dir/server_main.cpp.o
[ 95%] Linking CXX executable monero-lws-daemon
/usr/bin/ld: /home/dem/monero/build/Linux/release-v0.18/release/src/cryptonote_core/libcryptonote_core.a(cryptonote_tx_utils.cpp.o): undefined reference to symbol 'crypto_verify_32'
/usr/bin/ld: /lib/x86_64-linux-gnu/libsodium.so.23: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/monero-lws-daemon.dir/build.make:146: src/monero-lws-daemon] Error 1
make[1]: *** [CMakeFiles/Makefile2:295: src/CMakeFiles/monero-lws-daemon.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

`

Rest API usage examples

Could you please give some basic examples of how to communicate with this service using REST API? All CURL's just return an empty response message, ie:

ubuntu@ip-10-20-0-169:~$ curl --location --request POST 'http://127.0.0.1:8443/import_request?address=47smcRfD5u2BRa3BFoweA56qQgVZnktoJJXHctdXGWW3RH4pRavkYXKWC3QR5GeJ3fY8RkVP2Ai9eWV6yD5UuQugMum5DE3&view_key=4aa48a80104523e57dd20eb49a00cb7f8de2fb317013d97bd7d040a89fb7ae0d'
curl: (52) Empty reply from server

I also get strange failure messages trying to set the service to accept all pending requests:

ubuntu@ip-10-20-0-169:~$ monero-lws-admin accept_requests create $(monero-lws-admin list_requests | jq -j '.create? | .[]? | .address?+" "')
accept_requests requires 2 or more arguments

get_address_tx discrepancies between LWS and api.mymonero.com

I notice 2 discrepancies between LWS and api.mymonero.com API responses to the get_address_tx call after making the first spend from a fresh wallet.

  1. MyMonero API sends a "fee" property with the fee amount in a string in one of the transactions in the transaction array (the one that contains a value for total_sent.

  2. MyMonero API does not include the spent_outputs property on transactions in the transaction array when the array is empty.

Example response from api.mymonero.com for the transactions array:

"transactions": [
    {
      "hash": "xxxx",
      "id": xxxxx,
      "timestamp": "xxxxx",
      "total_received": "1000000000",
      "total_sent": "0",
      "unlock_time": 0,
      "height": xxxxx,
      "coinbase": false,
      "mempool": false,
      "mixin": 15,
      "payment_id": "xxxxx"
    },
{
      "hash": "xxxx",
      "id": xxxxxxx,
      "timestamp": "xxxxxx",
      "total_received": "942420000",
      "total_sent": "1000000000",
      "fee": "47580000",
      "unlock_time": 0,
      "height": xxxxxx,
      "coinbase": false,
      "mempool": false,
      "mixin": 15,
      "payment_id": "xxxxxx",
      "spent_outputs": [
        {
          "tx_pub_key": "xxxxxx",
          "key_image": "xxxx",
          "amount": "1000000000",
          "out_index": 1,
          "mixin": 15
        }
      ]
    }
    ]

LWS get_address_tx response for transactions array:

"transactions": [
    {
      "id": 0,
      "hash": "xxxxx",
      "timestamp": "xxxxx",
      "total_received": "1000000000",
      "total_sent": "0",
      "unlock_time": 0,
      "height": xxxxx,
      "payment_id": "xxxxx",
      "coinbase": false,
      "mempool": false,
      "mixin": 15,
      "spent_outputs": []
    },
    {
      "id": 1,
      "hash": "xxxxx",
      "timestamp": "2023-04-22",
      "total_received": "942420000",
      "total_sent": "1000000000",
      "unlock_time": 0,
      "height": 2869584,
      "payment_id": "xxxxx",
      "coinbase": false,
      "mempool": false,
      "mixin": 15,
      "spent_outputs": [
        {
          "amount": "1000000000",
          "key_image": "xxxxx",
          "tx_pub_key": "xxxxx",
          "out_index": 1,
          "mixin": 15
        }
      ]
    }
  ]

I think the result of these (and there are likely more) discrepancies is a lot of bugginess (transaction calculation issues in particular) when trying to use the MyMonero wallets and libraries (MyMonero-utils) with LWS. I haven't looked closely at the LWS API spec, but from an end user and community standpoint, there are basically zero out of the box options out there for consuming the open source LWS server, so I would probably recommend updating this library to match MyMonero.

how to solve cors.

Access to XMLHttpRequest at 'http://127.0.0.1:8443/login' from origin 'http://127.0.0.1:9110' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
index.js:98 ❌ Error: Connection Failure

i have added --access-control-origin http://127.0.0.1:9110 . while running lws daemon . but still i am facing this issue .

Build issue, Boost libraries for monero build differs from this project

selsta@mbpR ~/d/m/build (develop)> cmake -DMONERO_SOURCE_DIR="/Users/selsta/dev/monero" -DMONERO_BUILD_DIR="/Users/selsta/dev/monero/build/Darwin/master/release/" ..
-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
CMake Error at CMakeLists.txt:126 (message):
  Boost libraries for monero build differs from this project


-- Configuring incomplete, errors occurred!
See also "/Users/selsta/dev/monero-lws/build/CMakeFiles/CMakeOutput.log".
  • macOS 10.15.6
  • cmake version 3.18.3
  • boost: 1.73.0

lto1: internal compiler error: Segmentation fault

[93%] Linking CXX executable monero-lws-daemon
during IPA pass: icf
lto1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-9/README.Bugs for instructions.
lto-wrapper: fatal error: /usr/bin/c++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/monero-lws-daemon.dir/build.make:153: src/monero-lws-daemon] Error 1
make[1]: *** [CMakeFiles/Makefile2:204: src/CMakeFiles/monero-lws-daemon.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Need a fix

Database error when rescanning

I tried to rescan at a higher with with the command:
monero-lws-admin rescan 2275000 423hS3xz...ECBEGAs

then I got an error in the logs:


2022-06-08 14:56:12.791	I Processed 999 block(s) against 2 account(s)
2022-06-08 14:56:15.777	I Processed 999 block(s) against 2 account(s)
2022-06-08 14:56:19.026	I Processed 999 block(s) against 2 account(s)
2022-06-08 14:56:21.437	I Processed 999 block(s) against 2 account(s)
2022-06-08 14:56:23.968	E Failed to update accounts on disk (thrown at scanner.cpp:496): MDB_NOTFOUND: No matching key/data pair found
2022-06-08 14:56:23.973	D Problems at ssl shutdown: uninitialized
2022-06-08 14:56:23.974	D Problems at cancel: Bad file descriptor
2022-06-08 14:56:23.974	D Problems at shutdown: Bad file descriptor
2022-06-08 14:56:23.987	T [sock -1] Socket destroyed without shutdown.
2022-06-08 14:56:23.988	T [sock -1] Socket destroyed
2022-06-08 14:56:23.988	D Destructing connection #27 to 0.0.0.0
2022-06-08 14:56:23.988	T [sock 44] Socket destroyed without shutdown.
2022-06-08 14:56:23.988	T Closed connection from host 172.20.0.4: 8
2022-06-08 14:56:23.988	T [sock 44] Socket destroyed

Now the container keeps restarting but looks like it can't load the DB again:

root@mainnet:/opt/xmr.sh# docker logs monero-lws --tail 20 -f
2022-06-08 15:03:08.724	I Starting blockchain sync with daemon
2022-06-08 15:03:08.731	I [PARSE URI] regex not matched for uri: ^((.*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2022-06-08 15:03:08.731	I Binding on 0.0.0.0 (IPv4):8000
2022-06-08 15:03:08.731	D start accept (IPv4)
2022-06-08 15:03:08.731	D Spawned connection #0 to 0.0.0.0 currently we have sockets count:1
2022-06-08 15:03:08.731	D test, connection constructor set m_connection_type=1
2022-06-08 15:03:08.731	I Run net_service loop( 1 threads)...
2022-06-08 15:03:08.732	D Run server thread name: NET
2022-06-08 15:03:08.732	D Reiniting OK.
2022-06-08 15:03:08.732	I Listening for REST clients at http://0.0.0.0:8000
2022-06-08 15:03:08.732	I Retrieving current active account list
2022-06-08 15:03:08.732	I Starting scan loops on 2 thread(s) with 4 account(s)
2022-06-08 15:03:08.772	I Processed 2 block(s) against 2 account(s)
2022-06-08 15:03:11.705	E Failed to update accounts on disk (thrown at scanner.cpp:496): MDB_NOTFOUND: No matching key/data pair found
2022-06-08 15:03:11.708	D Problems at ssl shutdown: uninitialized
2022-06-08 15:03:11.708	D Problems at cancel: Bad file descriptor
2022-06-08 15:03:11.708	D Problems at shutdown: Bad file descriptor
2022-06-08 15:03:11.709	T [sock -1] Socket destroyed without shutdown.
2022-06-08 15:03:11.709	T [sock -1] Socket destroyed
2022-06-08 15:03:11.709	D Destructing connection #0 to 0.

Version control & What Monero-LWS branch to build on for stability?

Hi, whilst building Monero-LWS I got the error:

[ 39%] Building CXX object src/db/CMakeFiles/monero-lws-db.dir/data.cpp.o
In file included from /home/pinodexmr/monero-lws/src/db/data.cpp:32:
/home/pinodexmr/monero-lws/src/./wire/crypto.h:74:26: error: ‘view_tag’ is not a member of ‘crypto’
74 | struct is_blobcrypto::view_tag
| ^~~~~~~~
/home/pinodexmr/monero-lws/src/./wire/crypto.h:74:26: error: ‘view_tag’ is not a member of ‘crypto’
/home/pinodexmr/monero-lws/src/./wire/crypto.h:74:34: error: template argument 1 is invalid
74 | struct is_blobcrypto::view_tag
| ^
make[2]: *** [src/db/CMakeFiles/monero-lws-db.dir/build.make:90: src/db/CMakeFiles/monero-lws-db.dir/data.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:276: src/db/CMakeFiles/monero-lws-db.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Which with a bit of digging is just the set-up for the next Monero hard-fork so I expect that error will disappear after the update when references to Moneros crypto.h line-up, but it led me to ask:

Your build instructions on this github frontpage say to use git checkout develop to build Monero-LWS which is currently not working.

I'd like to implement Monero-LWS into my project PiNodeXMR so have the install process scripted in. If I instead scripted in the branch git checkout release-v0.1_0.17 (which builds correctly) Is this likely to be stable for people to use short term?

Then could I expect a future stable branch after the hard fork to reference instead of 'develop' which may continue to intermittently have these sorts of issues?

[BUG] Failed to retrieve next blocks: Schema expected array size to be smaller

An issue origin from #117
I've been testing lws with many accounts around 1000 pcs and got this error message

2024-06-06 08:10:08.647	E Failed to retrieve next blocks: Schema expected array size to be smaller. Resetting state and trying again
and it repeated every half of second.

As to the monero-lws-admin i have issued this command:

$monero-lws-admin --db-path /home/dem/.lws list_accounts | jq '.active | .[] | .scan_height' | sort -n | uniq
1287712
3169887

while having running this in the next terminal window
1Jun-13-2024 15-22-34

UPD.
Looking for specific height wont help because it also happening on higher heights too. Instead i tried lldb to catch error. As you may see breakpoint set -E c++ not working, so i set -n __cxa_throw

dem@debian:~/Projects/monero-lws_debug/build/src$ lldb ./monero-lws-daemon
(lldb) target create "./monero-lws-daemon"
Current executable set to '/home/dem/Projects/monero-lws_debug/build/src/monero-lws-daemon' (x86_64).
(lldb) target create "./monero-lws-daemon"
Current executable set to '/home/dem/Projects/monero-lws_debug/build/src/monero-lws-daemon' (x86_64).
(lldb) breakpoint set -E c++
Breakpoint 1: no locations (pending).
(lldb) breakpoint set -n __cxa_throw
Breakpoint 2: where = monero-lws-daemon`__cxa_throw, address = 0x00000000005e9baa
(lldb) run --daemon tcp://127.0.0.1:18082 --db-path /home/dem/.lws --rest-server http://127.0.0.1:8443 --log-level=4 --auto-accept-creation --network=main --admin-rest-server http://127.0.0.1:8444
1 location added to breakpoint 1
Process 923576 launched: '/home/dem/Projects/monero-lws_debug/build/src/monero-lws-daemon' (x86_64)
2 locations added to breakpoint 1
1 location added to breakpoint 2
2024-06-13 14:01:18.607	I Using monerod ZMQ RPC at tcp://127.0.0.1:18082
2024-06-13 14:01:18.607	I Starting blockchain sync with daemon
2024-06-13 14:01:18.694	I [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2024-06-13 14:01:18.694	I [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2024-06-13 14:01:18.694	I Binding on 127.0.0.1 (IPv4):8443
2024-06-13 14:01:18.694	D start accept (IPv4)
2024-06-13 14:01:18.694	D Spawned connection #0 to 0.0.0.0 currently we have sockets count:1
2024-06-13 14:01:18.694	I [PARSE URI] regex not matched for uri: ^(([^:]*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2024-06-13 14:01:18.694	I Binding on 127.0.0.1 (IPv4):8444
2024-06-13 14:01:18.694	D start accept (IPv4)
2024-06-13 14:01:18.694	D Spawned connection #0 to 0.0.0.0 currently we have sockets count:1
2024-06-13 14:01:18.694	I Run net_service loop( 1 threads)...
2024-06-13 14:01:18.695	D Run server thread name: NET
2024-06-13 14:01:18.695	D Reiniting OK.
2024-06-13 14:01:18.695	I Listening for REST clients at http://127.0.0.1:8443
2024-06-13 14:01:18.695	I Listening for REST admin clients at http://127.0.0.1:8444
2024-06-13 14:01:18.695	I Retrieving current active account list
2024-06-13 14:01:18.695	I No active accounts
2024-06-13 14:01:28.695	I Starting blockchain sync with daemon
2024-06-13 14:01:28.696	I Retrieving current active account list
2024-06-13 14:01:28.697	I No active accounts

Now adding bunch of accounts:

2024-06-13 14:02:06.836	T Closed connection from host 127.0.0.1: 1
2024-06-13 14:02:06.836	D Destructing connection #1665 to 0.0.0.0
2024-06-13 14:02:08.699	I Starting blockchain sync with daemon
2024-06-13 14:02:08.699	I Retrieving current active account list
2024-06-13 14:02:08.714	I Starting scan loops on 12 thread(s) with 1666 account(s)
2024-06-13 14:02:09.060	D Schema expected array size to be smaller: 
Process 923576 stopped
* thread #16, name = 'monero-lws-daem', stop reason = breakpoint 1.1 2.1
    frame #0: 0x0000555555b3dbaa monero-lws-daemon`__cxa_throw
monero-lws-daemon`__cxa_throw:
->  0x555555b3dbaa <+0>: endbr64 
    0x555555b3dbae <+4>: pushq  %r15
    0x555555b3dbb0 <+6>: movq   %rdx, %r15
    0x555555b3dbb3 <+9>: pushq  %r14
(lldb)

 (lldb) bt
* thread #16, name = 'monero-lws-daem', stop reason = breakpoint 1.1 2.1
  * frame #0: 0x0000555555b3dbaa monero-lws-daemon`__cxa_throw
    frame #1: 0x0000555555dc5597 monero-lws-daemon`wire_read::throw_exception(code=array_max_element, display="", names=span<char const* const> @ 0x00007fffca6f6a10) at read.cpp:72:3
    frame #2: 0x0000555555ce6253 monero-lws-daemon`void wire_read::array_unchecked<wire::json_reader, std::vector<rct::key, std::allocator<rct::key> > >(source=0x00007fffca6f8750, dest=size=256, min_element_size=0, max_element_count=256) at read.h:323:24
    frame #3: 0x0000555555ce45aa monero-lws-daemon`void wire_read::array<wire::json_reader, std::vector<rct::key, std::allocator<rct::key> >, 0ul, 256ul>(source=0x00007fffca6f8750, dest=size=256, min_element_size=min_element_size<0> @ 0x00007fffca6f6bef, max_element_count=max_element_count<256> @ 0x00007fffca6f6bee) at read.h:345:20
    frame #4: 0x0000555555ce27a7 monero-lws-daemon`void wire::read_bytes<wire::json_reader, std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, 256ul>(source=0x00007fffca6f8750, wrapper=0x00007fffca6f6ec8) at wrappers_impl.h:56:21
    frame #5: 0x0000555555ce03ed monero-lws-daemon`void wire_read::bytes<wire::json_reader, wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >&>(source=0x00007fffca6f8750, dest=0x00007fffca6f6ec8) at read.h:248:15
    frame #6: 0x0000555555cdd397 monero-lws-daemon`void wire_read::unpack_field<wire::json_reader, wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, 0u>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f6ec0) at read.h:365:10
    frame #7: 0x0000555555cd85da monero-lws-daemon`unsigned long wire_read::tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, true, 0u> >::try_read<wire::json_reader>(this=0x00007fffca6f6ec0, source=0x00007fffca6f8750, index=5) at read.h:418:19
    frame #8: 0x0000555555cd1f29 monero-lws-daemon`void wire_read::object<wire::json_reader, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::rangeSig, std::allocator<rct::rangeSig> > >, wire::min_element_size<6176ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::Bulletproof, std::allocator<rct::Bulletproof> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::BulletproofPlus, std::allocator<rct::BulletproofPlus> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::mgSig, std::allocator<rct::mgSig> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::clsag, std::allocator<rct::clsag> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, true, 0u> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::rangeSig, std::allocator<rct::rangeSig> > >, wire::min_element_size<6176> >, true, 0> > @ 0x00007fffca6f6e20, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::Bulletproof, std::allocator<rct::Bulletproof> > >, wire::max_element_count<16> >, true, 0> > @ 0x00007fffca6f6e40, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::BulletproofPlus, std::allocator<rct::BulletproofPlus> > >, wire::max_element_count<16> >, true, 0> > @ 0x00007fffca6f6e60, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::mgSig, std::allocator<rct::mgSig> > >, wire::max_element_count<256> >, true, 0> > @ 0x00007fffca6f6e80, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::clsag, std::allocator<rct::clsag> > >, wire::max_element_count<256> >, true, 0> > @ 0x00007fffca6f6ea0, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256> >, true, 0> > @ 0x00007fffca6f6ec0) at read.h:461:24
    frame #9: 0x0000555555ccc1a4 monero-lws-daemon`_ZN4wire6objectINS_11json_readerEJNS_6field_INS_6array_ISt17reference_wrapperISt6vectorIN3rct8rangeSigESaIS7_EEENS_16min_element_sizeILm6176EEEEELb1ELj0EEENS2_INS3_IS4_IS5_INS6_11BulletproofESaISF_EEENS_17max_element_countILm16EEEEELb1ELj0EEENS2_INS3_IS4_IS5_INS6_15BulletproofPlusESaISN_EEESK_EELb1ELj0EEENS2_INS3_IS4_IS5_INS6_5mgSigESaIST_EEENSJ_ILm256EEEEELb1ELj0EEENS2_INS3_IS4_IS5_INS6_5clsagESaIS10_EEESX_EELb1ELj0EEENS2_INS3_IS4_IS5_INS6_3keyESaIS16_EEESX_EELb1ELj0EEEEEENSt9enable_ifIXsrSt10is_base_ofINS_6readerET_E5valueEvE4typeERS1F_DpT0_(source=0x00007fffca6f8750, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::rangeSig, std::allocator<rct::rangeSig> > >, wire::min_element_size<6176> >, true, 0> @ 0x00007fffca6f6ef0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::Bulletproof, std::allocator<rct::Bulletproof> > >, wire::max_element_count<16> >, true, 0> @ 0x00007fffca6f6ee0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::BulletproofPlus, std::allocator<rct::BulletproofPlus> > >, wire::max_element_count<16> >, true, 0> @ 0x00007fffca6f6fe0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::mgSig, std::allocator<rct::mgSig> > >, wire::max_element_count<256> >, true, 0> @ 0x00007fffca6f6ff0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::clsag, std::allocator<rct::clsag> > >, wire::max_element_count<256> >, true, 0> @ 0x00007fffca6f7000, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256> >, true, 0> @ 0x00007fffca6f7010) at read.h:503:22
    frame #10: 0x0000555555cc80c7 monero-lws-daemon`rct::(anonymous namespace)::read_bytes(source=0x00007fffca6f8750, self=0x00007fffca6f74d8)::prunable_helper &) at daemon_zmq.cpp:170:19
    frame #11: 0x0000555555cca307 monero-lws-daemon`wire_read::bytes<wire::json_reader, rct::(anonymous namespace)::prunable_helper&>(source=0x00007fffca6f8750, dest=0x00007fffca6f74d8)::prunable_helper &) at read.h:248:15
    frame #12: 0x0000555555cca20e monero-lws-daemon`wire_read::unpack_field<wire::json_reader, std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, 0>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f7370)::prunable_helper> >, false, 0> &) at read.h:373:10
    frame #13: 0x0000555555cca082 monero-lws-daemon`wire_read::tracker<wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> >::try_read<wire::json_reader>(this=0x00007fffca6f7370, source=0x00007fffca6f8750, index=4) const at read.h:418:19
    frame #14: 0x0000555555cc9c52 monero-lws-daemon`wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned char>, true, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<long unsigned int> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<std::reference_wrapper<unsigned char>, true, 0> > @ 0x00007fffca6f72f0, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0> > @ 0x00007fffca6f7310, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0> > @ 0x00007fffca6f7330, (null)=tracker<wire::field_<std::reference_wrapper<boost::optional<long unsigned int> >, false, 0> > @ 0x00007fffca6f7350, (null)=tracker<wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> > @ 0x00007fffca6f7370) at read.h:461:24
    frame #15: 0x0000555555cc99b6 monero-lws-daemon`wire::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned char>, true, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<long unsigned int> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> >(source=0x00007fffca6f8750, (null)=field_<std::reference_wrapper<unsigned char>, true, 0> @ 0x00007fffca6f73a0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0> @ 0x00007fffca6f7390, (null)=field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0> @ 0x00007fffca6f7470, (null)=field_<std::reference_wrapper<boost::optional<long unsigned int> >, false, 0> @ 0x00007fffca6f7480, (null)=field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> @ 0x00007fffca6f7490) at read.h:503:22
    frame #16: 0x0000555555cc8437 monero-lws-daemon`rct::read_bytes(source=0x00007fffca6f8750, self=0x00007fffadf9fa00) at daemon_zmq.cpp:200:17
    frame #17: 0x0000555555ce19e7 monero-lws-daemon`void wire_read::bytes<wire::json_reader, rct::rctSig&>(source=0x00007fffca6f8750, dest=0x00007fffadf9fa00) at read.h:248:15
    frame #18: 0x0000555555cdecd7 monero-lws-daemon`void wire_read::unpack_field<wire::json_reader, std::reference_wrapper<rct::rctSig>, 0u>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f7980) at read.h:365:10
    frame #19: 0x0000555555cdb530 monero-lws-daemon`unsigned long wire_read::tracker<wire::field_<std::reference_wrapper<rct::rctSig>, true, 0u> >::try_read<wire::json_reader>(this=0x00007fffca6f7980, source=0x00007fffca6f8750, index=6) at read.h:418:19
    frame #20: 0x0000555555cd5345 monero-lws-daemon`void wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key>, std::allocator<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key> > > >, wire::max_element_count<3000ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<cryptonote::tx_out, std::allocator<cryptonote::tx_out> > >, wire::max_element_count<2000ul> >, true, 0u>, wire::field_<std::reference_wrapper<std::vector<unsigned char, std::allocator<unsigned char> > >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<std::vector<crypto::signature, std::allocator<crypto::signature> >, std::allocator<std::vector<crypto::signature, std::allocator<crypto::signature> > > > >, wire::max_element_count<3000ul> >, false, 0u>, wire::field_<std::reference_wrapper<rct::rctSig>, true, 0u> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<std::reference_wrapper<long unsigned int>, true, 0> > @ 0x00007fffca6f78c0, (null)=tracker<wire::field_<std::reference_wrapper<long unsigned int>, true, 0> > @ 0x00007fffca6f78e0, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key>, std::allocator<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key> > > >, wire::max_element_count<3000> >, true, 0> > @ 0x00007fffca6f7900, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<cryptonote::tx_out, std::allocator<cryptonote::tx_out> > >, wire::max_element_count<2000> >, true, 0> > @ 0x00007fffca6f7920, (null)=tracker<wire::field_<std::reference_wrapper<std::vector<unsigned char, std::allocator<unsigned char> > >, true, 0> > @ 0x00007fffca6f7940, (null)=tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<std::vector<crypto::signature, std::allocator<crypto::signature> >, std::allocator<std::vector<crypto::signature, std::allocator<crypto::signature> > > > >, wire::max_element_count<3000> >, false, 0> > @ 0x00007fffca6f7960, (null)=tracker<wire::field_<std::reference_wrapper<rct::rctSig>, true, 0> > @ 0x00007fffca6f7980) at read.h:461:24
    frame #21: 0x0000555555cce464 monero-lws-daemon`_ZN4wire6objectINS_11json_readerEJNS_6field_ISt17reference_wrapperImELb1ELj0EEES5_NS2_INS_6array_IS3_ISt6vectorIN5boost7variantIN10cryptonote8txin_genEJNSA_14txin_to_scriptENSA_18txin_to_scripthashENSA_11txin_to_keyEEEESaISF_EEENS_17max_element_countILm3000EEEEELb1ELj0EEENS2_INS6_IS3_IS7_INSA_6tx_outESaISN_EEENSJ_ILm2000EEEEELb1ELj0EEENS2_IS3_IS7_IhSaIhEEELb1ELj0EEENS2_INS6_IS3_IS7_IS7_IN6crypto9signatureESaISZ_EESaIS11_EEESK_EELb0ELj0EEENS2_IS3_IN3rct6rctSigEELb1ELj0EEEEEENSt9enable_ifIXsrSt10is_base_ofINS_6readerET_E5valueEvE4typeERS1E_DpT0_(source=0x00007fffca6f8750, (null)=field_<std::reference_wrapper<long unsigned int>, true, 0> @ 0x00007fffca6f79b0, (null)=field_<std::reference_wrapper<long unsigned int>, true, 0> @ 0x00007fffca6f79a0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key>, std::allocator<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key> > > >, wire::max_element_count<3000> >, true, 0> @ 0x00007fffca6f7ac0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<cryptonote::tx_out, std::allocator<cryptonote::tx_out> > >, wire::max_element_count<2000> >, true, 0> @ 0x00007fffca6f7ad0, (null)=field_<std::reference_wrapper<std::vector<unsigned char, std::allocator<unsigned char> > >, true, 0> @ 0x00007fffca6f7ae0, (null)=field_<wire::array_<std::reference_wrapper<std::vector<std::vector<crypto::signature, std::allocator<crypto::signature> >, std::allocator<std::vector<crypto::signature, std::allocator<crypto::signature> > > > >, wire::max_element_count<3000> >, false, 0> @ 0x00007fffca6f7af0, (null)=field_<std::reference_wrapper<rct::rctSig>, true, 0> @ 0x00007fffca6f7b00) at read.h:503:22
    frame #22: 0x0000555555cc9118 monero-lws-daemon`cryptonote::read_bytes(source=0x00007fffca6f8750, self=0x00007fffadf9f980) at daemon_zmq.cpp:292:17
    frame #23: 0x0000555555cc4582 monero-lws-daemon`void wire_read::bytes<wire::json_reader, cryptonote::transaction&>(source=0x00007fffca6f8750, dest=0x00007fffadf9f980) at read.h:248:15
    frame #24: 0x0000555555cc3139 monero-lws-daemon`decltype(source=0x00007fffca6f8750, dest=size=13)) , (fp0.back())) , ((bool)(true))) wire_read::array_insert<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> >, cryptonote::transaction>(wire::json_reader&, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> >&) at read.h:291:21
    frame #25: 0x0000555555cc2226 monero-lws-daemon`void wire_read::array_unchecked<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >(source=0x00007fffca6f8750, dest=size=13, min_element_size=0, max_element_count=21845) at read.h:325:30
    frame #26: 0x0000555555cc9319 monero-lws-daemon`cryptonote::read_bytes(source=0x00007fffca6f8750, self=size=13) at daemon_zmq.cpp:320:31
    frame #27: 0x0000555555ce1c47 monero-lws-daemon`void wire_read::bytes<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> >&>(source=0x00007fffca6f8750, dest=size=13) at read.h:248:15
    frame #28: 0x0000555555cdf062 monero-lws-daemon`void wire_read::unpack_field<wire::json_reader, std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, 0u>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f7e70) at read.h:365:10
    frame #29: 0x0000555555cdbd26 monero-lws-daemon`unsigned long wire_read::tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0u> >::try_read<wire::json_reader>(this=0x00007fffca6f7e70, source=0x00007fffca6f8750, index=1) at read.h:418:19
    frame #30: 0x0000555555cd5d7e monero-lws-daemon`void wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<cryptonote::block>, true, 0u>, wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0u> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<std::reference_wrapper<cryptonote::block>, true, 0> > @ 0x00007fffca6f7e50, (null)=tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0> > @ 0x00007fffca6f7e70) at read.h:461:24
    frame #31: 0x0000555555cce968 monero-lws-daemon`_ZN4wire6objectINS_11json_readerEJNS_6field_ISt17reference_wrapperIN10cryptonote5blockEELb1ELj0EEENS2_IS3_ISt6vectorINS4_11transactionESaIS9_EEELb1ELj0EEEEEENSt9enable_ifIXsrSt10is_base_ofINS_6readerET_E5valueEvE4typeERSH_DpT0_(source=0x00007fffca6f8750, (null)=field_<std::reference_wrapper<cryptonote::block>, true, 0> @ 0x00007fffca6f7ea0, (null)=field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0> @ 0x00007fffca6f7e90) at read.h:503:22
    frame #32: 0x0000555555cc93ba monero-lws-daemon`cryptonote::rpc::read_bytes(source=0x00007fffca6f8750, self=0x00007fffac052740) at daemon_zmq.cpp:328:19
    frame #33: 0x0000555555cdbf60 monero-lws-daemon`void wire_read::bytes<wire::json_reader, cryptonote::rpc::block_with_transactions&>(source=0x00007fffca6f8750, dest=0x00007fffac052740) at read.h:248:15
    frame #34: 0x0000555555cd5f4d monero-lws-daemon`decltype(source=0x00007fffca6f8750, dest=size=507)) , (fp0.back())) , ((bool)(true))) wire_read::array_insert<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> >, cryptonote::rpc::block_with_transactions>(wire::json_reader&, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> >&) at read.h:291:21
    frame #35: 0x0000555555cceb86 monero-lws-daemon`void wire_read::array_unchecked<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >(source=0x00007fffca6f8750, dest=size=507, min_element_size=0, max_element_count=1000) at read.h:325:30
    frame #36: 0x0000555555cc93fd monero-lws-daemon`cryptonote::rpc::read_bytes(source=0x00007fffca6f8750, self=size=507) at daemon_zmq.cpp:333:33
    frame #37: 0x0000555555ce21c5 monero-lws-daemon`void wire_read::bytes<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> >&>(source=0x00007fffca6f8750, dest=size=507) at read.h:248:15
    frame #38: 0x0000555555cdf8fe monero-lws-daemon`void wire_read::unpack_field<wire::json_reader, std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, 0u>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f8240) at read.h:365:10
    frame #39: 0x0000555555cdc452 monero-lws-daemon`unsigned long wire_read::tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0u> >::try_read<wire::json_reader>(this=0x00007fffca6f8240, source=0x00007fffca6f8750, index=0) at read.h:418:19
    frame #40: 0x0000555555cd6955 monero-lws-daemon`void wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0u>, wire::field_<wire::array_<wire::array_<wire::array_<std::reference_wrapper<std::vector<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >, std::allocator<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > > > > >, wire::max_element_count<2000ul> >, wire::max_element_count<21845ul> >, wire::max_element_count<1000ul> >, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0> > @ 0x00007fffca6f8240, (null)=tracker<wire::field_<wire::array_<wire::array_<wire::array_<std::reference_wrapper<std::vector<std::vector<std::vector<long unsigned int, std::allocator<long unsigned int> >, std::allocator<std::vector<long unsigned int, std::allocator<long unsigned int> > > >, std::allocator<std::vector<std::vector<long unsigned int, std::allocator<long unsigned int> >, std::allocator<std::vector<long unsigned int, std::allocator<long unsigned int> > > > > > >, wire::max_element_count<2000> >, wire::max_element_count<21845> >, wire::max_element_count<1000> >, true, 0> > @ 0x00007fffca6f8260, (null)=tracker<wire::field_<std::reference_wrapper<long unsigned int>, true, 0> > @ 0x00007fffca6f8280, (null)=tracker<wire::field_<std::reference_wrapper<long unsigned int>, true, 0> > @ 0x00007fffca6f82a0) at read.h:461:24
    frame #41: 0x0000555555ccf511 monero-lws-daemon`_ZN4wire6objectINS_11json_readerEJNS_6field_ISt17reference_wrapperISt6vectorIN10cryptonote3rpc23block_with_transactionsESaIS7_EEELb1ELj0EEENS2_INS_6array_INSC_INSC_IS3_IS4_IS4_IS4_ImSaImEESaISE_EESaISG_EEENS_17max_element_countILm2000EEEEENSK_ILm21845EEEEENSK_ILm1000EEEEELb1ELj0EEENS2_IS3_ImELb1ELj0EEEST_EEENSt9enable_ifIXsrSt10is_base_ofINS_6readerET_E5valueEvE4typeERSX_DpT0_(source=0x00007fffca6f8750, (null)=field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0> @ 0x00007fffca6f82d0, (null)=field_<wire::array_<wire::array_<wire::array_<std::reference_wrapper<std::vector<std::vector<std::vector<long unsigned int, std::allocator<long unsigned int> >, std::allocator<std::vector<long unsigned int, std::allocator<long unsigned int> > > >, std::allocator<std::vector<std::vector<long unsigned int, std::allocator<long unsigned int> >, std::allocator<std::vector<long unsigned int, std::allocator<long unsigned int> > > > > > >, wire::max_element_count<2000> >, wire::max_element_count<21845> >, wire::max_element_count<1000> >, true, 0> @ 0x00007fffca6f82c0, (null)=field_<std::reference_wrapper<long unsigned int>, true, 0> @ 0x00007fffca6f8380, (null)=field_<std::reference_wrapper<long unsigned int>, true, 0> @ 0x00007fffca6f8390) at read.h:503:22
    frame #42: 0x0000555555cc9690 monero-lws-daemon`lws::rpc::read_bytes(source=0x00007fffca6f8750, self=0x00007fffca6f8890) at daemon_zmq.cpp:353:15
    frame #43: 0x0000555555c95a5c monero-lws-daemon`void wire_read::bytes<wire::json_reader, lws::rpc::get_blocks_fast_response&>(source=0x00007fffca6f8750, dest=0x00007fffca6f8890) at read.h:248:15
    frame #44: 0x0000555555c9475d monero-lws-daemon`void wire::read_bytes<wire::json_reader, std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> >, lws::rpc::get_blocks_fast_response>(source=0x00007fffca6f8750, dest=option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response> @ 0x00007fffca6f8420) at variant.h:200:21
    frame #45: 0x0000555555c92db0 monero-lws-daemon`void wire_read::bytes<wire::json_reader, wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>&>(source=0x00007fffca6f8750, dest=0x00007fffca6f85d8) at read.h:248:15
    frame #46: 0x0000555555c90c47 monero-lws-daemon`void wire_read::unpack_field<wire::json_reader, wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, 0u>((null)=0, source=0x00007fffca6f8750, dest=0x00007fffca6f85d0) at read.h:373:10
    frame #47: 0x0000555555c8e7ba monero-lws-daemon`unsigned long wire_read::tracker<wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0u> >::try_read<wire::json_reader>(this=0x00007fffca6f85d0, source=0x00007fffca6f8750, index=1) at read.h:418:19
    frame #48: 0x0000555555c8b4e1 monero-lws-daemon`void wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned int>, true, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::json_error>, false, 0u> >(source=0x00007fffca6f8750, (null)=tracker<wire::field_<std::reference_wrapper<unsigned int>, true, 0> > @ 0x00007fffca6f85b0, (null)=tracker<wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0> > @ 0x00007fffca6f85d0, (null)=tracker<wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::json_error>, false, 0> > @ 0x00007fffca6f85f0) at read.h:461:24
    frame #49: 0x0000555555c87e22 monero-lws-daemon`_ZN4wire6objectINS_11json_readerEJNS_6field_ISt17reference_wrapperIjELb1ELj0EEENS2_INS_7option_IS3_INS_8variant_IS3_IN5boost7variantIN3lws3rpc10json_errorEJNSB_24get_blocks_fast_responseEEEEEEEESD_EELb0ELj0EEENS2_INS6_ISH_SC_EELb0ELj0EEEEEENSt9enable_ifIXsrSt10is_base_ofINS_6readerET_E5valueEvE4typeERSP_DpT0_(source=0x00007fffca6f8750, (null)=field_<std::reference_wrapper<unsigned int>, true, 0> @ 0x00007fffca6f8620, (null)=field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0> @ 0x00007fffca6f8610, (null)=field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::json_error>, false, 0> @ 0x00007fffca6f86b0) at read.h:503:22
    frame #50: 0x0000555555c83d35 monero-lws-daemon`void lws::rpc::read_bytes<lws::rpc::get_blocks_fast_response>(source=0x00007fffca6f8750, self=0x00007fffca6f8880) at json.h:98:17
    frame #51: 0x0000555555c7f4ff monero-lws-daemon`void wire_read::bytes<wire::json_reader, lws::rpc::json_response<lws::rpc::get_blocks_fast_response>&>(source=0x00007fffca6f8750, dest=0x00007fffca6f8880) at read.h:248:15
    frame #52: 0x0000555555c7903b monero-lws-daemon`std::error_code wire_read::from_bytes<wire::json_reader, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, lws::rpc::json_response<lws::rpc::get_blocks_fast_response> >(source=0x00007fffca6f8ab0, dest=0x00007fffca6f8880) at read.h:258:12
    frame #53: 0x0000555555c6f6a2 monero-lws-daemon`std::error_code wire::json::from_bytes<lws::rpc::json_response<lws::rpc::get_blocks_fast_response> >(source="", dest=0x00007fffca6f8880) at base.h:48:47
    frame #54: 0x0000555555c65fad monero-lws-daemon`expect<lws::rpc::get_blocks_fast_response> lws::rpc::parse_json_response<lws::rpc::get_blocks_fast, lws::rpc::get_blocks_fast_response>(source="") at json.h:122:51
    frame #55: 0x0000555555c54d4b monero-lws-daemon`lws::(anonymous namespace)::scan_loop(self=0x00007fffffffc430, data=nullptr, untrusted_daemon=false, leader_thread=false)::thread_sync &, std::shared_ptr<lws::(anonymous namespace)::thread_data>, const bool, const bool) at scanner.cpp:681:89
    frame #56: 0x0000555555c6090d monero-lws-daemon`std::__invoke_impl<void, void (*&)(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool), lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>&, bool&, bool&>((null)=__invoke_other @ 0x00007fffca6f9a50, __f=0x00005555568d8cc8, (null)=0x00007fffffffc430, (null)=std::__shared_ptr<lws::(anonymous namespace)::thread_data, __gnu_cxx::_S_atomic>::element_type @ 0x00005555568d8b20, (null)=0x00005555568d8cd1, (null)=0x00005555568d8cd0)(lws::(anonymous namespace)::thread_sync &, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)) at invoke.h:61:36
    frame #57: 0x0000555555c607a9 monero-lws-daemon`std::__invoke<void (*&)(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool), lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>&, bool&, bool&>(__fn=0x00005555568d8cc8, (null)=0x00007fffffffc430, (null)=std::__shared_ptr<lws::(anonymous namespace)::thread_data, __gnu_cxx::_S_atomic>::element_type @ 0x00005555568d8b20, (null)=0x00005555568d8cd1, (null)=0x00005555568d8cd0)(lws::(anonymous namespace)::thread_sync &, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)) at invoke.h:96:40
    frame #58: 0x0000555555c6061c monero-lws-daemon`std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>::__call<void, 0, 1, 2, 3>(this=0x00005555568d8cc8, __args=0x00007fffca6f9b1f, (null)=_Index_tuple<0, 1, 2, 3> @ 0x00007fffca6f9b00) const at functional:484:24
    frame #59: 0x0000555555c60510 monero-lws-daemon`std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>::operator(this=0x00005555568d8cc8)<>() const at functional:567:32
    frame #60: 0x0000555555c60386 monero-lws-daemon`boost::detail::thread_data<std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)> >::run(this=0x00005555568d8b90) const at thread.hpp:120:18
    frame #61: 0x00007ffff7dabb17 libboost_thread.so.1.74.0`___lldb_unnamed_symbol405 + 119
    frame #62: 0x00007ffff71c9134 libc.so.6`start_thread(arg=<unavailable>) at pthread_create.c:442:8
    frame #63: 0x00007ffff72497dc libc.so.6`__clone3 at clone3.S:81
(lldb) 

UUPD.
Switching to gdb

dem@debian:~/Projects/monero-lws_debug/build/src$ gdb ./monero-lws-daemon
GNU gdb (Debian 13.1-3) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./monero-lws-daemon...
(gdb) catch throw if wire::json::from_bytes
Catchpoint 1 (throw)
(gdb) run --daemon tcp://127.0.0.1:18082 --db-path /home/dem/.lws --rest-server http://127.0.0.1:8443 --log-level=4 --auto-accept-creation --network=main --admin-rest-server http://127.0.0.1:8444

2024-06-13 14:56:13.260	W Only updated 113 account(s) out of 138, resetting
[Thread 0x7fffcabfb6c0 (LWP 974078) exited]
2024-06-13 14:56:13.260	I Starting blockchain sync with daemon
2024-06-13 14:56:13.261	I Retrieving current active account list
2024-06-13 14:56:13.276	I Starting scan loops on 12 thread(s) with 1666 account(s)
[New Thread 0x7fffca6fa6c0 (LWP 975490)]
[New Thread 0x7fffcabfb6c0 (LWP 975491)]
[New Thread 0x7fffcb0fc6c0 (LWP 975492)]
[New Thread 0x7fffcb5fd6c0 (LWP 975493)]
[New Thread 0x7fffcbafe6c0 (LWP 975494)]
[New Thread 0x7fffcbfff6c0 (LWP 975495)]
[New Thread 0x7ffff08f96c0 (LWP 975496)]
[New Thread 0x7ffff21fe6c0 (LWP 975497)]
[New Thread 0x7ffff1cfd6c0 (LWP 975498)]
[New Thread 0x7ffff17fc6c0 (LWP 975499)]
[New Thread 0x7ffff12fb6c0 (LWP 975500)]
[New Thread 0x7ffff0dfa6c0 (LWP 975501)]
2024-06-13 14:56:13.609	D Schema expected array size to be smaller: 
Error in testing breakpoint condition:
There is no field named from_bytes
[Switching to Thread 0x7ffff17fc6c0 (LWP 975499)]

Thread 26 "monero-lws-daem" hit Catchpoint 1 (exception thrown), 0x00007ffff74a90a1 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) 

(gdb) bt
#0  0x00007ffff74a90a1 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#1  0x0000555555b3dcac in __cxa_throw ()
#2  0x0000555555dc5597 in wire_read::throw_exception (code=wire::error::schema::array_max_element, display=0x5555560f0fac "", names=...)
    at /home/dem/Projects/monero-lws_debug/src/wire/read.cpp:72
#3  0x0000555555ce6253 in wire_read::array_unchecked<wire::json_reader, std::vector<rct::key, std::allocator<rct::key> > > (source=..., 
    dest=std::vector of length 256, capacity 256 = {...}, min_element_size=0, max_element_count=256) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:323
#4  0x0000555555ce45aa in wire_read::array<wire::json_reader, std::vector<rct::key, std::allocator<rct::key> >, 0ul, 256ul> (source=..., 
    dest=std::vector of length 256, capacity 256 = {...}, min_element_size=..., max_element_count=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:345
#5  0x0000555555ce27a7 in wire::read_bytes<wire::json_reader, std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, 256ul> (source=..., wrapper=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/wrappers_impl.h:56
#6  0x0000555555ce03ed in wire_read::bytes<wire::json_reader, wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >&> (
    source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#7  0x0000555555cdd397 in wire_read::unpack_field<wire::json_reader, wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, 0u> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:365
#8  0x0000555555cd85da in wire_read::tracker<wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, true, 0u> >::try_read<wire::json_reader> (this=0x7ffff17f8ec0, source=..., index=5) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#9  0x0000555555cd1f29 in wire_read::object<wire::json_reader, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::rangeSig, std::allocator<rct::rangeSig> > >, wire::min_element_size<6176ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::Bulletproof, std::allocator<rct::Bulletproof> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::BulletproofPlus, std::allocator<rct::BulletproofPlus> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::mgSig, std::allocator<rct::mgSig> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::clsag, std::allocator<rct::clsag> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#10 0x0000555555ccc1a4 in wire::object<wire::json_reader, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::rangeSig, std::allocator<rct::rangeSig> > >, wire::min_element_size<6176ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::Bulletproof, std::allocator<rct::Bulletproof> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::BulletproofPlus, std::allocator<rct::BulletproofPlus> > >, wire::max_element_count<16ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::mgSig, std::allocator<rct::mgSig> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::clsag, std::allocator<rct::clsag> > >, wire::max_element_count<256ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::key, std::allocator<rct::key> > >, wire::max_element_count<256ul> >, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#11 0x0000555555cc80c7 in rct::(anonymous namespace)::read_bytes (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:170
#12 0x0000555555cca307 in wire_read::bytes<wire::json_reader, rct::(anonymous namespace)::prunable_helper&> (source=..., dest=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#13 0x0000555555cca20e in wire_read::unpack_field<wire::json_reader, std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, 0> (source=..., dest=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:373
#14 0x0000555555cca082 in wire_read::tracker<wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> >::try_read<wire::json_reader> (
    this=0x7ffff17f9370, source=..., index=4) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#15 0x0000555555cc9c52 in wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned char>, true, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdhTuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<unsigned long> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#16 0x0000555555cc99b6 in wire::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned char>, true, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ecdh--Type <RET> for more, q to quit, c to continue without paging--c
Tuple, std::allocator<rct::ecdhTuple> > >, wire::min_element_size<64> >, false, 0>, wire::field_<wire::array_<std::reference_wrapper<std::vector<rct::ctkey, std::allocator<rct::ctkey> > >, wire::min_element_size<32> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<unsigned long> >, false, 0>, wire::field_<std::reference_wrapper<boost::optional<rct::(anonymous namespace)::prunable_helper> >, false, 0> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#17 0x0000555555cc8437 in rct::read_bytes (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:200
#18 0x0000555555ce19e7 in wire_read::bytes<wire::json_reader, rct::rctSig&> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#19 0x0000555555cdecd7 in wire_read::unpack_field<wire::json_reader, std::reference_wrapper<rct::rctSig>, 0u> (source=..., dest=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:365
#20 0x0000555555cdb530 in wire_read::tracker<wire::field_<std::reference_wrapper<rct::rctSig>, true, 0u> >::try_read<wire::json_reader> (this=0x7ffff17f9980, source=..., index=6)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#21 0x0000555555cd5345 in wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key>, std::allocator<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key> > > >, wire::max_element_count<3000ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<cryptonote::tx_out, std::allocator<cryptonote::tx_out> > >, wire::max_element_count<2000ul> >, true, 0u>, wire::field_<std::reference_wrapper<std::vector<unsigned char, std::allocator<unsigned char> > >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<std::vector<crypto::signature, std::allocator<crypto::signature> >, std::allocator<std::vector<crypto::signature, std::allocator<crypto::signature> > > > >, wire::max_element_count<3000ul> >, false, 0u>, wire::field_<std::reference_wrapper<rct::rctSig>, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#22 0x0000555555cce464 in wire::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key>, std::allocator<boost::variant<cryptonote::txin_gen, cryptonote::txin_to_script, cryptonote::txin_to_scripthash, cryptonote::txin_to_key> > > >, wire::max_element_count<3000ul> >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<cryptonote::tx_out, std::allocator<cryptonote::tx_out> > >, wire::max_element_count<2000ul> >, true, 0u>, wire::field_<std::reference_wrapper<std::vector<unsigned char, std::allocator<unsigned char> > >, true, 0u>, wire::field_<wire::array_<std::reference_wrapper<std::vector<std::vector<crypto::signature, std::allocator<crypto::signature> >, std::allocator<std::vector<crypto::signature, std::allocator<crypto::signature> > > > >, wire::max_element_count<3000ul> >, false, 0u>, wire::field_<std::reference_wrapper<rct::rctSig>, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#23 0x0000555555cc9118 in cryptonote::read_bytes (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:292
#24 0x0000555555cc4582 in wire_read::bytes<wire::json_reader, cryptonote::transaction&> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#25 0x0000555555cc3139 in wire_read::array_insert<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> >, cryptonote::transaction> (source=..., 
    dest=std::vector of length 13, capacity 100 = {...}) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:291
#26 0x0000555555cc2226 in wire_read::array_unchecked<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > > (source=..., 
    dest=std::vector of length 13, capacity 100 = {...}, min_element_size=0, max_element_count=21845) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:325
#27 0x0000555555cc9319 in cryptonote::read_bytes (source=..., self=std::vector of length 13, capacity 100 = {...}) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:320
#28 0x0000555555ce1c47 in wire_read::bytes<wire::json_reader, std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> >&> (source=..., 
    dest=std::vector of length 13, capacity 100 = {...}) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#29 0x0000555555cdf062 in wire_read::unpack_field<wire::json_reader, std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, 0u> (
    source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:365
#30 0x0000555555cdbd26 in wire_read::tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0u> >::try_read<wire::json_reader> (this=0x7ffff17f9e70, source=..., index=1) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#31 0x0000555555cd5d7e in wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<cryptonote::block>, true, 0u>, wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#32 0x0000555555cce968 in wire::object<wire::json_reader, wire::field_<std::reference_wrapper<cryptonote::block>, true, 0u>, wire::field_<std::reference_wrapper<std::vector<cryptonote::transaction, std::allocator<cryptonote::transaction> > >, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#33 0x0000555555cc93ba in cryptonote::rpc::read_bytes (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:328
#34 0x0000555555cdbf60 in wire_read::bytes<wire::json_reader, cryptonote::rpc::block_with_transactions&> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#35 0x0000555555cd5f4d in wire_read::array_insert<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> >, cryptonote::rpc::block_with_transactions> (source=..., dest=std::vector of length 507, capacity 1000 = {...}) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:291
#36 0x0000555555cceb86 in wire_read::array_unchecked<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > > (
    source=..., dest=std::vector of length 507, capacity 1000 = {...}, min_element_size=0, max_element_count=1000) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:325
#37 0x0000555555cc93fd in cryptonote::rpc::read_bytes (source=..., self=std::vector of length 507, capacity 1000 = {...}) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:333
#38 0x0000555555ce21c5 in wire_read::bytes<wire::json_reader, std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> >&> (
    source=..., dest=std::vector of length 507, capacity 1000 = {...}) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#39 0x0000555555cdf8fe in wire_read::unpack_field<wire::json_reader, std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, 0u> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:365
#40 0x0000555555cdc452 in wire_read::tracker<wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0u> >::try_read<wire::json_reader> (this=0x7ffff17fa240, source=..., index=0) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#41 0x0000555555cd6955 in wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0u>, wire::field_<wire::array_<wire::array_<wire::array_<std::reference_wrapper<std::vector<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >, std::allocator<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > > > > >, wire::max_element_count<2000ul> >, wire::max_element_count<21845ul> >, wire::max_element_count<1000ul> >, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u> > (source=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#42 0x0000555555ccf511 in wire::object<wire::json_reader, wire::field_<std::reference_wrapper<std::vector<cryptonote::rpc::block_with_transactions, std::allocator<cryptonote::rpc::block_with_transactions> > >, true, 0u>, wire::field_<wire::array_<wire::array_<wire::array_<std::reference_wrapper<std::vector<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > >, std::allocator<std::vector<std::vector<unsigned long, std::allocator<unsigned long> >, std::allocator<std::vector<unsigned long, std::allocator<unsigned long> > > > > > >, wire::max_element_count<2000ul> >, wire::max_element_count<21845ul> >, wire::max_element_count<1000ul> >, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u>, wire::field_<std::reference_wrapper<unsigned long>, true, 0u> > (source=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#43 0x0000555555cc9690 in lws::rpc::read_bytes (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/daemon_zmq.cpp:353
#44 0x0000555555c95a5c in wire_read::bytes<wire::json_reader, lws::rpc::get_blocks_fast_response&> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#45 0x0000555555c9475d in wire::read_bytes<wire::json_reader, std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> >, lws::rpc::get_blocks_fast_response> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/wrapper/variant.h:200
#46 0x0000555555c92db0 in wire_read::bytes<wire::json_reader, wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>&> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#47 0x0000555555c90c47 in wire_read::unpack_field<wire::json_reader, wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, 0u> (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:373
#48 0x0000555555c8e7ba in wire_read::tracker<wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0u> >::try_read<wire::json_reader> (this=0x7ffff17fa5d0, source=..., index=1)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:418
#49 0x0000555555c8b4e1 in wire_read::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned int>, true, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::json_error>, false, 0u> > (source=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:461
#50 0x0000555555c87e22 in wire::object<wire::json_reader, wire::field_<std::reference_wrapper<unsigned int>, true, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::get_blocks_fast_response>, false, 0u>, wire::field_<wire::option_<std::reference_wrapper<wire::variant_<std::reference_wrapper<boost::variant<lws::rpc::json_error, lws::rpc::get_blocks_fast_response> > > >, lws::rpc::json_error>, false, 0u> > (source=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:503
#51 0x0000555555c83d35 in lws::rpc::read_bytes<lws::rpc::get_blocks_fast_response> (source=..., self=...) at /home/dem/Projects/monero-lws_debug/src/rpc/json.h:98
#52 0x0000555555c7f4ff in wire_read::bytes<wire::json_reader, lws::rpc::json_response<lws::rpc::get_blocks_fast_response>&> (source=..., dest=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:248
#53 0x0000555555c7903b in wire_read::from_bytes<wire::json_reader, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, lws::rpc::json_response<lws::rpc::get_blocks_fast_response> > (source=..., dest=...) at /home/dem/Projects/monero-lws_debug/src/./wire/read.h:258
#54 0x0000555555c6f6a2 in wire::json::from_bytes<lws::rpc::json_response<lws::rpc::get_blocks_fast_response> > (source=..., dest=...)
    at /home/dem/Projects/monero-lws_debug/src/./wire/json/base.h:48
#55 0x0000555555c65fad in lws::rpc::parse_json_response<lws::rpc::get_blocks_fast, lws::rpc::get_blocks_fast_response> (source=...) at /home/dem/Projects/monero-lws_debug/src/rpc/json.h:122
#56 0x0000555555c54d4b in lws::(anonymous namespace)::scan_loop (self=..., data=std::shared_ptr<lws::(anonymous namespace)::thread_data> (empty) = {...}, untrusted_daemon=false, 
    leader_thread=false) at /home/dem/Projects/monero-lws_debug/src/scanner.cpp:681
#57 0x0000555555c6090d in std::__invoke_impl<void, void (*&)(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool), lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>&, bool&, bool&> (
    __f=@0x55555690aa58: 0x555555c546ca <lws::(anonymous namespace)::scan_loop(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>) at /usr/include/c++/12/bits/invoke.h:61
#58 0x0000555555c607a9 in std::__invoke<void (*&)(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool), lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>&, bool&, bool&> (
    __fn=@0x55555690aa58: 0x555555c546ca <lws::(anonymous namespace)::scan_loop(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>) at /usr/include/c++/12/bits/invoke.h:96
#59 0x0000555555c6061c in std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>::__call<void, 0, 1, 2, 3>(std::tuple<> &&, std::_Index_tuple<0, 1, 2, 3>) (
    this=0x55555690aa58, __args=...) at /usr/include/c++/12/functional:484
#60 0x0000555555c60510 in std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)>::operator()<>(void) (this=0x55555690aa58) at /usr/include/c++/12/functional:567
#61 0x0000555555c60386 in boost::detail::thread_data<std::_Bind<void (*(std::reference_wrapper<lws::(anonymous namespace)::thread_sync>, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool))(lws::(anonymous namespace)::thread_sync&, std::shared_ptr<lws::(anonymous namespace)::thread_data>, bool, bool)> >::run(void) (this=0x55555690a920)
    at /usr/include/boost/thread/detail/thread.hpp:120
#62 0x00007ffff7dabb17 in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.74.0
#63 0x00007ffff71c9134 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#64 0x00007ffff72497dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb) 

P.S.
To quickly reproduce error you may also use this script. I have generated and already added 1666 accounts.
define your constants in run.py and do: python3 run.py Script will add accounts and updates them to defined height.
MoneroLWS_batch.zip

monero-lws randomly crashes "Failed to send ZMQ RPC message"

From time to time (randomly but mostly within ~10 hours) the monero-lws crashes with the exact same sequence of logs:
Screenshot from 2021-02-16 19-31-27
Although the monerod itself didn't print any errors - it's running the whole time.
Starting monero-lws right after the crash - works flawlessly till the next same error.

Seems like this timeout provokes that "Failed to send ZMQ RPC <...>" error.

EDIT: Regrading the timeout - this might be a real glitch on my network as I'm running monerod and monero-lws on separate machines. But I don't think that this should result into a crash in first place.

monero-lws bus error upon reorg

system: ubuntu:20.04

monero-lws version: https://github.com/TheCharlatan/monero-lws/tree/changes
That's lagging current HEAD on develop by 2 commits which do not appear to address this issue.

monerod version: v0.17.2.3

relevant monero-lws log snippet:

2022-06-03 09:35:51.925 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:35:51.945 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:35:58.416 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:36:25.118 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:36:41.610 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:36:50.662 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:37:14.878 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:37:16.232 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:37:42.398 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:37:47.808 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:38:10.321 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:38:14.779 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:38:38.390 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:38:38.535 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:39:04.856 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:39:06.338 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:39:30.512 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:39:35.687 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:39:54.823 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:40:22.608 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:40:50.154 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:40:50.917 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:40:52.475 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:40:52.483 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:41:19.026 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:41:46.817 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:42:15.723 I Processed 999 block(s) against 305 account(s)
2022-06-03 09:42:23.452 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:42:52.619 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:42:52.662 I Processed 1 block(s) against 304 account(s)
2022-06-03 09:42:55.891 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:43:12.686 I Processed 2 block(s) against 304 account(s)
2022-06-03 09:43:12.733 I Processed 2 block(s) against 304 account(s)
2022-06-03 09:43:25.526 I Processed 999 block(s) against 304 account(s)
2022-06-03 09:43:30.787 I Processed 999 block(s) against 305 account(s)
Bus error (core dumped)

relevant monerod log snippet:

2022-06-03 05:53:11.039 W No incoming connections - check firewalls/routers allow port 38080
2022-06-03 06:53:25.802 W No incoming connections - check firewalls/routers allow port 38080
2022-06-03 07:53:47.139 W No incoming connections - check firewalls/routers allow port 38080
2022-06-03 08:54:04.482 W No incoming connections - check firewalls/routers allow port 38080
2022-06-03 09:42:57.604 I ----- BLOCK ADDED AS ALTERNATIVE ON HEIGHT 1105940
2022-06-03 09:42:57.605 I id:   <6df4fc526e5ead606d9e8484109a280dd99e3564856c3012af15f710753e5409>
2022-06-03 09:42:57.605 I PoW:  <00383dfce285466081535e0d5d4b59af2cae5c00d3da095205ce7a4fa10a0000>
2022-06-03 09:42:57.605 I difficulty:   224824
2022-06-03 09:43:48.863 I ###### REORGANIZE on height: 1105940 of 1105940 with cum_difficulty 194347980584
2022-06-03 09:43:48.863 I  alternative blockchain size: 2 with cum_difficulty 194348205003
2022-06-03 09:43:48.962 I ----- BLOCK ADDED AS ALTERNATIVE ON HEIGHT 1105940
2022-06-03 09:43:48.962 I id:   <c0309fd4234addb96f3bd95cf07ed5a40a2d35ea185fbc1fa18614f1437d8512>
2022-06-03 09:43:48.962 I PoW:  <4fc62798fcd6e221ef6db92e94bb020e6c31dc2d6b26db60be3b04ddc7170000>
2022-06-03 09:43:48.962 I difficulty:   224824
2022-06-03 09:43:48.987 I REORGANIZE SUCCESS! on height: 1105940, new blockchain size: 1105942
2022-06-03 09:54:07.697 W No incoming connections - check firewalls/routers allow port 38080

failed to decrypt amount for tx

Decrypting the incoming transaction seems not be working. In the logs I'm getting a warning:

<time> W <base58 address> failed to decrypt amount for tx <tx id>, skipping output

Initiating the rescan through admin doesn't help either - the same warning occurs again.

What could have cause this?

FIY: Using main network, monero dependency was built from v0.17 branch, everything according to the readme.

EDIT: I think that might be related to unsupported CLSAG format as I can't find anything within sources.

Incorrect test address from admin server

Running ./src/monero-lws-admin --network test create_admin gives this result:

{"address":"9sAejnQ9EBR111111111111111111111111111111111158LRbrc6UMRoz1ZnUWGiscDUfXDZHcmf1CiQW6F2NxTMT6zULn","key":"e59fdce5b27b8b0c664feb895debef40f8d78f6a2f59a3afa761d14a644d2500"}

The address can't be right, can it?

"Serious database error, no receive for spend"

If you try to scan for transactions, starting from scratch, on stagenet, the daemon of lightwalletserver will throw the following error:
Exception at [connection<t_protocol_handler>::handle_read], what=Serious database error, no receive for spend

If you're curious, you can see the logical error from source.

I tried to open and create three different wallets on lightwalletserver that were created by community members to play around with.

Steps to reproduce

  1. Add a new account
  2. Start the scanning from scratch (height 0)
  3. Wait

Details

Ubuntu 20 LTS and latest version of LWS from develop branch.

An empty response from REST server

I have read similar issue #8 and also having an empty responses from REST.
Tried few curl combinations and none giving reasonable response.

Started lws-daemon
`
dem@nas:~/Projects/lws$ ./monero-lws-daemon --daemon tcp://127.0.0.1:18082 --db-path /mnt/BOOST/.lws --rest-server https://127.0.0.1:8443 --log-level=2
2024-05-21 21:02:33.680 I Using monerod ZMQ RPC at tcp://127.0.0.1:18082
2024-05-21 21:02:33.680 I Starting blockchain sync with daemon
2024-05-21 21:02:33.681 I [PARSE URI] regex not matched for uri: ^(([^:]?)://)?([(.)](:(\d+))?)(.*)?
2024-05-21 21:02:33.681 I Binding on 127.0.0.1 (IPv4):8443
2024-05-21 21:02:33.681 I Generating SSL certificate
2024-05-21 21:02:35.527 D start accept (IPv4)
2024-05-21 21:02:35.528 D Spawned connection #0 to 0.0.0.0 currently we have sockets count:1
2024-05-21 21:02:35.528 I Run net_service loop( 1 threads)...
2024-05-21 21:02:35.528 D Run server thread name: NET
2024-05-21 21:02:35.528 D Reiniting OK.
2024-05-21 21:02:35.528 I Listening for REST clients at https://127.0.0.1:8443
2024-05-21 21:02:35.528 I Retrieving current active account list
2024-05-21 21:02:35.528 I No active accounts
2024-05-21 21:02:40.864 D handle_accept
2024-05-21 21:02:40.864 D New server for RPC connections, SSL enabled
2024-05-21 21:02:40.865 D Spawned connection #1 to 0.0.0.0 currently we have sockets count:2
2024-05-21 21:02:40.865 D connection type 1 127.0.0.1:8443 <--> 127.0.0.1:42250 (via 127.0.0.1:42250)
2024-05-21 21:02:40.865 D Destructing connection #0 to 0.0.0.0
2024-05-21 21:02:45.528 I Starting blockchain sync with daemon
2024-05-21 21:02:45.529 I Retrieving current active account list
2024-05-21 21:02:45.529 I No active accounts
2024-05-21 21:02:55.529 I Starting blockchain sync with daemon
2024-05-21 21:02:55.529 I Retrieving current active account list
2024-05-21 21:02:55.529 I No active accounts
2024-05-21 21:03:05.529 I Starting blockchain sync with daemon

Sample requests:
$ curl -X POST http://127.0.0.1:8443/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"getblock","params":{"height":311888}}' -H 'Content-Type: application/json'
curl: (52) Empty reply from server

$ curl --location --header 'Content-type: application/json' --data '{"address":"4AquGD2EZpW4pPFJVDkYHQSTR67rcEd5iJ6dHzcRcen3AgXQxxgmkm3eA9mAHxMqeaLhfGdYM5HMyEPKwKdrttKAHNcUx1d","view_key":"4570af226b5385bfdbdd13525b5b74c6931e9eaafdbd5cca33b4340932ee6d09"}' 'http://127.0.0.1:8443/import_request'
curl: (52) Empty reply from server

`

boost: undefined reference

I can't figure this one out. I'm getting this error:

/path/monero/monero-build/src/blockchain_db/libblockchain_db.a(db_lmdb.cpp.o): In function `boost::filesystem::unique_path(boost::filesystem::path const&)':
db_lmdb.cpp:(.text._ZN5boost10filesystem11unique_pathERKNS0_4pathE[_ZN5boost10filesystem11unique_pathERKNS0_4pathE]+0x33): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

My system boost library is boost-1.59.0 and the Monero one seems to be boost-1.64.0 but the declarations are identical.

I have checked boost header file filesystem/operations.hpp and both function are defined.

/usr/include/boost/filesystem/operations.hpp
    BOOST_FILESYSTEM_DECL
    path unique_path(const path& p, system::error_code* ec=0);

  inline
  path unique_path(const path& p="%%%%-%%%%-%%%%-%%%%")
                                       { return detail::unique_path(p); }
  inline
  path unique_path(const path& p, system::error_code& ec)
                                       { return detail::unique_path(p, &ec); }

I checked the library file

/usr/lib64/libboost_filesystem.a
 _ZN5boost10filesystem6detail11unique_pathERKNS0_4pathEPNS_6system10error_codeE

And the one in the error

From the error
 _ZN5boost10filesystem11unique_pathERKNS0_4pathE

They seem to point to different functions ???

So. What am I missing here? What can I do?

After version update node to 0.18 and lws to 0.2_0.18: No active accounts

After update I get this messages.
20.09.2022 10:50:512022-09-20 07:50:51.816 I Starting blockchain sync with daemon
20.09.2022 10:50:512022-09-20 07:50:51.817 I Retrieving current active account list
20.09.2022 10:50:512022-09-20 07:50:51.818 I No active accounts
But the account (pubkey, view key) was added using monero-lws-admin

I'll be glad to hear your suggestions :)
Maybe I miss something..

Build issue

[ 84%] Linking CXX executable monero-lws-admin
Undefined symbols for architecture arm64:
"_IOPSGetTimeRemainingEstimate", referenced from:
cryptonote::miner::background_worker_thread() in libcryptonote_basic.a(miner.cpp.o)
cryptonote::miner::on_battery_power() in libcryptonote_basic.a(miner.cpp.o)
ld: symbol(s) not found for architecture arm64

[BUG]Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again

I was testing monero-lws on i9-14900k and few more errors came out. This is strange to me, because i do running same version of monero-daemon (master with commit monero-project/monero@d64a5f7 )
against monero-lws-daemon (develop) on i5-13500k and no such errors appearing.


$ monero-lws-daemon --daemon tcp://127.0.0.1:18082 --db-path /home/dem/.lws --rest-server http://127.0.0.1:8443 --log-level=0 --auto-accept-creation --network=main --admin-rest-server http://127.0.0.1:8444
2024-07-16 09:05:23.658	I Binding on 127.0.0.1 (IPv4):8443
2024-07-16 09:05:23.658	I Binding on 127.0.0.1 (IPv4):8444
2024-07-16 09:07:09.902	E Failed to retrieve next blocks: Error returned by JSON-RPC server. Resetting state and trying again
2024-07-16 09:07:12.802	E Failed to retrieve next blocks: Error returned by JSON-RPC server. Resetting state and trying again
2024-07-16 09:08:11.501	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:08:15.136	E Failed to retrieve next blocks: JSON parser found invalid value. Resetting state and trying again
2024-07-16 09:08:55.806	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:10:45.586	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:11:42.706	E Failed to retrieve next blocks: JSON parser expected ',' or '}'. Resetting state and trying again
2024-07-16 09:17:18.074	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:24:25.639	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:29:56.331	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:32:45.340	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:34:52.099	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:35:39.876	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:35:49.716	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:38:32.725	E Failed to retrieve next blocks: JSON parser expected ',' or ']'. Resetting state and trying again
2024-07-16 09:40:23.993	E Failed to retrieve next blocks: Schema expected binary of fixed size. Resetting state and trying again
2024-07-16 09:40:29.722	E Failed to retrieve next blocks: Schema expected binary of fixed size. Resetting state and trying again
2024-07-16 09:40:41.136	E Failed to retrieve next blocks: Schema expected binary of fixed size. Resetting state and trying again
2024-07-16 09:41:46.829	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:43:23.246	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:43:54.386	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:46:22.355	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:46:34.469	E Failed to retrieve next blocks: JSON parser expected ',' or ']'. Resetting state and trying again
2024-07-16 09:46:43.642	E Failed to retrieve next blocks: Schema missing required field key. Resetting state and trying again
2024-07-16 09:48:58.549	E Failed to retrieve next blocks: Schema expected binary of fixed size. Resetting state and trying again

Moreover when above errors occurs then monero-lws-daemon behaves like doing restarting for few minutes and then again CPU going to high load continuing updating accounts. However it does not quit.

First signed tag

Finally signed a "release" @j-berman @serhack . Working on getting this key into the Monero repo, it is a separate key than my mail {at} leeclagett {.} com GPG key. I will most likely only use this key for signing release tags of LWS, unless there is a good reason to use it with all commits. I chose a ECDSA algorithm for this reason (to keep signature sizes small).

Eventually it may be used to provide additional signatures of the Monero tarball (simply to ensure that one of the main Devs has the same copy of code as everyone else on the team).

Build error HIDAPI_LIBRARY

In Monero dependencies libhidapi is an optional dependency, and I don't have it.

It's not listed as a dependency for this thing.

Could it be detected by cmake, and not used if not available?

[ 93%] Linking CXX executable monero-lws-daemon
/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/../../../../x86_64-slackware-linux/bin/ld: cannot find -lHIDAPI_LIBRARY-NOTFOUND

Status:404Not Found

Title - Status:404Not Found

Description-when i try to hit login endpoint with postman,its shows Status:404Not Found and in terminal i got the error which has the screeeenshot that is attached below.

what changes do i need to do in the lws git hub to get the correct output.

The correct output should be-:
{
"new_address":0
"generated_locally":1
}

Screenshot from 2022-09-13 12-42-29

Clang build issue, error: implicit instantiation of undefined template

[ 53%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/write.cpp.o
/Users/selsta/dev/monero-lws/src/wire/json/write.cpp:165:9: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
    dest.write(reinterpret_cast<const char*>(bytes.data()), bytes.size());
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:124:32: note: template is declared here
    class _LIBCPP_TEMPLATE_VIS basic_ostream;
                               ^
1 error generated.
make[2]: *** [src/wire/json/CMakeFiles/monero-lws-wire-json.dir/write.cpp.o] Error 1
make[1]: *** [src/wire/json/CMakeFiles/monero-lws-wire-json.dir/all] Error 2

lto1: internal compiler error: in add_symbol_to_partition_1, at lto/lto-partition.c:153

[ 12%] Built target monero-lws-wire
[ 24%] Built target monero-lws-wire-json
[ 33%] Built target monero-lws-common
[ 48%] Built target monero-lws-db
[ 66%] Built target monero-lws-rpc
[ 81%] Built target monero-lws-util
[ 84%] Linking CXX executable monero-lws-daemon
lto1: internal compiler error: in add_symbol_to_partition_1, at lto/lto-partition.c:153
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-9/README.Bugs for instructions.
lto-wrapper: fatal error: /usr/bin/c++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/monero-lws-daemon.dir/build.make:153: src/monero-lws-daemon] Error 1
make[1]: *** [CMakeFiles/Makefile2:206: src/CMakeFiles/monero-lws-daemon.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

Guide me to fix it

Build error on release-v0.3_0.18 branch due to C++ 17

I'm getting this error building on the release-v0.3_0.18 branch:

In file included from /Users/woodser/git/monero-lws/src/db/string.cpp:30:
/Users/woodser/git/monero-java/external/monero-cpp/external/monero-project/src/cryptonote_basic/cryptonote_basic_impl.h:43:29: error: no template named 'unary_function' in namespace 'std'; did you mean '__unary_function'?
  struct array_hasher: std::unary_function<t_array&, std::size_t>
                       ~~~~~^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/include/c++/v1/__functional/unary_function.h:46:1: note: '__unary_function' declared here
using __unary_function = __unary_function_keep_layout_base<_Arg, _Result>;
^

The error resolves by changing set(CMAKE_CXX_STANDARD 17) to set(CMAKE_CXX_STANDARD 14).

Guessing it's too far ahead of monero-project?

Clang build issue: Undefined symbols for architecture x86_64 _IOPSGetTimeRemainingEstimate

Sorry for spamming issues, but after solving the first two issues and adding openssl include dir to INTERFACE_INCLUDE_DIRECTORIES I get the following:

[ 84%] Linking CXX executable monero-lws-admin
Undefined symbols for architecture x86_64:
  "_IOPSGetTimeRemainingEstimate", referenced from:
      cryptonote::miner::background_worker_thread() in libcryptonote_basic.a(miner.cpp.o)
      cryptonote::miner::on_battery_power() in libcryptonote_basic.a(miner.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/monero-lws-admin] Error 1
make[1]: *** [src/CMakeFiles/monero-lws-admin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Failed to match first line: ???

Trying to use this with mymonero app but can't find the way how to bypass this error:
Screenshot from 2021-02-11 01-07-17

Although, calling the API manually seems to be working.
Can't figure out why in mymonero case it doesn't work, any ideas?

Unable to find required monero library daemon_messages

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
CMake Error at CMakeLists.txt:142 (message):
Unable to find required monero library daemon_messages

-- Configuring incomplete, errors occurred!
See also "/home/monero/monero-lws/build/CMakeFiles/CMakeOutput.log".
See also "/home/monero/monero-lws/build/CMakeFiles/CMakeError.log".

[Feature] Add optional start_height to login / account creation / import_request

I'm not sure this is the best place to make this feature request, but it would be great to be able to be able to specify a starting height on LWS /login account creation. There's not really an way to import an existing wallet (Say I want to move my Monerujo wallet to my self-hosted LWS / MyMonero setup, or say I want to use MyMonero to track donations that have been made to the Monero Art Fund) without having to manually set a height in admin settings (I think this is a thing) or re-scanning the wallet from the genesis block- this is an existing api feature (import_request) and is a bit too heavy handed.

I think it makes the most sense to add an optional start_height to the login endpoint (subsequent login requests that include the height are ignored if requestHeight <= storedHeight, and updated/rescanned otherwise), but alternatively, perhaps this makes sense to add as an optional item to import_request, or maybe both.

Compilation fails with latest version of Monero codebase repository

Steps to reproduce:

  • Clone the monero-code/monero repository
  • Build Monero binaries
  • Clone Monero lws repository
  • Try to build Light wallet server

Version:
GCC 7 Debian 10

Error:
no member named increase_size in epee:byte_stream

For now, you should git checkout release-v017 on Monero repository since the light wallet actually compiles with the 0.17 release of Monero.

Cannot build with "invalid Monero source dir"

Hi there,

Trying to get this built but running into an issue. When I attempt to build mymonero-lws after building Monero froms ource, I keep getting this error message:

➜  build git:(develop) cmake -DMONERO_SOURCE_DIR=~/build/monero -DMONERO_BUILD_DIR=~/build/monero/build ..                                                             
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:89 (load_cache):
  load_cache Cannot load cache file from ~/build/monero/build/CMakeCache.txt


CMake Error at CMakeLists.txt:105 (message):
  Invalid Monero source dir - does not appear to match source used for build
  directory


-- Configuring incomplete, errors occurred!
See also "/home/tr/build/monero-lws/build/CMakeFiles/CMakeOutput.log".

Monero is cloned in ~/build/monero and built against release-v0.17, with the resulting build files in ~/build/monero/build/Linux/release-v0.17/release. I have tried passing both ~/build/monero/build and ~/build/monero/build/Linux/release-v0.17/release for the -DMONERO_BUILD_DIR flag, but neither work.

Key derivation failed

So now that I was able to compile the LWS, I tested it by adding a wallet of mine and rescanning from height 0.

./monero-lws-admin add_account address view-key
./monero-lws-admin rescan 0 address

This worked fine for a while and then suddenly the program stopped.

2020-10-06 19:34:46.611	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:48.311	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:49.915	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:51.244	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:52.614	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:54.058	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:55.564	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:57.031	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:58.253	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:34:59.413	I Processed 999 block(s) against 1 account(s)
2020-10-06 19:35:00.140	E Key derivation failed

Every time I start the LWS I get the same message now.

selsta@mbpR ~/d/m/b/src (develop)> ./monero-lws-daemon
2020-10-06 20:09:00.453	I Using monerod ZMQ RPC at tcp://127.0.0.1:18082
2020-10-06 20:09:00.453	I Starting blockchain sync with daemon
2020-10-06 20:09:00.454	I [PARSE URI] regex not matched for uri: ^((.*?)://)?(\[(.*)\](:(\d+))?)(.*)?
2020-10-06 20:09:00.455	I Binding on 0.0.0.0 (IPv4):8443
2020-10-06 20:09:00.455	I Generating SSL certificate
2020-10-06 20:09:01.747	I Run net_service loop( 1 threads)...
2020-10-06 20:09:01.747	I Listening for REST clients at https://0.0.0.0:8443
2020-10-06 20:09:01.747	I Retrieving current active account list
2020-10-06 20:09:01.747	I Starting scan loops on 1 thread(s) with 1 account(s)
2020-10-06 20:09:02.616	E Key derivation failed

Error during CMake

I am trying to build using the instructions provided in the readme but I run into errors with cmake prior to the build. My setup:

RPi 4 with Ubuntu 20.04
Monero in ~/monero build from source

When executing
cmake -DMONERO_SOURCE_DIR=~/monero -DMONERO_BUILD_DIR=~/monero/build ..

I get the following

-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:89 (load_cache):
  load_cache Cannot load cache file from ~/monero/build/CMakeCache.txt


CMake Error at CMakeLists.txt:105 (message):
  Invalid Monero source dir - does not appear to match source used for build
  directory


-- Configuring incomplete, errors occurred!
See also "/home/ethereum/monero-lws/build/CMakeFiles/CMakeOutput.log".

For the first error: in ~/monero/build there is no such file because CMake was never run for building Monero. From the instructions on the GitHub readme I just ran make and it works. Maybe that causes this?

For the second error: the build files are in subfolders. Maybe this is a problem? Example:
monero/build/Linux/HEAD_detached_at_v0.17.1.9/release
I've tried to specify full path but that does not work either

Impossible to send Monero: Key "relayed" missing from object.

I'm still testing lightwallet server daemon and via a workaround (yes, now it's totally a workaround, aka commenting the error) for #15 issue, I tried to send some Monero to another address from stagenet. I'm using OpenMonero frontend with a custom configuration.

The problem is that when daemon receives the transaction from the call submit_raw_tx, the following error appeared:
E Exception at [connection<t_protocol_handler>::handle_read], what=Key "relayed" missing from object.

`transaction_height` and `scanned_height` use block height instead of tx count

From the light wallet REST API spec:
transaction_height = Total txes sent in Monero
scanned_height = Current tx scan progress

These are in contrast to:
blockchain_height = Current blockchain height
scanned_block_height = Current scan progress

But can see here the response for all 4 is always in terms of block height, not tx count

Should be a simple fix, marking for later


Side note: I'm not sure if start_height is correct in monero-lws or in MyMonero, but MyMonero seems to be returning a tx count for start_height rather than block height (monero-lws returns block height). Worth a deeper investigation into this discrepancy I think.

Compilation clang: error: call to 'write_bytes' is ambiguous

After solving #1

selsta@mbpR ~/d/m/build (develop)> cmake -DMONERO_SOURCE_DIR="/Users/selsta/dev/monero-vendored-unbound" -DMONERO_BUILD_DIR="/Users/selsta/dev/monero-vendored-unbound/build" ..
-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/selsta/dev/monero-lws/build
selsta@mbpR ~/d/m/build (develop)> make -j4
Scanning dependencies of target monero-lws-wire
Scanning dependencies of target monero-lws-common
Scanning dependencies of target monero-lws-util
Scanning dependencies of target monero-lws-db
[  3%] Building CXX object src/CMakeFiles/monero-lws-common.dir/config.cpp.o
[  6%] Building CXX object src/wire/CMakeFiles/monero-lws-wire.dir/error.cpp.o
[  9%] Building CXX object src/CMakeFiles/monero-lws-common.dir/error.cpp.o
[ 12%] Building CXX object src/db/CMakeFiles/monero-lws-db.dir/account.cpp.o
[ 15%] Building CXX object src/util/CMakeFiles/monero-lws-util.dir/gamma_picker.cpp.o
[ 18%] Linking CXX static library libmonero-lws-common.a
[ 18%] Built target monero-lws-common
[ 21%] Building CXX object src/wire/CMakeFiles/monero-lws-wire.dir/read.cpp.o
[ 25%] Building CXX object src/db/CMakeFiles/monero-lws-db.dir/data.cpp.o
[ 28%] Building CXX object src/util/CMakeFiles/monero-lws-util.dir/random_outputs.cpp.o
[ 31%] Building CXX object src/wire/CMakeFiles/monero-lws-wire.dir/write.cpp.o
[ 34%] Building CXX object src/util/CMakeFiles/monero-lws-util.dir/transactions.cpp.o
[ 37%] Linking CXX static library libmonero-lws-wire.a
[ 37%] Built target monero-lws-wire
[ 40%] Building CXX object src/db/CMakeFiles/monero-lws-db.dir/storage.cpp.o
In file included from /Users/selsta/dev/monero-lws/src/db/data.cpp:33:
In file included from /Users/selsta/dev/monero-lws/src/./wire.h:38:
/Users/selsta/dev/monero-lws/src/./wire/write.h:154:5: error: call to 'write_bytes' is ambiguous
    write_bytes(dest, elem.get_value());
    ^~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: note: in instantiation of function template specialization 'wire_write::field<wire::writer,
      std::__1::reference_wrapper<const unsigned long long> >' requested here
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:222:17: note: in instantiation of function template specialization 'wire_write::object<wire::writer,
      wire::field_<std::__1::reference_wrapper<const unsigned long long>, true>, wire::field_<std::__1::reference_wrapper<const unsigned long long>, true> >' requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:44:13: note: in instantiation of function template specialization 'wire::object<wire::field_<std::__1::reference_wrapper<const
      unsigned long long>, true>, wire::field_<std::__1::reference_wrapper<const unsigned long long>, true> >' requested here
      wire::object(format, WIRE_FIELD(high), WIRE_FIELD(low));
            ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:47:33: note: in instantiation of function template specialization 'lws::db::(anonymous namespace)::map_output_id<wire::writer, const
      lws::db::output_id>' requested here
  WIRE_DEFINE_OBJECT(output_id, map_output_id);
                                ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:81:15: note: candidate function
  inline void write_bytes(writer& dest, const int source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:85:15: note: candidate function
  inline void write_bytes(writer& dest, const std::intmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:90:15: note: candidate function
  inline void write_bytes(writer& dest, const unsigned source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:94:15: note: candidate function
  inline void write_bytes(writer& dest, const std::uintmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:99:15: note: candidate function
  inline void write_bytes(writer& dest, const double source)
              ^
In file included from /Users/selsta/dev/monero-lws/src/db/data.cpp:27:
/Users/selsta/dev/monero-lws/src/db/data.h:63:3: error: call to 'write_bytes' is ambiguous
  WIRE_AS_INTEGER(block_id);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/fwd.h:48:5: note: expanded from macro 'WIRE_AS_INTEGER'
    write_bytes(dest, std::underlying_type<type_>::type(source));       \
    ^~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:154:5: note: in instantiation of function template specialization 'lws::db::write_bytes<wire::writer>' requested here
    write_bytes(dest, elem.get_value());
    ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: note: in instantiation of function template specialization 'wire_write::field<wire::writer,
      std::__1::reference_wrapper<const lws::db::block_id> >' requested here
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:222:17: note: in instantiation of function template specialization 'wire_write::object<wire::writer,
      wire::field_<std::__1::reference_wrapper<const lws::db::account_id>, true>, wire::field_<lws::db::account_time, true>, wire::field_<std::__1::reference_wrapper<const
      lws::db::account_address>, true>, wire::field_<const lws::db::view_key *, false>, wire::field_<std::__1::reference_wrapper<const lws::db::block_id>, true>,
      wire::field_<std::__1::reference_wrapper<const lws::db::block_id>, true>, wire::field_<lws::db::account_time, true>, wire::field_<bool, true>, wire::field_<bool, true> >'
      requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:74:11: note: in instantiation of function template specialization 'wire::object<wire::field_<std::__1::reference_wrapper<const
      lws::db::account_id>, true>, wire::field_<lws::db::account_time, true>, wire::field_<std::__1::reference_wrapper<const lws::db::account_address>, true>, wire::field_<const
      lws::db::view_key *, false>, wire::field_<std::__1::reference_wrapper<const lws::db::block_id>, true>, wire::field_<std::__1::reference_wrapper<const lws::db::block_id>,
      true>, wire::field_<lws::db::account_time, true>, wire::field_<bool, true>, wire::field_<bool, true> >' requested here
    wire::object(dest,
          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:81:15: note: candidate function
  inline void write_bytes(writer& dest, const int source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:85:15: note: candidate function
  inline void write_bytes(writer& dest, const std::intmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:90:15: note: candidate function
  inline void write_bytes(writer& dest, const unsigned source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:94:15: note: candidate function
  inline void write_bytes(writer& dest, const std::uintmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:99:15: note: candidate function
  inline void write_bytes(writer& dest, const double source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:154:5: error: no matching function for call to 'write_bytes'
    write_bytes(dest, elem.get_value());
    ^~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: note: in instantiation of function template specialization 'wire_write::field<wire::writer, lws::db::block_id>' requested
      here
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:222:17: note: in instantiation of function template specialization 'wire_write::object<wire::writer,
      wire::field_<std::__1::reference_wrapper<const lws::db::output_id>, true>, wire::field_<lws::db::block_id, true>, wire::field_<unsigned int, true>, wire::field_<unsigned
      long long, true>, wire::field_<unsigned long long, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>, wire::field_<std::__1::reference_wrapper<const crypto::public_key>, true>, wire::field_<const rct::key
      *, false>, wire::field_<epee::span<const unsigned char> *, false>, wire::field_<unsigned long long, true>, wire::field_<unsigned int, true>, wire::field_<bool, true> >'
      requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:126:11: note: in instantiation of function template specialization 'wire::object<wire::field_<std::__1::reference_wrapper<const
      lws::db::output_id>, true>, wire::field_<lws::db::block_id, true>, wire::field_<unsigned int, true>, wire::field_<unsigned long long, true>, wire::field_<unsigned long
      long, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::public_key>, true>, wire::field_<const rct::key *, false>, wire::field_<epee::span<const unsigned char> *, false>,
      wire::field_<unsigned long long, true>, wire::field_<unsigned int, true>, wire::field_<bool, true> >' requested here
    wire::object(dest,
          ^
/Users/selsta/dev/monero-lws/src/db/data.h:55:3: note: candidate function template not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::account_id' for 2nd argument
  WIRE_AS_INTEGER(account_id);
  ^
/Users/selsta/dev/monero-lws/src/./wire/fwd.h:46:15: note: expanded from macro 'WIRE_AS_INTEGER'
  inline void write_bytes(W& dest, const type_ source)                  \
              ^
/Users/selsta/dev/monero-lws/src/db/data.h:59:3: note: candidate function template not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::account_time' for 2nd argument
  WIRE_AS_INTEGER(account_time);
  ^
/Users/selsta/dev/monero-lws/src/./wire/fwd.h:46:15: note: expanded from macro 'WIRE_AS_INTEGER'
  inline void write_bytes(W& dest, const type_ source)                  \
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:81:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const int' for 2nd argument
  inline void write_bytes(writer& dest, const int source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:85:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const std::intmax_t' (aka 'const long') for 2nd argument
  inline void write_bytes(writer& dest, const std::intmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:90:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const unsigned int' for 2nd argument
  inline void write_bytes(writer& dest, const unsigned source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:94:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const std::uintmax_t' (aka 'const unsigned long') for 2nd argument
  inline void write_bytes(writer& dest, const std::uintmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:99:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const double' for 2nd argument
  inline void write_bytes(writer& dest, const double source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:104:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const boost::string_ref' (aka 'const basic_string_ref<char, std::char_traits<char> >') for 2nd argument
  inline void write_bytes(writer& dest, const boost::string_ref source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:115:15: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const epee::span<const std::uint8_t>' (aka 'const span<const unsigned char>') for 2nd argument
  inline void write_bytes(writer& dest, const epee::span<const std::uint8_t> source)
              ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:47:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::output_id' for 2nd argument
  WIRE_DEFINE_OBJECT(output_id, map_output_id);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:74:8: note: expanded from macro 'WIRE_DEFINE_OBJECT'
  void write_bytes(::wire::writer& dest, const type& source)   \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:54:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::account_status' for 2nd argument
  WIRE_DEFINE_ENUM(account_status, map_account_status);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:64:8: note: expanded from macro 'WIRE_DEFINE_ENUM'
  void write_bytes(::wire::writer& dest, const type_ source)            \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:55:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::request' for 2nd argument
  WIRE_DEFINE_ENUM(request, map_request);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:64:8: note: expanded from macro 'WIRE_DEFINE_ENUM'
  void write_bytes(::wire::writer& dest, const type_ source)            \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:65:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::account_address' for 2nd argument
  WIRE_DEFINE_OBJECT(account_address, map_account_address);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:74:8: note: expanded from macro 'WIRE_DEFINE_OBJECT'
  void write_bytes(::wire::writer& dest, const type& source)   \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:67:8: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::account' for 2nd argument
  void write_bytes(wire::writer& dest, const account& self, const bool show_key)
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:95:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::block_info' for 2nd argument
  WIRE_DEFINE_OBJECT(block_info, map_block_info);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:74:8: note: expanded from macro 'WIRE_DEFINE_OBJECT'
  void write_bytes(::wire::writer& dest, const type& source)   \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:105:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::transaction_link' for 2nd argument
  WIRE_DEFINE_OBJECT(transaction_link, map_transaction_link);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:74:8: note: expanded from macro 'WIRE_DEFINE_OBJECT'
  void write_bytes(::wire::writer& dest, const type& source)   \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:107:8: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::output' for 2nd argument
  void write_bytes(wire::writer& dest, const output& self)
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:173:8: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::spend' for 2nd argument
  void write_bytes(wire::writer& dest, const spend& source)
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:193:3: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::key_image' for 2nd argument
  WIRE_DEFINE_OBJECT(key_image, map_key_image);
  ^
/Users/selsta/dev/monero-lws/src/./wire.h:74:8: note: expanded from macro 'WIRE_DEFINE_OBJECT'
  void write_bytes(::wire::writer& dest, const type& source)   \
       ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:195:8: note: candidate function not viable: no known conversion from 'const wire::field_<lws::db::block_id, true>::value_type'
      (aka 'const lws::db::block_id') to 'const lws::db::request_info' for 2nd argument
  void write_bytes(wire::writer& dest, const request_info& self, const bool show_key)
       ^
/Users/selsta/dev/monero-lws/src/./wire/traits.h:36:45: note: candidate template ignored: disabled by 'enable_if' [with T = lws::db::block_id]
  using enable_if = typename std::enable_if<C>::type;
                                            ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:198:15: note: candidate template ignored: could not match 'as_array_<type-parameter-0-0, type-parameter-0-1>' against
      'lws::db::block_id'
  inline void write_bytes(writer& dest, as_array_<T, F> source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/traits.h:36:45: note: candidate template ignored: disabled by 'enable_if' [with T = lws::db::block_id]
  using enable_if = typename std::enable_if<C>::type;
                                            ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:214:15: note: candidate template ignored: could not match 'as_object_<type-parameter-0-0, type-parameter-0-1, type-parameter-0-2>'
      against 'lws::db::block_id'
  inline void write_bytes(writer& dest, as_object_<T, F, G> source)
              ^
/Users/selsta/dev/monero-lws/src/db/data.h:63:3: note: candidate template ignored: substitution failure [with W = wire::writer]
  WIRE_AS_INTEGER(block_id);
  ^
/Users/selsta/dev/monero-lws/src/./wire/fwd.h:46:15: note: expanded from macro 'WIRE_AS_INTEGER'
  inline void write_bytes(W& dest, const type_ source)                  \
              ^
In file included from /Users/selsta/dev/monero-lws/src/db/data.cpp:33:
In file included from /Users/selsta/dev/monero-lws/src/./wire.h:38:
/Users/selsta/dev/monero-lws/src/./wire/write.h:154:5: error: call to 'write_bytes' is ambiguous
    write_bytes(dest, elem.get_value());
    ^~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: note: in instantiation of function template specialization 'wire_write::field<wire::writer, unsigned long long>' requested
      here
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:222:17: note: in instantiation of function template specialization 'wire_write::object<wire::writer,
      wire::field_<std::__1::reference_wrapper<const lws::db::output_id>, true>, wire::field_<lws::db::block_id, true>, wire::field_<unsigned int, true>, wire::field_<unsigned
      long long, true>, wire::field_<unsigned long long, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>, wire::field_<std::__1::reference_wrapper<const crypto::public_key>, true>, wire::field_<const rct::key
      *, false>, wire::field_<epee::span<const unsigned char> *, false>, wire::field_<unsigned long long, true>, wire::field_<unsigned int, true>, wire::field_<bool, true> >'
      requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:126:11: note: in instantiation of function template specialization 'wire::object<wire::field_<std::__1::reference_wrapper<const
      lws::db::output_id>, true>, wire::field_<lws::db::block_id, true>, wire::field_<unsigned int, true>, wire::field_<unsigned long long, true>, wire::field_<unsigned long
      long, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::public_key>, true>, wire::field_<const rct::key *, false>, wire::field_<epee::span<const unsigned char> *, false>,
      wire::field_<unsigned long long, true>, wire::field_<unsigned int, true>, wire::field_<bool, true> >' requested here
    wire::object(dest,
          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:81:15: note: candidate function
  inline void write_bytes(writer& dest, const int source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:85:15: note: candidate function
  inline void write_bytes(writer& dest, const std::intmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:90:15: note: candidate function
  inline void write_bytes(writer& dest, const unsigned source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:94:15: note: candidate function
  inline void write_bytes(writer& dest, const std::uintmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:99:15: note: candidate function
  inline void write_bytes(writer& dest, const double source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: error: no matching function for call to 'field'
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:222:17: note: in instantiation of function template specialization 'wire_write::object<wire::writer,
      wire::field_<std::__1::reference_wrapper<const lws::db::block_id>, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::key_image>, true>, wire::field_<std::__1::reference_wrapper<const lws::db::output_id>, true>,
      wire::field_<std::__1::reference_wrapper<const unsigned long long>, true>, wire::field_<std::__1::reference_wrapper<const unsigned long long>, true>,
      wire::field_<std::__1::reference_wrapper<const unsigned int>, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash *const>, false> >' requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:148:13: note: in instantiation of function template specialization 'wire::object<wire::field_<std::__1::reference_wrapper<const
      lws::db::block_id>, true>, wire::field_<std::__1::reference_wrapper<const crypto::hash>, true>, wire::field_<std::__1::reference_wrapper<const crypto::key_image>, true>,
      wire::field_<std::__1::reference_wrapper<const lws::db::output_id>, true>, wire::field_<std::__1::reference_wrapper<const unsigned long long>, true>,
      wire::field_<std::__1::reference_wrapper<const unsigned long long>, true>, wire::field_<std::__1::reference_wrapper<const unsigned int>, true>,
      wire::field_<std::__1::reference_wrapper<const crypto::hash *const>, false> >' requested here
      wire::object(format,
            ^
/Users/selsta/dev/monero-lws/src/db/data.cpp:178:12: note: in instantiation of function template specialization 'lws::db::(anonymous namespace)::map_spend<wire::writer, const
      lws::db::spend, const crypto::hash *const>' requested here
    return map_spend(dest, source, payment_id);
           ^
/Users/selsta/dev/monero-lws/src/./wire/field.h:89:36: note: candidate function template not viable: no known conversion from 'wire::writer' to 'const char *' for 1st argument
  constexpr inline field_<T, true> field(const char* name, T value)
                                   ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:159:15: note: candidate template ignored: could not match 0 against 1
  inline bool field(W& dest, const wire::field_<T, false> elem)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:151:15: note: candidate template ignored: substitution failure [with W = wire::writer, T = std::__1::reference_wrapper<const
      unsigned long long>]
  inline bool field(W& dest, const wire::field_<T, true> elem)
              ^
5 errors generated.
make[2]: *** [src/db/CMakeFiles/monero-lws-db.dir/data.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Scanning dependencies of target monero-lws-wire-json
[ 43%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/error.cpp.o
[ 46%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/read.cpp.o
[ 50%] Building CXX object src/wire/json/CMakeFiles/monero-lws-wire-json.dir/write.cpp.o
/Users/selsta/dev/monero-lws/src/wire/json/write.cpp:165:9: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
    dest.write(reinterpret_cast<const char*>(bytes.data()), bytes.size());
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:124:32: note: template is declared here
    class _LIBCPP_TEMPLATE_VIS basic_ostream;
                               ^
1 error generated.
make[2]: *** [src/wire/json/CMakeFiles/monero-lws-wire-json.dir/write.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [src/wire/json/CMakeFiles/monero-lws-wire-json.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 53%] Linking CXX static library libmonero-lws-util.a
[ 53%] Built target monero-lws-util
In file included from /Users/selsta/dev/monero-lws/src/db/storage.cpp:27:
In file included from /Users/selsta/dev/monero-lws/src/db/storage.h:38:
/Users/selsta/dev/monero-lws/src/./db/data.h:63:3: error: call to 'write_bytes' is ambiguous
  WIRE_AS_INTEGER(block_id);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/fwd.h:48:5: note: expanded from macro 'WIRE_AS_INTEGER'
    write_bytes(dest, std::underlying_type<type_>::type(source));       \
    ^~~~~~~~~~~
/Users/selsta/dev/monero-lws/src/./wire/write.h:154:5: note: in instantiation of function template specialization 'lws::db::write_bytes<wire::json_writer>' requested here
    write_bytes(dest, elem.get_value());
    ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:173:27: note: in instantiation of function template specialization 'wire_write::field<wire::json_writer, lws::db::block_id>'
      requested here
    const bool dummy[] = {field(dest, std::move(fields))...};
                          ^
/Users/selsta/dev/monero-lws/src/./wire/json/write.h:182:17: note: in instantiation of function template specialization 'wire_write::object<wire::json_writer,
      wire::field_<lws::db::block_id, true>, wire::field_<wire::as_array_<boost::iterator_range<lmdb::value_iterator<lws::db::(anonymous namespace)::account_lookup,
      lws::db::(anonymous namespace)::account_lookup, 0> >, wire::identity_>, true> >' requested here
    wire_write::object(dest, std::move(fields)...);
                ^
/Users/selsta/dev/monero-lws/src/db/storage.cpp:692:11: note: in instantiation of function template specialization 'wire::object<wire::field_<lws::db::block_id, true>,
      wire::field_<wire::as_array_<boost::iterator_range<lmdb::value_iterator<lws::db::(anonymous namespace)::account_lookup, lws::db::(anonymous namespace)::account_lookup, 0>
      >, wire::identity_>, true> >' requested here
    wire::object(dest,
          ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:81:15: note: candidate function
  inline void write_bytes(writer& dest, const int source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:85:15: note: candidate function
  inline void write_bytes(writer& dest, const std::intmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:90:15: note: candidate function
  inline void write_bytes(writer& dest, const unsigned source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:94:15: note: candidate function
  inline void write_bytes(writer& dest, const std::uintmax_t source)
              ^
/Users/selsta/dev/monero-lws/src/./wire/write.h:99:15: note: candidate function
  inline void write_bytes(writer& dest, const double source)
              ^
1 error generated.
make[2]: *** [src/db/CMakeFiles/monero-lws-db.dir/storage.cpp.o] Error 1
make[1]: *** [src/db/CMakeFiles/monero-lws-db.dir/all] Error 2
make: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.