]> git.mxchange.org Git - hub.git/blobdiff - application/hub/config.php
In case of non-blocking connections (and that is for 99.9999% the case here)
[hub.git] / application / hub / config.php
index 34719970b604a2e832c7e4065ab809f5e97dc2cc..3340351b33172deae0e99aee18b2c95c29f6662e 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @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 - 2015 Hub Developer Team
  * @license            GNU GPL 3.0 or any newer version
  *
  * This program is free software: you can redistribute it and/or modify
@@ -33,15 +33,18 @@ $cfg->setConfigEntry('node_listen_port', 9060);
 // CFG: NODE-DEFAULT-MODE (can be 'regular', 'list', 'master' or 'boot', default is 'regular')
 $cfg->setConfigEntry('node_default_mode', 'regular');
 
+// CFG: ENABLE-FEATURE-HUBCOIN-REWARD
+$cfg->setConfigEntry('enable_feature_hubcoin_reward', 'Y');
+
+// CFG: FEATURE-HUBCOIN-REWARD-CLASS
+$cfg->setConfigEntry('feature_hubcoin_reward_class', 'HubcoinRewardFeature');
+
 // CFG: TEMPLATE-ENGINE
 $cfg->setConfigEntry('tpl_engine', 'ConsoleOutput');
 
 // CFG: OUTPUT-CLASS
 $cfg->setConfigEntry('output_class', 'DebugConsoleOutput');
 
-// CFG: DEBUG-CLASS
-$cfg->setConfigEntry('debug_class', 'DebugConsoleOutput');
-
 // CFG: NODE-INFO-DB-WRAPPER-CLASS
 $cfg->setConfigEntry('node_info_db_wrapper_class', 'NodeInformationDatabaseWrapper');
 
@@ -66,6 +69,12 @@ $cfg->setConfigEntry('tcp_listener_class', 'TcpListener');
 // CFG: UDP-LISTENER-CLASS
 $cfg->setConfigEntry('udp_listener_class', 'UdpListener');
 
+// CFG: SOCKET-FILE-LISTENER-CLASS
+$cfg->setConfigEntry('socket_file_listener_class', 'SocketFileListener');
+
+// CFG: SOCKET-FILE-DECORATOR-LISTENER-CLASS
+$cfg->setConfigEntry('socket_file_decorator_listener_class', 'SocketFileListenerDecorator');
+
 // CFG: NODE-TCP-LISTENER-CLASS
 $cfg->setConfigEntry('node_tcp_listener_class', 'HubTcpListenerDecorator');
 
@@ -81,6 +90,9 @@ $cfg->setConfigEntry('client_udp_listener_class', 'ClientUdpListenerDecorator');
 // CFG: NODE-POOL-CLASS
 $cfg->setConfigEntry('node_pool_class', 'DefaultPeerPool');
 
+// CFG: APPLICATION-POOL-CLASS
+$cfg->setConfigEntry('application_pool_class', 'DefaultPeerPool');
+
 // CFG: POOL-ENTRIES-LIST-CLASS
 $cfg->setConfigEntry('pool_entries_list_class', 'PoolEntriesList');
 
@@ -93,33 +105,30 @@ $cfg->setConfigEntry('handler_pool_iterator_class', 'HandlerPoolIterator');
 // CFG: NETWORK-LISTEN-ITERATOR-CLASS
 $cfg->setConfigEntry('network_listen_iterator_class', 'NetworkListenIterator');
 
+// CFG: SOCKET-LISTEN-ITERATOR-CLASS
+$cfg->setConfigEntry('socket_listen_iterator_class', 'DefaultIterator');
+
 // CFG: TCP-RAW-DATA-HANDLER-CLASS
 $cfg->setConfigEntry('tcp_raw_data_handler_class', 'TcpRawDataHandler');
 
 // CFG: UDP-RAW-DATA-HANDLER-CLASS
 $cfg->setConfigEntry('udp_raw_data_handler_class', 'UdpRawDataHandler');
 
