Merge pull request #4946
6644b9bblockchain_db: remove a couple unused functions (moneromooo-monero)ce594f5blockchain_db: allocate known size vector only once (moneromooo-monero)8332698db_lmdb: inline check_open, it's trivial and called everywhere (moneromooo-monero)5511563db_lmdb: avoid pointless division (moneromooo-monero)d1efe3dcryptonote: set tx hash on newly parsed txes when known (moneromooo-monero)9cc68a2tx_pool: add a few std::move where it can make a difference (moneromooo-monero)
This commit is contained in:
@@ -714,29 +714,6 @@ bool BlockchainBDB::for_all_outputs(std::function<bool(uint64_t amount, const cr
|
||||
return ret;
|
||||
}
|
||||
|
||||
blobdata BlockchainBDB::output_to_blob(const tx_out& output) const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainBDB::" << __func__);
|
||||
blobdata b;
|
||||
if (!t_serializable_object_to_blob(output, b))
|
||||
throw1(DB_ERROR("Error serializing output to blob"));
|
||||
return b;
|
||||
}
|
||||
|
||||
tx_out BlockchainBDB::output_from_blob(const blobdata& blob) const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainBDB::" << __func__);
|
||||
std::stringstream ss;
|
||||
ss << blob;
|
||||
binary_archive<false> ba(ss);
|
||||
tx_out o;
|
||||
|
||||
if (!(::serialization::serialize(ba, o)))
|
||||
throw1(DB_ERROR("Error deserializing tx output blob"));
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
uint64_t BlockchainBDB::get_output_global_index(const uint64_t& amount, const uint64_t& index)
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainBDB::" << __func__);
|
||||
|
||||
@@ -391,24 +391,6 @@ private:
|
||||
virtual void check_hard_fork_info();
|
||||
virtual void drop_hard_fork_info();
|
||||
|
||||
/**
|
||||
* @brief convert a tx output to a blob for storage
|
||||
*
|
||||
* @param output the output to convert
|
||||
*
|
||||
* @return the resultant blob
|
||||
*/
|
||||
blobdata output_to_blob(const tx_out& output) const;
|
||||
|
||||
/**
|
||||
* @brief convert a tx output blob to a tx output
|
||||
*
|
||||
* @param blob the blob to convert
|
||||
*
|
||||
* @return the resultant tx output
|
||||
*/
|
||||
tx_out output_from_blob(const blobdata& blob) const;
|
||||
|
||||
/**
|
||||
* @brief get the global index of the index-th output of the given amount
|
||||
*
|
||||
|
||||
@@ -170,7 +170,7 @@ void BlockchainDB::add_transaction(const crypto::hash& blk_hash, const transacti
|
||||
|
||||
uint64_t tx_id = add_transaction_data(blk_hash, tx, tx_hash, tx_prunable_hash);
|
||||
|
||||
std::vector<uint64_t> amount_output_indices;
|
||||
std::vector<uint64_t> amount_output_indices(tx.vout.size());
|
||||
|
||||
// iterate tx.vout using indices instead of C++11 foreach syntax because
|
||||
// we need the index
|
||||
@@ -183,13 +183,13 @@ void BlockchainDB::add_transaction(const crypto::hash& blk_hash, const transacti
|
||||
cryptonote::tx_out vout = tx.vout[i];
|
||||
rct::key commitment = rct::zeroCommit(vout.amount);
|
||||
vout.amount = 0;
|
||||
amount_output_indices.push_back(add_output(tx_hash, vout, i, tx.unlock_time,
|
||||
&commitment));
|
||||
amount_output_indices[i] = add_output(tx_hash, vout, i, tx.unlock_time,
|
||||
&commitment);
|
||||
}
|
||||
else
|
||||
{
|
||||
amount_output_indices.push_back(add_output(tx_hash, tx.vout[i], i, tx.unlock_time,
|
||||
tx.version > 1 ? &tx.rct_signatures.outPk[i].mask : NULL));
|
||||
amount_output_indices[i] = add_output(tx_hash, tx.vout[i], i, tx.unlock_time,
|
||||
tx.version > 1 ? &tx.rct_signatures.outPk[i].mask : NULL);
|
||||
}
|
||||
}
|
||||
add_tx_amount_output_indices(tx_id, amount_output_indices);
|
||||
|
||||
@@ -456,6 +456,12 @@ inline int lmdb_txn_renew(MDB_txn *txn)
|
||||
return res;
|
||||
}
|
||||
|
||||
inline void BlockchainLMDB::check_open() const
|
||||
{
|
||||
if (!m_open)
|
||||
throw0(DB_ERROR("DB operation attempted on a not-open DB instance"));
|
||||
}
|
||||
|
||||
void BlockchainLMDB::do_resize(uint64_t increase_size)
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
@@ -1166,36 +1172,6 @@ void BlockchainLMDB::remove_spent_key(const crypto::key_image& k_image)
|
||||
}
|
||||
}
|
||||
|
||||
blobdata BlockchainLMDB::output_to_blob(const tx_out& output) const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
blobdata b;
|
||||
if (!t_serializable_object_to_blob(output, b))
|
||||
throw1(DB_ERROR("Error serializing output to blob"));
|
||||
return b;
|
||||
}
|
||||
|
||||
tx_out BlockchainLMDB::output_from_blob(const blobdata& blob) const
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
std::stringstream ss;
|
||||
ss << blob;
|
||||
binary_archive<false> ba(ss);
|
||||
tx_out o;
|
||||
|
||||
if (!(::serialization::serialize(ba, o)))
|
||||
throw1(DB_ERROR("Error deserializing tx output blob"));
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
void BlockchainLMDB::check_open() const
|
||||
{
|
||||
// LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
if (!m_open)
|
||||
throw0(DB_ERROR("DB operation attempted on a not-open DB instance"));
|
||||
}
|
||||
|
||||
BlockchainLMDB::~BlockchainLMDB()
|
||||
{
|
||||
LOG_PRINT_L3("BlockchainLMDB::" << __func__);
|
||||
@@ -3192,7 +3168,7 @@ uint64_t BlockchainLMDB::add_block(const block& blk, size_t block_weight, const
|
||||
check_open();
|
||||
uint64_t m_height = height();
|
||||
|
||||
if (m_height % 1000 == 0)
|
||||
if (m_height % 1024 == 0)
|
||||
{
|
||||
// for batch mode, DB resize check is done at start of batch transaction
|
||||
if (! m_batch_active && need_resize())
|
||||
|
||||
@@ -359,25 +359,7 @@ private:
|
||||
virtual void check_hard_fork_info();
|
||||
virtual void drop_hard_fork_info();
|
||||
|
||||
/**
|
||||
* @brief convert a tx output to a blob for storage
|
||||
*
|
||||
* @param output the output to convert
|
||||
*
|
||||
* @return the resultant blob
|
||||
*/
|
||||
blobdata output_to_blob(const tx_out& output) const;
|
||||
|
||||
/**
|
||||
* @brief convert a tx output blob to a tx output
|
||||
*
|
||||
* @param blob the blob to convert
|
||||
*
|
||||
* @return the resultant tx output
|
||||
*/
|
||||
tx_out output_from_blob(const blobdata& blob) const;
|
||||
|
||||
void check_open() const;
|
||||
inline void check_open() const;
|
||||
|
||||
virtual bool is_read_only() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user