From 758cd19a1fe4503503aa3f0c0f31bb5698ce07c0 Mon Sep 17 00:00:00 2001 From: oopcode Date: Mon, 16 Dec 2019 21:36:53 +0300 Subject: [PATCH 1/2] feat: explicit run on-chain --- go.mod | 2 +- lib/basic/basic.go | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e44dc1a..09f9b75 100644 --- a/go.mod +++ b/go.mod @@ -13,4 +13,4 @@ require ( replace golang.org/x/crypto => github.com/tendermint/crypto v0.0.0-20180820045704-3764759f34a5 -replace github.com/tendermint/tendermint => github.com/dgamingfoundation/tendermint v0.27.4-0.20191113121517-26e7e4991bbf +replace github.com/tendermint/tendermint => ../tendermint diff --git a/lib/basic/basic.go b/lib/basic/basic.go index df7958c..4bf4697 100644 --- a/lib/basic/basic.go +++ b/lib/basic/basic.go @@ -95,7 +95,7 @@ func (m *DKGBasic) HandleOffChainShare( // try on-chain till success for { - if m.runOnChainDKG(validators, logger) { + if m.RunOnChainDKG(validators, logger) { break } } @@ -109,7 +109,7 @@ func (m *DKGBasic) HandleOffChainShare( return false } -func (m *DKGBasic) runOnChainDKG(validators *types.ValidatorSet, logger log.Logger) bool { +func (m *DKGBasic) RunOnChainDKG(validators *types.ValidatorSet, logger log.Logger) bool { err := m.onChain.StartRound( validators, m.offChain.GetPrivValidator(), @@ -143,6 +143,10 @@ func (m *DKGBasic) SetVerifier(verifier dkg.Verifier) { m.offChain.SetVerifier(verifier) } +func (m *DKGBasic) SetOnChain(isOnChain bool) { + m.isOnChain = isOnChain +} + func (m *DKGBasic) Verifier() dkg.Verifier { return m.offChain.Verifier() } From d7549a0e99d0be500efed69cdf8d0157a2b11e9f Mon Sep 17 00:00:00 2001 From: oopcode Date: Mon, 16 Dec 2019 21:39:11 +0300 Subject: [PATCH 2/2] wip --- lib/basic/basic.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/basic/basic.go b/lib/basic/basic.go index 4bf4697..fa97f3b 100644 --- a/lib/basic/basic.go +++ b/lib/basic/basic.go @@ -148,6 +148,14 @@ func (m *DKGBasic) SetOnChain(isOnChain bool) { } func (m *DKGBasic) Verifier() dkg.Verifier { + if m.isOnChain { + verifier, err := m.onChain.GetVerifier() + if err != nil { + return m.offChain.Verifier() + } + + return verifier + } return m.offChain.Verifier() }