1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-10 10:00:49 +09:00

consensus node

This commit is contained in:
Sergey Cherepanov 2022-10-04 15:39:29 +03:00 committed by Mikhail Iudin
parent 0d2de36ac0
commit 7f0960937e
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
26 changed files with 822 additions and 43 deletions

View file

@ -35,4 +35,8 @@ proto:
build:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/app))
go build -v -o bin/anytype-node -ldflags "$(FLAGS)" cmd/node/node.go
go build -v -o bin/anytype-node -ldflags "$(FLAGS)" cmd/node/node.go
build-consensus:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/app))
go build -v -o bin/consensus-node -ldflags "$(FLAGS)" cmd/consensusnode/consensusnode.go

View file

@ -0,0 +1,94 @@
package main
import (
"context"
"flag"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secure"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/consensusrpc"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/db"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/stream"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/account"
"go.uber.org/zap"
"net/http"
"os"
"os/signal"
"syscall"
"time"
)
var log = logger.NewNamed("main")
var (
flagConfigFile = flag.String("c", "etc/consensus-config.yml", "path to config file")
flagVersion = flag.Bool("v", false, "show version and exit")
flagHelp = flag.Bool("h", false, "show help and exit")
)
func main() {
flag.Parse()
if *flagVersion {
fmt.Println(app.VersionDescription())
return
}
if *flagHelp {
flag.PrintDefaults()
return
}
if debug, ok := os.LookupEnv("ANYPROF"); ok && debug != "" {
go func() {
http.ListenAndServe(debug, nil)
}()
}
// create app
ctx := context.Background()
a := new(app.App)
// open config file
conf, err := config.NewFromFile(*flagConfigFile)
if err != nil {
log.Fatal("can't open config file", zap.Error(err))
}
// bootstrap components
a.Register(conf)
Bootstrap(a)
// start app
if err := a.Start(ctx); err != nil {
log.Fatal("can't start app", zap.Error(err))
}
log.Info("app started", zap.String("version", a.Version()))
// wait exit signal
exit := make(chan os.Signal, 1)
signal.Notify(exit, os.Interrupt, syscall.SIGKILL, syscall.SIGTERM, syscall.SIGQUIT)
sig := <-exit
log.Info("received exit signal, stop app...", zap.String("signal", fmt.Sprint(sig)))
// close app
ctx, cancel := context.WithTimeout(ctx, time.Minute)
defer cancel()
if err := a.Close(ctx); err != nil {
log.Fatal("close error", zap.Error(err))
} else {
log.Info("goodbye!")
}
time.Sleep(time.Second / 3)
}
func Bootstrap(a *app.App) {
a.Register(account.New()).
Register(secure.New()).
Register(server.New()).
Register(db.New()).
Register(stream.New()).
Register(consensusrpc.New())
}

View file

@ -5,3 +5,6 @@ nodes:
- grpcAddresses:
- "127.0.0.1:4431"
apiPort: "8081"
- grpcAddresses:
- "127.0.0.1:4432"
apiPort: "8082"

View file

@ -2,6 +2,7 @@ package account
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/account"
)
@ -11,3 +12,7 @@ type Service interface {
app.Component
Account() *account.AccountData
}
type ConfigGetter interface {
GetAccount() config.Account
}

View file

@ -4,7 +4,6 @@ import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
secure2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secure"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/zeebo/errs"
@ -30,20 +29,22 @@ type DRPCServer interface {
drpc.Mux
}
type configGetter interface {
GetGRPCServer() config.GrpcServer
}
type drpcServer struct {
config config.GrpcServer
drpcServer *drpcserver.Server
transport secure2.Service
listeners []secure2.ContextListener
pool pool.Pool
cancel func()
*drpcmux.Mux
}
func (s *drpcServer) Init(a *app.App) (err error) {
s.config = a.MustComponent(config.CName).(*config.Config).GrpcServer
s.config = a.MustComponent(config.CName).(configGetter).GetGRPCServer()
s.transport = a.MustComponent(secure2.CName).(secure2.Service)
s.pool = a.MustComponent(pool.CName).(pool.Pool)
return nil
}

View file

