Skip to content

Commit 860d241

Browse files
authored
Merge pull request #1676 from bitshares/vop-numbering
Apply deterministic virtual_op numbering rule
2 parents e44cd00 + da6c386 commit 860d241

File tree

4 files changed

+13
-3
lines changed

4 files changed

+13
-3
lines changed

libraries/chain/db_block.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,12 @@ void database::_apply_block( const signed_block& next_block )
552552
const auto& dynamic_global_props = get_dynamic_global_properties();
553553
bool maint_needed = (dynamic_global_props.next_maintenance_time <= next_block.timestamp);
554554

555+
// trx_in_block starts from 0.
556+
// For real operations which are explicitly included in a transaction, op_in_trx starts from 0, virtual_op is 0.
557+
// For virtual operations that are derived directly from a real operation,
558+
// use the real operation's (block_num,trx_in_block,op_in_trx), virtual_op starts from 1.
559+
// For virtual operations created after processed all transactions,
560+
// trx_in_block = the_block.trsanctions.size(), op_in_trx is 0, virtual_op starts from 0.
555561
_current_block_num = next_block_num;
556562
_current_trx_in_block = 0;
557563

@@ -569,6 +575,9 @@ void database::_apply_block( const signed_block& next_block )
569575
++_current_trx_in_block;
570576
}
571577

578+
_current_op_in_trx = 0;
579+
_current_virtual_op = 0;
580+
572581
const uint32_t missed = update_witness_missed_blocks( next_block );
573582
update_global_dynamic_data( next_block, missed );
574583
update_signing_witness(signing_witness, next_block);
@@ -680,6 +689,7 @@ processed_transaction database::_apply_transaction(const signed_transaction& trx
680689
_current_op_in_trx = 0;
681690
for( const auto& op : ptrx.operations )
682691
{
692+
_current_virtual_op = 0;
683693
eval_state.operation_results.emplace_back(apply_operation(eval_state, op));
684694
++_current_op_in_trx;
685695
}

libraries/chain/include/graphene/chain/config.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
#define GRAPHENE_RECENTLY_MISSED_COUNT_INCREMENT 4
122122
#define GRAPHENE_RECENTLY_MISSED_COUNT_DECREMENT 3
123123

124-
#define GRAPHENE_CURRENT_DB_VERSION "20190323"
124+
#define GRAPHENE_CURRENT_DB_VERSION "20190403"
125125

126126
#define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT)
127127

libraries/chain/include/graphene/chain/database.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ namespace graphene { namespace chain {
553553
uint32_t _current_block_num = 0;
554554
uint16_t _current_trx_in_block = 0;
555555
uint16_t _current_op_in_trx = 0;
556-
uint16_t _current_virtual_op = 0;
556+
uint32_t _current_virtual_op = 0;
557557

558558
vector<uint64_t> _vote_tally_buffer;
559559
vector<uint64_t> _witness_count_histogram_buffer;

libraries/chain/include/graphene/chain/operation_history_object.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ namespace graphene { namespace chain {
6161
/** the operation within the transaction */
6262
uint16_t op_in_trx = 0;
6363
/** any virtual operations implied by operation in block */
64-
uint16_t virtual_op = 0;
64+
uint32_t virtual_op = 0;
6565
};
6666

6767
/**

0 commit comments

Comments
 (0)