harnen / p2p-service-discovery

0 stars 4 forks source link

Exception class peersim.kademlia.KademliaProtocol cannot be cast to class peersim.kademlia.Discv5TicketProtocol #21

Open vgiotsas opened 1 year ago

vgiotsas commented 1 year ago

I'm trying to run the simulator in Ubuntu 20.04.4 LTS with openjdk 11.0.16 2022-07-19 and Apache Maven 3.8.6

After building the project, I try the simple configuration but it fails with Exception class peersim.kademlia.KademliaProtocol cannot be cast to class peersim.kademlia.Discv5TicketProtocol, as shown below:

~/p2p-service-discovery/service-discovery$ ./run.sh config/simple.cfg
Simulator: loading configuration[config/simple.cfg]
ConfigProperties: File config/simple.cfg loaded.
Simulator: starting experiment 0 invoking peersim.edsim.EDSimulator
Random seed: 24680

EDSimulator: resetting
Network: no node defined, using GeneralNode
EDSimulator: running initializers
- Running initializer init.0randlink: class peersim.dynamics.WireKOut
- Running initializer init.1uniqueNodeID: class peersim.kademlia.CustomDistribution
Number of evil nodes: 0
- Running initializer init.2statebuilder: class peersim.kademlia.StateBuilder
Your network is connected
EDSimulator: loaded controls [control.0traffic, control.3]
Current time: 0
>>>[0] Scheduling new MSG_FIND for 10717763636914155469065922751479727223701886312364885828919042073818382907566
[0][18846118587363206395613321081613196001206087083626065680429122807893687626285] InitFind from 18846118587363206395613321081613196001206087083626065680429122807893687626285 to 10717763636914155469065922751479727223701886312364885828919042073818382907566 at 0
Exception in thread "main" java.lang.ClassCastException: class peersim.kademlia.KademliaProtocol cannot be cast to class peersim.kademlia.Discv5TicketProtocol (peersim.kademlia.KademliaProtocol and peersim.kademlia.Discv5TicketProtocol are in unnamed module of loader 'app')
    at peersim.kademlia.KademliaObserver.write_average_storage_utilisation_per_topic(KademliaObserver.java:848)
    at peersim.kademlia.KademliaObserver.execute(KademliaObserver.java:1033)
    at peersim.edsim.ControlEvent.execute(ControlEvent.java:81)
    at peersim.edsim.EDSimulator.executeNext(EDSimulator.java:294)
    at peersim.edsim.EDSimulator.nextExperiment(EDSimulator.java:367)
    at peersim.Simulator.main(Simulator.java:194)
oascigil commented 1 year ago

We have a newer version of this code in the repo here. Please try that one.