Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation used to evaluate Omniledger? #2178

Closed
devos50 opened this issue Jan 11, 2020 · 3 comments
Closed

Implementation used to evaluate Omniledger? #2178

devos50 opened this issue Jan 11, 2020 · 3 comments

Comments

@devos50
Copy link

devos50 commented Jan 11, 2020

We can across the Omniledger paper and would like to reproduce the experimental results. To do so, we would like to use the original implementation as used in the paper. However, I'm unable to find the Omniledger implementation with sharding.

I noticed that there is a PR that adds support for Omniledger sharding, but I'm not sure if that is the implementation used in the paper? There also is some student code apparently?

Any pointers to the implementation used would be appreciated!

@devos50 devos50 changed the title Implementation used by Omniledger evaluation? Implementation used to evaluate Omniledger? Jan 11, 2020
@ineiti
Copy link
Member

ineiti commented Jan 13, 2020

Hi @devos50,

Thanks for your interest in OmniLedger. Here is what I can tell you:

  • student_18_omniledger - student project to implement OmniLedger sharding in byzcoin
  • dedis/cothority#omniledger_sharding - same student project, trying to get into master
  • ??? (looking for it) - code used to evaluate the performance

The code used to evaluate the performance in the paper is very bare-bones and only tailored to evaluate the potential, theoretical maximum performance. For example, in the evaluation, the transaction-mechanism is only simulated, but no real transactions take place.

Once the paper was out, we started implementing parts of the ByzCoin protocol including a transaction mechanism that borrowed heavily from Ethereum - in the meantime we even added an EVM layer to our byzcoin implementation.

The student_18_omniledger project started implementing the sharding mechanism, but unfortunately it didn't find its way into master, where usable code resides. We're still waiting for somebody to finish that part ;)

We do have a running testnet for byzcoin here: https://status.dedis.ch and start using it for real-life usage: https://www.c4dt.org/article/dynacred/ - please be aware that the 'OmniLedger' in those posts refers to our byzcoin implementation here: https://github.com/dedis/cothority/tree/master/byzcoin

For now the implementation of a sharded version of byzcoin is not very high on our priority list. We're kind of waiting for the transactions to reach the limit, which is currently around 20tps in our testnet. Once we're getting close to that one, we'll start updating the priorities ;)

As soon as I have found the code for the evaluations I'll ping you,

Linus Gasser

@devos50
Copy link
Author

devos50 commented Jan 14, 2020

@ineiti thanks for your extensive response! Looking forward to an implementation 👍

@ineiti
Copy link
Member

ineiti commented Jan 14, 2020

OK - according to @LefKok , the following branch should contain the simulations of the OmniLedger paper: https://github.com/dedis/cothority/tree/lbyzcoin/services/byzcoin_ng

As I said before: the simulations are simulations ;) With a lots of nuts and bolts missing.

Here goes my favorite joke for PhD / engineering:

Question: How long does it take for an engineer to implement a PhD's

time.sleep(166 * time.Millisecond)

???

Answer: About one year, because that was the implementation for the paper of the transaction, global state, smart-contract, access-control, ... 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants