Skip to content

Commit 8e97618

Browse files
runtime: removing vote account keys field
1 parent 0071cf4 commit 8e97618

File tree

7 files changed

+29
-201
lines changed

7 files changed

+29
-201
lines changed

src/flamenco/runtime/fd_bank.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ FD_PROTOTYPES_BEGIN
143143
#define FD_BANKS_ITER(X) \
144144
/* type, name, footprint, align, CoW, limit fork width, has lock */ \
145145
X(fd_clock_timestamp_votes_global_t, clock_timestamp_votes, 5000000UL, 128UL, 1, 0, 1 ) /* TODO: This needs to get sized out */ \
146-
X(fd_account_keys_global_t, vote_account_keys, 3200000UL, 128UL, 1, 0, 1 ) /* Supports roughly 100k vote accounts */ \
147146
X(fd_blockhashes_t, block_hash_queue, sizeof(fd_blockhashes_t), alignof(fd_blockhashes_t), 0, 0, 0 ) /* Block hash queue */ \
148147
X(fd_fee_rate_governor_t, fee_rate_governor, sizeof(fd_fee_rate_governor_t), alignof(fd_fee_rate_governor_t), 0, 0, 0 ) /* Fee rate governor */ \
149148
X(ulong, capitalization, sizeof(ulong), alignof(ulong), 0, 0, 0 ) /* Capitalization */ \
@@ -244,12 +243,6 @@ FD_PROTOTYPES_BEGIN
244243
#undef POOL_NAME
245244
#undef POOL_T
246245

247-
#define POOL_NAME fd_bank_vote_account_keys_pool
248-
#define POOL_T fd_bank_vote_account_keys_t
249-
#include "../../util/tmpl/fd_pool.c"
250-
#undef POOL_NAME
251-
#undef POOL_T
252-
253246
#define POOL_NAME fd_bank_next_epoch_stakes_pool
254247
#define POOL_T fd_bank_next_epoch_stakes_t
255248
#include "../../util/tmpl/fd_pool.c"

src/flamenco/runtime/fd_runtime.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2775,16 +2775,6 @@ fd_runtime_read_genesis( fd_exec_slot_ctx_t * slot_ctx,
27752775
FD_LOG_ERR(( "Genesis slot 0 execute failed with error %d", err ));
27762776
}
27772777
}
2778-
2779-
fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify( slot_ctx->bank );
2780-
uchar * pool_mem = (uchar *)fd_ulong_align_up( (ulong)vote_account_keys + sizeof(fd_account_keys_global_t), fd_account_keys_pair_t_map_align() );
2781-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_pair_t_map_join( fd_account_keys_pair_t_map_new( pool_mem, 100000UL ) );
2782-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = NULL;
2783-
2784-
fd_account_keys_account_keys_pool_update( vote_account_keys, vote_account_keys_pool );
2785-
fd_account_keys_account_keys_root_update( vote_account_keys, vote_account_keys_root );
2786-
2787-
fd_bank_vote_account_keys_end_locking_modify( slot_ctx->bank );
27882778
}
27892779

27902780
/******************************************************************************/

src/flamenco/runtime/program/fd_vote_program.c

