Merge pull request #7661
08e4497 Improve cryptonote (block and tx) binary read performance (Lee Clagett)
This commit is contained in:
@@ -193,9 +193,7 @@ void message_store::unpack_signer_config(const multisig_wallet_state &state, con
|
||||
{
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << signer_config;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(signer_config)};
|
||||
THROW_WALLET_EXCEPTION_IF(!::serialization::serialize(ar, signers), tools::error::wallet_internal_error, "Failed to serialize signer config");
|
||||
}
|
||||
catch (...)
|
||||
@@ -383,9 +381,7 @@ void message_store::process_auto_config_data_message(uint32_t id)
|
||||
auto_config_data data;
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << m.content;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(m.content)};
|
||||
THROW_WALLET_EXCEPTION_IF(!::serialization::serialize(ar, data), tools::error::wallet_internal_error, "Failed to serialize auto config data");
|
||||
}
|
||||
catch (...)
|
||||
@@ -790,9 +786,7 @@ void message_store::read_from_file(const multisig_wallet_state &state, const std
|
||||
file_data read_file_data;
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << buf;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(buf)};
|
||||
if (::serialization::serialize(ar, read_file_data))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
@@ -829,9 +823,7 @@ void message_store::read_from_file(const multisig_wallet_state &state, const std
|
||||
loaded = false;
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << decrypted_data;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(decrypted_data)};
|
||||
if (::serialization::serialize(ar, *this))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
|
||||
+8
-19
@@ -5701,17 +5701,13 @@ void wallet2::load(const std::string& wallet_, const epee::wipeable_string& pass
|
||||
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << cache_data;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(cache_data)};
|
||||
if (::serialization::serialize(ar, *this))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
if (!loaded)
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << cache_data;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(cache_data)};
|
||||
ar.enable_varint_bug_backward_compatibility();
|
||||
if (::serialization::serialize(ar, *this))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
@@ -6786,8 +6782,7 @@ bool wallet2::parse_unsigned_tx_from_str(const std::string &unsigned_tx_st, unsi
|
||||
catch(const std::exception &e) { LOG_PRINT_L0("Failed to decrypt unsigned tx: " << e.what()); return false; }
|
||||
try
|
||||
{
|
||||
std::istringstream iss(s);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(s)};
|
||||
if (!::serialization::serialize(ar, exported_txs))
|
||||
{
|
||||
LOG_PRINT_L0("Failed to parse data from unsigned tx");
|
||||
@@ -7101,8 +7096,7 @@ bool wallet2::parse_tx_from_str(const std::string &signed_tx_st, std::vector<too
|
||||
catch (const std::exception &e) { LOG_PRINT_L0("Failed to decrypt signed transaction: " << e.what()); return false; }
|
||||
try
|
||||
{
|
||||
std::istringstream iss(s);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(s)};
|
||||
if (!::serialization::serialize(ar, signed_txs))
|
||||
{
|
||||
LOG_PRINT_L0("Failed to deserialize signed transaction");
|
||||
@@ -7237,8 +7231,7 @@ bool wallet2::parse_multisig_tx_from_str(std::string multisig_tx_st, multisig_tx
|
||||
bool loaded = false;
|
||||
try
|
||||
{
|
||||
std::istringstream iss(multisig_tx_st);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(multisig_tx_st)};
|
||||
if (::serialization::serialize(ar, exported_txs))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
@@ -12037,8 +12030,7 @@ bool wallet2::check_reserve_proof(const cryptonote::account_public_address &addr
|
||||
serializable_unordered_map<crypto::public_key, crypto::signature> subaddr_spendkeys;
|
||||
try
|
||||
{
|
||||
std::istringstream iss(sig_decoded);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(sig_decoded)};
|
||||
if (::serialization::serialize_noeof(ar, proofs))
|
||||
if (::serialization::serialize_noeof(ar, subaddr_spendkeys))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
@@ -13222,9 +13214,7 @@ size_t wallet2::import_outputs_from_str(const std::string &outputs_st)
|
||||
std::pair<uint64_t, std::vector<tools::wallet2::transfer_details>> outputs;
|
||||
try
|
||||
{
|
||||
std::stringstream iss;
|
||||
iss << body;
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(body)};
|
||||
if (::serialization::serialize(ar, outputs))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
@@ -13476,8 +13466,7 @@ size_t wallet2::import_multisig(std::vector<cryptonote::blobdata> blobs)
|
||||
bool loaded = false;
|
||||
try
|
||||
{
|
||||
std::istringstream iss(body);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(body)};
|
||||
if (::serialization::serialize(ar, i))
|
||||
if (::serialization::check_stream_state(ar))
|
||||
loaded = true;
|
||||
|
||||
@@ -1639,8 +1639,7 @@ namespace tools
|
||||
|
||||
try
|
||||
{
|
||||
std::istringstream iss(blob);
|
||||
binary_archive<false> ar(iss);
|
||||
binary_archive<false> ar{epee::strspan<std::uint8_t>(blob)};
|
||||
if (::serialization::serialize(ar, ptx))
|
||||
loaded = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user