Comments (4)
I still do not understand this issue. As far as I understand in the snapshot and gnosis case, the keypers could send out the decryption key shares based on time or the state of a blockchain. i.e. there is no need to send a DecryptionTrigger.
I suggest not using compile flags and instead build a dedicated binary for the different use-cases. We can share code by including the same subcommands where possible. I wouldn't mind having multiple keyper subcommands for the different use-cases.
from rolling-shutter.
I still do not understand this issue. As far as I understand in the snapshot and gnosis case, the keypers could send out the decryption key shares based on time or the state of a blockchain. i.e. there is no need to send a DecryptionTrigger.
This may just be a semantics issue.
There needs to be something that decides when / in which conditions to send the key shares. That is (IMO) what this issue is about. If that is actually using the DecryptionTrigger mechanism or something else isn't important as far as I'm concerned.
I suggest not using compile flags and instead build a dedicated binary for the different use-cases. We can share code by including the same subcommands where possible. I wouldn't mind having multiple keyper subcommands for the different use-cases.
Hm, I haven't really understood what the problem with compile flags is and what would be the advantage of splitting out nearly identical code to multiple binaries?
To me it sounds like it would lead to a lot of boilerplate duplication. E.g. when we have keyper-rolling
, keyper-snapshot
, keyper-gnosis
, etc. commands each of them needs to have all the repetitive config, db, libp2p code (even if that is abstracted out into utility modules they still need to be initialized etc.).
from rolling-shutter.
At the moment the following code sends the decryption key shares:
rolling-shutter/rolling-shutter/keyper/epochkghandler/trigger.go
Lines 66 to 77 in afeff51
This is being triggered by a p2p message send from the collator.
The keyper installs a handler for this message here:
rolling-shutter/rolling-shutter/keyper/keyper.go
Lines 130 to 137 in afeff51
In the snapshot case we may not need to listen for a p2p DecryptionTrigger message at all and just wait for a certain point in time before calling into SendDecryptionKeyShares
. I fail to see how we can define a meaningful interface for the generation of the decryption key shares for both cases.
On the use of compile flags: I think it's better to have some duplication and put in meaningful abstractions where it makes sense instead of code that is sprinkled with if rollingShutter
/ if snapshotShutter
/ if ! gnosisShutter
statements.
from rolling-shutter.
This is done.
from rolling-shutter.
Related Issues (20)
- Document third party keyper setup
- segfault when shutting down chain subcommand HOT 2
- JS package is conflicting with other packages exporting a Sentry class HOT 8
- Make final release of shutter-crypto js lib HOT 1
- Introduce consistent line-length code formatter in pre-commit hook HOT 2
- Consistent command-builder options HOT 1
- Change epochid type to be arbitrary length HOT 1
- Resolve eon index / keyper set index ambiguity HOT 2
- Replace eon with keyper set index in gossip messages HOT 1
- Improve Gnosis keyper p2p connections HOT 2
- Unify libp2p log format
- Version identifier for encrypted messages HOT 1
- Update shcrypto package HOT 1
- Merge gnosis branch into main HOT 2
- Unify execution chain syncing HOT 1
- Handle reorgs
- Fix tx pointer age issue HOT 5
- Investigate key generation performance HOT 2
- Keypers crash when started before first keyper set activation
- Message handling optimization HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rolling-shutter.