]> git.mxchange.org Git - hub.git/blobdiff - application/hub/config.php
Continued with hub:
[hub.git] / application / hub / config.php
index 8c9e480604c14449d6eaaea01f375f2c94423175..1e0180534cb0ff5dfe564ae4c75881914ceda8f7 100644 (file)
@@ -2,9 +2,9 @@
 /**
  * Configuration entries for this application only
  *
- * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            0.0
- * @copyright  Copyright (c) 2007 - 2008 Roland Haeder, 2009 - 2012 Hub Developer Team
+ * @copyright  Copyright (c) 2007 - 2008 Roland Haeder, 2009 - 2014 Hub Developer Team
  * @license            GNU GPL 3.0 or any newer version
  *
  * This program is free software: you can redistribute it and/or modify
@@ -129,6 +129,9 @@ $cfg->setConfigEntry('node_self_connect_helper_class', 'NodeSelfConnectHelper');
 // CFG: DHT-BOOTSTRAP-HELPER-CLASS
 $cfg->setConfigEntry('dht_bootstrap_helper_class', 'DhtBootstrapHelper');
 
+// CFG: DHT-PUBLISH-ENTRY-HELPER-CLASS
+$cfg->setConfigEntry('dht_publish_entry_helper_class', 'DhtPublishEntryHelper');
+
 // CFG: DEFAULT-CONSOLE-COMMAND
 $cfg->setConfigEntry('default_console_command', 'main');
 
@@ -195,6 +198,9 @@ $cfg->setConfigEntry('package_tag_announcement_filter', 'PackageAnnouncementTagF
 // CFG: PACKAGE-TAG-ANNOUNCEMENT-ANSWER-FILTER
 $cfg->setConfigEntry('package_tag_announcement_answer_filter', 'PackageAnnouncementAnswerTagFilter');
 
+// CFG: PACKAGE-TAG-DHT-BOOTSTRAP-ANSWER-FILTER
+$cfg->setConfigEntry('package_tag_dht_bootstrap_answer_filter', 'PackageDhtBootstrapAnswerTagFilter');
+
 // CFG: PACKAGE-TAG-SELF-CONNECT-FILTER
 $cfg->setConfigEntry('package_tag_self_connect_filter', 'PackageSelfConnectTagFilter');
 
@@ -204,12 +210,18 @@ $cfg->setConfigEntry('package_tag_request_node_list_filter', 'PackageRequestNode
 // CFG: PACKAGE-TAG-REQUEST-NODE-LIST-ANSWER-FILTER
 $cfg->setConfigEntry('package_tag_request_node_list_answer_filter', 'PackageRequestNodeListAnswerTagFilter');
 
+// CFG: PACKAGE-TAG-DHT-BOOTSTRAP-FILTER
+$cfg->setConfigEntry('package_tag_dht_bootstrap_filter', 'PackageDhtBootstrapTagFilter');
+
 // CFG: MESSAGE-TYPE-ANNOUNCEMENT-HANDLER-CLASS
 $cfg->setConfigEntry('message_type_announcement_handler_class', 'NodeMessageAnnouncementHandler');
 
 // CFG: MESSAGE-TYPE-ANNOUNCEMENT-ANSWER-HANDLER-CLASS
 $cfg->setConfigEntry('message_type_announcement_answer_handler_class', 'NodeMessageAnnouncementAnswerHandler');
 
+// CFG: MESSAGE-TYPE-DHT-BOOTSTRAP-ANSWER-HANDLER-CLASS
+$cfg->setConfigEntry('message_type_dht_bootstrap_answer_handler_class', 'NodeMessageDhtBootstrapAnswerHandler');
+
 // CFG: MESSAGE-TYPE-SELF-CONNECT-HANDLER-CLASS
 $cfg->setConfigEntry('message_type_self_connect_handler_class', 'NodeMessageSelfConnectHandler');
 
@@ -219,12 +231,18 @@ $cfg->setConfigEntry('message_type_request_node_list_handler_class', 'NodeMessag
 // CFG: MESSAGE-TYPE-REQUEST-NODE-LIST-ANSWER-HANDLER-CLASS
 $cfg->setConfigEntry('message_type_request_node_list_answer_handler_class', 'NodeMessageRequestNodeListAnswerHandler');
 
+// CFG: MESSAGE-TYPE-DHT-BOOTSTRAP-HANDLER-CLASS
+$cfg->setConfigEntry('message_type_dht_bootstrap_handler_class', 'NodeMessageDhtBootstrapHandler');
+
 // CFG: NODE-ANSWER-MESSAGE-ANNOUNCEMENT-HELPER-CLASS
 $cfg->setConfigEntry('node_answer_message_announcement_helper_class', 'NodeAnnouncementMessageAnswerHelper');
 
 // CFG: NODE-ANSWER-MESSAGE-REQUEST-NODE-LIST-HELPER-CLASS
 $cfg->setConfigEntry('node_answer_message_request_node_list_helper_class', 'NodeRequestNodeListMessageAnswerHelper');
 
+// CFG: NODE-ANSWER-MESSAGE-ANNOUNCEMENT-HELPER-CLASS
+$cfg->setConfigEntry('node_answer_message_dht_bootstrap_helper_class', 'NodeDhtBootstrapMessageAnswerHelper');
+
 // CFG: NODE-NEXT-ANNOUNCEMENT-ANSWER-OKAY-HELPER-CLASS
 $cfg->setConfigEntry('node_next_announcement_answer_okay_helper_class', 'NodeRequestNodeListHelper');
 
@@ -240,6 +258,12 @@ $cfg->setConfigEntry('node_announcement_answer_template_class', 'XmlAnnouncement
 // CFG: NODE-REQUEST-NODE-LIST-TEMPLATE-CLASS
 $cfg->setConfigEntry('node_request_node_list_template_class', 'XmlRequestNodeListTemplateEngine');
 
+// CFG: NODE-DHT-BOOTSTRAP-TEMPLATE-CLASS
+$cfg->setConfigEntry('node_dht_bootstrap_template_class', 'XmlDhtBootstrapTemplateEngine');
+
+// CFG: NODE-DHT-BOOTSTRAP-ANSWER-TEMPLATE-CLASS
+$cfg->setConfigEntry('node_dht_bootstrap_answer_template_class', 'XmlDhtBootstrapAnswerTemplateEngine');
+
 // CFG: NODE-REQUEST-NODE-LIST-ANSWER-TEMPLATE-CLASS
 $cfg->setConfigEntry('node_request_node_list_answer_template_class', 'XmlRequestNodeListAnswerTemplateEngine');
 
@@ -249,6 +273,9 @@ $cfg->setConfigEntry('node_request_node_list_entries_template_class', 'XmlReques
 // CFG: DHT-BOOTSTRAP-TEMPLATE-CLASS
 $cfg->setConfigEntry('dht_bootstrap_template_class', 'XmlDhtBootstrapTemplateEngine');
 
+// CFG: DHT-PUBLISH-ENTRY-TEMPLATE-CLASS
+$cfg->setConfigEntry('dht_publish_entry_template_class', 'XmlDhtPublishEntryTemplateEngine');
+
 // CFG: NODE-MESSAGE-TEMPLATE-EXTENSION
 $cfg->setConfigEntry('node_message_template_extension', '.xml');
 
@@ -267,6 +294,12 @@ $cfg->setConfigEntry('node_announcement_stacker_class', 'FiLoStacker');
 // CFG: NODE-ANNOUNCEMENT-ANSWER-STACKER-CLASS
 $cfg->setConfigEntry('node_announcement_answer_stacker_class', 'FiLoStacker');
 
+// CFG: NODE-DHT-BOOTSTRAP-STACKER-CLASS
+$cfg->setConfigEntry('node_dht_bootstrap_stacker_class', 'FiLoStacker');
+
+// CFG: NODE-DHT-BOOTSTRAP-ANSWER-STACKER-CLASS
+$cfg->setConfigEntry('node_dht_bootstrap_answer_stacker_class', 'FiLoStacker');
+
 // CFG: NODE-REQUEST-NODE-LIST-ANSWER-STACKER-CLASS
 $cfg->setConfigEntry('node_request_node_list_answer_stacker_class', 'FiLoStacker');
 
@@ -276,9 +309,18 @@ $cfg->setConfigEntry('node_request_node_list_entry_stacker_class', 'FiLoStacker'
 // CFG: DHT-STACKER-CLASS
 $cfg->setConfigEntry('dht_stacker_class', 'FiLoStacker');
 
+// CFG: RAW-DATA-STACKER-CLASS
+$cfg->setConfigEntry('raw_data_stacker_class', 'FiLoStacker');
+
+// CFG: MULTIPLE-MESSAGE-STACKER-CLASS
+$cfg->setConfigEntry('multiple_message_stacker_class', 'FiFoStacker');
+
 // CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-TYPE
 $cfg->setConfigEntry('node_announcement_answer_template_type', 'xml/answer/announcement');
 
+// CFG: NODE-DHT-BOOTSTRAP-ANSWER-TEMPLATE-TYPE
+$cfg->setConfigEntry('node_dht_bootstrap_answer_template_type', 'xml/answer/dht_bootstrap');
+
 // CFG: NODE-REQUEST-NODE-LIST-ANSWER-TEMPLATE-TYPE
 $cfg->setConfigEntry('node_request_node_list_answer_template_type', 'xml/answer/requests');
 
@@ -313,7 +355,10 @@ $cfg->setConfigEntry('node_object_registry_stacker_class', 'FiLoStacker');
 $cfg->setConfigEntry('node_object_type_registry_class', 'ObjectTypeRegistry');
 
 // CFG: DHT-BOOTSTRAP-TEMPLATE-TYPE
-$cfg->setConfigEntry('dht_bootstrap_template_type', 'xml/dht_bootstrap');
+$cfg->setConfigEntry('node_dht_bootstrap_template_type', 'xml/dht_bootstrap');
+
+// CFG: DHT-PUBLISH-TEMPLATE-TYPE
+$cfg->setConfigEntry('node_dht_publish_template_type', 'xml/dht_publish');
 
 // CFG: CODE-TEMPLATE-TYPE
 $cfg->setConfigEntry('code_template_type', 'xml');
@@ -333,6 +378,9 @@ $cfg->setConfigEntry('chunk_handler_stacker_class', 'FiFoStacker');
 // CFG: DHT-BOOTSTRAP-STACKER-CLASS
 $cfg->setConfigEntry('dht_bootstrap_stacker_class', 'FiFoStacker');
 
+// CFG: DHT-PUBLISH-STACKER-CLASS
+$cfg->setConfigEntry('dht_publish_stacker_class', 'FiFoStacker');
+
 // CFG: PRODUCER-OUTGOING-QUEUE
 $cfg->setConfigEntry('producer_outgoing_queue', 'FiFoStacker');
 
@@ -345,6 +393,12 @@ $cfg->setConfigEntry('stacker_node_announcement_max_size', 20);
 // CFG: STACKER-NODE-ANNOUNCEMENT-ANSWER-MAX-SIZE
 $cfg->setConfigEntry('stacker_node_announcement_answer_max_size', 20);
 
+// CFG: STACKER-NODE-DHT-BOOTSTRAP-MAX-SIZE
+$cfg->setConfigEntry('stacker_node_dht_bootstrap_max_size', 10);
+
+// CFG: STACKER-NODE-DHT-BOOTSTRAP-ANSWER-MAX-SIZE
+$cfg->setConfigEntry('stacker_node_dht_bootstrap_answer_max_size', 20);
+
 // CFG: STACKER-NODE-SELF-CONNECT-MAX-SIZE
 $cfg->setConfigEntry('stacker_node_self_connect_max_size', 10);
 
@@ -390,6 +444,9 @@ $cfg->setConfigEntry('stacker_node_object_registry_max_size', 100);
 // CFG: STACKER-RAW-DATA-MAX-SIZE
 $cfg->setConfigEntry('stacker_raw_data_max_size', 100);
 
+// CFG: STACKER-OUTGOING-STREAM-MAX-SIZE
+$cfg->setConfigEntry('stacker_outgoing_stream_max_size', 100);
+
 // CFG: STACKER-FINAL-CHUNKS-MAX-SIZE
 $cfg->setConfigEntry('stacker_final_chunks_max_size', 100);
 
@@ -405,9 +462,18 @@ $cfg->setConfigEntry('stacker_decoded_package_max_size', 100);
 // CFG: STACKER-DHT-BOOTSTRAP-MAX-SIZE
 $cfg->setConfigEntry('stacker_dht_bootstrap_max_size', 10);
 
+// CFG: STACKER-DHT-PUBLISH-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_publish_max_size', 10);
+
 // CFG: STACKER-DHT-INSERT-NODE-MAX-SIZE
 $cfg->setConfigEntry('stacker_dht_insert_node_max_size', 100);
 
+// CFG: STACKER-DHT-PENDING_PUBLISH-MAX-SIZE
+$cfg->setConfigEntry('stacker_dht_pending_publish_max_size', 100);
+
+// CFG: STACKER-MULTIPLE-MESSAGE-MAX-SIZE
+$cfg->setConfigEntry('stacker_multiple_message_max_size', 10);
+
 // CFG: NEWS-MAIN-LIMIT
 $cfg->setConfigEntry('news_main_limit', 5);
 
@@ -507,9 +573,18 @@ $cfg->setConfigEntry('node_dht_init_task_class', 'NodeDhtInitializationTask');
 // CFG: NODE-DHT-BOOTSTRAP-TASK-CLASS
 $cfg->setConfigEntry('node_dht_bootstrap_task_class', 'NodeDhtBootstrapTask');
 
+// CFG: NODE-DHT-LATE-BOOTSTRAP-TASK-CLASS
+$cfg->setConfigEntry('node_dht_late_bootstrap_task_class', 'NodeDhtLateBootstrapTask');
+
 // CFG: NODE-DHT-QUERY-TASK-CLASS
 $cfg->setConfigEntry('node_dht_query_task_class', 'NodeDhtQueryTask');
 
+// CFG: NODE-DHT-PUBLICATION-CHECK-TASK-CLASS
+$cfg->setConfigEntry('node_dht_publication_check_task_class', 'NodeDhtPublicationCheckTask');
+
+// CFG: NODE-DHT-PUBLICATION-TASK-CLASS
+$cfg->setConfigEntry('node_dht_publication_task_class', 'NodeDhtPublicationTask');
+
 // CFG: TASK-NETWORK-PACKAGE-WRITER-STARTUP-DELAY
 $cfg->setConfigEntry('task_network_package_writer_startup_delay', 2500);
 
@@ -556,7 +631,7 @@ $cfg->setConfigEntry('task_chunk_assembler_interval_delay', 50);
 $cfg->setConfigEntry('task_chunk_assembler_max_runs', 0);
 
 // CFG: TASK-DHT-INIT-STATUP-DELAY
-$cfg->setConfigEntry('task_dht_init_startup_delay', 100);
+$cfg->setConfigEntry('task_dht_init_startup_delay', 200);
 
 // CFG: TASK-DHT-INIT-INTERVAL-DELAY
 $cfg->setConfigEntry('task_dht_init_interval_delay', 86400000); // = 1 day (won't matter anyway)
@@ -565,7 +640,7 @@ $cfg->setConfigEntry('task_dht_init_interval_delay', 86400000); // = 1 day (won'
 $cfg->setConfigEntry('task_dht_init_max_runs', 1);
 
 // CFG: TASK-DHT-BOOTSTRAP-STATUP-DELAY
-$cfg->setConfigEntry('task_dht_bootstrap_startup_delay', 100);
+$cfg->setConfigEntry('task_dht_bootstrap_startup_delay', 500);
 
 // CFG: TASK-DHT-BOOTSTRAP-INTERVAL-DELAY
 $cfg->setConfigEntry('task_dht_bootstrap_interval_delay', 3600000); // = 1 hour (won't matter anyway)
@@ -573,6 +648,15 @@ $cfg->setConfigEntry('task_dht_bootstrap_interval_delay', 3600000); // = 1 hour
 // CFG: TASK-DHT-BOOTSTRAP-MAX-RUNS
 $cfg->setConfigEntry('task_dht_bootstrap_max_runs', 1);
 
+// CFG: TASK-DHT-LATE-BOOTSTRAP-STATUP-DELAY
+$cfg->setConfigEntry('task_dht_late_bootstrap_startup_delay', 100);
+
+// CFG: TASK-DHT-LATE-BOOTSTRAP-INTERVAL-DELAY
+$cfg->setConfigEntry('task_dht_late_bootstrap_interval_delay', 3600000); // = 1 hour (won't matter anyway)
+
+// CFG: TASK-DHT-LATE-BOOTSTRAP-MAX-RUNS
+$cfg->setConfigEntry('task_dht_late_bootstrap_max_runs', 1);
+
 // CFG: TASK-DHT-QUERY-STATUP-DELAY
 $cfg->setConfigEntry('task_dht_query_startup_delay', 1400);
 
@@ -582,6 +666,24 @@ $cfg->setConfigEntry('task_dht_query_interval_delay', 50);
 // CFG: TASK-DHT-QUERY-MAX-RUNS
 $cfg->setConfigEntry('task_dht_query_max_runs', 0);
 
+// CFG: TASK-DHT-CHECK-PUBLICATION-STATUP-DELAY
+$cfg->setConfigEntry('task_dht_check_publication_startup_delay', 10000);
+
+// CFG: TASK-DHT-CHECK-PUBLICATION-INTERVAL-DELAY
+$cfg->setConfigEntry('task_dht_check_publication_interval_delay', 1800000); // = 1/2 hour
+
+// CFG: TASK-DHT-CHECK-PUBLICATION-MAX-RUNS
+$cfg->setConfigEntry('task_dht_check_publication_max_runs', 0);
+
+// CFG: TASK-DHT-PUBLICATION-STATUP-DELAY
+$cfg->setConfigEntry('task_dht_publication_startup_delay', 8000);
+
+// CFG: TASK-DHT-PUBLICATION-INTERVAL-DELAY
+$cfg->setConfigEntry('task_dht_publication_interval_delay', 5000);
+
+// CFG: TASK-DHT-PUBLICATION-MAX-RUNS
+$cfg->setConfigEntry('task_dht_publication_max_runs', 0);
+
 // CFG: TASK-LIST-CLASS
 $cfg->setConfigEntry('task_list_class', 'TaskList');
 
@@ -618,12 +720,15 @@ $cfg->setConfigEntry('socket_registry_class', 'SocketRegistry');
 // CFG: SOCKET-CONTAINER-CLASS
 $cfg->setConfigEntry('socket_container_class', 'SocketContainer');
 
-// CFG: PACKAGE-RECIPIENT-DISCOVERY
+// CFG: PACKAGE-RECIPIENT-DISCOVERY-CLASS
 $cfg->setConfigEntry('package_recipient_discovery_class', 'PackageRecipientDiscovery');
 
-// CFG: SOCKET-DISCOVERY
+// CFG: SOCKET-DISCOVERY-CLASS
 $cfg->setConfigEntry('socket_discovery_class', 'PackageSocketDiscovery');
 
+// CFG: DHT-RECIPIENT-DISCOVERY-CLASS
+$cfg->setConfigEntry('dht_recipient_discovery_class', 'DhtRecipientDiscovery');
+
 // CFG: RECIPIENT-LIST-CLASS
 $cfg->setConfigEntry('recipient_list_class', 'RecipientList');
 
@@ -719,6 +824,9 @@ $cfg->setConfigEntry('package_recipient_max_count', 3);
 // CFG: NODE-DHT-CLASS
 $cfg->setConfigEntry('node_dht_class', 'NodeDhtFacade');
 
+// CFG: MAX-DHT-RECIPIENTS
+$cfg->setConfigEntry('max_dht_recipients', 10);
+
 ///////////////////////////////////////////////////////////////////////////////
 //                              Node states
 ///////////////////////////////////////////////////////////////////////////////
@@ -732,8 +840,8 @@ $cfg->setConfigEntry('node_virgin_state_class', 'NodeVirginState');
 // CFG: NODE-ACTIVE-STATE-CLASS
 $cfg->setConfigEntry('node_active_state_class', 'NodeActiveState');
 
-// CFG: NODE-ANNOUNCED-STATE-CLASS
-$cfg->setConfigEntry('node_announced_state_class', 'NodeAnnouncedState');
+// CFG: NODE-ANNOUNCING-STATE-CLASS
+$cfg->setConfigEntry('node_announcing_state_class', 'NodeAnnouncingState');
 
 // CFG: NODE-REACHABLE-STATE-CLASS
 $cfg->setConfigEntry('node_reachable_state_class', 'NodeReachableState');
@@ -811,6 +919,94 @@ $cfg->setConfigEntry('self_recipient_class', 'SelfRecipient');
 // CFG: UPPER-RECIPIENT-CLASS
 $cfg->setConfigEntry('upper_recipient_class', 'UpperRecipient');
 
+///////////////////////////////////////////////////////////////////////////////
+//                         Miner configuration
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: MINER-DEFAULT-MODE (can be only 'chash' at the moment)
+$cfg->setConfigEntry('miner_default_mode', 'chash');
+
+// CFG: MINER-BUFFER-STACKER-CLASS
+$cfg->setConfigEntry('miner_buffer_stacker_class', 'FiFoStacker');
+
+// CFG: HUBCONSOLE-CMD-CRUNCHER-RESOLVER-CLASS
+$cfg->setConfigEntry('hubconsole_cmd_miner_resolver_class', 'HubConsoleCommandResolver');
+
+// CFG: MINER-PHP-REQUIREMENTS-FILTER
+$cfg->setConfigEntry('miner_php_requirements_filter', 'MinerPhpRequirementsFilter');
+
+// CFG: MINER-INITIALIZER-FILTER
+$cfg->setConfigEntry('miner_initializer_filter', 'MinerInitializationFilter');
+
+// CFG: MINER-WELCOME-TEASER-FILTER
+$cfg->setConfigEntry('miner_welcome_teaser_filter', 'MinerWelcomeTeaserFilter');
+
+// CFG: MINER-BOOTSTRAP-TASK-HANDLER-INITIALIZER-FILTER
+$cfg->setConfigEntry('miner_bootstrap_task_handler_initializer_filter', 'MinerTaskHandlerInitializerFilter');
+
+// CFG: CRUNCHER-BOOTSTRAP-EXTRA-BOOTSTRAPPING-FILTER
+$cfg->setConfigEntry('miner_bootstrap_extra_bootstrapping_filter', 'MinerBootstrapExtraBootstrappingFilter');
+
+// CFG: MINHER-BOOTSTRAP-BUFFER-QUEUE-INITIALIZER-FILTER
+$cfg->setConfigEntry('miner_bootstrap_buffer_queue_initializer_filter', 'MinerBootstrapBufferQueueInitializerFilter');
+
+// CFG: MINER-BOOTSTRAP-GENERIC-ACTIVATION-FILTER
+$cfg->setConfigEntry('miner_bootstrap_generic_activation_filter', 'MinerBootstrapGenericActivationFilter');
+
+// CFG: MINER-SHUTDOWN-FILTER
+$cfg->setConfigEntry('miner_shutdown_filter', 'MinerShutdownFilter');
+
+// CFG: MINER-INIT-STATE-CLASS
+$cfg->setConfigEntry('miner_init_state_class', 'MinerInitState');
+
+// CFG: MINER-BOOTING-STATE-CLASS
+$cfg->setConfigEntry('miner_booting_state_class', 'MinerBootingState');
+
+// CFG: MINER-BLOCK-FETCHER-TASK-CLASS
+$cfg->setConfigEntry('miner_block_fetcher_task_class', 'MinerBlockFetcherTask');
+
+// CFG: TASK-MINER-BLOCK-FETCHER-STARTUP-DELAY
+$cfg->setConfigEntry('task_miner_block_fetcher_startup_delay', 1000);
+
+// CFG: TASK-MINER-BLOCK-FETCHER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_miner_block_fetcher_interval_delay', 1000);
+
+// CFG: TASK--FETCHER-MAX-RUNS
+$cfg->setConfigEntry('task_miner_block_fetcher_max_runs', 0);
+
+// CFG: MINER-TEST-GENESIS-BLOCK-PRODUCER-TASK-CLASS
+$cfg->setConfigEntry('miner_test_genesis_block_producer_task_class', 'MinerTestGenesisBlockProducerTask');
+
+// CFG: TASK-MINER-TEST-GENESIS-BLOCK-PRODUCER-STARTUP-DELAY
+$cfg->setConfigEntry('task_miner_test_genesis_block_producer_startup_delay', 500);
+
+// CFG: TASK-MINER-TEST-GENESIS-BLOCK-PRODUCER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_miner_test_genesis_block_producer_interval_delay', 1000*60*60);
+
+// CFG: TASK-MINER-TEST-GENESIC-BLOCK-PRODUCER-MAX-RUNS
+$cfg->setConfigEntry('task_miner_test_genesis_block_producer_max_runs', 1);
+
+// CFG: MINER_NODE-COMMUNICATOR-TASK-CLASS
+$cfg->setConfigEntry('miner_node_communicator_task_class', 'MinerNodeCommunicatorTask');
+
+// CFG: TASK-MINER_NODE-COMMUNICATOR-STARTUP-DELAY
+$cfg->setConfigEntry('task_miner_node_communicator_startup_delay', 500);
+
+// CFG: TASK-MINER_NODE-COMMUNICATOR-INTERVAL-DELAY
+$cfg->setConfigEntry('task_miner_node_communicator_interval_delay', 250);
+
+// CFG: TASK-MINER_NODE-COMMUNICATOR-MAX-RUNS
+$cfg->setConfigEntry('task_miner_node_communicator_max_runs', 0);
+
+// CFG: MINER-TEST-GENESIS-BLOCK-PRODUCER-CLASS
+$cfg->setConfigEntry('miner_test_genesis_block_producer_class', 'MinerTestGenesisBlockProducer');
+
+// CFG: MINER-NODE-COMMUNICATOR-CLASS
+$cfg->setConfigEntry('miner_node_communicator_class', 'MinerNodeCommunicator');
+
+// CFG: MINER-TEST-HASH-BLOCK-CLASS
+$cfg->setConfigEntry('miner_test_hash_block_class', 'HashBlock');
+
 ///////////////////////////////////////////////////////////////////////////////
 //                        Cruncher configuration
 ///////////////////////////////////////////////////////////////////////////////
@@ -851,12 +1047,6 @@ $cfg->setConfigEntry('cruncher_shutdown_filter', 'CruncherShutdownFilter');
 // CFG: CRUNCHER-WORK-UNIT-FETCHER-TASK-CLASS
 $cfg->setConfigEntry('cruncher_work_unit_fetcher_task_class', 'CruncherWorkUnitFetcherTask');
 
-// CFG: CRUNCHER-TEST-UNIT-PRODUCER-TASK-CLASS
-$cfg->setConfigEntry('cruncher_test_unit_producer_task_class', 'CruncherTestUnitProducerTask');
-
-// CFG: CRUNCHER-KEY-PRODUCER-TASK-CLASS
-$cfg->setConfigEntry('cruncher_key_producer_task_class', 'CruncherKeyProducerTask');
-
 // CFG: TASK-CRUNCHER-WORK-UNIT-FETCHER-STARTUP-DELAY
 $cfg->setConfigEntry('task_cruncher_work_unit_fetcher_startup_delay', 1000);
 
@@ -866,6 +1056,9 @@ $cfg->setConfigEntry('task_cruncher_work_unit_fetcher_interval_delay', 10);
 // CFG: TASK-CRUNCHER-WORK-UNIT-FETCHER-MAX-RUNS
 $cfg->setConfigEntry('task_cruncher_work_unit_fetcher_max_runs', 0);
 
+// CFG: CRUNCHER-TEST-UNIT-PRODUCER-TASK-CLASS
+$cfg->setConfigEntry('cruncher_test_unit_producer_task_class', 'CruncherTestUnitProducerTask');
+
 // CFG: TASK-CRUNCHER-TEST-UNIT-PRODUCER-STARTUP-DELAY
 $cfg->setConfigEntry('task_cruncher_test_unit_producer_startup_delay', 500);
 
@@ -875,6 +1068,9 @@ $cfg->setConfigEntry('task_cruncher_test_unit_producer_interval_delay', 1000*60*
 // CFG: TASK-CRUNCHER-TEST-UNIT-PRODUCER-MAX-RUNS
 $cfg->setConfigEntry('task_cruncher_test_unit_producer_max_runs', 0);
 
+// CFG: CRUNCHER-KEY-PRODUCER-TASK-CLASS
+$cfg->setConfigEntry('cruncher_key_producer_task_class', 'CruncherKeyProducerTask');
+
 // CFG: TASK-CRUNCHER-KEY-PRODUCER-STARTUP-DELAY
 $cfg->setConfigEntry('task_cruncher_key_producer_startup_delay', 750);
 
@@ -920,6 +1116,9 @@ $cfg->setConfigEntry('cruncher_test_unit_template_type', 'xml/cruncher/producer'
 // CFG: STACKER-CRUNCHER-TEST-UNIT-MAX-SIZE
 $cfg->setConfigEntry('stacker_cruncher_test_unit_max_size', 20);
 
+// CFG: STACKER-OUTGOING-QUEUE-MAX-SIZE
+$cfg->setConfigEntry('stacker_outgoing_queue_max_size', 2000);
+
 // CFG: CRUNCHER-TEST-UNIT-MAX-COUNT
 $cfg->setConfigEntry('cruncher_test_unit_max_count', 1000);
 
@@ -951,7 +1150,7 @@ $cfg->setConfigEntry('cruncher_init_state_class', 'CruncherInitState');
 $cfg->setConfigEntry('cruncher_virgin_state_class', 'CruncherVirginState');
 
 // CFG: CRUNCHER-PER-UNIT-KEY-LIMIT
-$cfg->setConfigEntry('cruncher_per_unit_key_limit', 10000);
+$cfg->setConfigEntry('cruncher_per_unit_key_limit', 1000);
 
 ///////////////////////////////////////////////////////////////////////////////
 //                            Chat Configuration
@@ -996,6 +1195,265 @@ $cfg->setConfigEntry('task_chat_telnet_listener_interval_delay', 10);
 // CFG: TASK-CHAT-TELNET-LISTENER-MAX-RUNS
 $cfg->setConfigEntry('task_chat_telnet_listener_max_runs', 0);
 
+///////////////////////////////////////////////////////////////////////////////
+//                            Crawler Configuration
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: BASE-FILE-STACKS-PATH
+$cfg->setConfigEntry('base_file_stacks_path', 'data/stacks');
+
+// CFG: FILE-STACKS-EXTENSION
+$cfg->setConfigEntry('file_stacks_extension', 'stack');
+
+// CFG: INDEX-EXTENSION
+$cfg->setConfigEntry('index_extension', '.idx');
+
+// CFG: HUBCONSOLE-CMD-CHAT-RESOLVER-CLASS
+$cfg->setConfigEntry('hubconsole_cmd_crawler_resolver_class', 'HubConsoleCommandResolver');
+
+// CFG: CRAWLER-PHP-REQUIREMENTS-FILTER
+$cfg->setConfigEntry('crawler_php_requirements_filter', 'CrawlerPhpRequirementsFilter');
+
+// CFG: CRAWLER-INITIALIZER-FILTER
+$cfg->setConfigEntry('crawler_initializer_filter', 'CrawlerInitializationFilter');
+
+// CFG: NODE-CONSOLE-CRAWLER
+$cfg->setConfigEntry('node_console_crawler_class', 'NodeConsoleCrawler');
+
+// CFG: CRAWLER-WELCOME-TEASER-FILTER
+$cfg->setConfigEntry('crawler_welcome_teaser_filter', 'CrawlerWelcomeTeaserFilter');
+
+// CFG: CRAWLER-BOOTSTRAP-TASK-HANDLER-INITIALIZER-FILTER
+$cfg->setConfigEntry('crawler_bootstrap_task_handler_initializer_filter', 'CrawlerTaskHandlerInitializerFilter');
+
+// CFG: CRAWLER-BOOTSTRAP-EXTRA-BOOTSTRAPPING-FILTER
+$cfg->setConfigEntry('crawler_bootstrap_extra_bootstrapping_filter', 'CrawlerBootstrapExtraBootstrappingFilter');
+
+// CFG: CRAWLER-BOOTSTRAP-GENERIC-ACTIVATION-FILTER
+$cfg->setConfigEntry('crawler_bootstrap_generic_activation_filter', 'CrawlerBootstrapGenericActivationFilter');
+
+// CFG: CRAWLER-SHUTDOWN-FILTER
+$cfg->setConfigEntry('crawler_shutdown_filter', 'CrawlerShutdownFilter');
+
+// CFG: CRAWLER-NODE-COMMUNICATOR-CLASS
+$cfg->setConfigEntry('crawler_node_communicator_class', 'CrawlerNodeCommunicator');
+
+// CFG: CRAWLER-INIT-STATE-CLASS
+$cfg->setConfigEntry('crawler_init_state_class', 'CrawlerInitState');
+
+// CFG: CRAWLER-BOOTING-STATE-CLASS
+$cfg->setConfigEntry('crawler_booting_state_class', 'CrawlerBootingState');
+
+// CFG: COMMUNICATOR-INIT-STATE-CLASS
+$cfg->setConfigEntry('communicator_init_state_class', 'CommunicatorInitState');
+
+// CFG: CRAWLER-UPLOADED-LIST-SCANNER
+$cfg->setConfigEntry('crawler_uploaded_list_scanner', 'CrawlerUploadedListScanner');
+
+// CFG: CRAWLER-URL-SOURCE-LOCAL-START-CLASS
+$cfg->setConfigEntry('crawler_url_source_local_start_class', 'CrawlerLocalStartUrlSource');
+
+// CFG: CRAWLER-URL-SOURCE-UPLOADED-LIST-CLASS
+$cfg->setConfigEntry('crawler_url_source_uploaded_list_class', 'CrawlerUploadedListUrlSource');
+
+// CFG: CRAWLER-URL-SOURCE-RSS-START-CLASS
+$cfg->setConfigEntry('crawler_url_source_rss_start_class', 'CrawlerRssStartUrlSource');
+
+// CFG: CRAWLER-URL-SOURCE-FOUND-RSS-CLASS
+$cfg->setConfigEntry('crawler_url_source_found_rss_class', 'CrawlerFoundRssUrlSource');
+
+// CFG: CRAWLER-NODE-COMMUNICATOR-TASK-CLASS
+$cfg->setConfigEntry('crawler_node_communicator_task_class', 'CrawlerNodeCommunicatorTask');
+
+// CFG: CRAWLER-URL-LOCAL-START-STACK-CLASS
+$cfg->setConfigEntry('crawler_url_local_start_stack_class', 'FiFoFileStack');
+
+// CFG: CRAWLER-URL-UPLOADED-LIST-STACK-CLASS
+$cfg->setConfigEntry('crawler_url_uploaded_list_stack_class', 'FiFoFileStack');
+
+// CFG: CRAWLER-URL-RSS-START-STACK-CLASS
+$cfg->setConfigEntry('crawler_url_rss_start_stack_class', 'FiFoFileStack');
+
+// CFG: CRAWLER-URL-FOUND-RSS-STACK-CLASS
+$cfg->setConfigEntry('crawler_url_found_rss_stack_class', 'FiFoFileStack');
+
+// CFG: CRAWLER-URL-LOCAL-START-FILE-STACK-INDEX-CLASS
+$cfg->setConfigEntry('crawler_url_local_start_file_stack_index_class', 'FileStackIndex');
+
+// CFG: CRAWLER-URL-UPLOADED-LIST-FILE-STACK-INDEX-CLASS
+$cfg->setConfigEntry('crawler_url_uploaded_list_file_stack_index_class', 'FileStackIndex');
+
+// CFG: CRAWLER-URL-RSS-START-FILE-STACK-INDEX-CLASS
+$cfg->setConfigEntry('crawler_url_rss_start_file_stack_index_class', 'FileStackIndex');
+
+// CFG: CRAWLER-URL-FOUND-RSS-FILE-STACK-INDEX-CLASS
+$cfg->setConfigEntry('crawler_url_found_rss_file_stack_index_class', 'FileStackIndex');
+
+// CFG: TASK-CRAWLER-NODE-COMMUNICATOR-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_node_communicator_startup_delay', 500);
+
+// CFG: TASK-CRAWLER-NODE-COMMUNICATOR-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_node_communicator_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-NODE-COMMUNICATOR-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_node_communicator_max_runs', 0);
+
+// CFG: CRAWLER-LOCAL-URL-GETTER-TASK-CLASS
+$cfg->setConfigEntry('crawler_local_url_getter_task_class', 'CrawlerLocalUrlGetterTask');
+
+// CFG: TASK-CRAWLER-LOCAL-URL-GETTER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_local_url_getter_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-LOCAL-URL-GETTER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_local_url_getter_interval_delay', 200);
+
+// CFG: TASK-CRAWLER-LOCAL-URL-GETTER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_local_url_getter_max_runs', 0);
+
+// CFG: CRAWLER-REMOTE-URL-GETTER-TASK-CLASS
+$cfg->setConfigEntry('crawler_remote_url_getter_task_class', 'CrawlerRemoteUrlGetterTask');
+
+// CFG: TASK-CRAWLER-REMOTE-URL-GETTER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_remote_url_getter_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-REMOTE-URL-GETTER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_remote_url_getter_interval_delay', 200);
+
+// CFG: TASK-CRAWLER-REMOTE-URL-GETTER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_remote_url_getter_max_runs', 0);
+
+// CFG: CRAWLER-REMOTE-JOB-PUBLISHER-TASK-CLASS
+$cfg->setConfigEntry('crawler_remote_job_publisher_task_class', 'CrawlerRemoteJobPublisherTask');
+
+// CFG: TASK-CRAWLER-REMOTE-JOB-PUBLISHER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_remote_job_publisher_startup_delay', 2000);
+
+// CFG: TASK-CRAWLER-REMOTE-JOB-PUBLISHER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_remote_job_publisher_interval_delay', 200);
+
+// CFG: TASK-CRAWLER-REMOTE-JOB-PUBLISHER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_remote_job_publisher_max_runs', 0);
+
+// CFG: CRAWLER-MIME-SNIFFER-TASK-CLASS
+$cfg->setConfigEntry('crawler_mime_sniffer_task_class', 'CrawlerMimeSnifferTask');
+
+// CFG: TASK-CRAWLER-MIME-SNIFFER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_mime_sniffer_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-MIME-SNIFFER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_mime_sniffer_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-MIME-SNIFFER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_mime_sniffer_max_runs', 0);
+
+// CFG: CRAWLER-DOCUMENT-PARSER-TASK-CLASS
+$cfg->setConfigEntry('crawler_document_parser_task_class', 'CrawlerDocumentParserTask');
+
+// CFG: TASK-CRAWLER-DOCUMENT-PARSER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_document_parser_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-DOCUMENT-PARSER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_document_parser_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-DOCUMENT-PARSER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_document_parser_max_runs', 0);
+
+// CFG: CRAWLER-STRUCTURE-ANALYZER-TASK-CLASS
+$cfg->setConfigEntry('crawler_structure_analyzer_task_class', 'CrawlerStructureAnalyzerTask');
+
+// CFG: TASK-CRAWLER-STRUCTURE-ANALYZER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_structure_analyzer_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-STRUCTURE-ANALYZER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_structure_analyzer_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-STRUCTURE-ANALYZER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_structure_analyzer_max_runs', 0);
+
+// CFG: CRAWLER-SNIPPET-EXTRACTOR-TASK-CLASS
+$cfg->setConfigEntry('crawler_snippet_extractor_task_class', 'CrawlerSnippetExtractorTask');
+
+// CFG: TASK-CRAWLER-SNIPPET-EXTRACTOR-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_snippet_extractor_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-SNIPPET-EXTRACTOR-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_snippet_extractor_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-SNIPPET-EXTRACTOR-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_snippet_extractor_max_runs', 0);
+
+// CFG: CRAWLER-PING-TASK-CLASS
+$cfg->setConfigEntry('crawler_ping_task_class', 'CrawlerPingTask');
+
+// CFG: TASK-CRAWLER-PING-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_ping_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-PING-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_ping_interval_delay', 250);
+
+// CFG: TASK-CRAWLER-PING-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_ping_max_runs', 0);
+
+// CFG: CRAWLER-URL-SOURCE-LOCAL-START-TASK-CLASS
+$cfg->setConfigEntry('crawler_url_source_local_start_task_class', 'CrawlerUrlSourceLocalStartTask');
+
+// CFG: TASK-CRAWLER-URL-SOURCE-LOCAL-START-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_local_start_startup_delay', 3000);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-LOCAL-START-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_local_start_interval_delay', 150);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-LOCAL-START-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_url_source_local_start_max_runs', 0);
+
+// CFG: CRAWLER-URL-SOURCE-UPLOADED-LIST-TASK-CLASS
+$cfg->setConfigEntry('crawler_url_source_uploaded_list_task_class', 'CrawlerUrlSourceUploadedListTask');
+
+// CFG: TASK-CRAWLER-URL-SOURCE-UPLOADED-LIST-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_uploaded_list_startup_delay', 3000);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-UPLOADED-LIST-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_uploaded_list_interval_delay', 150);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-UPLOADED-LIST-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_url_source_uploaded_list_max_runs', 0);
+
+// CFG: CRAWLER-URL-SOURCE-RSS-START-TASK-CLASS
+$cfg->setConfigEntry('crawler_url_source_rss_start_task_class', 'CrawlerUrlSourceRssStartTask');
+
+// CFG: TASK-CRAWLER-URL-SOURCE-RSS-START-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_rss_start_startup_delay', 3000);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-RSS-START-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_rss_start_interval_delay', 150);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-RSS-START-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_url_source_rss_start_max_runs', 0);
+
+// CFG: CRAWLER-URL-SOURCE-FOUND-RSS-TASK-CLASS
+$cfg->setConfigEntry('crawler_url_source_found_rss_task_class', 'CrawlerUrlSourceFoundRssTask');
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_found_rss_startup_delay', 3000);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_url_source_found_rss_interval_delay', 150);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_url_source_found_rss_max_runs', 0);
+
+// CFG: CRAWLER-URL-SOURCE-FOUND-RSS-TASK-CLASS
+$cfg->setConfigEntry('crawler_uploaded_list_scanner_task_class', 'CrawlerUploadedListScannerTask');
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_uploaded_list_scanner_startup_delay', 500);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_uploaded_list_scanner_interval_delay', 1000);
+
+// CFG: TASK-CRAWLER-URL-SOURCE-FOUND-RSS-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_uploaded_list_scanner_max_runs', 0);
+
 ///////////////////////////////////////////////////////////////////////////////
 //                            HTTP Configuration
 ///////////////////////////////////////////////////////////////////////////////