@ -4,6 +4,7 @@ import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/account"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys"
"github.com/libp2p/go-libp2p-core/crypto"
@ -34,7 +35,7 @@ type service struct {
}
func (s *service) Init(a *app.App) (err error) {
account := a.MustComponent(config.CName).(*config.Config).Account
account := a.MustComponent(config.CName).(commonaccount.ConfigGetter).GetAccount()
pkb, err := keys.DecodeBytesFromString(account.SigningKey)
if err != nil {
return

View file

@ -39,3 +39,15 @@ func (c *Config) Init(a *app.App) (err error) {
func (c Config) Name() (name string) {
return CName
}
func (c Config) GetAnytype() Anytype {
return c.Anytype
}
func (c Config) GetGRPCServer() GrpcServer {
return c.GrpcServer
}
func (c Config) GetAccount() Account {
return c.Account
}

View file

@ -1,7 +0,0 @@
package config
type Account struct {
PeerId string `yaml:"peerId"`
SigningKey string `yaml:"signingKey"`
EncryptionKey string `yaml:"encryptionKey"`
}

View file

@ -2,6 +2,7 @@ package config
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"gopkg.in/yaml.v3"
"io/ioutil"
)
@ -21,9 +22,9 @@ func NewFromFile(path string) (c *Config, err error) {
}
type Config struct {
GrpcServer GrpcServer `yaml:"grpcServer"`
Account Account `yaml:"account"`
Mongo Mongo `yaml:"mongo"`
GrpcServer config.GrpcServer `yaml:"grpcServer"`
Account config.Account `yaml:"account"`
Mongo Mongo `yaml:"mongo"`
}
func (c *Config) Init(a *app.App) (err error) {
@ -33,3 +34,15 @@ func (c *Config) Init(a *app.App) (err error) {
func (c Config) Name() (name string) {
return CName
}
func (c Config) GetMongo() Mongo {
return c.Mongo
}
func (c Config) GetGRPCServer() config.GrpcServer {
return c.GrpcServer
}
func (c Config) GetAccount() config.Account {
return c.Account
}

View file

@ -1,6 +0,0 @@
package config
type GrpcServer struct {
ListenAddrs []string `yaml:"listenAddrs"`
TLS bool `yaml:"tls"`
}

View file

@ -0,0 +1,114 @@
package consensusrpc
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/consensusproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/db"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/stream"
"time"
)
const CName = "consensus.consensusrpc"
func New() app.Component {
return &consensusRpc{}
}
type consensusRpc struct {
db db.Service
stream stream.Service
}
func (c *consensusRpc) Init(a *app.App) (err error) {
c.db = a.MustComponent(db.CName).(db.Service)
c.stream = a.MustComponent(stream.CName).(stream.Service)
return consensusproto.DRPCRegisterConsensus(a.MustComponent(server.CName).(server.DRPCServer), c)
}
func (c *consensusRpc) Name() (name string) {
return CName
}
func (c *consensusRpc) AddLog(ctx context.Context, req *consensusproto.AddLogRequest) (*consensusproto.Ok, error) {
if err := c.db.AddLog(ctx, logFromProto(req.Log)); err != nil {
return nil, err
}
return &consensusproto.Ok{}, nil
}
func (c *consensusRpc) AddRecord(ctx context.Context, req *consensusproto.AddRecordRequest) (*consensusproto.Ok, error) {
if err := c.db.AddRecord(ctx, req.LogId, recordFromProto(req.Record)); err != nil {
return nil, err
}
return &consensusproto.Ok{}, nil
}
func (c *consensusRpc) WatchLog(req *consensusproto.WatchLogRequest, rpcStream consensusproto.DRPCConsensus_WatchLogStream) error {
stream, err := c.stream.Subscribe(rpcStream.Context(), req.LogId)
if err != nil {
return err
}
defer stream.Close()
var logSent bool
for {
if !logSent {
if err = rpcStream.Send(&consensusproto.WatchLogEvent{
LogId: req.LogId,
Records: recordsToProto(stream.Records()),
}); err != nil {
return err
}
} else {
recs := stream.WaitRecords()
if len(recs) == 0 {
return rpcStream.Close()
}
if err = rpcStream.Send(&consensusproto.WatchLogEvent{
LogId: req.LogId,
Records: recordsToProto(recs),
}); err != nil {
return err
}
}
}
}
func logFromProto(log *consensusproto.Log) consensus.Log {
return consensus.Log{
Id: log.Id,
Records: recordsFromProto(log.Records),
}
}
func recordsFromProto(recs []*consensusproto.Record) []consensus.Record {
res := make([]consensus.Record, len(recs))
for i, rec := range recs {
res[i] = recordFromProto(rec)
}
return res
}
func recordFromProto(rec *consensusproto.Record) consensus.Record {
return consensus.Record{
Id: rec.Id,
PrevId: rec.PrevId,
Payload: rec.Payload,
Created: time.Unix(int64(rec.CreatedUnix), 0),
}
}
func recordsToProto(recs []consensus.Record) []*consensusproto.Record {
res := make([]*consensusproto.Record, len(recs))
for i, rec := range recs {
res[i] = &consensusproto.Record{
Id: rec.Id,
PrevId: rec.PrevId,
Payload: rec.Payload,
CreatedUnix: uint64(rec.Created.Unix()),
}
}
return res
}

View file

@ -153,7 +153,7 @@ type streamResult struct {
UpdateDescription struct {
UpdateFields struct {
Records []consensus.Record `bson:"records"`
} `bson:"updatedFields""`
} `bson:"updatedFields"`
} `bson:"updateDescription"`
}

View file

@ -0,0 +1,68 @@
package stream
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus"
"github.com/cheggaaa/mb/v2"
"sync"
)
type object struct {
logId []byte
records []consensus.Record
streams map[uint32]*stream
lastStreamId uint32
mu sync.Mutex
}
func (o *object) AddRecords(recs []consensus.Record) {
o.mu.Lock()
defer o.mu.Unlock()
if len(recs) <= len(o.records) {
return
}
diff := recs[0 : len(recs)-len(o.records)]
o.records = recs
for _, st := range o.streams {
st.AddRecords(diff)
}
}
func (o *object) Records() []consensus.Record {
o.mu.Lock()
defer o.mu.Unlock()
return o.records
}
func (o *object) NewStream() Stream {
o.mu.Lock()
defer o.mu.Unlock()
o.lastStreamId++
st := &stream{
id: o.lastStreamId,
obj: o,
records: o.records,
mb: mb.New(consensus.Record{}, 100),
}
o.streams[st.id] = st
return st
}
func (o *object) Locked() bool {
o.mu.Lock()
defer o.mu.Unlock()
return len(o.streams) > 0
}
func (o *object) removeStream(id uint32) {
o.mu.Lock()
defer o.mu.Unlock()
delete(o.streams, id)
}
func (o *object) Close() (err error) {
return nil
}

127
consensus/stream/service.go Normal file
View file

@ -0,0 +1,127 @@
package stream
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/db"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/ocache"
"github.com/mr-tron/base58"
"go.uber.org/zap"
"time"
)
const CName = "consensus.stream"
var log = logger.NewNamed(CName)
var (
cacheTTL = time.Minute
)
type ctxLog uint
const (
ctxLogKey ctxLog = 1
)
func New() Service {
return &service{}
}
type Stream interface {
LogId() []byte
Records() []consensus.Record
WaitRecords() []consensus.Record
Close()
}
type Service interface {
Subscribe(ctx context.Context, logId []byte) (stream Stream, err error)
app.ComponentRunnable
}
type service struct {
db db.Service
cache ocache.OCache
}
func (s *service) Init(a *app.App) (err error) {
s.db = a.MustComponent(db.CName).(db.Service)
s.cache = ocache.New(s.loadLog,
ocache.WithTTL(cacheTTL),
ocache.WithRefCounter(false),
ocache.WithLogger(log.Named("cache").Sugar()),
)
return s.db.SetChangeReceiver(s.receiveChange)
}
func (s *service) Subscribe(ctx context.Context, logId []byte) (Stream, error) {
obj, err := s.getObject(ctx, logId)
if err != nil {
return nil, err
}
return obj.NewStream(), nil
}
func (s *service) Name() (name string) {
return CName
}
func (s *service) Run(ctx context.Context) (err error) {
return nil
}
func (s *service) loadLog(ctx context.Context, id string) (value ocache.Object, err error) {
if ctxLog := ctx.Value(ctxLogKey); ctxLog != nil {
return &object{
logId: ctxLog.(consensus.Log).Id,
records: ctxLog.(consensus.Log).Records,
streams: make(map[uint32]*stream),
}, nil
}
logId := logIdFromString(id)
dbLog, err := s.db.FetchLog(ctx, logId)
if err != nil {
return nil, err
}
return &object{
logId: dbLog.Id,
records: dbLog.Records,
streams: make(map[uint32]*stream),
}, nil
}
func (s *service) receiveChange(logId []byte, records []consensus.Record) {
ctx := context.WithValue(context.Background(), ctxLogKey, consensus.Log{Id: logId, Records: records})
obj, err := s.getObject(ctx, logId)
if err != nil {
log.Error("failed load object from cache", zap.Error(err))
return
}
obj.AddRecords(records)
}
func (s *service) getObject(ctx context.Context, logId []byte) (*object, error) {
id := logIdToString(logId)
cacheObj, err := s.cache.Get(ctx, id)
if err != nil {
return nil, err
}
return cacheObj.(*object), nil
}
func (s *service) Close(ctx context.Context) (err error) {
return s.cache.Close()
}
func logIdToString(logId []byte) string {
return base58.Encode(logId)
}
func logIdFromString(s string) []byte {
logId, _ := base58.Decode(s)
return logId
}

View file

@ -0,0 +1,169 @@
package stream
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/db"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
"time"
)
var ctx = context.Background()
func TestService_Subscribe(t *testing.T) {
fx := newFixture(t)
defer fx.Finish(t)
var expLogId = []byte("logId")
fx.mockDB.fetchLog = func(ctx context.Context, logId []byte) (log consensus.Log, err error) {
require.Equal(t, expLogId, logId)
return consensus.Log{
Id: logId,
Records: []consensus.Record{
{
Id: []byte{'1'},
},
},
}, nil
}
st1, err := fx.Subscribe(ctx, expLogId)
require.NoError(t, err)
require.Equal(t, expLogId, st1.LogId())
sr1 := readStream(st1)
assert.Equal(t, uint32(1), sr1.id)
st2, err := fx.Subscribe(ctx, expLogId)
require.NoError(t, err)
require.Equal(t, expLogId, st2.LogId())
sr2 := readStream(st2)
assert.Equal(t, uint32(2), sr2.id)
fx.mockDB.receiver(expLogId, []consensus.Record{
{
Id: []byte{'1'},
},
})
fx.mockDB.receiver([]byte("other id"), []consensus.Record{
{
Id: []byte{'2'},
PrevId: []byte{'1'},
},
{
Id: []byte{'1'},
},
})
fx.mockDB.receiver(expLogId, []consensus.Record{
{
Id: []byte{'2'},
PrevId: []byte{'1'},
},
{
Id: []byte{'1'},
},
})
st1.Close()
st2.Close()
for _, sr := range []*streamReader{sr1, sr2} {
select {
case <-time.After(time.Second / 3):
require.False(t, true, "timeout")
case <-sr.finished:
}
}
require.Equal(t, sr1.records, sr2.records)
require.Len(t, sr1.records, 1)
assert.Equal(t, []byte{'2'}, sr1.records[0].Id)
}
func newFixture(t *testing.T) *fixture {
fx := &fixture{
Service: New(),
mockDB: &mockDB{},
a: new(app.App),
}
fx.a.Register(fx.Service).Register(fx.mockDB)
require.NoError(t, fx.a.Start(ctx))
return fx
}
type fixture struct {
Service
mockDB *mockDB
a *app.App
}
func (fx *fixture) Finish(t *testing.T) {
require.NoError(t, fx.a.Close(ctx))
}
func readStream(st Stream) *streamReader {
sr := &streamReader{
id: st.(*stream).id,
stream: st,
finished: make(chan struct{}),
}
go sr.read()
return sr
}
type streamReader struct {
id uint32
stream Stream
records []consensus.Record
finished chan struct{}
}
func (sr *streamReader) read() {
defer close(sr.finished)
for {
records := sr.stream.WaitRecords()
if len(records) == 0 {
return
}
sr.records = append(sr.records, records...)
}
}
type mockDB struct {
receiver db.ChangeReceiver
fetchLog func(ctx context.Context, logId []byte) (log consensus.Log, err error)
}
func (m *mockDB) AddLog(ctx context.Context, log consensus.Log) (err error) { return nil }
func (m *mockDB) AddRecord(ctx context.Context, logId []byte, record consensus.Record) (err error) {
return nil
}
func (m *mockDB) FetchLog(ctx context.Context, logId []byte) (log consensus.Log, err error) {
return m.fetchLog(ctx, logId)
}
func (m *mockDB) SetChangeReceiver(receiver db.ChangeReceiver) (err error) {
m.receiver = receiver
return nil
}
func (m *mockDB) Init(a *app.App) (err error) {
return nil
}
func (m *mockDB) Name() (name string) {
return db.CName
}
func (m *mockDB) Run(ctx context.Context) (err error) {
return
}
func (m *mockDB) Close(ctx context.Context) (err error) {
return
}

