def test_view_change_on_start(tconf, txnPoolNodeSet, looper, sdk_pool_handle, sdk_wallet_client): """ Do view change on a without any requests """ old_view_no = txnPoolNodeSet[0].viewNo master_primary = get_master_primary_node(txnPoolNodeSet) other_nodes = [n for n in txnPoolNodeSet if n != master_primary] delay_3pc = 10 delay_3pc_messages(txnPoolNodeSet, 0, delay_3pc) sent_batches = 2 sdk_send_random_requests(looper, sdk_pool_handle, sdk_wallet_client, sent_batches * tconf.Max3PCBatchSize) def chk1(): t_root, s_root = check_uncommitteds_equal(other_nodes) assert master_primary.domainLedger.uncommittedRootHash != t_root assert master_primary.states[DOMAIN_LEDGER_ID].headHash != s_root looper.run(eventually(chk1, retryWait=1)) timeout = tconf.PerfCheckFreq + \ waits.expectedPoolElectionTimeout(len(txnPoolNodeSet)) waitForViewChange(looper, txnPoolNodeSet, old_view_no + 1, customTimeout=timeout) ensure_all_nodes_have_same_data(looper, nodes=txnPoolNodeSet) check_uncommitteds_equal(txnPoolNodeSet) reset_delays_and_process_delayeds(txnPoolNodeSet) sdk_send_random_and_check(looper, txnPoolNodeSet, sdk_pool_handle, sdk_wallet_client, 2 * Max3PCBatchSize, add_delay_to_timeout=delay_3pc) ensure_all_nodes_have_same_data(looper, nodes=txnPoolNodeSet)
def chk1(): t_root, s_root = check_uncommitteds_equal(other_nodes) assert master_primary.domainLedger.uncommittedRootHash != t_root assert master_primary.states[DOMAIN_LEDGER_ID].headHash != s_root