Skip to content

Commit 23b1b35

Browse files
committed
Rename 'unlock block' to 'last locked block'
1 parent 61c3b9c commit 23b1b35

23 files changed

+252
-251
lines changed

src/blockchain_db/blockchain_db.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,11 @@ void BlockchainDB::add_transaction(const crypto::hash& blk_hash, const std::pair
232232
{
233233
// miner v2 txes have their coinbase output in one single out to save space,
234234
// and we store them as rct outputs with an identity mask
235-
// note: get_outs_by_unlock_block mirrors this logic
235+
// note: get_outs_by_last_locked_block mirrors this logic
236236
if (miner_tx && tx.version == 2)
237237
{
238238
cryptonote::tx_out vout = tx.vout[i];
239-
// TODO: avoid duplicate zeroCommitVartime call in get_outs_by_unlock_block
239+
// TODO: avoid duplicate zeroCommitVartime call in get_outs_by_last_locked_block
240240
rct::key commitment = rct::zeroCommitVartime(vout.amount);
241241
vout.amount = 0;
242242
amount_output_indices[i] = add_output(tx_hash, vout, i, tx.unlock_time,
@@ -304,13 +304,13 @@ uint64_t BlockchainDB::add_block( const std::pair<block, blobdata>& blck
304304

305305
// When adding a block, we also need to keep track of when outputs unlock, so
306306
// we can use them to grow the merkle tree used in fcmp's at that point.
307-
const auto outs_by_unlock_block_meta = cryptonote::get_outs_by_unlock_block(blk.miner_tx, _txs, total_n_outputs, prev_height);
308-
const auto &outs_by_unlock_block = outs_by_unlock_block_meta.outs_by_unlock_block;
309-
const auto &timelocked_outputs = outs_by_unlock_block_meta.timelocked_outputs;
307+
const auto outs_by_last_locked_block_meta = cryptonote::get_outs_by_last_locked_block(blk.miner_tx, _txs, total_n_outputs, prev_height);
308+
const auto &outs_by_last_locked_block = outs_by_last_locked_block_meta.outs_by_last_locked_block;
309+
const auto &timelocked_outputs = outs_by_last_locked_block_meta.timelocked_outputs;
310310

311311
// call out to subclass implementation to add the block & metadata
312312
time1 = epee::misc_utils::get_tick_count();
313-
add_block(blk, block_weight, long_term_block_weight, cumulative_difficulty, coins_generated, num_rct_outs, blk_hash, outs_by_unlock_block, timelocked_outputs);
313+
add_block(blk, block_weight, long_term_block_weight, cumulative_difficulty, coins_generated, num_rct_outs, blk_hash, outs_by_last_locked_block, timelocked_outputs);
314314
TIME_MEASURE_FINISH(time1);
315315
time_add_block1 += time1;
316316

src/blockchain_db/blockchain_db.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ class BlockchainDB
422422
* @param cumulative_difficulty the accumulated difficulty after this block
423423
* @param coins_generated the number of coins generated total after this block
424424
* @param blk_hash the hash of the block
425-
* @param outs_by_unlock_block the outputs from this block to add to the merkle tree
425+
* @param outs_by_last_locked_block the outputs from this block to add to the merkle tree
426426
* @param timelocked_outputs the outputs from this block that are custom timelocked
427427
*/
428428
virtual void add_block( const block& blk
@@ -432,8 +432,8 @@ class BlockchainDB
432432
, const uint64_t& coins_generated
433433
, uint64_t num_rct_outs
434434
, const crypto::hash& blk_hash
435-
, const fcmp_pp::curve_trees::OutputsByUnlockBlock& outs_by_unlock_block
436-
, const std::unordered_map<uint64_t/*output_id*/, uint64_t/*unlock block_id*/>& timelocked_outputs
435+
, const fcmp_pp::curve_trees::OutputsByLastLockedBlock& outs_by_last_locked_block
436+
, const std::unordered_map<uint64_t/*output_id*/, uint64_t/*last locked block_id*/>& timelocked_outputs
437437
) = 0;
438438

439439
/**
@@ -1823,18 +1823,21 @@ class BlockchainDB
18231823
*
18241824
* @param start_block_idx
18251825
*
1826-
* @return custom timelocked outputs grouped by unlock block
1826+
* @return custom timelocked outputs grouped by last locked block
18271827
*/
1828-
virtual fcmp_pp::curve_trees::OutputsByUnlockBlock get_custom_timelocked_outputs(uint64_t start_block_idx) const = 0;
1828+
virtual fcmp_pp::curve_trees::OutputsByLastLockedBlock get_custom_timelocked_outputs(uint64_t start_block_idx) const = 0;
18291829

18301830
/**
18311831
* @brief return recent timelocked outputs after the provided end_block_idx
18321832
*
18331833
* @param end_block_idx
18341834
*
1835-
* @return the recent locked outputs grouped by unlock block, that unlock
1835+
* @return
1836+
* - coinbase outputs created between [end_block_idx - CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW]
1837+
* - normal outputs created between [end_block_idx - CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE]
1838+
* - the outputs are grouped by last locked block idx
18361839
*/
1837-
virtual fcmp_pp::curve_trees::OutputsByUnlockBlock get_recent_locked_outputs(uint64_t end_block_idx) const = 0;
1840+
virtual fcmp_pp::curve_trees::OutputsByLastLockedBlock get_recent_locked_outputs(uint64_t end_block_idx) const = 0;
18381841

18391842
//
18401843
// Hard fork related storage

src/blockchain_db/blockchain_db_utils.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,16 @@
3535
#include "profile_tools.h"
3636

3737
//----------------------------------------------------------------------------------------------------------------------
38-
// Helper function to group outputs by unlock block
39-
static uint64_t set_tx_outs_by_unlock_block(const cryptonote::transaction &tx,
38+
// Helper function to group outputs by last locked block idx
39+
static uint64_t set_tx_outs_by_last_locked_block(const cryptonote::transaction &tx,
4040
const uint64_t &first_output_id,
4141
const uint64_t block_idx,
4242
const bool miner_tx,
43-
fcmp_pp::curve_trees::OutputsByUnlockBlock &outs_by_unlock_block_inout,
44-
std::unordered_map<uint64_t/*output_id*/, uint64_t/*unlock block_id*/> &timelocked_outputs_inout)
43+
fcmp_pp::curve_trees::OutputsByLastLockedBlock &outs_by_last_locked_block_inout,
44+
std::unordered_map<uint64_t/*output_id*/, uint64_t/*last locked block_id*/> &timelocked_outputs_inout)
4545
{
46-
const uint64_t unlock_block = cryptonote::get_unlock_block_index(tx.unlock_time, block_idx);
47-
const bool has_custom_timelock = cryptonote::is_custom_timelocked(miner_tx, unlock_block, block_idx);
46+
const uint64_t last_locked_block = cryptonote::get_last_locked_block_index(tx.unlock_time, block_idx);
47+
const bool has_custom_timelock = cryptonote::is_custom_timelocked(miner_tx, last_locked_block, block_idx);
4848

4949
uint64_t getting_commitment_ns = 0;
5050

@@ -84,17 +84,17 @@ static uint64_t set_tx_outs_by_unlock_block(const cryptonote::transaction &tx,
8484

8585
if (has_custom_timelock)
8686
{
87-
timelocked_outputs_inout[output_id] = unlock_block;
87+
timelocked_outputs_inout[output_id] = last_locked_block;
8888
}
8989

90-
if (outs_by_unlock_block_inout.find(unlock_block) == outs_by_unlock_block_inout.end())
90+
if (outs_by_last_locked_block_inout.find(last_locked_block) == outs_by_last_locked_block_inout.end())
9191
{
9292
auto new_vec = std::vector<fcmp_pp::curve_trees::OutputContext>{std::move(output_context)};
93-
outs_by_unlock_block_inout[unlock_block] = std::move(new_vec);
93+
outs_by_last_locked_block_inout[last_locked_block] = std::move(new_vec);
9494
}
9595
else
9696
{
97-
outs_by_unlock_block_inout[unlock_block].emplace_back(std::move(output_context));
97+
outs_by_last_locked_block_inout[last_locked_block].emplace_back(std::move(output_context));
9898
}
9999

100100
getting_commitment_ns += getting_commitment;
@@ -108,37 +108,37 @@ static uint64_t set_tx_outs_by_unlock_block(const cryptonote::transaction &tx,
108108
//----------------------------------------------------------------------------------------------------------------------
109109
namespace cryptonote
110110
{
111-
OutsByUnlockBlockMeta get_outs_by_unlock_block(
111+
OutsByLastLockedBlockMeta get_outs_by_last_locked_block(
112112
const cryptonote::transaction &miner_tx,
113113
const std::vector<std::reference_wrapper<const cryptonote::transaction>> &txs,
114114
const uint64_t first_output_id,
115115
const uint64_t block_idx)
116116
{
117-
OutsByUnlockBlockMeta outs_by_unlock_meta_out;
118-
outs_by_unlock_meta_out.next_output_id = first_output_id;
117+
OutsByLastLockedBlockMeta outs_by_last_locked_block_meta_out;
118+
outs_by_last_locked_block_meta_out.next_output_id = first_output_id;
119119

120120
// Get miner tx's leaf tuples
121-
outs_by_unlock_meta_out.next_output_id += set_tx_outs_by_unlock_block(
121+
outs_by_last_locked_block_meta_out.next_output_id += set_tx_outs_by_last_locked_block(
122122
miner_tx,
123-
outs_by_unlock_meta_out.next_output_id,
123+
outs_by_last_locked_block_meta_out.next_output_id,
124124
block_idx,
125125
true/*miner_tx*/,
126-
outs_by_unlock_meta_out.outs_by_unlock_block,
127-
outs_by_unlock_meta_out.timelocked_outputs);
126+
outs_by_last_locked_block_meta_out.outs_by_last_locked_block,
127+
outs_by_last_locked_block_meta_out.timelocked_outputs);
128128

129129
// Get all other txs' leaf tuples
130130
for (const auto &tx : txs)
131131
{
132-
outs_by_unlock_meta_out.next_output_id += set_tx_outs_by_unlock_block(
132+
outs_by_last_locked_block_meta_out.next_output_id += set_tx_outs_by_last_locked_block(
133133
tx.get(),
134-
outs_by_unlock_meta_out.next_output_id,
134+
outs_by_last_locked_block_meta_out.next_output_id,
135135
block_idx,
136136
false/*miner_tx*/,
137-
outs_by_unlock_meta_out.outs_by_unlock_block,
138-
outs_by_unlock_meta_out.timelocked_outputs);
137+
outs_by_last_locked_block_meta_out.outs_by_last_locked_block,
138+
outs_by_last_locked_block_meta_out.timelocked_outputs);
139139
}
140140

141-
return outs_by_unlock_meta_out;
141+
return outs_by_last_locked_block_meta_out;
142142
}
143143
//----------------------------------------------------------------------------------------------------------------------
144144
}//namespace cryptonote

src/blockchain_db/blockchain_db_utils.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@
3838
namespace cryptonote
3939
{
4040

41-
struct OutsByUnlockBlockMeta
41+
struct OutsByLastLockedBlockMeta
4242
{
43-
fcmp_pp::curve_trees::OutputsByUnlockBlock outs_by_unlock_block;
44-
std::unordered_map<uint64_t/*output_id*/, uint64_t/*unlock block_id*/> timelocked_outputs;
43+
fcmp_pp::curve_trees::OutputsByLastLockedBlock outs_by_last_locked_block;
44+
std::unordered_map<uint64_t/*output_id*/, uint64_t/*last locked block_id*/> timelocked_outputs;
4545
uint64_t next_output_id;
4646
};
4747

4848
// These functions internally rely on ringct for zeroCommitVartime. I implemented in this blockchain_db_utils file
4949
// instead of cryptonote_basic (where it would seem the better place to put it) to avoid a circular dependency between
5050
// ringct <> cryptonote_basic.
5151
// Note that zeroCommitVartime is expensive.
52-
OutsByUnlockBlockMeta get_outs_by_unlock_block(
52+
OutsByLastLockedBlockMeta get_outs_by_last_locked_block(
5353
const cryptonote::transaction &miner_tx,
5454
const std::vector<std::reference_wrapper<const cryptonote::transaction>> &txs,
5555
const uint64_t first_output_id,

0 commit comments

Comments
 (0)