View file

@ -0,0 +1,34 @@
package stream
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/consensus"
"github.com/cheggaaa/mb/v2"
)
type stream struct {
id uint32
obj *object
records []consensus.Record
mb *mb.MB[consensus.Record]
}
func (s *stream) LogId() []byte {
return s.obj.logId
}
func (s *stream) AddRecords(records []consensus.Record) {
_ = s.mb.Add(records...)
}
func (s *stream) Records() []consensus.Record {
return s.records
}
func (s *stream) WaitRecords() []consensus.Record {
return s.mb.Wait()
}
func (s *stream) Close() {
_ = s.mb.Close()
s.obj.removeStream(s.id)
}

View file

@ -5,20 +5,24 @@ grpcServer:
- 127.0.0.1:4430
tls: false
account:
peerId: 12D3KooWSUx2LXPvoZGp72Dt7b7r1kPSmQ6zAUwKkHFyX64uiXRu
signingKey: 4QTrtkFLQe9wQcWT/cgFEwfMHB5pt4axInNmCIMCZaz3nVdyygRoO8/YH0V15X6Mnw1NQWsS1YIWiLS22hwepA==
encryptionKey: MIIEpAIBAAKCAQEAmqAAOPfR86po3m+zwSzbAlZGgMMF188v35Ulqf9Gb4KO8DZ9ifxrqpjlLZRxPKeXj3wSSQEXsJf3A82rZlDxddZSM0i7Mx5G2G0zRHWx9dC58PpX6o/fDuvSwcyXqOgIK55N/hyEuIbWQgp5Rk9uy2Zbrhv5ZL5CvceM0b9wSKt/hRvntxSbG+HRgXWaQvAReGuJrySVvkh6fhC3G0IwqyFbGNq2zqAJej6NBzZA3thHgTn5PoWD8O4cyukBxunKGu3HLE3vJtqEMFrkNFw5SMpdEtxyTLN6T1HIeYCY9RL+BFYfxIWg6pGtIoIJKUB0XapJr9ltzvXfT9KeSCU0VwIDAQABAoIBAAp/xsQXf7gN4CUKbKg3RX+5H/xqQaFPvi5uUCpk3QGBWfdRm+CctSrWSul3ZOD7eD0T7aHrYxJonysw8ex2no6jyN0WmS91ZNYZRBvn6feI/rcwKHwS3NCEjsD+BWZAqx1bGGyivxhQf4fociemCR3ii2MdHygKCzobrKIpX5RvhanI4j01dyLlxwqTsteuc/o5RR4jfg1eN0kldFjk3UcSNyzzEv5o5UhRsHCLJBTNTvYZBN4FpyaqcLT9gKS9aVBvQH63R+E5dyxo1+24tZZricW59h2bN3CFriqkwBo1y0gTnR6VQ22MBvIUxYUm82cxXs/Vr0YQTSAaEGThxFECgYEAxKQMRnM39WMzrNx1WDwpBERRj1T0TbLf1uq6viPiLdik2Tm2aCBZyr5j82Ey7fZ7OafKGfsM0I2AuYeoBdYDuYN6A7tE9kpnECubnWuIvUeYcL+1VzzMedVtdKwQXrYbhqKtyvnSJ9gQ6CusHtsDE1bQvTMxBX4KNBeBYllCUasCgYEAyU0RPUaj56CyLHKty8jNg6wl+06IZ0pUPIWZ//b1zeZrlHGYDp/InxS8huGFapzOg1sbQBS6j3j3YE3Ts6v6FNuIa4pcPQ91YuHiWWQdgVjrCZdleanFWGTjIx12+RGj9vx4voRhNQcHW1YeTvvyj4BN/ECR6GNaoS/ZjBKo1AUCgYEAj6AyxxJJARagG9Y6b2QhoVg1Kjem6UmJbPStyUt0XIAsh+07afqXGxrM7mtEQ8MQZiBD4Y4Y4gs4xkprUzfqKIn7iNYznKDjflAbrXNpwLaWhWPBFCL4RtS4ycsTedoRaNlRjzvBYBDU6H9djHvzVyDF/itx1s0krr+sZSVE51kCgYBxGRinecna+KFCccgNp6s34H+Se2QNzGgZfOKyOjmOTniA9XV+Oe3I2yi1C34fESzCBm0ACuVqeIdcFz3rQ6OFFnbGHP2H3OiR/uFiYepl4uRjBimgOm9DI6Ot9f8DHxMlUGIygEPxPBq5CWCL9egpEeg+4rRXgYLI7w5mMZGjVQKBgQDC4qyH7FK3lLv5JomoK6nNjpyPNBmr0Rt215oM/AWQaxDhFZH5un68ueZ7MfybwXxHHFQ4ZeSwYs006f1XGPNW6qrH6pi/3SCLFuGVfNnLVwCBkm3QaQrxFm3v9LmVCidTNta0l0DrUldZdK8/P31GBxKo/MmYF/f9LO/Mfm/uDg==
peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
apiServer:
port: "8080"
nodes:
- peerId: 12D3KooWSUx2LXPvoZGp72Dt7b7r1kPSmQ6zAUwKkHFyX64uiXRu
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4430
signingKey: 4QTrtkFLQe9wQcWT/cgFEwfMHB5pt4axInNmCIMCZaz3nVdyygRoO8/YH0V15X6Mnw1NQWsS1YIWiLS22hwepA==
encryptionKey: MIIEpAIBAAKCAQEAmqAAOPfR86po3m+zwSzbAlZGgMMF188v35Ulqf9Gb4KO8DZ9ifxrqpjlLZRxPKeXj3wSSQEXsJf3A82rZlDxddZSM0i7Mx5G2G0zRHWx9dC58PpX6o/fDuvSwcyXqOgIK55N/hyEuIbWQgp5Rk9uy2Zbrhv5ZL5CvceM0b9wSKt/hRvntxSbG+HRgXWaQvAReGuJrySVvkh6fhC3G0IwqyFbGNq2zqAJej6NBzZA3thHgTn5PoWD8O4cyukBxunKGu3HLE3vJtqEMFrkNFw5SMpdEtxyTLN6T1HIeYCY9RL+BFYfxIWg6pGtIoIJKUB0XapJr9ltzvXfT9KeSCU0VwIDAQABAoIBAAp/xsQXf7gN4CUKbKg3RX+5H/xqQaFPvi5uUCpk3QGBWfdRm+CctSrWSul3ZOD7eD0T7aHrYxJonysw8ex2no6jyN0WmS91ZNYZRBvn6feI/rcwKHwS3NCEjsD+BWZAqx1bGGyivxhQf4fociemCR3ii2MdHygKCzobrKIpX5RvhanI4j01dyLlxwqTsteuc/o5RR4jfg1eN0kldFjk3UcSNyzzEv5o5UhRsHCLJBTNTvYZBN4FpyaqcLT9gKS9aVBvQH63R+E5dyxo1+24tZZricW59h2bN3CFriqkwBo1y0gTnR6VQ22MBvIUxYUm82cxXs/Vr0YQTSAaEGThxFECgYEAxKQMRnM39WMzrNx1WDwpBERRj1T0TbLf1uq6viPiLdik2Tm2aCBZyr5j82Ey7fZ7OafKGfsM0I2AuYeoBdYDuYN6A7tE9kpnECubnWuIvUeYcL+1VzzMedVtdKwQXrYbhqKtyvnSJ9gQ6CusHtsDE1bQvTMxBX4KNBeBYllCUasCgYEAyU0RPUaj56CyLHKty8jNg6wl+06IZ0pUPIWZ//b1zeZrlHGYDp/InxS8huGFapzOg1sbQBS6j3j3YE3Ts6v6FNuIa4pcPQ91YuHiWWQdgVjrCZdleanFWGTjIx12+RGj9vx4voRhNQcHW1YeTvvyj4BN/ECR6GNaoS/ZjBKo1AUCgYEAj6AyxxJJARagG9Y6b2QhoVg1Kjem6UmJbPStyUt0XIAsh+07afqXGxrM7mtEQ8MQZiBD4Y4Y4gs4xkprUzfqKIn7iNYznKDjflAbrXNpwLaWhWPBFCL4RtS4ycsTedoRaNlRjzvBYBDU6H9djHvzVyDF/itx1s0krr+sZSVE51kCgYBxGRinecna+KFCccgNp6s34H+Se2QNzGgZfOKyOjmOTniA9XV+Oe3I2yi1C34fESzCBm0ACuVqeIdcFz3rQ6OFFnbGHP2H3OiR/uFiYepl4uRjBimgOm9DI6Ot9f8DHxMlUGIygEPxPBq5CWCL9egpEeg+4rRXgYLI7w5mMZGjVQKBgQDC4qyH7FK3lLv5JomoK6nNjpyPNBmr0Rt215oM/AWQaxDhFZH5un68ueZ7MfybwXxHHFQ4ZeSwYs006f1XGPNW6qrH6pi/3SCLFuGVfNnLVwCBkm3QaQrxFm3v9LmVCidTNta0l0DrUldZdK8/P31GBxKo/MmYF/f9LO/Mfm/uDg==
- peerId: 12D3KooWFnz9fYCxHAnf2rvPQ7iPZcCprEqyN8kCtVQfN2K1TfqK
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4431
signingKey: IM0BTVQf4LKMUVRTAHxbBXmdz656+G2ssw4WdLc30pRYy6TsVVdh+n03pKXSCdg665tM/9AjQRCbzgvDf9riWg==
encryptionKey: MIIEpAIBAAKCAQEAm0HILjO7GRYYb0AvESmxdaj6ruIcSHEQIyqhPbfXZSmJNo9wIq89SaYYL4ZTwrF+ykPDJcBA8SjNHGXBPhZY+ejwCDzDyyv42FMs5lKw+/x94Yg++W72sxawtCLVi0RVY1g4UxOlCgAxl3YC9mVYoqQveXN3EsDd0YNK9fWiWP/Xl3KaJ4ErsfW3LZS9rD36dgDsKr9GqeVQf7lGkCkDmivCwHn3uaN/uzHaWvaZ7e7QWE/36vTmMsllTvi0Q9Y+v+HB5isIX9Jve1QmCS//DbDl9IMGdmyg/jlBs63Nk86Qwlw8ft3ttTWNldTpvD4Ycbgj3l59jT4rIvFJ88+5UwIDAQABAoIBAFfUn/1bMIYhlNMi+T15W7YXUTGsIpnstFdgn3T90rGdDM272ZEVl9NZTidck3f516NvMC/kEhkbnuVovyhzlgRS/a97SLxgdNdUPntR3mO/VCtJW27akl9//5j4d9vgXXnlB4AgBeahc2yey1A+xyTDQ0QuyPbn+tSytK5uNlioCeAqH4ruWxcg4t8MnwNQEOsnchrYHfXqJG+XxGn7m60U4oclbObGfxWxYZ85I0B6M5PW71VLkj/eKTvRJcW5ShDKLG5meiUM3KtwUdFRzv9Xi4aB9eTwEQ8ZV18KVmIF7baBy5anWDfGO4O9MvFSMmbMCe3EkrGaEaCp/gXenhkCgYEAw57dj7ewVHIAQxcNZ9SPRUNAY8g9yEYQ//30yTcpUjsGlqGNzua2OvALGL2ntFY304X9Iego+7Tzxs3T0x2FQ1N33NhoxwRcMqBdksMqmCb8Bm8UvnFIuvmsfPGkkzwa/8xNH81GZiz0p9zfi4lSKdZRfTQ4lBqvogExdnalSd0CgYEAyy2Mw4eeJQ0Y6QX3nad2/06oxWiS3++CITI6dAqiepAB6V7lnP90NKfLgzJcCJwzKlMhoVv7Lu4bDCXbvQ03ba+Dl+To8Jf5/9di8j8OfllqDWPnbqyueTHu5CUk+A2Gz3RhjmMXHpVgbFkUJTkJ1RDWPImNq0KzTYQ+ZwU8lO8CgYEAo1/0zuisnXowedew3HyLw17tUeiUoMTTwdiJLduh6Qle8UKvupK4svRzcBBFFbnEGiaXSFAqmj2AMxMHzBOljpsRSiJ7L2uWzLleLQpOcpBsf7sZ6guWoIGQ6zCtMEJMkkJAT0UTfJYjJmazVEg1lLdni1enwRmggX7ZnoRsewkCgYB2SpLF1FOSpsl2Ae9kbnettRI1vOimUD+nLCM0JGzshqNWR9XPTjtN3NN0EwHaUXbIkZXm6DKZ5C8DJ5eDvgojZihrau7kBNecyL3m5CeAEHbaTOwVV5xNG3FGiwm3EckHR271A2QWfkmhS0ubUFYVIrRYko1UxIS4AOKEAFyBKQKBgQCfIsGy4wOqRsKLzbun6fIVSz8X+sS3HclD7UZ6WKanOYyWZ420qnhLnfdDcNQjF/ApbzHdfwwTKVJSaZiK23kmReUVB9Cq2YAHMJYlp0ErgPzZstrRiRidtzJHm93owWc7GZinzd1M8EOYUSJ3+t8EZXZlbsD/oCTbX/BGqolo2w==
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4432
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10

View file

@ -5,20 +5,24 @@ grpcServer:
- 127.0.0.1:4431
tls: false
account:
peerId: 12D3KooWFnz9fYCxHAnf2rvPQ7iPZcCprEqyN8kCtVQfN2K1TfqK
signingKey: IM0BTVQf4LKMUVRTAHxbBXmdz656+G2ssw4WdLc30pRYy6TsVVdh+n03pKXSCdg665tM/9AjQRCbzgvDf9riWg==
encryptionKey: MIIEpAIBAAKCAQEAm0HILjO7GRYYb0AvESmxdaj6ruIcSHEQIyqhPbfXZSmJNo9wIq89SaYYL4ZTwrF+ykPDJcBA8SjNHGXBPhZY+ejwCDzDyyv42FMs5lKw+/x94Yg++W72sxawtCLVi0RVY1g4UxOlCgAxl3YC9mVYoqQveXN3EsDd0YNK9fWiWP/Xl3KaJ4ErsfW3LZS9rD36dgDsKr9GqeVQf7lGkCkDmivCwHn3uaN/uzHaWvaZ7e7QWE/36vTmMsllTvi0Q9Y+v+HB5isIX9Jve1QmCS//DbDl9IMGdmyg/jlBs63Nk86Qwlw8ft3ttTWNldTpvD4Ycbgj3l59jT4rIvFJ88+5UwIDAQABAoIBAFfUn/1bMIYhlNMi+T15W7YXUTGsIpnstFdgn3T90rGdDM272ZEVl9NZTidck3f516NvMC/kEhkbnuVovyhzlgRS/a97SLxgdNdUPntR3mO/VCtJW27akl9//5j4d9vgXXnlB4AgBeahc2yey1A+xyTDQ0QuyPbn+tSytK5uNlioCeAqH4ruWxcg4t8MnwNQEOsnchrYHfXqJG+XxGn7m60U4oclbObGfxWxYZ85I0B6M5PW71VLkj/eKTvRJcW5ShDKLG5meiUM3KtwUdFRzv9Xi4aB9eTwEQ8ZV18KVmIF7baBy5anWDfGO4O9MvFSMmbMCe3EkrGaEaCp/gXenhkCgYEAw57dj7ewVHIAQxcNZ9SPRUNAY8g9yEYQ//30yTcpUjsGlqGNzua2OvALGL2ntFY304X9Iego+7Tzxs3T0x2FQ1N33NhoxwRcMqBdksMqmCb8Bm8UvnFIuvmsfPGkkzwa/8xNH81GZiz0p9zfi4lSKdZRfTQ4lBqvogExdnalSd0CgYEAyy2Mw4eeJQ0Y6QX3nad2/06oxWiS3++CITI6dAqiepAB6V7lnP90NKfLgzJcCJwzKlMhoVv7Lu4bDCXbvQ03ba+Dl+To8Jf5/9di8j8OfllqDWPnbqyueTHu5CUk+A2Gz3RhjmMXHpVgbFkUJTkJ1RDWPImNq0KzTYQ+ZwU8lO8CgYEAo1/0zuisnXowedew3HyLw17tUeiUoMTTwdiJLduh6Qle8UKvupK4svRzcBBFFbnEGiaXSFAqmj2AMxMHzBOljpsRSiJ7L2uWzLleLQpOcpBsf7sZ6guWoIGQ6zCtMEJMkkJAT0UTfJYjJmazVEg1lLdni1enwRmggX7ZnoRsewkCgYB2SpLF1FOSpsl2Ae9kbnettRI1vOimUD+nLCM0JGzshqNWR9XPTjtN3NN0EwHaUXbIkZXm6DKZ5C8DJ5eDvgojZihrau7kBNecyL3m5CeAEHbaTOwVV5xNG3FGiwm3EckHR271A2QWfkmhS0ubUFYVIrRYko1UxIS4AOKEAFyBKQKBgQCfIsGy4wOqRsKLzbun6fIVSz8X+sS3HclD7UZ6WKanOYyWZ420qnhLnfdDcNQjF/ApbzHdfwwTKVJSaZiK23kmReUVB9Cq2YAHMJYlp0ErgPzZstrRiRidtzJHm93owWc7GZinzd1M8EOYUSJ3+t8EZXZlbsD/oCTbX/BGqolo2w==
peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
apiServer:
port: "8081"
nodes:
- peerId: 12D3KooWSUx2LXPvoZGp72Dt7b7r1kPSmQ6zAUwKkHFyX64uiXRu
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4430
signingKey: 4QTrtkFLQe9wQcWT/cgFEwfMHB5pt4axInNmCIMCZaz3nVdyygRoO8/YH0V15X6Mnw1NQWsS1YIWiLS22hwepA==
encryptionKey: MIIEpAIBAAKCAQEAmqAAOPfR86po3m+zwSzbAlZGgMMF188v35Ulqf9Gb4KO8DZ9ifxrqpjlLZRxPKeXj3wSSQEXsJf3A82rZlDxddZSM0i7Mx5G2G0zRHWx9dC58PpX6o/fDuvSwcyXqOgIK55N/hyEuIbWQgp5Rk9uy2Zbrhv5ZL5CvceM0b9wSKt/hRvntxSbG+HRgXWaQvAReGuJrySVvkh6fhC3G0IwqyFbGNq2zqAJej6NBzZA3thHgTn5PoWD8O4cyukBxunKGu3HLE3vJtqEMFrkNFw5SMpdEtxyTLN6T1HIeYCY9RL+BFYfxIWg6pGtIoIJKUB0XapJr9ltzvXfT9KeSCU0VwIDAQABAoIBAAp/xsQXf7gN4CUKbKg3RX+5H/xqQaFPvi5uUCpk3QGBWfdRm+CctSrWSul3ZOD7eD0T7aHrYxJonysw8ex2no6jyN0WmS91ZNYZRBvn6feI/rcwKHwS3NCEjsD+BWZAqx1bGGyivxhQf4fociemCR3ii2MdHygKCzobrKIpX5RvhanI4j01dyLlxwqTsteuc/o5RR4jfg1eN0kldFjk3UcSNyzzEv5o5UhRsHCLJBTNTvYZBN4FpyaqcLT9gKS9aVBvQH63R+E5dyxo1+24tZZricW59h2bN3CFriqkwBo1y0gTnR6VQ22MBvIUxYUm82cxXs/Vr0YQTSAaEGThxFECgYEAxKQMRnM39WMzrNx1WDwpBERRj1T0TbLf1uq6viPiLdik2Tm2aCBZyr5j82Ey7fZ7OafKGfsM0I2AuYeoBdYDuYN6A7tE9kpnECubnWuIvUeYcL+1VzzMedVtdKwQXrYbhqKtyvnSJ9gQ6CusHtsDE1bQvTMxBX4KNBeBYllCUasCgYEAyU0RPUaj56CyLHKty8jNg6wl+06IZ0pUPIWZ//b1zeZrlHGYDp/InxS8huGFapzOg1sbQBS6j3j3YE3Ts6v6FNuIa4pcPQ91YuHiWWQdgVjrCZdleanFWGTjIx12+RGj9vx4voRhNQcHW1YeTvvyj4BN/ECR6GNaoS/ZjBKo1AUCgYEAj6AyxxJJARagG9Y6b2QhoVg1Kjem6UmJbPStyUt0XIAsh+07afqXGxrM7mtEQ8MQZiBD4Y4Y4gs4xkprUzfqKIn7iNYznKDjflAbrXNpwLaWhWPBFCL4RtS4ycsTedoRaNlRjzvBYBDU6H9djHvzVyDF/itx1s0krr+sZSVE51kCgYBxGRinecna+KFCccgNp6s34H+Se2QNzGgZfOKyOjmOTniA9XV+Oe3I2yi1C34fESzCBm0ACuVqeIdcFz3rQ6OFFnbGHP2H3OiR/uFiYepl4uRjBimgOm9DI6Ot9f8DHxMlUGIygEPxPBq5CWCL9egpEeg+4rRXgYLI7w5mMZGjVQKBgQDC4qyH7FK3lLv5JomoK6nNjpyPNBmr0Rt215oM/AWQaxDhFZH5un68ueZ7MfybwXxHHFQ4ZeSwYs006f1XGPNW6qrH6pi/3SCLFuGVfNnLVwCBkm3QaQrxFm3v9LmVCidTNta0l0DrUldZdK8/P31GBxKo/MmYF/f9LO/Mfm/uDg==
- peerId: 12D3KooWFnz9fYCxHAnf2rvPQ7iPZcCprEqyN8kCtVQfN2K1TfqK
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4431
signingKey: IM0BTVQf4LKMUVRTAHxbBXmdz656+G2ssw4WdLc30pRYy6TsVVdh+n03pKXSCdg665tM/9AjQRCbzgvDf9riWg==
encryptionKey: MIIEpAIBAAKCAQEAm0HILjO7GRYYb0AvESmxdaj6ruIcSHEQIyqhPbfXZSmJNo9wIq89SaYYL4ZTwrF+ykPDJcBA8SjNHGXBPhZY+ejwCDzDyyv42FMs5lKw+/x94Yg++W72sxawtCLVi0RVY1g4UxOlCgAxl3YC9mVYoqQveXN3EsDd0YNK9fWiWP/Xl3KaJ4ErsfW3LZS9rD36dgDsKr9GqeVQf7lGkCkDmivCwHn3uaN/uzHaWvaZ7e7QWE/36vTmMsllTvi0Q9Y+v+HB5isIX9Jve1QmCS//DbDl9IMGdmyg/jlBs63Nk86Qwlw8ft3ttTWNldTpvD4Ycbgj3l59jT4rIvFJ88+5UwIDAQABAoIBAFfUn/1bMIYhlNMi+T15W7YXUTGsIpnstFdgn3T90rGdDM272ZEVl9NZTidck3f516NvMC/kEhkbnuVovyhzlgRS/a97SLxgdNdUPntR3mO/VCtJW27akl9//5j4d9vgXXnlB4AgBeahc2yey1A+xyTDQ0QuyPbn+tSytK5uNlioCeAqH4ruWxcg4t8MnwNQEOsnchrYHfXqJG+XxGn7m60U4oclbObGfxWxYZ85I0B6M5PW71VLkj/eKTvRJcW5ShDKLG5meiUM3KtwUdFRzv9Xi4aB9eTwEQ8ZV18KVmIF7baBy5anWDfGO4O9MvFSMmbMCe3EkrGaEaCp/gXenhkCgYEAw57dj7ewVHIAQxcNZ9SPRUNAY8g9yEYQ//30yTcpUjsGlqGNzua2OvALGL2ntFY304X9Iego+7Tzxs3T0x2FQ1N33NhoxwRcMqBdksMqmCb8Bm8UvnFIuvmsfPGkkzwa/8xNH81GZiz0p9zfi4lSKdZRfTQ4lBqvogExdnalSd0CgYEAyy2Mw4eeJQ0Y6QX3nad2/06oxWiS3++CITI6dAqiepAB6V7lnP90NKfLgzJcCJwzKlMhoVv7Lu4bDCXbvQ03ba+Dl+To8Jf5/9di8j8OfllqDWPnbqyueTHu5CUk+A2Gz3RhjmMXHpVgbFkUJTkJ1RDWPImNq0KzTYQ+ZwU8lO8CgYEAo1/0zuisnXowedew3HyLw17tUeiUoMTTwdiJLduh6Qle8UKvupK4svRzcBBFFbnEGiaXSFAqmj2AMxMHzBOljpsRSiJ7L2uWzLleLQpOcpBsf7sZ6guWoIGQ6zCtMEJMkkJAT0UTfJYjJmazVEg1lLdni1enwRmggX7ZnoRsewkCgYB2SpLF1FOSpsl2Ae9kbnettRI1vOimUD+nLCM0JGzshqNWR9XPTjtN3NN0EwHaUXbIkZXm6DKZ5C8DJ5eDvgojZihrau7kBNecyL3m5CeAEHbaTOwVV5xNG3FGiwm3EckHR271A2QWfkmhS0ubUFYVIrRYko1UxIS4AOKEAFyBKQKBgQCfIsGy4wOqRsKLzbun6fIVSz8X+sS3HclD7UZ6WKanOYyWZ420qnhLnfdDcNQjF/ApbzHdfwwTKVJSaZiK23kmReUVB9Cq2YAHMJYlp0ErgPzZstrRiRidtzJHm93owWc7GZinzd1M8EOYUSJ3+t8EZXZlbsD/oCTbX/BGqolo2w==
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4432
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10

28
etc/configs/config3.yml Executable file
View file

@ -0,0 +1,28 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4432
tls: false
account:
peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
apiServer:
port: "8082"
nodes:
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4430
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4431
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4432
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10

32
etc/configs/cons/config1.yml Executable file
View file

@ -0,0 +1,32 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4530
tls: false
account:
peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
apiServer:
port: "8080"
nodes:
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4530
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4531
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4532
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10
mongo:
connect: "mongodb://localhost:27017/?w=majority"
database: "consensus"
collection: "log"

32
etc/configs/cons/config2.yml Executable file
View file

@ -0,0 +1,32 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4531
tls: false
account:
peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
apiServer:
port: "8081"
nodes:
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4530
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4531
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4532
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10
mongo:
connect: "mongodb://localhost:27017/?w=majority"
database: "consensus"
collection: "log"

32
etc/configs/cons/config3.yml Executable file
View file

@ -0,0 +1,32 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4532
tls: false
account:
peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
apiServer:
port: "8082"
nodes:
- peerId: 12D3KooWPo3aLfq4t6iTmAWp6zDduEyZ4V9yb168NfneF4ufBcck
address: 127.0.0.1:4530
signingKey: wE4Z/KtDHeA5PCaOQ5x4UQcHFo0B35H9cURBAYiAa8nPrQNFvmXrxgXwLkqwt/HoRN0NlcLzk/sBpU74yaXbNQ==
encryptionKey: MIIEpAIBAAKCAQEAuX3SpXlT52qn4xmS4sC0aw1NSWmmjlb9rKjKWamkbSB8wuuTCCaKboV3NfMR2YfmS+IPZ4IK47l0TtbyFM4Aaga0QTbbhGA0dXI2RiUK2a6iI1/j/wyc75UDJibnsMwCbtswnTJKfvNwEPaGI8yMZpxTMxTxKPMCqqz4Ej2WX87l/aa+9kLdW9FACRmoJUg2dbTrPgbtl+RzrNPjUvoyvN0QMuOr1v+g2lLrBtXDIjw5Tcp9v/aLNoXvhPjOc8z4G3sVGS/T9ndMOkaREef/msKp19QZwB4Lzmg3c7jHrRekrBaUn6azUcTabw7gaSVIh8WXln8Imn7cKqy5oXWRGwIDAQABAoIBAFdHafdsiFtKZybHoMLLM9lvT99sM++j5Qb6AQSBexnSAIJjADMEl3x7lmUvM0Xs2SL5gpAMs30FhUGXiB7b83vwHZ7V5iJ6dhSRIhKNWXal4irM8uXOlIVy0yF/iuM4iyiIQG6m/ECR4ThKF0H+/E1H3yoY/4RqG+YdLzi9++SmEsEig67vO3Uf9icm6bKw64/Sp0Mc4+KKlgu+qCsru2337jjlxJOLv9xWYW3yiTTV2EOJkqxMVqEXknZLVoY6QC+FZwkj3gyJPGFJu0+RqCdt5qcAcXf4/6lCA2iYjN+SuVLRRcNO/IBthRtvjw6XMTGRB9km0kc5tzFLRS52OLECgYEA7zidJZCDEWqdlEhiTwTA7wZbtjNVM5Gyqn22ap8Ux63tsueHPJDJO4/LSNnnO43mi79bXwP8Kh33iE2qnvzY3p1HXl8QWBbfdFl3eyP8rKdI+zZow1+REQQEGTT5gABa9t1we3hBD0Qq6u+a58+MJSlyx9fsJj1Xw81JgmLkbXMCgYEAxoB0bVyG1dfabNdpnLTRHMZKYS8Wc44/VFOLpw+ZBVTj/U+2FLmP5sFzK/TUPJ7C3p3JCMCeXRlmv+Vk4CD3WbVpbfdftFJcq1oJtziNSvSv2aR9eQZqQ9GTJE8Ale8aslxBKUNAWeHVoPSozrMy2KFO48ADQLAFPuBaAVf1Y7kCgYAERF1BO0erOtyetX/TawFKAjIGmPnPFq06L03erwG+4hJYW5rk8Kw2PMVigkiGnmxbV8l4c2i/E5PDwabmeRohNmr8evOerqHDwIjKEIVESyOZH4pU2dKLnCe6j2BX8SmuN5r3CNkYPZ4KXMXFlsUoMIoUmHxk3jk/i9zgz4TFkwKBgQC52zgn1URiINLgqei20w4gNQEbcW1CEOP23qqZZx9NQKifWu0PBpdX5bUiaP/3Kmcm7PF4AnHEla4A6pXCzNsL4bGvRrkTKzKdNZZ3OLoCfovP6hWZJYqFqUpt6pKPz+pdKcfRDKjJ/4t4QttzfZGUB6TH1da10Jl4v7NGIscd8QKBgQCppr1+ZfZH2rcYIgcyZEC2/CqU+CSCkxB0nJJGxZyY8KED3qAcYwAyzsAJaQKEIA91o6fwLOWNgP6H1cnXnRVr31uh/cveGr2xdtwLFc5/QHfTdFloCgsMQH66WwGgqQAQK6g8nBXDov5u0of2XGlLCPB2FD2QHqyizVF1wwl5TA==
- peerId: 12D3KooWMSRCGD7MKFwbxuonTV23Zk8bj5enUPBnrt24z8r8JRWB
address: 127.0.0.1:4531
signingKey: NO1unZIre3IFAHjJ6hPUYqgxhVpsisqaUNXnBnKyZZWsrOMUiO1mPvUgOWJ4KiecUh6F8s33SAB+7AlXcrGg9A==
encryptionKey: MIIEogIBAAKCAQEA03Ro0fUDPbQ5yCPHebMDdnHha+7j+8/OuzbpXuNICSfx2ogR05mGatH2FCwTTVZRSzc0SSsnWMeas/gtGnkGuH5T0+PN02niHG0FSHyV2fjRhOd2fDq0Dr0BxzTnvt83XqMwRZVlJESQg2a3UFx+tdgo0gtZomSRswHyc0ZTufKYW9VvaWpicTswF57z1Xu6ZtcJzPmcRpAwmJQl1PLVgJ5WXAaBLhpupcmt2z5KNKAhya72WJIcW1SqzLtiOwERwOTXdniPKiWoy7mf+DiVHPRtMv++98nF1VzR1qpqty97VRcNTEb31lc18IUmUgZGS52zd1K/OIazfURmsn5CyQIDAQABAoIBAAt+JjxTHsv5wbI5D5xzuFp1shTVtRp4nvnZ8DEyFTY6L5D7GEzx6TZhFwjdpGbtrBl0dKkNaWQP5T6m3Hy120GnzBKWLReyh5GX81OPQe3I8kpQ8kWqQyMR7sjO/VGIfE/ueq8tgYPJHjmmGYyKmnBzwTQ5XbPP14NtNapCRkay6XiswHOxw0AJTlA4Ob1yTVSl7rBbY+U5QEfOIi+UuFZZ77vAJtZ8GW92k93mASy/io8S2FwvSKCR2aBSUtAx3mJ2LOdVngL6MPBF7OViogt4Ys7IZh2GxqPr3KsbMpNy7EEO4F+/L/BJ4DeCbbox3FohiJVujbtES4XAEumJ3SkCgYEA8qzZGuSscq/FlV3NwQ4YPlkrlpxX5hYA4mUGhMuTBW9sb29b09YaQqiTTqc/0SbpjHBNIf8h+EGGwpo7v5Fo4NsH0nNy0MbbCaD2lZbbfSlMFX9CtZh6tFdT+apqwD9g4A9YLde2gGfwreqjz8iv47UwNihv4Apd8HXNo3IfaqsCgYEA3xC2ZEw8pZm/UU8frtl/K6J+ODxpopjVDgSFSvUKuZEad2e3SK4tT8/KLyjvcmMvzjnNYycC1zXxZYaW+75jQNRJcduZstiRfck+ko0YI7sjE3xP37F2unrWD9/J91J4hyZ5DmnQvZ0hEaA1xJiaenLuqO+BVTQM9qDc6fH6CFsCgYA9h9gQepTDC5BUnBE0dwdsn51utbuPylp1DNqHRzrC8QqUgq7M2oeUCTw4gC2tMWmcQ0k7an5JfQvXQdYOb6chBEhKcx1UlGcrXNXI/hQu+w6gkMDwXHYYTeAr+KrSjf9ZMGrSTNSoYDJlVo4sfB0k5mcQBFbBfr9s3eHDJIeUuwKBgByzGcRtyp/D2Emt1HW6phIHJhY2L6Er6L2U91FdlbOqZ61VOs+vGUVbhrfqnGQrPstZxIMtUcA+wIA/gM2DAWIl7g0oI+5OzulQKyzP2ns+aJTpOZ2eR5hWlZQVRvb7NWauHIUuOB0tSkPqSQCyYa2/e9Vge1NrDv/sUoAHEhRhAoGAEgC9OD/M7YnC0q0R7FaZKmwnR36KkAJNItcgGq7Vrr0kbtBFxos0almHyIMJ9MFkIRjytL2J5RHP8ulvw2bdDiBX80YnNJ+HC0oue6MXGF6a3Wbb0XAkFxarfcR7nNzn3CJS0cwtMNgnQxLGUNHByMH5GsaNey0oAWiDsWtUJxU=
- peerId: 12D3KooWRTGXikGHDdsNATxd6Vk56iu1V4dd6KZj3vv7KnGAMpxu
address: 127.0.0.1:4532
signingKey: krUwB1X4pZj1oy1i7ICHmMC6KhKmTYQflQaA3u5f3cToU2slOAZlMHEyRv8MUR5Trqtv2uAnQAXFSWotybLdlg==
encryptionKey: MIIEowIBAAKCAQEA2mlMdTZv7lTe3vbUKYbKKRjw0e3TvTmVRl8v/ayWPpn+bf/TPA+r3RoUaWnDEn4mHzUc+KNIPJJtv+uc2GXxG420R8lIs44zacuaYy8hbb7dYqK0u9ZoCkiaaT9nH/d/G8PsVy9jYQri4t4TtvvPebhZ2a2hHr4zEgilgTVEuxte0/QcKvEu2NYxaewLzejc2fJHyFOjfDhJqZOQKt8xlM0xszPcqzIDtDsuJFRRqw3Tk82427Ayc2I9EwLHd4r6qaNejW4BC5OXz+URHOJd130U8sslz4oTmkKuMkdu2HhkOznhw+TIn7TmzW6LQhJY9iBxmmM/V6VTXtgr6Fi7jQIDAQABAoIBAHUYfyVYSio81kAzlQuueDQQawwhtaN9e8p+vfwCy4pEhWP0BAvvWvTvRoI9cZg4ibexghbLc68F0lFSwIREIz/ieQUDpTaexnGx9tO2MPXlnkuDb+JE0QKyahaDJ4a76im4oL0daupcK8f1yBwSZOmdLI7Hx9nznu3MNO9Q38hvppsLNOkUf7KYTkGXGrdfY7CM6Fev9lr1o7QgNkkEgHas9SAxgjXX2sG+bhmz75eRnaoZ0KHhfSih8S17NaPpwpAOSQTdRpFCzEbHKAmn6BCJXGhdg4fSk0WgYEd23WhOaLsni2jqWMy252I5dykcm9qRYM+6Vo7CKEiC4axGkAECgYEA7QhOezQedHQ7qMnd2e/VBG0kgg5qTE+ztyWjBwrgdK2+Fd+DMmIMmZS+ETqz1rxnTp8miXv/7vz1SvxvxUFyXp6nKzFd+hPXJjIwmKuV1QF2kkHxFypOYPXF4BOPng8cEojKrud1nj7Bgm3bL3X6WzE8F5fvauC0DDlRRAZDYR0CgYEA6+OIIq56TMKfMMWNwWIVg3Ec3MZTFr6dwyw/CCAIdg9L4AtdaaY3erkvW7AGEP9ttXt5/foiv2zfd835VtoBevsCFHGzJlZTxuEtXjUHoDTKfxB88XZxIAwYvYJWjlgyOk/tDW/cRI6IshAQm+UhR/m4jYcmnHEqssjidcMDqTECgYEAtZVtehjdU91PbujmmfSPPcrW8wNUD43nYWDl2ZlNhlUrj9ogydIvUOCQEubjqpe+lI57mUtzL4R97aohff27Ph1Qd1hkZBYa9lnwvKSGLh3m1fjKVzLDxKfDpPuXREDTAqfkjcUnZ8kvuVmrVlqNJps7K9/rO/dUNyEZzoD10UkCgYBe5Wk18pU23jDmkQMnIgtflpiy5II2qzaSdvFglmpw/FRc7JWG1ByLnYZEz3qRSgDburHoD8H82pLIAq/lVcy0qdg7W0ZkDOSlJJ94v8Kym6o/FeX9ydVWvCcTziR+HVMPjGnkNvUZC3JImBfmb3ZFG1w4a3+H/ircQ95+25ZUcQKBgHB7u8EEpjxcuiUMSWxpUt2NCVIfwnsQQCBwDKdxh/EC+60kmZr83syAkmxGiB8UQf5VcVYJpTV8R12gsafdBzhXid3qOgWCLze1j5BnaLX4SD2CmOCB0myr0uO4xBYhACpkpZqHWs+ybozylnj6i6TiySxBysfi6aQivjhSo+Rw
space:
gcTTL: 60
syncPeriod: 10
mongo:
connect: "mongodb://localhost:27017/?w=majority"
database: "consensus"
collection: "log"

