All Downloads are FREE. Search and download functionalities are using the official Maven repository.

conf.sim_pastry_+pmh.cfg Maven / Gradle / Ivy

Go to download

HyCube Simulator is a container running multiple HyCube node instances, providing an interface for performing operations on individual nodes.

There is a newer version: 1.0.5
Show newest version

configuration = node.main

	node.main.MessageTTL = 32


	node.main.RoutingTable = PastryRoutingTable
	
		node.main.RoutingTable[PastryRoutingTable].Class = net.hycube.pastry.core.PastryHyCubeRoutingTableImpl
		node.main.RoutingTable[PastryRoutingTable].Dimensions = @node.extensions.Pastry.Dimensions
		node.main.RoutingTable[PastryRoutingTable].Levels = @node.extensions.Pastry.Levels
		node.main.RoutingTable[PastryRoutingTable].LSSize = @node.extensions.Pastry.LSSize
		node.main.RoutingTable[PastryRoutingTable].RoutingTableSlotSize = @node.extensions.Pastry.RoutingTableSlotSize
		node.main.RoutingTable[PastryRoutingTable].UseSecureRouting = @node.extensions.Pastry.UseSecureRouting
	
	
	node.main.NextHopSelectors = PastryNextHopSelector
	
		node.main.NextHopSelectors[PastryNextHopSelector].Class = net.hycube.pastry.nexthopselection.PastryNextHopSelector
		node.main.NextHopSelectors[PastryNextHopSelector].Dimensions = @node.extensions.Pastry.Dimensions
		node.main.NextHopSelectors[PastryNextHopSelector].Levels = @node.extensions.Pastry.Levels
		node.main.NextHopSelectors[PastryNextHopSelector].UseRT = @node.extensions.Pastry.UseRT
		node.main.NextHopSelectors[PastryNextHopSelector].UseLS = @node.extensions.Pastry.UseLS
		node.main.NextHopSelectors[PastryNextHopSelector].PrefixMismatchHeuristicEnabled = @node.extensions.Pastry.PrefixMismatchHeuristicEnabled
		node.main.NextHopSelectors[PastryNextHopSelector].PrefixMismatchHeuristicMode = @node.extensions.Pastry.PrefixMismatchHeuristicMode
		node.main.NextHopSelectors[PastryNextHopSelector].PrefixMismatchHeuristicFactor = @node.extensions.Pastry.PrefixMismatchHeuristicFactor
		node.main.NextHopSelectors[PastryNextHopSelector].PrefixMismatchHeuristicWhenNoNextHop = @node.extensions.Pastry.PrefixMismatchHeuristicWhenNoNextHop
		node.main.NextHopSelectors[PastryNextHopSelector].UseLSInFullScanWithoutPMH = @node.extensions.Pastry.UseLSInFullScanWithoutPMH
		node.main.NextHopSelectors[PastryNextHopSelector].UseRTInFullScanWithoutPMH = @node.extensions.Pastry.UseRTInFullScanWithoutPMH
		node.main.NextHopSelectors[PastryNextHopSelector].UseLSInFullScanWithPMH = @node.extensions.Pastry.UseLSInFullScanWithPMH
		node.main.NextHopSelectors[PastryNextHopSelector].UseRTInFullScanWithPMH = @node.extensions.Pastry.UseRTInFullScanWithPMH
		node.main.NextHopSelectors[PastryNextHopSelector].UseSecureRouting = @node.extensions.Pastry.UseSecureRouting
		node.main.NextHopSelectors[PastryNextHopSelector].SkipRandomNumberOfNodesEnabled = true
		node.main.NextHopSelectors[PastryNextHopSelector].SkipRandomNumberOfNodesMean = 0
		node.main.NextHopSelectors[PastryNextHopSelector].SkipRandomNumberOfNodesStdDev = 1
		node.main.NextHopSelectors[PastryNextHopSelector].SkipRandomNumberOfNodesAbsolute = true
		node.main.NextHopSelectors[PastryNextHopSelector].SkipNodesNumMax = 3
		node.main.NextHopSelectors[PastryNextHopSelector].SkipNodesNumWhenRandomExceedsMax = 1
		node.main.NextHopSelectors[PastryNextHopSelector].ForceSkipNodes = false
		node.main.NextHopSelectors[PastryNextHopSelector].SkipNodesIncludeExcactMatch = false
	
	
	
	node.main.RoutingManager = PastryRoutingManager
	node.main.RoutingManager[PastryRoutingManager].Class = net.hycube.pastry.routing.PastryRoutingManager
	node.main.RoutingManager[PastryRoutingManager].NextHopSelectorKey = PastryNextHopSelector
	node.main.RoutingManager[PastryRoutingManager].UseSteinhausTransform = false
	node.main.RoutingManager[PastryRoutingManager].AllowRegisteredRoutes = @node.main.RoutingManager[HyCubeRoutingManager].AllowRegisteredRoutes
	node.main.RoutingManager[PastryRoutingManager].RegisteredRoutesRetentionTime = @node.main.RoutingManager[HyCubeRoutingManager].RegisteredRoutesRetentionTime
	node.main.RoutingManager[PastryRoutingManager].AllowAnonymousRoutes = @node.main.RoutingManager[HyCubeRoutingManager].AllowAnonymousRoutes
	node.main.RoutingManager[PastryRoutingManager].ConcealTTL = @node.main.RoutingManager[HyCubeRoutingManager].ConcealTTL
	node.main.RoutingManager[PastryRoutingManager].DecreaseTTLProbability = @node.main.RoutingManager[HyCubeRoutingManager].DecreaseTTLProbability
	node.main.RoutingManager[PastryRoutingManager].IncreaseTTLByRandomNum = @node.main.RoutingManager[HyCubeRoutingManager].IncreaseTTLByRandomNum
	node.main.RoutingManager[PastryRoutingManager].IncreaseTTLRandomMean = @node.main.RoutingManager[HyCubeRoutingManager].IncreaseTTLRandomMean
	node.main.RoutingManager[PastryRoutingManager].IncreaseTTLRandomStdDev = @node.main.RoutingManager[HyCubeRoutingManager].IncreaseTTLRandomStdDev
	node.main.RoutingManager[PastryRoutingManager].IncreaseTTLRandomAbsolute = @node.main.RoutingManager[HyCubeRoutingManager].IncreaseTTLRandomAbsolute
	node.main.RoutingManager[PastryRoutingManager].IncreaseTTLRandomModulo = @node.main.RoutingManager[HyCubeRoutingManager].IncreaseTTLRandomModulo
	node.main.RoutingManager[PastryRoutingManager].ConcealHopCount = @node.main.RoutingManager[HyCubeRoutingManager].ConcealHopCount
	node.main.RoutingManager[PastryRoutingManager].EnsureSteinhausPointAnonymity = false
	
	
		
	node.main.JoinManager = PastrySearchJoinManager
	#node.main.JoinManager = PastryRouteJoinManager
	
		node.main.JoinManager[PastrySearchJoinManager].Class = net.hycube.pastry.join.searchjoin.PastrySearchJoinManager
		node.main.JoinManager[PastrySearchJoinManager].NextHopSelectorKey = PastryNextHopSelector
		node.main.JoinManager[PastrySearchJoinManager].JoinCallbackEventKey = JoinCallback
		node.main.JoinManager[PastrySearchJoinManager].JoinRequestTimeoutEventKey = JoinRequestTimeout
		node.main.JoinManager[PastrySearchJoinManager].JoinK = 16
		node.main.JoinManager[PastrySearchJoinManager].JoinAlpha = 8
		node.main.JoinManager[PastrySearchJoinManager].JoinBeta = 16
		node.main.JoinManager[PastrySearchJoinManager].JoinGamma = 16
		node.main.JoinManager[PastrySearchJoinManager].JoinRequestTimeout = 1000
		#node.main.JoinManager[PastrySearchJoinManager].SendClosestInInitialJoinReply = true
		node.main.JoinManager[PastrySearchJoinManager].SendClosestInInitialJoinReply = false
		node.main.JoinManager[PastrySearchJoinManager].IncludeLSInInitialJoinReply = true
		node.main.JoinManager[PastrySearchJoinManager].IncludeRTInInitialJoinReply = true
		node.main.JoinManager[PastrySearchJoinManager].IncludeSelfInInitialJoinReply = true
		node.main.JoinManager[PastrySearchJoinManager].MarkInitialJoinReplySenderAsResponded = true
		node.main.JoinManager[PastrySearchJoinManager].RecoveryLSAfterJoin = true
		node.main.JoinManager[PastrySearchJoinManager].RecoveryAfterJoin = false
		node.main.JoinManager[PastrySearchJoinManager].RecoveryExtensionKey = RecoveryExtension
		node.main.JoinManager[PastrySearchJoinManager].DiscoverPublicNetworkAddress = true
		
		node.main.JoinManager[PastryRouteJoinManager].Class = net.hycube.pastry.join.routejoin.PastryRouteJoinManager
		node.main.JoinManager[PastryRouteJoinManager].NextHopSelectorKey = PastryNextHopSelector
		node.main.JoinManager[PastryRouteJoinManager].PrefixMismatchHeuristicDisabledForJoinMessages = @node.extensions.Pastry.PrefixMismatchHeuristicDisabledForJoinMessages
		node.main.JoinManager[PastryRouteJoinManager].JoinCallbackEventKey = JoinCallback
		node.main.JoinManager[PastryRouteJoinManager].JoinTimeoutEventKey = JoinTimeout
		node.main.JoinManager[PastryRouteJoinManager].WaitAfterFinalJoinReplyTimeoutEventKey = WaitAfterFinalJoinReplyTimeout
		node.main.JoinManager[PastryRouteJoinManager].JoinTimeout = 3000
		node.main.JoinManager[PastryRouteJoinManager].WaitTimeAfterFinalJoinReply = 500
		node.main.JoinManager[PastryRouteJoinManager].IncludeLSInJoinReply = true
		node.main.JoinManager[PastryRouteJoinManager].IncludeRTInJoinReply = true
		node.main.JoinManager[PastryRouteJoinManager].IncludeSelfInJoinReply = true
		node.main.JoinManager[PastryRouteJoinManager].IncludeLSInJoinReplyFinal = true
		node.main.JoinManager[PastryRouteJoinManager].IncludeRTInJoinReplyFinal = true
		node.main.JoinManager[PastryRouteJoinManager].IncludeSelfInJoinReplyFinal = true
		node.main.JoinManager[PastryRouteJoinManager].RecoveryLSAfterJoin = true
		node.main.JoinManager[PastryRouteJoinManager].RecoveryAfterJoin = false
		node.main.JoinManager[PastryRouteJoinManager].RecoveryExtensionKey = RecoveryExtension
		node.main.JoinManager[PastryRouteJoinManager].DiscoverPublicNetworkAddress = true
	
	
	
	
	node.main.JoinManager[HyCubeSearchJoinManager].NextHopSelectorKey = PastryNextHopSelector
	node.main.JoinManager[HyCubeRouteJoinManager].NextHopSelectorKey = PastryNextHopSelector
	
	
	
	
	node.main.NotifyProcessor = PastryNotifyProcessor
	
		node.main.NotifyProcessor[PastryNotifyProcessor].Class = net.hycube.pastry.maintenance.PastryNotifyProcessor
		node.main.NotifyProcessor[PastryNotifyProcessor].Dimensions = @node.extensions.Pastry.Dimensions
		node.main.NotifyProcessor[PastryNotifyProcessor].Levels = @node.extensions.Pastry.Levels
		node.main.NotifyProcessor[PastryNotifyProcessor].LSSize = @node.extensions.Pastry.LSSize
		node.main.NotifyProcessor[PastryNotifyProcessor].RoutingTableSlotSize = @node.extensions.Pastry.RoutingTableSlotSize
		node.main.NotifyProcessor[PastryNotifyProcessor].UseRT = @node.extensions.Pastry.UseRT
		node.main.NotifyProcessor[PastryNotifyProcessor].UseLS = @node.extensions.Pastry.UseLS
		node.main.NotifyProcessor[PastryNotifyProcessor].UseSecureRouting = @node.extensions.Pastry.UseSecureRouting
		node.main.NotifyProcessor[PastryNotifyProcessor].UpdateNetworkAddressWhenDifferent = @node.extensions.Pastry.UpdateRTENetworkAddressWhenDifferentOnNotify
		node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector = HyCubeSimpleRTNodeSelector
		#node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector = HyCubeLnsRTNodeSelector					 
		#node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector = HyCubePnsRTNodeSelector
		#node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector = HyCubeSecureRTNodeSelector
		node.main.NotifyProcessor[PastryNotifyProcessor].LSNodeSelector = HyCubeBalancedRingNSNodeSelector
		#node.main.NotifyProcessor[PastryNotifyProcessor].LSNodeSelector = HyCubeDistanceNSNodeSelector
		node.main.NotifyProcessor[PastryNotifyProcessor].SecureRTNodeSelector = HyCubeSecureRTNodeSelector
			node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector[HyCubeLnsRTNodeSelector] = @node.rtnodeselection.RTNodeSelector[HyCubeLnsRTNodeSelector]
			node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector[HyCubeSimpleRTNodeSelector] = @node.rtnodeselection.RTNodeSelector[HyCubeSimpleRTNodeSelector]
			node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector[HyCubePnsRTNodeSelector] = @node.rtnodeselection.RTNodeSelector[HyCubePnsRTNodeSelector]
			node.main.NotifyProcessor[PastryNotifyProcessor].RTNodeSelector[HyCubeSecureRTNodeSelector] = @node.rtnodeselection.RTNodeSelector[HyCubeSecureRTNodeSelector]
			node.main.NotifyProcessor[PastryNotifyProcessor].LSNodeSelector[HyCubeBalancedRingNSNodeSelector] = @node.rtnodeselection.NSNodeSelector[HyCubeBalancedRingNSNodeSelector]
			node.main.NotifyProcessor[PastryNotifyProcessor].LSNodeSelector[HyCubeDistanceNSNodeSelector] = @node.rtnodeselection.NSNodeSelector[HyCubeDistanceNSNodeSelector]
	
	
		
	#for search join:
	node.main.ReceivedMessageProcessors[HyCubeReceivedMessageProcessor].ReceivedMessageProcessors = HyCubeReceivedMessageProcessorData, HyCubeReceivedMessageProcessorAck, HyCubeReceivedMessageProcessorPing, HyCubeReceivedMessageProcessorSearchJoin, HyCubeReceivedMessageProcessorRecovery, HyCubeReceivedMessageProcessorNotify, HyCubeReceivedMessageProcessorLeave, StatReceivedMessageProcessor
		
	#for route join:
	#node.main.ReceivedMessageProcessors[HyCubeReceivedMessageProcessor].ReceivedMessageProcessors = HyCubeReceivedMessageProcessorData, HyCubeReceivedMessageProcessorAck, HyCubeReceivedMessageProcessorPing, HyCubeReceivedMessageProcessorRouteJoin, HyCubeReceivedMessageProcessorRecovery, HyCubeReceivedMessageProcessorNotify, HyCubeReceivedMessageProcessorLeave, StatReceivedMessageProcessor
		
		
	node.main.MessageSendProcessors = HyCubeMessageSendProcessor
		node.main.MessageSendProcessors[HyCubeMessageSendProcessor].Class = net.hycube.messaging.processing.HyCubeMessageSendProcessor
		node.main.MessageSendProcessors[HyCubeMessageSendProcessor].MessageTypes = DATA, PING
		node.main.MessageSendProcessors[HyCubeMessageSendProcessor].MessageSendProcessors = HyCubeMessageSendProcessorData, HyCubeMessageSendProcessorPing, StatMessageSendProcessor
		
	
	
	node.main.Extensions = HyCubeExtension, PastryExtension, AckExtension, KeepAliveExtension, PnsExtension, RecoveryExtension, MessageStatExtension, NodeClearMemoryExtension
	
		node.main.Extensions[PastryExtension] = @node.extensions.Pastry
	
		node.extensions.Pastry.Class = net.hycube.extensions.PastryExtension
		node.extensions.Pastry.Dimensions = 4
		node.extensions.Pastry.Levels = 32
		node.extensions.Pastry.LSSize = 16
		node.extensions.Pastry.RoutingTableSlotSize = 1
		node.extensions.Pastry.UseRT = true
		node.extensions.Pastry.UseLS = true
		node.extensions.Pastry.PrefixMismatchHeuristicEnabled = true
		node.extensions.Pastry.PrefixMismatchHeuristicMode = AVG
		node.extensions.Pastry.PrefixMismatchHeuristicFactor = 1.5
		node.extensions.Pastry.PrefixMismatchHeuristicDisabledForJoinMessages = true
		node.extensions.Pastry.PrefixMismatchHeuristicWhenNoNextHop = true
		node.extensions.Pastry.UseLSInFullScanWithoutPMH = true
		node.extensions.Pastry.UseRTInFullScanWithoutPMH = true
		node.extensions.Pastry.UseLSInFullScanWithPMH = true
		node.extensions.Pastry.UseRTInFullScanWithPMH = true
		node.extensions.Pastry.UseSecureRouting = false
		node.extensions.Pastry.UpdateRTENetworkAddressWhenDifferentOnNotify = true
			
	
	node.main.BackgroundProcesses = HyCubeAwaitingAcksBackgroundProcess, HyCubePingBackgroundProcess, HyCubeAwaitingPongsBackgroundProcess
	
		node.main.BackgroundProcesses[HyCubeAwaitingAcksBackgroundProcess].ScheduleImmediately = false
	
		node.main.BackgroundProcesses[HyCubePingBackgroundProcess].ScheduleImmediately = false
	
		node.main.BackgroundProcesses[HyCubeAwaitingPongsBackgroundProcess].ScheduleImmediately = false
	





© 2015 - 2025 Weber Informatics LLC | Privacy Policy