Lines changed: 10 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2850,12 +2850,10 @@ remove_vote_account( fd_txn_account_t * vote_account,
28502850
fd_vote_accounts_pair_global_t_mapnode_t * epoch_vote_accounts_root = fd_vote_accounts_vote_accounts_root_join( epoch_vote_accounts );
28512851

28522852
if( FD_UNLIKELY( epoch_vote_accounts_pool==NULL ) ) {
2853-
FD_LOG_DEBUG(("Vote accounts pool does not exist"));
28542853
fd_bank_curr_epoch_stakes_end_locking_modify( bank );
28552854
return;
28562855
}
28572856

2858-
28592857
fd_vote_accounts_pair_global_t_mapnode_t vote_acc;
28602858
fd_memcpy( vote_acc.elem.key.uc, vote_account->pubkey->uc, sizeof(fd_pubkey_t) );
28612859
fd_vote_accounts_pair_global_t_mapnode_t * vote_account_entry = fd_vote_accounts_pair_global_t_map_find( epoch_vote_accounts_pool, epoch_vote_accounts_root, &vote_acc );
@@ -2866,48 +2864,16 @@ remove_vote_account( fd_txn_account_t * vote_account,
28662864
fd_vote_accounts_vote_accounts_pool_update( epoch_vote_accounts, epoch_vote_accounts_pool );
28672865
fd_vote_accounts_vote_accounts_root_update( epoch_vote_accounts, epoch_vote_accounts_root );
28682866
fd_bank_curr_epoch_stakes_end_locking_modify( bank );
2869-
2870-
fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify( bank );
2871-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_account_keys_pool_join( vote_account_keys );
2872-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = fd_account_keys_account_keys_root_join( vote_account_keys );
2873-
2874-
if( FD_UNLIKELY( vote_account_keys_pool==NULL ) ) {
2875-
fd_bank_vote_account_keys_end_locking_modify( bank );
2876-
FD_LOG_DEBUG(("Vote accounts pool does not exist"));
2877-
return;
2878-
}
2879-
2880-
fd_account_keys_pair_t_mapnode_t account_key;
2881-
fd_memcpy( account_key.elem.key.uc, vote_account->pubkey->uc, sizeof(fd_pubkey_t) );
2882-
fd_account_keys_pair_t_mapnode_t * account_key_entry = fd_account_keys_pair_t_map_find( vote_account_keys_pool, vote_account_keys_root, &account_key );
2883-
if( account_key_entry ) {
2884-
fd_account_keys_pair_t_map_remove( vote_account_keys_pool, &vote_account_keys_root, account_key_entry );
2885-
}
2886-
2887-
fd_account_keys_account_keys_pool_update( vote_account_keys, vote_account_keys_pool );
2888-
2889-
fd_bank_vote_account_keys_end_locking_modify( bank );
28902867
}
28912868

28922869
static void
28932870
upsert_vote_account( fd_txn_account_t * vote_account,
28942871
fd_bank_t * bank ) {
28952872

2896-
fd_vote_accounts_global_t const * vote_accounts = fd_bank_curr_epoch_stakes_locking_query( bank );
2873+
fd_vote_accounts_global_t * vote_accounts = fd_bank_curr_epoch_stakes_locking_modify( bank );
28972874
fd_vote_accounts_pair_global_t_mapnode_t * stakes_vote_accounts_pool = fd_vote_accounts_vote_accounts_pool_join( vote_accounts );
28982875
fd_vote_accounts_pair_global_t_mapnode_t * stakes_vote_accounts_root = fd_vote_accounts_vote_accounts_root_join( vote_accounts );
28992876

2900-
fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify( bank );
2901-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_account_keys_pool_join( vote_account_keys );
2902-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = fd_account_keys_account_keys_root_join( vote_account_keys );
2903-
2904-
if( FD_UNLIKELY( vote_account_keys_pool==NULL ) ) {
2905-
fd_bank_vote_account_keys_end_locking_modify( bank );
2906-
fd_bank_curr_epoch_stakes_end_locking_query( bank );
2907-
FD_LOG_DEBUG(( "Vote accounts pool does not exist" ));
2908-
return;
2909-
}
2910-
29112877
if( fd_vote_state_versions_is_correct_and_initialized( vote_account ) ) {
29122878
fd_account_keys_pair_t_mapnode_t key;
29132879
fd_memcpy( &key.elem.key, vote_account->pubkey->uc, sizeof(fd_pubkey_t) );
@@ -2916,25 +2882,22 @@ upsert_vote_account( fd_txn_account_t * vote_account,
29162882
fd_memcpy( &vote_acc.elem.key, vote_account->pubkey->uc, sizeof(fd_pubkey_t) );
29172883

29182884
// Skip duplicates
2919-
if( FD_LIKELY( fd_account_keys_pair_t_map_find( vote_account_keys_pool, vote_account_keys_root, &key ) ||
2920-
fd_vote_accounts_pair_global_t_map_find( stakes_vote_accounts_pool, stakes_vote_accounts_root, &vote_acc ) ) ) {
2921-
fd_bank_vote_account_keys_end_locking_modify( bank );
2922-
fd_bank_curr_epoch_stakes_end_locking_query( bank );
2885+
if( FD_LIKELY( fd_vote_accounts_pair_global_t_map_find( stakes_vote_accounts_pool, stakes_vote_accounts_root, &vote_acc ) ) ) {
2886+
fd_bank_curr_epoch_stakes_end_locking_modify( bank );
29232887
return;
29242888
}
2925-
fd_bank_curr_epoch_stakes_end_locking_query( bank );
29262889

2927-
fd_account_keys_pair_t_mapnode_t * new_node = fd_account_keys_pair_t_map_acquire( vote_account_keys_pool );
2890+
fd_vote_accounts_pair_global_t_mapnode_t * new_node = fd_vote_accounts_pair_global_t_map_acquire( stakes_vote_accounts_pool );
29282891
if( FD_UNLIKELY( !new_node ) ) {
2929-
FD_LOG_ERR(("Map full"));
2892+
FD_LOG_CRIT(( "Map full" ));
29302893
}
29312894

2932-
fd_memcpy( &new_node->elem.key, vote_account->pubkey, sizeof(fd_pubkey_t));
2933-
fd_account_keys_pair_t_map_insert( vote_account_keys_pool, &vote_account_keys_root, new_node );
2934-
fd_bank_vote_account_keys_end_locking_modify( bank );
2895+
fd_memcpy( &new_node->elem.key, vote_account->pubkey, sizeof(fd_pubkey_t) );
2896+
2897+
fd_vote_accounts_pair_global_t_map_insert( stakes_vote_accounts_pool, &stakes_vote_accounts_root, new_node );
2898+
fd_bank_curr_epoch_stakes_end_locking_modify( bank );
29352899
} else {
2936-
fd_bank_vote_account_keys_end_locking_modify( bank );
2937-
fd_bank_curr_epoch_stakes_end_locking_query( bank );
2900+
fd_bank_curr_epoch_stakes_end_locking_modify( bank );
29382901
remove_vote_account( vote_account, bank );
29392902
}
29402903
}

src/flamenco/runtime/test_bank.c

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,13 @@ main( int argc, char ** argv ) {
115115

116116
/* Set some CoW fields. */
117117

118-
fd_account_keys_global_t * keys = fd_bank_vote_account_keys_locking_modify( bank9 );
119-
keys->account_keys_pool_offset = 100UL;
120-
keys->account_keys_root_offset = 100UL;
121-
fd_bank_vote_account_keys_end_locking_modify( bank9 );
118+
fd_stake_delegations_t * keys = fd_bank_stake_delegations_locking_modify( bank9 );
119+
keys->magic = 101UL;
120+
fd_bank_stake_delegations_end_locking_modify( bank9 );
122121

123122
/* Check that are now 15 free pool elements. */
124123

125-
FD_TEST( fd_bank_vote_account_keys_pool_free( fd_bank_get_vote_account_keys_pool( bank9 ) ) == 15UL );
124+
FD_TEST( fd_bank_stake_delegations_pool_free( fd_bank_get_stake_delegations_pool( bank9 ) ) == 15UL );
126125

127126
fd_stake_delegations_t * keys2 = fd_bank_stake_delegations_locking_modify( bank9 );
128127
keys2->magic = 101UL;
@@ -170,19 +169,17 @@ main( int argc, char ** argv ) {
170169
/* Again, there are no free epoch leader pool elements. */
171170
FD_TEST( !fd_bank_epoch_leaders_pool_free( fd_bank_get_epoch_leaders_pool( bank11 ) ) );
172171

173-
fd_account_keys_global_t const * keys3 = fd_bank_vote_account_keys_locking_query( bank11 );
174-
FD_TEST( keys3->account_keys_pool_offset == 100UL );
175-
FD_TEST( keys3->account_keys_root_offset == 100UL );
176-
fd_bank_vote_account_keys_end_locking_query( bank11 );
172+
fd_stake_delegations_t const * keys3 = fd_bank_stake_delegations_locking_query( bank11 );
173+
FD_TEST( keys3->magic == 101UL );
174+
fd_bank_stake_delegations_end_locking_query( bank11 );
177175

178176
fd_stake_delegations_t const * keys4 = fd_bank_stake_delegations_locking_query( bank11 );
179177
FD_TEST( keys4->magic == 101UL );
180178
fd_bank_stake_delegations_end_locking_query( bank11 );
181179

182-
keys = fd_bank_vote_account_keys_locking_modify( bank11 );
183-
keys->account_keys_pool_offset = 200UL;
184-
keys->account_keys_root_offset = 200UL;
185-
fd_bank_vote_account_keys_end_locking_modify( bank11 );
180+
keys = fd_bank_stake_delegations_locking_modify( bank11 );
181+
keys->magic = 101UL;
182+
fd_bank_stake_delegations_end_locking_modify( bank11 );
186183

187184
fd_clock_timestamp_votes_global_t const * votes_const = fd_bank_clock_timestamp_votes_locking_query( bank11 );
188185
FD_TEST( !votes_const );
@@ -212,10 +209,9 @@ main( int argc, char ** argv ) {
212209

213210
/* Verify that the CoW fields are properly set for bank11 */
214211

215-
keys3 = fd_bank_vote_account_keys_locking_query( bank11 );
216-
FD_TEST( keys3->account_keys_pool_offset == 200UL );
217-
FD_TEST( keys3->account_keys_root_offset == 200UL );
218-
fd_bank_vote_account_keys_end_locking_query( bank11 );
212+
keys3 = fd_bank_stake_delegations_locking_query( bank11 );
213+
FD_TEST( keys3->magic == 101UL );
214+
fd_bank_stake_delegations_end_locking_query( bank11 );
219215

220216
keys4 = fd_bank_stake_delegations_locking_query( bank11 );
221217
FD_TEST( keys4->magic == 101UL );
@@ -239,10 +235,9 @@ main( int argc, char ** argv ) {
239235
FD_TEST( fd_bank_slot_get( bank11 ) == 11UL );
240236
FD_TEST( fd_bank_capitalization_get( bank11 ) == 0UL );
241237

242-
keys3 = fd_bank_vote_account_keys_locking_query( bank11 );
243-
FD_TEST( keys3->account_keys_pool_offset == 100UL );
244-
FD_TEST( keys3->account_keys_root_offset == 100UL );
245-
fd_bank_vote_account_keys_end_locking_query( bank11 );
238+
keys3 = fd_bank_stake_delegations_locking_query( bank11 );
239+
FD_TEST( keys3->magic == 101UL );
240+
fd_bank_stake_delegations_end_locking_query( bank11 );
246241

247242
keys4 = fd_bank_stake_delegations_locking_query( bank11 );
248243
FD_TEST( keys4->magic == 101UL );

src/flamenco/runtime/tests/fd_dump_pb.c

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -547,22 +547,6 @@ create_block_context_protobuf_from_block( fd_exec_test_block_context_t * block_c
547547

548548
fd_bank_curr_epoch_stakes_end_locking_query( slot_ctx->bank );
549549

550-
fd_account_keys_global_t const * vote_account_keys = fd_bank_vote_account_keys_locking_query( slot_ctx->bank );
551-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_account_keys_pool_join( vote_account_keys );
552-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = fd_account_keys_account_keys_root_join( vote_account_keys );
553-
554-
555-
/* Dump all new vote accounts */
556-
for( fd_account_keys_pair_t_mapnode_t const * curr = fd_account_keys_pair_t_map_minimum_const(
557-
vote_account_keys_pool,
558-
vote_account_keys_root );
559-
curr;
560-
curr = fd_account_keys_pair_t_map_successor_const( vote_account_keys_pool, curr ) ) {
561-
dump_account_if_not_already_dumped( slot_ctx->funk, slot_ctx->funk_txn, &curr->elem.key, spad, block_context->acct_states, &block_context->acct_states_count, NULL );
562-
}
563-
564-
fd_bank_vote_account_keys_end_locking_query( slot_ctx->bank );
565-
566550
// BlockContext -> EpochContext -> vote_accounts_t_1 (vote accounts at epoch T-1)
567551
fd_vote_accounts_global_t const * next_epoch_stakes_vaccs = fd_bank_next_epoch_stakes_locking_query( slot_ctx->bank );
568552
dump_vote_accounts( slot_ctx,

src/flamenco/runtime/tests/harness/fd_block_harness.c

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -278,16 +278,7 @@ fd_runtime_fuzz_block_ctx_create( fd_runtime_fuzz_runner_t * runner,
278278

279279
fd_bank_block_height_set( slot_ctx->bank, test_ctx->slot_ctx.block_height );
280280

281-
// /* Initialize the current running epoch stake and vote accounts */
282-
283-
fd_account_keys_global_t * vote_account_keys = fd_bank_vote_account_keys_locking_modify( slot_ctx->bank );
284-
pool_mem = (uchar *)fd_ulong_align_up( (ulong)vote_account_keys + sizeof(fd_account_keys_global_t), fd_account_keys_pair_t_map_align() );
285-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_pool = fd_account_keys_pair_t_map_join( fd_account_keys_pair_t_map_new( pool_mem, vote_acct_max ) );
286-
fd_account_keys_pair_t_mapnode_t * vote_account_keys_root = NULL;
287-
fd_account_keys_account_keys_pool_update( vote_account_keys, vote_account_keys_pool );
288-
fd_account_keys_account_keys_root_update( vote_account_keys, vote_account_keys_root );
289-
fd_bank_vote_account_keys_end_locking_modify( slot_ctx->bank );
290-
281+
/* Initialize the current running epoch stake and vote accounts */
291282

292283
/* SETUP STAKES HERE */
293284
fd_vote_accounts_global_t * curr_stakes = fd_bank_curr_epoch_stakes_locking_modify( slot_ctx->bank );

0 commit comments

Comments
 (0)