3

When a message has been signed off, it is propagated to the entire network. I would like to know how long does it take "on average"?

There are two types of messages, private messages and broadcast messages. Private messages are encrypted with receiver's public key. Broadcast messages are encrypted with sender's public key. Having said that, there are few reasons for message propagation delay in the network, following are my assumptions.

  1. In the private key's case: once the message is signed off and broadcasted, every node tries to decrypt the content with his own public key, but fails. Do nodes forwards the message only after trying to decrypt or promptly after receiving it? Because this definitely causes message propagation delay.

  2. Is it the same for the broadcasted messages, i.e. do nodes forward the message only after failing to decrypt it or promptly after receiving it?

  3. Does the message size matter for decryption and propagation?

  4. Network latency delay is regardless of the message size.

  5. The diameter of the network is out of the question as well.

Does anyone keeping track of Bitmessage statistics similar to the Bitcoin's? I tried to access http://bitmessage.adammelton.com/ but fail to do so, does it work for you?

P.S. Sorry this question might look a little bit irrelevant in the bitcoin's stackexchange, however we consider that Bitmessage is a Bitcoin without a blockchain and the most of techniques were inherited from the Bitcoin. In addition I believe that many developers follow both Bitcoin and Bitmessage. Therefore dear all, please do not remove this question :) Many thanks.

1 Answer 1

4

Curently, with around 5000 nodes, a message shouldn't take longer than about 15 seconds to propagate. Typically, it's faster.

  1. Messages are forwarded if the Proof of Work is sufficient. There is no signature verification on forwarding, since only the recipient of the message can verify that. Nowadays, PyBitmessage runs the decryption attempts in a separate thread, therefore forwarding and decryption run in parallel.

  2. Some versions have different delays in forwarding depending on what type of object it is, some do not have delays. But this has nothing to do with decryption attempts, it is an attempt to mitigate timing attacks.

  3. For propagation size does matter, because it takes longer to transfer, however I don't think the difference is that big, in particular if you're on a fast connection. For decryption, the data itself is encrypted with AES-256-CBC, and that's pretty fast, on my laptop I get like 100MB/s, so you shouldn't see a big difference.

  4. Latency does influence the speed a bit, but some network operations are asynchronous, at least in PyBitmessage, so from practical point of view it's not a big deal.

  5. I don't understand this. It takes a bit longer if there are more nodes in the network, but on the other hand if they are well connected, it's faster. PyBitmessage will by default attempt to maintain 8 outbound connections, and refuse incoming if it has more than 220 total connections.

Recently a new stats website was launched: https://beamstat.com/, which works nicely, just the node count is incomplete.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.