Ideas for networking intelmq instances
Some ideas from @otmarlendl
What happens when we create a bigger network of intelmq instances? We might have loops.
Proposed solutions:
- add UUID field to eventdb. Only add events to a local instance if the UUID does not exist yet.
- add some kind of UUCP (she-bang) path . Example:
!cert.at!bsi!nic.cz. This allows loop detection.
@otmarlendl thinks, both approaches should be taken in parallel.
regarding the use of UUID's https://github.com/certtools/intelmq/issues/543#issuecomment-233561823
Talking about UUID's I would recommend something similar to https://discord.com/developers/docs/reference#snowflakes. Its built for concurrency and work pretty neat.
According to the discord documentation its built like
| Timestamp | Internal worker ID | Internal process ID | Increment | |
|---|---|---|---|---|
| Binary | 111111111111111111111111111111111111111111 | 11111 | 11111 | 111111111111 |
| From - To Bits | 63 - 22 | 21 - 17 | 16 - 12 | 11 - 0 |
If we're exchanging data over network, it might break this system due to duplicates. Possible solution is to define a "transfer" protocol, which isnt built upon this id.
For UUIDs, maybe CyCat can be useful: https://cycat.org/ https://github.com/CyCat-project
Will be solved as part of IEP04