11
etc/consensus-node.yml Normal file
View file

@ -0,0 +1,11 @@
rpcServer:
listenAddrs:
- 127.0.0.1:4530
account:
peerId: 12D3KooWSUx2LXPvoZGp72Dt7b7r1kPSmQ6zAUwKkHFyX64uiXRu
signingKey: 4QTrtkFLQe9wQcWT/cgFEwfMHB5pt4axInNmCIMCZaz3nVdyygRoO8/YH0V15X6Mnw1NQWsS1YIWiLS22hwepA==
encryptionKey: MIIEpAIBAAKCAQEAmqAAOPfR86po3m+zwSzbAlZGgMMF188v35Ulqf9Gb4KO8DZ9ifxrqpjlLZRxPKeXj3wSSQEXsJf3A82rZlDxddZSM0i7Mx5G2G0zRHWx9dC58PpX6o/fDuvSwcyXqOgIK55N/hyEuIbWQgp5Rk9uy2Zbrhv5ZL5CvceM0b9wSKt/hRvntxSbG+HRgXWaQvAReGuJrySVvkh6fhC3G0IwqyFbGNq2zqAJej6NBzZA3thHgTn5PoWD8O4cyukBxunKGu3HLE3vJtqEMFrkNFw5SMpdEtxyTLN6T1HIeYCY9RL+BFYfxIWg6pGtIoIJKUB0XapJr9ltzvXfT9KeSCU0VwIDAQABAoIBAAp/xsQXf7gN4CUKbKg3RX+5H/xqQaFPvi5uUCpk3QGBWfdRm+CctSrWSul3ZOD7eD0T7aHrYxJonysw8ex2no6jyN0WmS91ZNYZRBvn6feI/rcwKHwS3NCEjsD+BWZAqx1bGGyivxhQf4fociemCR3ii2MdHygKCzobrKIpX5RvhanI4j01dyLlxwqTsteuc/o5RR4jfg1eN0kldFjk3UcSNyzzEv5o5UhRsHCLJBTNTvYZBN4FpyaqcLT9gKS9aVBvQH63R+E5dyxo1+24tZZricW59h2bN3CFriqkwBo1y0gTnR6VQ22MBvIUxYUm82cxXs/Vr0YQTSAaEGThxFECgYEAxKQMRnM39WMzrNx1WDwpBERRj1T0TbLf1uq6viPiLdik2Tm2aCBZyr5j82Ey7fZ7OafKGfsM0I2AuYeoBdYDuYN6A7tE9kpnECubnWuIvUeYcL+1VzzMedVtdKwQXrYbhqKtyvnSJ9gQ6CusHtsDE1bQvTMxBX4KNBeBYllCUasCgYEAyU0RPUaj56CyLHKty8jNg6wl+06IZ0pUPIWZ//b1zeZrlHGYDp/InxS8huGFapzOg1sbQBS6j3j3YE3Ts6v6FNuIa4pcPQ91YuHiWWQdgVjrCZdleanFWGTjIx12+RGj9vx4voRhNQcHW1YeTvvyj4BN/ECR6GNaoS/ZjBKo1AUCgYEAj6AyxxJJARagG9Y6b2QhoVg1Kjem6UmJbPStyUt0XIAsh+07afqXGxrM7mtEQ8MQZiBD4Y4Y4gs4xkprUzfqKIn7iNYznKDjflAbrXNpwLaWhWPBFCL4RtS4ycsTedoRaNlRjzvBYBDU6H9djHvzVyDF/itx1s0krr+sZSVE51kCgYBxGRinecna+KFCccgNp6s34H+Se2QNzGgZfOKyOjmOTniA9XV+Oe3I2yi1C34fESzCBm0ACuVqeIdcFz3rQ6OFFnbGHP2H3OiR/uFiYepl4uRjBimgOm9DI6Ot9f8DHxMlUGIygEPxPBq5CWCL9egpEeg+4rRXgYLI7w5mMZGjVQKBgQDC4qyH7FK3lLv5JomoK6nNjpyPNBmr0Rt215oM/AWQaxDhFZH5un68ueZ7MfybwXxHHFQ4ZeSwYs006f1XGPNW6qrH6pi/3SCLFuGVfNnLVwCBkm3QaQrxFm3v9LmVCidTNta0l0DrUldZdK8/P31GBxKo/MmYF/f9LO/Mfm/uDg==
mongo:
connect: "mongodb://localhost:27017/?w=majority"
database: "consensus"
collection: "log"