+// CFG: SOCKET-RAW-DATA-HANDLER-CLASS
+$cfg->setConfigEntry('socket_raw_data_handler_class', 'SocketRawDataHandler');
+
 // CFG: SHUTDOWN-LISTENER-POOL-VISITOR-CLASS
 $cfg->setConfigEntry('shutdown_listener_pool_visitor_class', 'ShutdownListenerPoolVisitor');
 
-// CFG: SHUTDOWN-TASK-VISITOR-CLASS
-$cfg->setConfigEntry('shutdown_task_visitor_class', 'ShutdownTaskVisitor');
-
 // CFG: SHUTDOWN-SOCKET-VISITOR-CLASS
 $cfg->setConfigEntry('shutdown_socket_visitor_class', 'ShutdownSocketVisitor');
 
 // CFG: HALF-SHUTDOWN-SOCKET-VISITOR-CLASS
 $cfg->setConfigEntry('half_shutdown_socket_visitor_class', 'HalfShutdownSocketVisitor');
 
-// CFG: ACTIVE-TASK-VISITOR-CLASS
-$cfg->setConfigEntry('active_task_visitor_class', 'ActiveTaskVisitor');
-
 // CFG: NODE-RAW-DATA-MONITOR-VISITOR-CLASS
 $cfg->setConfigEntry('node_raw_data_monitor_visitor_class', 'RawDataPoolMonitorVisitor');
 
-// CFG: LIST-GROUP-CLASS
-$cfg->setConfigEntry('list_group_class', 'ListGroupList');
-
 // CFG: NODE-ANNOUNCEMENT-HELPER-CLASS
 $cfg->setConfigEntry('node_announcement_helper_class', 'NodeAnnouncementHelper');
 
@@ -135,11 +144,11 @@ $cfg->setConfigEntry('dht_publish_entry_helper_class', 'DhtPublishEntryHelper');
 // CFG: DEFAULT-CONSOLE-COMMAND
 $cfg->setConfigEntry('default_console_command', 'main');
 
-// CFG: DEFAULT-HUBCONSOLE-COMMAND
-$cfg->setConfigEntry('default_hubconsole_command', 'main');
+// CFG: DEFAULT-HUB-CONSOLE-COMMAND
+$cfg->setConfigEntry('default_hub_console_command', 'main');
 
-// CFG: HUBCONSOLE-CMD-MAIN-RESOLVER-CLASS
-$cfg->setConfigEntry('hubconsole_cmd_main_resolver_class', 'HubConsoleCommandResolver');
+// CFG: HUB-CONSOLE-CMD-MAIN-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_main_resolver_class', 'HubConsoleCommandResolver');
 
 // CFG: NETWORK-STATE-RESOLVER-CLASS
 $cfg->setConfigEntry('network_state_resolver_class', 'NetworkStateResolver');
@@ -198,6 +207,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');
 
@@ -216,6 +228,9 @@ $cfg->setConfigEntry('message_type_announcement_handler_class', 'NodeMessageAnno
 // 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');
 
@@ -234,24 +249,30 @@ $cfg->setConfigEntry('node_answer_message_announcement_helper_class', 'NodeAnnou
 // 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');
 
-// CFG: NEWS-READER-CLASS
-$cfg->setConfigEntry('news_reader_class', 'ConsoleNewsReader');
+// CFG: NEWS-READER-MAIN-CLASS
+$cfg->setConfigEntry('news_reader_main_class', 'ConsoleNewsReader');
 
 // CFG: NODE-ANNOUNCEMENT-TEMPLATE-CLASS
 $cfg->setConfigEntry('node_announcement_template_class', 'XmlAnnouncementTemplateEngine');
 
-// CFG: NODE-DHT-BOOTSTRAP-TEMPLATE-CLASS
-$cfg->setConfigEntry('node_dht_bootstrap_template_class', 'XmlDhtBootstrapTemplateEngine');
-
 // CFG: NODE-ANNOUNCEMENT-ANSWER-TEMPLATE-CLASS
 $cfg->setConfigEntry('node_announcement_answer_template_class', 'XmlAnnouncementAnswerTemplateEngine');
 
 // 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');
 
@@ -282,6 +303,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');
 
@@ -291,9 +318,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');
 
@@ -328,13 +364,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('dht_publish_template_type', 'xml/dht_publish');
-
-// CFG: CODE-TEMPLATE-TYPE
-$cfg->setConfigEntry('code_template_type', 'xml');
+$cfg->setConfigEntry('node_dht_publish_template_type', 'xml/dht_publish');
 
 // CFG: RAW-TEMPLATE-EXTENSION (to speed-up things)
 $cfg->setConfigEntry('raw_template_extension', '.xml');
@@ -366,6 +399,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);
 
@@ -411,6 +450,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);
 
@@ -435,12 +477,12 @@ $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);
 
-// CFG: TASK-HANDLER-CLASS
-$cfg->setConfigEntry('task_handler_class', 'TaskHandler');
-
 // CFG: TASK-PACKAGE-TAGS-INIT-STARTUP-DELAY
 $cfg->setConfigEntry('task_package_tags_init_startup_delay', 50);
 
@@ -450,15 +492,6 @@ $cfg->setConfigEntry('task_package_tags_init_interval_delay', 1000*60*60*24*7);
 // CFG: TASK-PACKAGE-TAGS-INIT-MAX-RUNS
 $cfg->setConfigEntry('task_package_tags_init_max_runs', 1);
 
-// CFG: TASK-IDLE-LOOP-STARTUP-DELAY
-$cfg->setConfigEntry('task_idle_loop_startup_delay', 0);
-
-// CFG: TASK-IDLE-LOOP-INTERVAL-DELAY
-$cfg->setConfigEntry('task_idle_loop_interval_delay', 0);
-
-// CFG: TASK-IDLE-LOOP-MAX-RUNS
-$cfg->setConfigEntry('task_idle_loop_max_runs', 0);
-
 // CFG: TASK-SELF-CONNECT-STARTUP-DELAY
 $cfg->setConfigEntry('task_self_connect_startup_delay', 4000);
 
@@ -495,9 +528,6 @@ $cfg->setConfigEntry('task_ping_interval_delay', 1000*60*60);
 // CFG: TASK-PING-MAX-RUNS
 $cfg->setConfigEntry('task_ping_max_runs', 0);
 
-// CFG: IDLE-TASK-CLASS
-$cfg->setConfigEntry('idle_task_class', 'IdleLoopTask');
-
 // CFG: NODE-PACKAGE-TAGS-INIT-TASK-CLASS
 $cfg->setConfigEntry('node_package_tags_init_task_class', 'NodePackageTagsInitTask');
 
@@ -534,6 +564,9 @@ $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');
 
@@ -598,7 +631,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)
@@ -606,6 +639,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);
 
@@ -633,18 +675,12 @@ $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');
-
 // CFG: TASK-POOL-ITERATOR-CLASS
 $cfg->setConfigEntry('task_pool_iterator_class', 'TaskPoolIterator');
 
 // CFG: MONITOR-POOL-ITERATOR-CLASS
 $cfg->setConfigEntry('monitor_pool_iterator_class', 'MonitorPoolIterator');
 
-// CFG: DEFAULT-ITERATOR-CLASS
-$cfg->setConfigEntry('default_iterator_class', 'DefaultIterator');
-
 // CFG: QUERY-ITERATOR-CLASS
 $cfg->setConfigEntry('query_iterator_class', 'DefaultIterator');
 
@@ -669,6 +705,9 @@ $cfg->setConfigEntry('socket_registry_class', 'SocketRegistry');
 // CFG: SOCKET-CONTAINER-CLASS
 $cfg->setConfigEntry('socket_container_class', 'SocketContainer');
 
+// CFG: IPC-SOCKET-FILE-NAME
+$cfg->setConfigEntry('ipc_socket_file_name', 'php_hub_ipc_socket');
+
 // CFG: PACKAGE-RECIPIENT-DISCOVERY-CLASS
 $cfg->setConfigEntry('package_recipient_discovery_class', 'PackageRecipientDiscovery');
 
@@ -678,6 +717,15 @@ $cfg->setConfigEntry('socket_discovery_class', 'PackageSocketDiscovery');
 // CFG: DHT-RECIPIENT-DISCOVERY-CLASS
 $cfg->setConfigEntry('dht_recipient_discovery_class', 'DhtRecipientDiscovery');
 
+// CFG: UNL-DISCOVERY-CLASS
+$cfg->setConfigEntry('unl_discovery_class', 'UniversalNodeLocatorDiscovery');
+
+// CFG: TCP-PROTOCOL-HANDLER-CLASS
+$cfg->setConfigEntry('tcp_protocol_handler_class', 'TcpProtocolHandler');
+
+// CFG: UNIVERSAL-NODE-LOCATOR-CLASS
+$cfg->setConfigEntry('universal_node_locator_class', 'UniversalNodeLocator');
+
 // CFG: RECIPIENT-LIST-CLASS
 $cfg->setConfigEntry('recipient_list_class', 'RecipientList');
 
@@ -690,6 +738,12 @@ $cfg->setConfigEntry('tcp_connection_helper_class', 'TcpConnectionHelper');
 // CFG: UDP-CONNECTION-HELPER-CLASS
 $cfg->setConfigEntry('udp_connection_helper_class', 'UdpConnectionHelper');
 
+// CFG: HUB-COMMUNICATION-PROTOCOL-TYPE
+$cfg->setConfigEntry('hub_communication_protocol_type', 'tcp');
+
+// CFG: TCP-PROTOCOL-RESOLVER-CLASS
+$cfg->setConfigEntry('tcp_protocol_resolver_class', 'TcpProtocolResolver');
+
 // CFG: TCP-BUFFER-LENGTH
 $cfg->setConfigEntry('tcp_buffer_length', 1024);
 
@@ -724,14 +778,14 @@ $cfg->setConfigEntry('private_key', '');
 // CFG: PRIVATE-KEY-HASH
 $cfg->setConfigEntry('private_key_hash', '');
 
-// CFG: INTERNAL-IP
-$cfg->setConfigEntry('internal_ip', ConsoleTools::acquireSelfIPAddress());
+// CFG: EXTERNAL-ADDRESS
+$cfg->setConfigEntry('external_address', '');
 
-// CFG: EXTERNAL-IP
-$cfg->setConfigEntry('external_ip', '');
+// CFG: INTERNAL-ADDRESS
+$cfg->setConfigEntry('internal_address', '');
 
-// CFG: ALLOW-PUBLISH-INTERNAL-IP
-$cfg->setConfigEntry('allow_publish_internal_ip', 'N');
+// CFG: ALLOW-PUBLISH-INTERNAL-ADDRESS
+$cfg->setConfigEntry('allow_publish_internal_address', 'N');
 
 // CFG: NODE-STATUS
 $cfg->setConfigEntry('node_status', 'invalid');
@@ -751,9 +805,6 @@ $cfg->setConfigEntry('node_raw_data_output_stream_class', 'RawDataOutputStream')
 // CFG: NODE-RAW-DATA-INPUT-STREAM-CLASS
 $cfg->setConfigEntry('node_raw_data_input_stream_class', 'RawDataInputStream');
 
-// CFG: DEBUG-OUTPUT-TIMINGS
-$cfg->setConfigEntry('debug_output_timings', 'Y');
-
 // CFG: SOCKET-TIMEOUT-SECONDS
 $cfg->setConfigEntry('socket_timeout_seconds', 3);
 
@@ -776,6 +827,12 @@ $cfg->setConfigEntry('node_dht_class', 'NodeDhtFacade');
 // CFG: MAX-DHT-RECIPIENTS
 $cfg->setConfigEntry('max_dht_recipients', 10);
 
+// CFG: CONNECTION-INFO-CLASS
+$cfg->setConfigEntry('connection_info_class', 'ConnectionInfo');
+
+// CFG: DEFAULT-HUB-CONSOLE-CONTROLLER
+$cfg->setConfigEntry('default_hub_console_controller', 'main');
+
 ///////////////////////////////////////////////////////////////////////////////
 //                              Node states
 ///////////////////////////////////////////////////////////////////////////////
@@ -789,8 +846,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');
@@ -868,6 +925,112 @@ $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 'coin' at the moment)
+$cfg->setConfigEntry('miner_default_mode', 'coin');
+
+// CFG: MINER-BUFFER-STACKER-CLASS
+$cfg->setConfigEntry('miner_buffer_stacker_class', 'FiFoStacker');
+
+// CFG: HUB-CONSOLE-CMD-CRUNCHER-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_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', 1000);
+
+// CFG: TASK-MINER-TEST-GENESIS-BLOCK-PRODUCER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_miner_test_genesis_block_producer_interval_delay', 10000);
+
+// CFG: TASK-MINER-TEST-GENESIC-BLOCK-PRODUCER-MAX-RUNS
+$cfg->setConfigEntry('task_miner_test_genesis_block_producer_max_runs', 0);
+
+// CFG: MINER-REAL-GENESIS-BLOCK-PRODUCER-TASK-CLASS
+$cfg->setConfigEntry('miner_real_genesis_block_producer_task_class', 'MinerRealGenesisBlockProducerTask');
+
+// CFG: TASK-MINER-REAL-GENESIS-BLOCK-PRODUCER-STARTUP-DELAY
+$cfg->setConfigEntry('task_miner_real_genesis_block_producer_startup_delay', 500);
+
+// CFG: TASK-MINER-REAL-GENESIS-BLOCK-PRODUCER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_miner_real_genesis_block_producer_interval_delay', 10000);
+
+// CFG: TASK-MINER-REAL-GENESIC-BLOCK-PRODUCER-MAX-RUNS
+$cfg->setConfigEntry('task_miner_real_genesis_block_producer_max_runs', 0);
+
+// 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-REAL-GENESIS-BLOCK-PRODUCER-CLASS
+$cfg->setConfigEntry('miner_real_genesis_block_producer_class', 'MinerRealGenesisBlockProducer');
+
+// 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');
+
+// CFG: MINER-REAL-HASH-BLOCK-CLASS
+$cfg->setConfigEntry('miner_real_hash_block_class', 'HashBlock');
+
 ///////////////////////////////////////////////////////////////////////////////
 //                        Cruncher configuration
 ///////////////////////////////////////////////////////////////////////////////
@@ -878,8 +1041,8 @@ $cfg->setConfigEntry('cruncher_default_mode', 'mcrypt');
 // CFG: CRUNCHER-BUFFER-STACKER-CLASS
 $cfg->setConfigEntry('cruncher_buffer_stacker_class', 'FiFoStacker');
 
-// CFG: HUBCONSOLE-CMD-CRUNCHER-RESOLVER-CLASS
-$cfg->setConfigEntry('hubconsole_cmd_cruncher_resolver_class', 'HubConsoleCommandResolver');
+// CFG: HUB-CONSOLE-CMD-CRUNCHER-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_cruncher_resolver_class', 'HubConsoleCommandResolver');
 
 // CFG: CRUNCHER-PHP-REQUIREMENTS-FILTER
 $cfg->setConfigEntry('cruncher_php_requirements_filter', 'CruncherPhpRequirementsFilter');
@@ -908,12 +1071,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);
 
@@ -923,6 +1080,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);
 
@@ -932,6 +1092,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);
 
