ssbc / ssb-ebt

secure scuttlebutt replication with epidemic-broadcast-trees
MIT License
18 stars 10 forks source link

Protocol documentation / specification missing (?) #32

Closed bl0x closed 4 years ago

bl0x commented 4 years ago

When trying to implement this in C, I'm pretty much lost because the documentation for the actual protocol or the specification seems to be missing (or does it exist in some other place?)

Neither the Scuttlebutt Guide nor the specification mention EBT, because it is too new, I suppose.

I've read up on the plumtree paper, but since this is very generic, a description that is focused on the actual implementation would be of great help.

It would be helpful to see some of the messages that are usually exchanged between peers to get started without having to go through the code and dig them out.

One solution might be to supply message traffic logs together with each/some of the test cases.

EDIT: Also not sure, if this is the correct repository to ask for this, or if it should be this one https://github.com/dominictarr/epidemic-broadcast-trees

dominictarr commented 4 years ago

I'm sorry. The best we have right now is: https://github.com/dominictarr/scalable-secure-scuttlebutt that's not really a spec either, but does intend to explain the design. It's intended to be a paper, but got stuck on the back burner.

However, I did implement this intending for reimplementations to be as simple as possible. The core is the events.js file. these methods always take the state (a datastructure representing current replication state of a peer) and an event. My idea is that it would be easy to generate test vectors for this, so it's easy to compare that your implementation and my implementation do exactly the same thing. If you are interested in implementing this that will be good motivation for me, and I'm keen to help by answering your questions, and improving documentation etc.

dominictarr commented 4 years ago

oh yeah, https://github.com/dominictarr/epidemic-broadcast-trees is the actual algorithm. ssb-ebt just wraps that into a secure-scuttlebutt context.

bl0x commented 4 years ago

Thanks for the links! I'll have a look into that and explore the protocol a bit by talking to ssb-server.

dominictarr commented 4 years ago

please don't hesitate to ask any questions if you have them!

stale[bot] commented 4 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?