Skip to content

Commit

Permalink
revert minogrpc
Browse files Browse the repository at this point in the history
  • Loading branch information
jbsv committed Feb 4, 2025
1 parent 1a0e2d7 commit f256653
Show file tree
Hide file tree
Showing 17 changed files with 202 additions and 1,198 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tidy:
go mod tidy

generate: tidy
go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.5
go get -u google.golang.org/protobuf@v1.36.4
go generate ./...

# Coding style static check.
Expand Down
4 changes: 2 additions & 2 deletions cli/node/memcoin/memcoin.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import (
db "go.dedis.ch/dela/core/store/kv/controller"
pool "go.dedis.ch/dela/core/txn/pool/controller"
signed "go.dedis.ch/dela/core/txn/signed/controller"
minows "go.dedis.ch/dela/mino/minows/controller"
mino "go.dedis.ch/dela/mino/minogrpc/controller"
proxy "go.dedis.ch/dela/mino/proxy/http/controller"
)

Expand All @@ -62,7 +62,7 @@ func runWithCfg(args []string, cfg config) error {
cfg.Channel,
cfg.Writer,
db.NewController(),
minows.NewController(),
mino.NewController(),
cosipbft.NewController(),
signed.NewManagerController(),
pool.NewController(),
Expand Down
4 changes: 2 additions & 2 deletions dkg/pedersen/dkgcli/dkgcli.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import (
"os"

"go.dedis.ch/dela/cli/node"
"go.dedis.ch/dela/mino/minows/controller"

db "go.dedis.ch/dela/core/store/kv/controller"
dkg "go.dedis.ch/dela/dkg/pedersen/controller"
mino "go.dedis.ch/dela/mino/minogrpc/controller"
)

func main() {
Expand All @@ -34,7 +34,7 @@ func runWithCfg(args []string, cfg config) error {
cfg.Channel,
cfg.Writer,
db.NewController(),
controller.NewController(),
mino.NewController(),
dkg.NewMinimal(),
)

Expand Down
28 changes: 12 additions & 16 deletions dkg/pedersen/pedersen_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@ import (
"fmt"
"testing"

ma "github.com/multiformats/go-multiaddr"
"go.dedis.ch/dela/mino/minoch"
"go.dedis.ch/dela/mino/minows"
minokey "go.dedis.ch/dela/mino/minows/key"
"go.dedis.ch/dela/testing/fake"
"go.dedis.ch/kyber/v3/suites"
"go.dedis.ch/kyber/v3/util/key"
Expand All @@ -21,6 +18,8 @@ import (
"go.dedis.ch/dela/dkg"
"go.dedis.ch/dela/dkg/pedersen/types"
"go.dedis.ch/dela/mino"
"go.dedis.ch/dela/mino/minogrpc"
"go.dedis.ch/dela/mino/router/tree"
"go.dedis.ch/kyber/v3"
)

Expand Down Expand Up @@ -187,30 +186,27 @@ func TestPedersen_Scenario(t *testing.T) {
dkgs := make([]dkg.DKG, n)
addrs := make([]mino.Address, n)

listen, err := ma.NewMultiaddr("/ip4/0.0.0.0/tcp/0")
require.NoError(t, err)

manager := minows.NewManager()
for i := 0; i < n; i++ {
k, err := minokey.NewKey(nil)
require.NoError(t, err)
addr := minogrpc.ParseAddress("127.0.0.1", 0)

m, err := minows.NewMinows(manager, listen, nil, k)
m, err := minogrpc.NewMinogrpc(addr, nil, tree.NewRouter(minogrpc.NewAddressFactory()))
require.NoError(t, err)

defer m.GracefulStop()

minos[i] = m
addrs[i] = m.GetAddress()
}

pubkeys := make([]kyber.Point, len(minos))

for i, mi := range minos {
// for _, m := range minos {
// mi.(*minows).GetCertificateStore().Store(m.GetAddress(),
// m.(*minows).GetCertificateChain())
// }
for _, m := range minos {
mi.(*minogrpc.Minogrpc).GetCertificateStore().Store(m.GetAddress(),
m.(*minogrpc.Minogrpc).GetCertificateChain())
}

d, pubkey := NewPedersen(mi.(*minows.Minows))
d, pubkey := NewPedersen(mi.(*minogrpc.Minogrpc))

dkgs[i] = d
pubkeys[i] = pubkey
Expand All @@ -227,7 +223,7 @@ func TestPedersen_Scenario(t *testing.T) {
// trying to call a decrypt/encrypt before a setup
message := []byte("Hello world")

_, _, err = actors[0].Encrypt(message)
_, _, err := actors[0].Encrypt(message)
require.EqualError(t, err, "you must first initialize DKG. Did you call setup() first?")
_, err = actors[0].Decrypt(nil, nil)
require.EqualError(t, err, "you must first initialize DKG. Did you call setup() first?")
Expand Down
40 changes: 22 additions & 18 deletions dkg/pedersen/resharing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ import (

"github.com/stretchr/testify/require"

"go.dedis.ch/dela/mino/minogrpc"
"go.dedis.ch/dela/mino/router/tree"

"go.dedis.ch/dela/dkg"

"go.dedis.ch/dela/mino"
"go.dedis.ch/dela/mino/minoch"

"go.dedis.ch/kyber/v3"
)

Expand Down Expand Up @@ -153,8 +157,8 @@ func TestResharing_minoch(t *testing.T) {

// This test creates a dkg committee then creates another committee (that can
// share some nodes with the old committee) and then redistributes the secret to
// the new committee. Using minows as the underlying network
func IgnoreTestResharing_minogrpc(t *testing.T) {
// the new commitee. Using minogrpc as the underlying network
func TestResharing_minogrpc(t *testing.T) {

// Setting up the first dkg
nOld := 10
Expand All @@ -167,8 +171,8 @@ func IgnoreTestResharing_minogrpc(t *testing.T) {

// Defining the addresses
for i := 0; i < nOld; i++ {
addr := minows.("127.0.0.1", 0)
m, err := minows.NewMinows(addr, nil, tree.NewRouter(minows.NewAddressFactory()))
addr := minogrpc.ParseAddress("127.0.0.1", 0)
m, err := minogrpc.NewMinogrpc(addr, nil, tree.NewRouter(minogrpc.NewAddressFactory()))
require.NoError(t, err)
defer func() {
_ = m.GracefulStop()
Expand All @@ -181,12 +185,12 @@ func IgnoreTestResharing_minogrpc(t *testing.T) {
// Initializing the pedersen
for i, mi := range minosOld {
for _, mj := range minosOld {
err := mi.(*minows.Minows).GetCertificateStore().Store(mj.GetAddress(),
mj.(*minows.Minows).GetCertificateChain())
err := mi.(*minogrpc.Minogrpc).GetCertificateStore().Store(mj.GetAddress(),
mj.(*minogrpc.Minogrpc).GetCertificateChain())
require.NoError(t, err)
}

pdkg, pubkey := NewPedersen(mi.(*minows.Minows))
pdkg, pubkey := NewPedersen(mi.(*minogrpc.Minogrpc))

dkgsOld[i] = pdkg
pubkeysOld[i] = pubkey
Expand Down Expand Up @@ -236,8 +240,8 @@ func IgnoreTestResharing_minogrpc(t *testing.T) {

// Defining the address of the new nodes.
for i := 0; i < nNew; i++ {
addr := minows.ParseAddress("127.0.0.1", 0)
m, err := minows.NewMinows(addr, nil, tree.NewRouter(minows.NewAddressFactory()))
addr := minogrpc.ParseAddress("127.0.0.1", 0)
m, err := minogrpc.NewMinogrpc(addr, nil, tree.NewRouter(minogrpc.NewAddressFactory()))
require.NoError(t, err)
defer func() {
err := m.GracefulStop()
Expand All @@ -259,22 +263,22 @@ func IgnoreTestResharing_minogrpc(t *testing.T) {
// a pedersen
for i, mi := range minosNew[nCommon:] {
for _, mj := range minosNew {
err := mi.(*Minows).GetCertificateStore().Store(mj.GetAddress(),
mj.(*Minows).GetCertificateChain())
err := mi.(*minogrpc.Minogrpc).GetCertificateStore().Store(mj.GetAddress(),
mj.(*minogrpc.Minogrpc).GetCertificateChain())
require.NoError(t, err)
err = mj.(*Minows).GetCertificateStore().Store(mi.GetAddress(),
mi.(*Minows).GetCertificateChain())
err = mj.(*minogrpc.Minogrpc).GetCertificateStore().Store(mi.GetAddress(),
mi.(*minogrpc.Minogrpc).GetCertificateChain())
require.NoError(t, err)
}
for _, mk := range minosOld[nCommon:] {
err := mi.(*Minows).GetCertificateStore().Store(mk.GetAddress(),
mk.(*Minows).GetCertificateChain())
err := mi.(*minogrpc.Minogrpc).GetCertificateStore().Store(mk.GetAddress(),
mk.(*minogrpc.Minogrpc).GetCertificateChain())
require.NoError(t, err)
err = mk.(*Minows).GetCertificateStore().Store(mi.GetAddress(),
mi.(*Minows).GetCertificateChain())
err = mk.(*minogrpc.Minogrpc).GetCertificateStore().Store(mi.GetAddress(),
mi.(*minogrpc.Minogrpc).GetCertificateChain())
require.NoError(t, err)
}
pdkg, pubkey := NewPedersen(mi.(*Minows))
pdkg, pubkey := NewPedersen(mi.(*minogrpc.Minogrpc))
dkgsNew[i+nCommon] = pdkg
pubkeysNew[i+nCommon] = pubkey
}
Expand Down
50 changes: 28 additions & 22 deletions dkg/pedersen/verifiable_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import (
"testing"
"time"

"github.com/libp2p/go-libp2p/core/crypto"
ma "github.com/multiformats/go-multiaddr"
"github.com/stretchr/testify/require"
"go.dedis.ch/dela/mino/minows"
"go.dedis.ch/dela/mino/minogrpc"
"go.dedis.ch/dela/mino/router/tree"
"go.dedis.ch/dela/testing/fake"

"go.dedis.ch/dela/dkg"
Expand Down Expand Up @@ -119,7 +118,7 @@ func Test_VerifiableEncDec_minoch(t *testing.T) {
}
}

func Test_VerifiableEncDec_minows(t *testing.T) {
func Test_VerifiableEncDec_minogrpc(t *testing.T) {
// we want to time the decryption for different batch sizes with different
// number of nodes

Expand All @@ -133,23 +132,39 @@ func Test_VerifiableEncDec_minows(t *testing.T) {
minos := make([]mino.Mino, n)
dkgs := make([]dkg.DKG, n)
addrs := make([]mino.Address, n)
manager := minows.NewManager()

for i := range n {
multi, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/80")
require.NoError(t, err)
// Create GBar. We need a generator in order to follow the encryption and
// decryption protocol of https://arxiv.org/pdf/2205.08529.pdf. We take an
// agreed data among the participants and embed it as a point. The result is
// the generator that we are seeking.
agreedData := make([]byte, 32)
_, err := randGen.Read(agreedData)
require.NoError(t, err)
GBar := suite.Point().Embed(agreedData, keccak.New(agreedData))

t.Log("initiating the dkg nodes ...")

for i := 0; i < n; i++ {
addr := minogrpc.ParseAddress("127.0.0.1", 0)

priv, _, err := crypto.GenerateKeyPair(crypto.Ed25519, 512)
minogrpc, err := minogrpc.NewMinogrpc(addr, nil,
tree.NewRouter(minogrpc.NewAddressFactory()))
require.NoError(t, err)

minos[i] = minows.MustCreate(manager, multi, multi, priv)
addrs[i] = minos[i].GetAddress()
defer minogrpc.GracefulStop()

minos[i] = minogrpc
addrs[i] = minogrpc.GetAddress()
}

pubkeys := make([]kyber.Point, len(minos))

for i, mino := range minos {
dkg, pubkey := NewPedersen(mino)
for _, m := range minos {
mino.(*minogrpc.Minogrpc).GetCertificateStore().Store(m.GetAddress(),
m.(*minogrpc.Minogrpc).GetCertificateChain())
}
dkg, pubkey := NewPedersen(mino.(*minogrpc.Minogrpc))
dkgs[i] = dkg
pubkeys[i] = pubkey
}
Expand All @@ -166,19 +181,10 @@ func Test_VerifiableEncDec_minows(t *testing.T) {
t.Log("setting up the dkg ...")

start := time.Now()
_, err := actors[0].Setup(fakeAuthority, threshold)
_, err = actors[0].Setup(fakeAuthority, threshold)
require.NoError(t, err)
setupTime := time.Since(start)

// Create GBar. We need a generator in order to follow the encryption and
// decryption protocol of https://arxiv.org/pdf/2205.08529.pdf. We take an
// agreed data among the participants and embed it as a point. The result is
// the generator that we are seeking.
agreedData := make([]byte, 32)
_, err = randGen.Read(agreedData)
require.NoError(t, err)
GBar := suite.Point().Embed(agreedData, keccak.New(agreedData))

// generating random messages in batch and encrypt them
for i, batchSize := range batchSizeSlice {
t.Logf("=== starting the process with batch size = %d === \n", batchSize)
Expand Down
2 changes: 1 addition & 1 deletion docs/mino.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ type Players interface {

It provides simple primitives to filter and get the list of addresses. Each
implementation of Mino has its own address representation. Minoch uses Go
channels and therefore uses string identifiers, whereas Minows uses actual
channels and therefore uses string identifiers, whereas Minogrpc uses actual
network addresses.

This interface can later be extended to add more information to the identity of
Expand Down
18 changes: 11 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ module go.dedis.ch/dela
go 1.23

require (
github.com/libp2p/go-libp2p v0.38.2
github.com/libp2p/go-libp2p v0.37.2
github.com/libp2p/go-yamux/v4 v4.0.1
github.com/multiformats/go-multiaddr v0.14.0
github.com/opentracing-contrib/go-grpc v0.1.1
github.com/opentracing/opentracing-go v1.2.0
github.com/prometheus/client_golang v1.20.5
github.com/rs/xid v1.5.0
Expand All @@ -16,14 +17,17 @@ require (
go.dedis.ch/debugtools v0.1.1
go.dedis.ch/kyber/v3 v3.1.0
go.etcd.io/bbolt v1.3.9
golang.org/x/crypto v0.31.0
golang.org/x/net v0.33.0
golang.org/x/crypto v0.32.0
golang.org/x/net v0.34.0
golang.org/x/tools v0.28.0
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
google.golang.org/grpc v1.34.0-dev
google.golang.org/grpc v1.70.0
google.golang.org/protobuf v1.36.4
gopkg.in/yaml.v2 v2.4.0
)

require github.com/golang/protobuf v1.5.4 // indirect

require (
github.com/HdrHistogram/hdrhistogram-go v1.1.2 // indirect
github.com/benbjohnson/clock v1.3.5 // indirect
Expand All @@ -41,7 +45,7 @@ require (
github.com/francoispqt/gojay v1.2.13 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect; indirectgoogle.golang.org/protobuf
github.com/google/gopacket v1.1.19 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/uuid v1.6.0 // indirect
Expand Down Expand Up @@ -102,7 +106,7 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.62.0 // indirect
github.com/prometheus/common v0.61.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.48.2 // indirect
Expand All @@ -127,7 +131,7 @@ require (
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
google.golang.org/protobuf v1.36.4 // indirect
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/blake3 v1.3.0 // indirect
)
Loading

0 comments on commit f256653

Please sign in to comment.