hyperledger-archives / iroha

Iroha - A simple, decentralized ledger
http://iroha.tech
Apache License 2.0
988 stars 298 forks source link

Add two more Ordering Gate configuration parameters #2094

Closed igor-egorov closed 5 years ago

igor-egorov commented 5 years ago

Signed-off-by: Igor Egorov igor@soramitsu.co.jp

Description of the Change

Make Ordering Gate more configurable.

max_rounds_delay - (in milliseconds) the maximum delay between two consensus rounds. stale_stream_max_rounds - tx status stream will remain alive until that amount of consensus rounds (including reject rounds) when tx status was not updated.

Benefits

Easier to test

Possible Drawbacks

Feel free to suggest better params naming

Usage Examples or Tests

compile and run

igor-egorov commented 5 years ago

Tests are failing and have to be fixed.

Nevertheless, you are able to compile irohad from this branch with additional configuration parameters.

neewy commented 5 years ago

Just add a fallback solution for old configs. It can be done later in a feature trunk.

neewy commented 5 years ago

@lebdron @igor-egorov Before merging this pull request we need to:

What do you think?

igor-egorov commented 5 years ago

Having some set of default values is good. It is good to have them printed when irohad is started.

neewy commented 5 years ago

@lebdron please commit your changes for Ansible scripts here :)

igor-egorov commented 5 years ago

The CI has been experiencing troubles with the Mac environment. Linux CI has been passed. All the tests passed on local Mac.

