Closed jagerman closed 3 years ago
Was the definition for the uptime proofs the struct in cryptonote_protocol/cryptonote_protocol_defs.h
or cryptonote_protocol/cryptonote_protocol_defs.h
?
In addition is the SS and lokinet version something that we can simply make a RPC request to the other clients to get?
Was the definition for the uptime proofs the struct in
cryptonote_protocol/cryptonote_protocol_defs.h
orcryptonote_protocol/cryptonote_protocol_defs.h
?
The .h
defines the structure, the .cpp
serializes it. Then service_node_list.cpp
has generate_uptime_proof()
that actually sets the value and adds a signature on top of them (so that they can't be forged). Further down, handle_uptime_proof
checks that hash and, assuming the signature checks out, records the proof info.
In addition is the SS and lokinet version something that we can simply make a RPC request to the other clients to get?
The RPC interface is generally only exposed on public RPC nodes, but not publicly on most service nodes. So we can expose the info on all service nodes by adding it to the get_service_nodes
RPC call, but actually transmitting that over the network would need to be part of the proof.
We don't currently include the storage server and lokinet versions in uptime proofs. We should, because that allows things like mandating non-fork SS version upgrades, and allowing us to warn (e.g. via LokiSNBot and lokiblocks) on problematic versions.
(Has to wait for loki 9 HF before being included because it changes the uptime proof version/format).