A method of operating a first peer configured to supervise a transaction between the first peer and a second peer in a structured distributed hash table based peer-to-peer overlay network comprising a plurality N of peers, said method comprising the steps of: determining an average message round-trip time, RTT AVG between the first peer and each of its neighbor peers in the overlay network from the equation RTT AVG = ∑ i = 1 K RTT EST i K where K is the number of neighbor peers and RTT ESTi is the estimated message round-trip time between the first peer and the ith neighbor peer; - determining a value T R for a retransmission timer from the equation T R = 1⁄2 × log 2 N × RTT AVG; - determining a value T T for a transaction timer that is greater than the value T R; - transmitting a message from the first peer towards the second peer where the message requires a response; - starting the transaction timer with the value T T; - starting the retransmission timer with the value T R; - if a response from the second peer is not received within the time = T R from transmitting the message, repeating the steps of transmitting the message and starting the retransmission timer if the transaction timer is still running; - if the response from the second peer is not received within the time = T T from transmitting the first message, terminating the transaction. determining an average message round-trip time, RTT AVG between the first peer and each of its neighbor peers in the overlay network from the equation RTT AVG = ∑ i = 1 K RTT EST i K where K is the number of neighbor peers and RTT ESTi is the estimated message round-trip time between the first peer and the ith neighbor peer; - determining a value T R for a retransmission timer from the equation T R = 1⁄2 × log 2 N × RTT AVG; - determining a value T T for a transaction timer that is greater than the value T R; - transmitting a message from the first peer towards the second peer where the message requires a response; - starting the transaction timer with the value T T; - starting the retransmission timer with the value T R; - if a response from the second peer is not received within the time = T R from transmitting the message, repeating the steps of transmitting the message and starting the retransmission timer if the transaction timer is still running; - if the response from the second peer is not received within the time = T T from transmitting the first message, terminating the transaction. - determining a value T R for a retransmission timer from the equation T R = 1⁄2 × log 2 N × RTT AVG; - determining a value T T for a transaction timer that is greater than the value T R; - transmitting a message from the first peer towards the second peer where the message requires a response; - starting the transaction timer with the value T T; - starting the retransmission timer with the value T R; - if a response from the second peer is not received within the time = T R from transmitting the message, repeating the steps of transmitting the message and starting the retransmission timer if the transaction timer is still running; - if the response from the second peer is not received within the time = T T from transmitting the first message, terminating the transaction.