Tests Run Log ``` ➜ build git:(feature/og-config-params) ctest --output-on-failure Test project /Users/igor/cpp/iroha-og-params/build Start 1: module_ametsuchi_test 1/150 Test #1: module_ametsuchi_test .............................. Passed 2.76 sec Start 2: module_wsv_query_command_test 2/150 Test #2: module_wsv_query_command_test ...................... Passed 1.95 sec Start 3: module_flat_file_test 3/150 Test #3: module_flat_file_test .............................. Passed 0.04 sec Start 4: module_block_query_test 4/150 Test #4: module_block_query_test ............................ Passed 1.20 sec Start 5: module_storage_init_test 5/150 Test #5: module_storage_init_test ........................... Passed 1.04 sec Start 6: module_postgres_options_test 6/150 Test #6: module_postgres_options_test ....................... Passed 0.01 sec Start 7: module_postgres_executor_test 7/150 Test #7: module_postgres_executor_test ...................... Passed 20.50 sec Start 8: module_postgres_query_executor_test 8/150 Test #8: module_postgres_query_executor_test ................ Passed 20.40 sec Start 9: module_tx_presence_cache_test 9/150 Test #9: module_tx_presence_cache_test ...................... Passed 0.02 sec Start 10: module_blob_converter_test 10/150 Test #10: module_blob_converter_test ......................... Passed 0.01 sec Start 11: module_raw_block_loader_test 11/150 Test #11: module_raw_block_loader_test ....................... Passed 0.01 sec Start 12: module_cluster_order_test 12/150 Test #12: module_cluster_order_test .......................... Passed 0.01 sec Start 13: module_yac_cold_case_test 13/150 Test #13: module_yac_cold_case_test .......................... Passed 0.02 sec Start 14: module_yac_sunny_day_test 14/150 Test #14: module_yac_sunny_day_test .......................... Passed 0.02 sec Start 15: module_yac_rainy_day_test 15/150 Test #15: module_yac_rainy_day_test .......................... Passed 0.01 sec Start 16: module_yac_unknown_peer_test 16/150 Test #16: module_yac_unknown_peer_test ....................... Passed 0.01 sec Start 17: module_yac_block_storage_test 17/150 Test #17: module_yac_block_storage_test ...................... Passed 0.01 sec Start 18: module_yac_proposal_storage_test 18/150 Test #18: module_yac_proposal_storage_test ................... Passed 0.01 sec Start 19: module_yac_timer_test 19/150 Test #19: module_yac_timer_test .............................. Passed 0.01 sec Start 20: module_yac_network_test 20/150 Test #20: module_yac_network_test ............................ Passed 0.02 sec Start 21: module_yac_peer_orderer_test 21/150 Test #21: module_yac_peer_orderer_test ....................... Passed 0.02 sec Start 22: module_yac_gate_test 22/150 Test #22: module_yac_gate_test ............................... Passed 0.01 sec Start 23: module_yac_hash_provider_test 23/150 Test #23: module_yac_hash_provider_test ...................... Passed 0.01 sec Start 24: module_yac_common_test 24/150 Test #24: module_yac_common_test ............................. Passed 0.01 sec Start 25: module_yac_crypto_provider_test 25/150 Test #25: module_yac_crypto_provider_test .................... Passed 0.01 sec Start 26: module_supermajority_checker_test 26/150 Test #26: module_supermajority_checker_test .................. Passed 0.01 sec Start 27: module_logger_test 27/150 Test #27: module_logger_test ................................. Passed 0.01 sec Start 28: module_server_runner_test 28/150 Test #28: module_server_runner_test .......................... Passed 0.02 sec Start 29: module_model_crypto_provider_test 29/150 Test #29: module_model_crypto_provider_test .................. Passed 0.01 sec Start 30: module_command_converter_test 30/150 Test #30: module_command_converter_test ...................... Passed 0.03 sec Start 31: module_transaction_converter_test 31/150 Test #31: module_transaction_converter_test .................. Passed 0.01 sec Start 32: module_block_converter_test 32/150 Test #32: module_block_converter_test ........................ Passed 0.01 sec Start 33: module_query_responses_test 33/150 Test #33: module_query_responses_test ........................ Passed 0.01 sec Start 34: module_model_operators_test 34/150 Test #34: module_model_operators_test ........................ Passed 0.01 sec Start 35: module_json_command_converter_test 35/150 Test #35: module_json_command_converter_test ................. Passed 0.01 sec Start 36: module_json_transaction_converter_test 36/150 Test #36: module_json_transaction_converter_test ............. Passed 0.01 sec Start 37: module_json_block_converter_test 37/150 Test #37: module_json_block_converter_test ................... Passed 0.01 sec Start 38: module_json_query_factory_test 38/150 Test #38: module_json_query_factory_test ..................... Passed 0.01 sec Start 39: module_pb_query_factory_test 39/150 Test #39: module_pb_query_factory_test ....................... Passed 0.01 sec Start 40: module_state_test 40/150 Test #40: module_state_test .................................. Passed 0.03 sec Start 41: module_storage_test 41/150 Test #41: module_storage_test ................................ Passed 0.02 sec Start 42: module_completer_test 42/150 Test #42: module_completer_test .............................. Passed 0.01 sec Start 43: module_transport_test 43/150 Test #43: module_transport_test .............................. Passed 0.05 sec Start 44: module_mst_processor_test 44/150 Test #44: module_mst_processor_test .......................... Passed 0.03 sec Start 45: module_gossip_propagation_strategy_test 45/150 Test #45: module_gossip_propagation_strategy_test ............ Passed 0.07 sec Start 46: module_mst_net_input_test 46/150 Test #46: module_mst_net_input_test .......................... Passed 1.87 sec Start 47: module_block_loader_test 47/150 Test #47: module_block_loader_test ........................... Passed 0.08 sec Start 48: module_on_demand_os_test 48/150 Test #48: module_on_demand_os_test ........................... Passed 0.11 sec Start 49: module_on_demand_os_client_grpc_test 49/150 Test #49: module_on_demand_os_client_grpc_test ............... Passed 0.01 sec Start 50: module_on_demand_os_server_grpc_test 50/150 Test #50: module_on_demand_os_server_grpc_test ............... Passed 0.02 sec Start 51: module_on_demand_connection_manager_test 51/150 Test #51: module_on_demand_connection_manager_test ........... Passed 0.01 sec Start 52: module_on_demand_ordering_gate_test 52/150 Test #52: module_on_demand_ordering_gate_test ................ Passed 0.01 sec Start 53: module_on_demand_cache_test 53/150 Test #53: module_on_demand_cache_test ........................ Passed 0.01 sec Start 54: module_simulator_test 54/150 Test #54: module_simulator_test .............................. Passed 0.04 sec Start 55: module_synchronizer_test 55/150 Test #55: module_synchronizer_test ........................... Passed 0.05 sec Start 56: module_torii_transport_command_test 56/150 Test #56: module_torii_transport_command_test ................ Passed 0.04 sec Start 57: module_torii_queries_test 57/150 Test #57: module_torii_queries_test .......................... Passed 0.07 sec Start 58: module_query_service_test 58/150 Test #58: module_query_service_test .......................... Passed 0.02 sec Start 59: module_torii_service_query_test 59/150 Test #59: module_torii_service_query_test .................... Passed 0.03 sec Start 60: module_command_sync_client_test 60/150 Test #60: module_command_sync_client_test .................... Passed 0.01 sec Start 61: module_transaction_processor_test 61/150 Test #61: module_transaction_processor_test .................. Passed 0.08 sec Start 62: module_query_processor_test 62/150 Test #62: module_query_processor_test ........................ Passed 0.02 sec Start 63: module_chain_validation_test 63/150 Test #63: module_chain_validation_test ....................... Passed 0.01 sec Start 64: module_stateful_validator_test 64/150 Test #64: module_stateful_validator_test ..................... Passed 0.04 sec Start 65: module_pending_txs_storage_test 65/150 Test #65: module_pending_txs_storage_test .................... Passed 0.02 sec Start 66: module_cache_test 66/150 Test #66: module_cache_test .................................. Passed 0.09 sec Start 67: module_single_pointer_cache_test 67/150 Test #67: module_single_pointer_cache_test ................... Passed 1.03 sec Start 68: module_transaction_cache_test 68/150 Test #68: module_transaction_cache_test ...................... Passed 0.01 sec Start 69: module_hash_test 69/150 Test #69: module_hash_test ................................... Passed 0.01 sec Start 70: module_signature_test 70/150 Test #70: module_signature_test .............................. Passed 0.01 sec Start 71: module_keys_manager_test 71/150 Test #71: module_keys_manager_test ........................... Passed 0.03 sec Start 72: module_time_test 72/150 Test #72: module_time_test ................................... Passed 0.01 sec Start 73: module_string_converter_test 73/150 Test #73: module_string_converter_test ....................... Passed 0.01 sec Start 74: module_result_test 74/150 Test #74: module_result_test ................................. Passed 0.01 sec Start 75: module_combine_latest_until_first_completed_test 75/150 Test #75: module_combine_latest_until_first_completed_test ... Passed 0.68 sec Start 76: module_rxcpp_subject_usage 76/150 Test #76: module_rxcpp_subject_usage ......................... Passed 0.01 sec Start 77: module_tbb_test 77/150 Test #77: module_tbb_test .................................... Passed 0.01 sec Start 78: framework_port_guard_test 78/150 Test #78: framework_port_guard_test .......................... Passed 0.02 sec Start 79: module_reference_holder_test 79/150 Test #79: module_reference_holder_test ....................... Passed 0.01 sec Start 80: module_interface_test 80/150 Test #80: module_interface_test .............................. Passed 0.02 sec Start 81: module_shared_proto_commands_test 81/150 Test #81: module_shared_proto_commands_test .................. Passed 0.01 sec Start 82: module_shared_proto_tx_response_test 82/150 Test #82: module_shared_proto_tx_response_test ............... Passed 0.47 sec Start 83: module_shared_proto_transaction_test 83/150 Test #83: module_shared_proto_transaction_test ............... Passed 0.01 sec Start 84: module_shared_proto_queries_test 84/150 Test #84: module_shared_proto_queries_test ................... Passed 0.01 sec Start 85: module_shared_proto_query_responses_test 85/150 Test #85: module_shared_proto_query_responses_test ........... Passed 0.01 sec Start 86: module_shared_proto_util_test 86/150 Test #86: module_shared_proto_util_test ...................... Passed 0.01 sec Start 87: module_permissions_test 87/150 Test #87: module_permissions_test ............................ Passed 0.01 sec Start 88: module_proto_batch_test 88/150 Test #88: module_proto_batch_test ............................ Passed 0.03 sec Start 89: module_proto_transaction_sequence_test 89/150 Test #89: module_proto_transaction_sequence_test ............. Passed 0.03 sec Start 90: module_proto_common_objects_factory_test 90/150 Test #90: module_proto_common_objects_factory_test ........... Passed 0.01 sec Start 91: module_proto_proposal_factory_test 91/150 Test #91: module_proto_proposal_factory_test ................. Passed 0.01 sec Start 92: module_proto_block_factory_test 92/150 Test #92: module_proto_block_factory_test .................... Passed 0.01 sec Start 93: module_proto_query_response_factory_test 93/150 Test #93: module_proto_query_response_factory_test ........... Passed 0.02 sec Start 94: module_model_query_builder_test 94/150 Test #94: module_model_query_builder_test .................... Passed 0.01 sec Start 95: module_model_crypto_test 95/150 Test #95: module_model_crypto_test ........................... Passed 0.01 sec Start 96: module_json_proto_converter_test 96/150 Test #96: module_json_proto_converter_test ................... Passed 0.01 sec Start 97: module_transport_builder_test 97/150 Test #97: module_transport_builder_test ...................... Passed 0.09 sec Start 98: module_proto_transaction_responses_builder_test 98/150 Test #98: module_proto_transaction_responses_builder_test .... Passed 0.01 sec Start 99: module_proto_transaction_responses_factory_test 99/150 Test #99: module_proto_transaction_responses_factory_test .... Passed 0.01 sec Start 100: module_block_builder_test 100/150 Test #100: module_block_builder_test .......................... Passed 0.01 sec Start 101: module_transaction_response_builder_test 101/150 Test #101: module_transaction_response_builder_test ........... Passed 0.01 sec Start 102: module_transaction_validator_test 102/150 Test #102: module_transaction_validator_test .................. Passed 0.02 sec Start 103: module_query_validator_test 103/150 Test #103: module_query_validator_test ........................ Passed 0.01 sec Start 104: module_proto_query_validator_test 104/150 Test #104: module_proto_query_validator_test .................. Passed 0.01 sec Start 105: module_field_validator_test 105/150 Test #105: module_field_validator_test ........................ Passed 0.07 sec Start 106: module_container_validator_test 106/150 Test #106: module_container_validator_test .................... Passed 0.02 sec Start 107: module_block_validator_test 107/150 Test #107: module_block_validator_test ........................ Passed 0.02 sec Start 108: module_proto_transaction_validator_test 108/150 Test #108: module_proto_transaction_validator_test ............ Passed 0.01 sec Start 109: module_proto_block_validator_test 109/150 Test #109: module_proto_block_validator_test .................. Passed 0.01 sec Start 110: module_proposal_validator_test 110/150 Test #110: module_proposal_validator_test ..................... Passed 0.02 sec Start 111: module_blob_test 111/150 Test #111: module_blob_test ................................... Passed 0.01 sec Start 112: module_crypto_usage_test 112/150 Test #112: module_crypto_usage_test ........................... Passed 0.02 sec Start 113: module_security_signatures_test 113/150 Test #113: module_security_signatures_test .................... Passed 0.01 sec Start 114: framework_test_subscriber_testing 114/150 Test #114: framework_test_subscriber_testing .................. Passed 0.01 sec Start 115: integration_add_asset_qty_test 115/150 Test #115: integration_add_asset_qty_test ..................... Passed 7.05 sec Start 116: integration_create_account_test 116/150 Test #116: integration_create_account_test .................... Passed 9.87 sec Start 117: integration_create_domain_test 117/150 Test #117: integration_create_domain_test ..................... Passed 9.58 sec Start 118: integration_create_role_test 118/150 Test #118: integration_create_role_test ....................... Passed 9.53 sec Start 119: integration_get_transactions_test 119/150 Test #119: integration_get_transactions_test .................. Passed 10.07 sec Start 120: integration_grant_permission_test 120/150 Test #120: integration_grant_permission_test .................. Passed 16.42 sec Start 121: integration_revoke_permission_test 121/150 Test #121: integration_revoke_permission_test ................. Passed 11.44 sec Start 122: integration_invalid_fields_test 122/150 Test #122: integration_invalid_fields_test .................... Passed 1.98 sec Start 123: integration_query_test 123/150 Test #123: integration_query_test ............................. Passed 1.19 sec Start 124: integration_subtract_asset_qty_test 124/150 Test #124: integration_subtract_asset_qty_test ................ Passed 6.82 sec Start 125: integration_transfer_asset_test 125/150 Test #125: integration_transfer_asset_test .................... Passed 19.15 sec Start 126: integration_tx_acceptance_test 126/150 Test #126: integration_tx_acceptance_test ..................... Passed 13.34 sec Start 127: integration_tx_heavy_data 127/150 Test #127: integration_tx_heavy_data .......................... Passed 0.05 sec Start 128: integration_get_account_assets_test 128/150 Test #128: integration_get_account_assets_test ................ Passed 1.43 sec Start 129: integration_set_account_detail_test 129/150 Test #129: integration_set_account_detail_test ................ Passed 10.47 sec Start 130: integration_get_roles_test 130/150 Test #130: integration_get_roles_test ......................... Passed 2.32 sec Start 131: integration_queries_acceptance_test 131/150 Test #131: integration_queries_acceptance_test ................ Passed 25.44 sec Start 132: integration_create_asset_test 132/150 Test #132: integration_create_asset_test ...................... Passed 13.41 sec Start 133: integration_get_account_asset_txs_test 133/150 Test #133: integration_get_account_asset_txs_test ............. Passed 2.09 sec Start 134: integration_query_permissions_common_test 134/150 Test #134: integration_query_permissions_common_test .......... Passed 165.41 sec Start 135: integration_get_account_test 135/150 Test #135: integration_get_account_test ....................... Passed 29.25 sec Start 136: integration_add_signatory_test 136/150 Test #136: integration_add_signatory_test ..................... Passed 16.45 sec Start 137: integration_remove_signatory_test 137/150 Test #137: integration_remove_signatory_test .................. Passed 22.40 sec Start 138: integration_get_asset_info_test 138/150 Test #138: integration_get_asset_info_test .................... Passed 7.84 sec Start 139: integration_get_role_permissions_test 139/150 Test #139: integration_get_role_permissions_test .............. Passed 4.01 sec Start 140: integration_replay_test 140/150 Test #140: integration_replay_test ............................ Passed 21.75 sec Start 141: integration_basic_mst_state_propagation_test 141/150 Test #141: integration_basic_mst_state_propagation_test ....... Passed 7.51 sec Start 142: integration_set_account_quorum_test 142/150 Test #142: integration_set_account_quorum_test ................ Passed 13.17 sec Start 143: integration_consensus_sunny_day 143/150 Test #143: integration_consensus_sunny_day .................... Passed 0.04 sec Start 144: integration_pipeline_test 144/150 Test #144: integration_pipeline_test .......................... Passed 5.56 sec Start 145: integration_batch_pipeline_test 145/150 Test #145: integration_batch_pipeline_test .................... Passed 10.29 sec Start 146: integration_multisig_tx_pipeline_test 146/150 Test #146: integration_multisig_tx_pipeline_test .............. Passed 12.05 sec Start 147: integration_chain_validator_storage_test 147/150 Test #147: integration_chain_validator_storage_test ........... Passed 2.47 sec Start 148: regression_regression_test 148/150 Test #148: regression_regression_test ......................... Passed 9.63 sec Start 149: regression_query_regression_test 149/150 Test #149: regression_query_regression_test ................... Passed 1.72 sec Start 150: system_irohad_test 150/150 Test #150: system_irohad_test ................................. Passed 30.76 sec 100% tests passed, 0 tests failed out of 150 Total Test time (real) = 586.51 sec ```