1
go.mod
View file

@ -30,6 +30,7 @@ require (
github.com/btcsuite/btcd v0.22.1 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.1.3 // indirect
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
github.com/cheggaaa/mb/v2 v2.0.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
github.com/fogleman/gg v1.3.0 // indirect

4
go.sum
View file

@ -15,6 +15,10 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOF
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cheggaaa/mb v1.0.3 h1:03ksWum+6kHclB+kjwKMaBtgl5gtNYUwNpxsHQciKe8=
github.com/cheggaaa/mb v1.0.3/go.mod h1:NUl0GBtFLlfg2o6iZwxzcG7Lslc2wV/ADTFbLXtVPE4=
github.com/cheggaaa/mb/v2 v2.0.1 h1:gn0khbEbKlw3i5VOYi0VnHEHayjZKfUDOyGSpHAybBs=
github.com/cheggaaa/mb/v2 v2.0.1/go.mod h1:XGeZw20Iqgjky26KL0mvCwk3+4NyZCUbshSo6ALne+c=
github.com/corona10/goimagehash v1.0.2 h1:pUfB0LnsJASMPGEZLj7tGY251vF+qLGqOgEP4rUs6kA=
github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawkhRnnX0D1bvVI=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

View file

@ -24,8 +24,7 @@ func New() app.Component {
}
func (s *service) Init(a *app.App) (err error) {
cfg := a.MustComponent(config.CName).(*config.Config)
acc := cfg.Account
acc := a.MustComponent(config.CName).(commonaccount.ConfigGetter).GetAccount()
decodedEncryptionKey, err := keys.DecodeKeyFromString(
acc.EncryptionKey,