vtnerd / monero-lws Goto Github PK
View Code? Open in Web Editor NEWMonero Light Wallet Server (scans monero viewkeys and implements mymonero API). Fast LMDB backend.
License: BSD 3-Clause "New" or "Revised" License
Monero Light Wallet Server (scans monero viewkeys and implements mymonero API). Fast LMDB backend.
License: BSD 3-Clause "New" or "Revised" License
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.
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
`
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
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.
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.
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.
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 .
Returns per_kb_fee
which was deprecated (1, 2)
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".
[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
From light wallet spec:
If the total received outputs for the address is less than
amount
, the server shall return a HTTP 400 "Bad Request" error code.
monero-lws
currently returns the account_not_found
error
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.
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?
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
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
From time to time (randomly but mostly within ~10 hours) the monero-lws
crashes with the exact same sequence of logs:
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.
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
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.
Running ./src/monero-lws-admin --network test create_admin
gives this result:
{"address":"9sAejnQ9EBR111111111111111111111111111111111158LRbrc6UMRoz1ZnUWGiscDUfXDZHcmf1CiQW6F2NxTMT6zULn","key":"e59fdce5b27b8b0c664feb895debef40f8d78f6a2f59a3afa761d14a644d2500"}
The address can't be right, can it?
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.
Ubuntu 20 LTS and latest version of LWS from develop
branch.
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
`
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 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..
Running the monero-lws-admin
with --network test
gives an error:
./monero-lws-admin --network test create_admin
No such command
Using main
or stage
gives an error about genesis mismatch as expected.
Running docker build -t monero-lws:v0.2_0.18 . --no-cache
on v0.2_0.18 fails when linking with libunbound
:
https://paste.sethforprivacy.com/?632a27d7e6e7208d#GzoXnKzpwcQrdvnwRk2ir2wKPmcwtZhHvnpRpsWgou7U
[ 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
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.
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).
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
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
}
[ 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
Lightwallet API description describes the following behaviour at paragraph about "login" request:
If approval process is manual, a successful HTTP 200 OK and response object must be returned. Subsequent requests shall be HTTP 403 "Forbidden" until account is approved.
Instead, the server returns 500 error at calling /login
with the same request.
[ 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
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?
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....
-- 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".
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.
Hey
Thanks for the project, If one want use wownero node what are the steps?
Steps to reproduce:
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.
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.
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
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
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.
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.