Merge pull request #1453 from jagerman/emerge912

9.1.2 hotfix -- fix proofs for older nodes with both pubkeys
This commit is contained in:
Jason Rhinelander 2021-04-30 03:26:04 -03:00 committed by GitHub
commit 6d13152f4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 10 deletions

View File

@ -51,7 +51,7 @@ message(STATUS "CMake version ${CMAKE_VERSION}")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12 CACHE STRING "macOS deployment target (Apple clang only)")
project(oxen
VERSION 9.1.0
VERSION 9.1.2
LANGUAGES CXX C)
set(OXEN_RELEASE_CODENAME "Audacious Aurochs")

View File

@ -1928,16 +1928,19 @@ namespace cryptonote
cryptonote_connection_context fake_context{};
bool relayed;
auto height = get_current_blockchain_height();
auto hf_version = get_hard_fork_version(height);
//TODO: remove after HF18
if (hf_version < HF_VERSION_PROOF_BTENC) {
auto proof = m_service_node_list.generate_uptime_proof(m_sn_public_ip, storage_https_port(), storage_omq_port(), ss_version, m_quorumnet_port, lokinet_version);
NOTIFY_BTENCODED_UPTIME_PROOF::request req = proof.generate_request();
relayed = get_protocol()->relay_btencoded_uptime_proof(req, fake_context);
// TODO: remove after HF19
if (relayed && tools::view_guts(m_service_keys.pub) != tools::view_guts(m_service_keys.pub_ed25519)) {
// Temp workaround: nodes with both pub and ed25519 are failing bt-encoded proofs, so send
// an old-style proof out as well as a workaround.
NOTIFY_UPTIME_PROOF::request req = m_service_node_list.generate_uptime_proof(m_sn_public_ip, storage_https_port(), storage_omq_port(), m_quorumnet_port);
relayed = get_protocol()->relay_uptime_proof(req, fake_context);
} else {
auto proof = m_service_node_list.generate_uptime_proof(m_sn_public_ip, storage_https_port(), storage_omq_port(), ss_version, m_quorumnet_port, lokinet_version);
NOTIFY_BTENCODED_UPTIME_PROOF::request req = proof.generate_request();
relayed = get_protocol()->relay_btencoded_uptime_proof(req, fake_context);
get_protocol()->relay_uptime_proof(req, fake_context);
}
if (relayed)
MGINFO("Submitted uptime-proof for Service Node (yours): " << m_service_keys.pub);

View File

@ -121,7 +121,9 @@ oxenmq::bt_dict Proof::bt_encode_uptime_proof() const
{"lv", oxenmq::bt_list{{lokinet_version[0], lokinet_version[1], lokinet_version[2]}}},
};
if (pubkey != pubkey_ed25519) encoded_proof["pk"] = tools::view_guts(pubkey);
if (tools::view_guts(pubkey) != tools::view_guts(pubkey_ed25519)) {
encoded_proof["pk"] = tools::view_guts(pubkey);
}
return encoded_proof;
}