@@ -996,7 +1159,7 @@ $cfg->setConfigEntry('test_unit_producer_key_iterator_class', 'TestUnitKeyProduc
 $cfg->setConfigEntry('work_unit_producer_key_iterator_class', 'WorkUnitKeyProducerIterator');
 
 // CFG: TEST-UNIT-RANDOM-SECRET-KEY-LENGTH
-$cfg->setConfigEntry('test_unit_random_secret_key_length', 8*4);
+$cfg->setConfigEntry('test_unit_random_secret_key_length', 8 * 32);
 
 // CFG: TEST-UNIT-SOURCE-CLASS
 $cfg->setConfigEntry('test_unit_source_class', 'TestUnitSource');
@@ -1017,8 +1180,8 @@ $cfg->setConfigEntry('cruncher_per_unit_key_limit', 1000);
 //                            Chat Configuration
 ///////////////////////////////////////////////////////////////////////////////
 
-// CFG: HUBCONSOLE-CMD-CHAT-RESOLVER-CLASS
-$cfg->setConfigEntry('hubconsole_cmd_chat_resolver_class', 'HubConsoleCommandResolver');
+// CFG: HUB-CONSOLE-CMD-CHAT-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_chat_resolver_class', 'HubConsoleCommandResolver');
 
 // CFG: CHAT-PHP-REQUIREMENTS-FILTER
 $cfg->setConfigEntry('chat_php_requirements_filter', 'ChatPhpRequirementsFilter');
@@ -1057,24 +1220,288 @@ $cfg->setConfigEntry('task_chat_telnet_listener_interval_delay', 10);
 $cfg->setConfigEntry('task_chat_telnet_listener_max_runs', 0);
 
 ///////////////////////////////////////////////////////////////////////////////
-//                            HTTP Configuration
+//                            Crawler Configuration
 ///////////////////////////////////////////////////////////////////////////////
 
-// CFG: DEFAULT-WEB-COMMAND
-$cfg->setConfigEntry('default_web_command', 'home');
+// 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: WEB-CMD-HOME-RESOLVER-CLASS
-$cfg->setConfigEntry('web_cmd_home_resolver_class', 'WebCommandResolver');
+// CFG: HUB-CONSOLE-CMD-CHAT-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_crawler_resolver_class', 'HubConsoleCommandResolver');
 
-// CFG: NEWS-HOME-LIMIT
-$cfg->setConfigEntry('news_home_limit', 10);
+// 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-URL-STACKS
+$cfg->setConfigEntry('crawler_url_stacks', 'local_start:uploaded_list:rss_start:found_rss');
+
+// 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: CRAWLER-URL-UPLOADED-LIST-URL-SOURCE-STACK-CLASS
+$cfg->setConfigEntry('crawler_uploaded_list_url_source_stack_class', 'FiFoStacker');
+
+// CFG: STACKER-CSV-FILE-MAX-SIZE
+$cfg->setConfigEntry('stacker_csv_file_max_size', 10);
+
+// CFG: STACKER-CSV-ENTRY-MAX-SIZE
+$cfg->setConfigEntry('stacker_csv_entry_max_size', 100);
+
+// 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-CRAWLER-TASK-CLASS
+$cfg->setConfigEntry('crawler_local_url_crawler_task_class', 'CrawlerLocalUrlCrawlerTask');
+
+// CFG: TASK-CRAWLER-LOCAL-URL-CRAWLER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_local_url_crawler_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-LOCAL-URL-CRAWLER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_local_url_crawler_interval_delay', 200);
+
+// CFG: TASK-CRAWLER-LOCAL-URL-CRAWLER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_local_url_crawler_max_runs', 0);
+
+// CFG: CRAWLER-REMOTE-URL-CRAWLER-TASK-CLASS
+$cfg->setConfigEntry('crawler_remote_url_crawler_task_class', 'CrawlerRemoteUrlCrawlerTask');
+
+// CFG: TASK-CRAWLER-REMOTE-URL-CRAWLER-STARTUP-DELAY
+$cfg->setConfigEntry('task_crawler_remote_url_crawler_startup_delay', 1500);
+
+// CFG: TASK-CRAWLER-REMOTE-URL-CRAWLER-INTERVAL-DELAY
+$cfg->setConfigEntry('task_crawler_remote_url_crawler_interval_delay', 200);
+
+// CFG: TASK-CRAWLER-REMOTE-URL-CRAWLER-MAX-RUNS
+$cfg->setConfigEntry('task_crawler_remote_url_crawler_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);
+
+// CFG: CRAWLER-CSV-FILE-PATH
+$cfg->setConfigEntry('crawler_csv_file_path', 'data/url_lists');
+
+// CFG: CRAWLER-URL-LIST-COLUMN-SEPARATOR
+$cfg->setConfigEntry('crawler_url_list_column_separator', ',');
 
 ///////////////////////////////////////////////////////////////////////////////
 //                         Apt-Proxy Configuration
 ///////////////////////////////////////////////////////////////////////////////
 
-// CFG: HUBCONSOLE-CMD-APT-PROXY-RESOLVER-CLASS
-$cfg->setConfigEntry('hubconsole_cmd_apt_proxy_resolver_class', 'HubConsoleCommandResolver');
+// CFG: HUB-CONSOLE-CMD-APT-PROXY-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_apt_proxy_resolver_class', 'HubConsoleCommandResolver');
 
 // CFG: APT-PROXY-PHP-REQUIREMENTS-FILTER
 $cfg->setConfigEntry('apt_proxy_php_requirements_filter', 'AptProxyPhpRequirementsFilter');
@@ -1112,5 +1539,49 @@ $cfg->setConfigEntry('task_apt_proxy_listener_interval_delay', 10);
 // CFG: TASK-APT-PROXY-LISTENER-MAX-RUNS
 $cfg->setConfigEntry('task_apt_proxy_listener_max_runs', 0);
 
+///////////////////////////////////////////////////////////////////////////////
+//                              HTML interface                               //
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: DEFAULT-HUB-HTML-COMMAND
+$cfg->setConfigEntry('default_hub_html_command', 'index');
+
+// CFG: DEFAULT-HTML-CONTROLLER
+$cfg->setConfigEntry('default_html_controller', 'index');
+
+// CFG: HTML-CMD-INDEX-RESOLVER-CLASS
+$cfg->setConfigEntry('html_cmd_index_resolver_class', 'HubHtmlCommandResolver');
+
+// CFG: NEWS-READER-INDEX-CLASS
+$cfg->setConfigEntry('news_reader_index_class', 'DefaultNewsReader');
+
+// CFG: NEWS-INDEX-LIMIT
+$cfg->setConfigEntry('news_index_limit', 10);
+
+// CFG: HUB-INDEX-MENU-CLASS
+$cfg->setConfigEntry('hub_index_menu_class', 'HubIndexMenu');
+
+// CFG: HTML-FORM-HELPER
+$cfg->setConfigEntry('html_form_helper_class', 'HtmlFormHelper');
+
+// CFG: FORM-ACTION
+$cfg->setConfigEntry('form_action', 'index.php?app={?app_short_name?}&amp;command=do_form');
+
+// CFG: FORM-METHOD
+$cfg->setConfigEntry('form_method', 'post');
+
+// CFG: FORM-TARGET
+$cfg->setConfigEntry('form_target', '_self');
+
+///////////////////////////////////////////////////////////////////////////////
+//                           Virtual file system with FUSE                   //
+///////////////////////////////////////////////////////////////////////////////
+
+// CFG: HUB-CONSOLE-CMD-FUSE-RESOLVER-CLASS
+$cfg->setConfigEntry('hub_console_cmd_fuse_resolver_class', 'ConsoleCommandResolver');
+
+// CFG: ENABLE-FEATURE-FUSE
+$cfg->setConfigEntry('enable_feature_fuse', 'N');
+
 // [EOF]
 ?>