1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00

refactor configs

This commit is contained in:
Sergey Cherepanov 2022-12-27 16:50:20 +03:00 committed by Mikhail Iudin
parent 523aedaf3e
commit 17e37fb8fb
No known key found for this signature in database
GPG key ID: FAAAA8BAABDFF1C0
69 changed files with 1013 additions and 605 deletions

View file

@ -8,7 +8,7 @@ proto:
build:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/client))
go build -v -o ../bin/client -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/client/cmd
go build -v -o ../bin/anytype-client -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/client/cmd
test:
go test ./... --cover

View file

@ -4,7 +4,6 @@ import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
@ -15,16 +14,12 @@ type service struct {
peerId string
}
func (s *service) Account() *accountdata.AccountData {
return s.accountData
}
func New() app.Component {
return &service{}
}
func (s *service) Init(a *app.App) (err error) {
acc := a.MustComponent(config.CName).(commonaccount.ConfigGetter).GetAccount()
acc := a.MustComponent("config").(commonaccount.ConfigGetter).GetAccount()
decodedEncryptionKey, err := keys.DecodeKeyFromString(
acc.EncryptionKey,
@ -60,6 +55,7 @@ func (s *service) Init(a *app.App) (err error) {
PeerKey: decodedPeerKey,
SignKey: decodedSigningKey,
EncKey: decodedEncryptionKey,
PeerId: acc.PeerId,
}
s.peerId = acc.PeerId
@ -69,3 +65,7 @@ func (s *service) Init(a *app.App) (err error) {
func (s *service) Name() (name string) {
return commonaccount.CName
}
func (s *service) Account() *accountdata.AccountData {
return s.accountData
}

View file

@ -0,0 +1,9 @@
package badgerprovider
type configGetter interface {
GetStorage() Config
}
type Config struct {
Path string `yaml:"path"`
}

View file

@ -3,7 +3,6 @@ package badgerprovider
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/dgraph-io/badger/v3"
)
@ -23,8 +22,8 @@ func New() BadgerProvider {
}
func (s *service) Init(a *app.App) (err error) {
cfg := a.MustComponent(config.CName).(*config.Config)
s.db, err = badger.Open(badger.DefaultOptions(cfg.Storage.Path))
cfg := a.MustComponent("config").(configGetter).GetStorage()
s.db, err = badger.Open(badger.DefaultOptions(cfg.Path))
return
}

View file

@ -9,7 +9,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
config2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"time"
)
@ -30,14 +29,14 @@ type Service interface {
}
type service struct {
conf config2.Space
conf commonspace.Config
spaceCache ocache.OCache
commonSpace commonspace.SpaceService
spaceStorageProvider spacestorage.SpaceStorageProvider
}
func (s *service) Init(a *app.App) (err error) {
s.conf = a.MustComponent(config2.CName).(*config2.Config).Space
s.conf = a.MustComponent("config").(commonspace.ConfigGetter).GetSpace()
s.commonSpace = a.MustComponent(commonspace.CName).(commonspace.SpaceService)
s.spaceStorageProvider = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorageProvider)
s.spaceCache = ocache.New(

View file

@ -8,6 +8,7 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/badgerprovider"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/clientspace/clientcache"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/debug/clientdebugrpc"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/document"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/filestorage"
@ -17,7 +18,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonfile/fileservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/dialer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"

75
client/config/config.go Normal file
View file

@ -0,0 +1,75 @@
package config
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/badgerprovider"
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"gopkg.in/yaml.v3"
"os"
)
const CName = "config"
func NewFromFile(path string) (c *Config, err error) {
c = &Config{}
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
if err = yaml.Unmarshal(data, c); err != nil {
return nil, err
}
return
}
type Config struct {
GrpcServer net.Config `yaml:"grpcServer"`
Account commonaccount.Config `yaml:"account"`
APIServer net.Config `yaml:"apiServer"`
Nodes []nodeconf.NodeConfig `yaml:"nodes"`
Space commonspace.Config `yaml:"space"`
Storage badgerprovider.Config `yaml:"storage"`
Metric metric.Config `yaml:"metric"`
Log logger.Config `yaml:"log"`
}
func (c *Config) Init(a *app.App) (err error) {
return
}
func (c Config) Name() (name string) {
return CName
}
func (c Config) GetNet() net.Config {
return c.GrpcServer
}
func (c Config) GetDebugNet() net.Config {
return c.APIServer
}
func (c Config) GetAccount() commonaccount.Config {
return c.Account
}
func (c Config) GetMetric() metric.Config {
return c.Metric
}
func (c Config) GetSpace() commonspace.Config {
return c.Space
}
func (c Config) GetStorage() badgerprovider.Config {
return c.Storage
}
func (c Config) GetNodes() []nodeconf.NodeConfig {
return c.Nodes
}

View file

@ -11,7 +11,7 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonfile/fileservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secureservice"
"storj.io/drpc"
@ -25,6 +25,10 @@ func New() ClientDebugRpc {
return &service{BaseDrpcServer: server.NewBaseDrpcServer()}
}
type configGetter interface {
GetDebugNet() net.Config
}
type ClientDebugRpc interface {
app.ComponentRunnable
drpc.Mux
@ -32,7 +36,7 @@ type ClientDebugRpc interface {
type service struct {
transport secureservice.SecureService
cfg *config.Config
cfg net.Config
spaceService clientspace.Service
storageService clientstorage.ClientStorage
docService document.Service
@ -46,7 +50,7 @@ func (s *service) Init(a *app.App) (err error) {
s.storageService = a.MustComponent(spacestorage.CName).(clientstorage.ClientStorage)
s.docService = a.MustComponent(document.CName).(document.Service)
s.account = a.MustComponent(accountservice.CName).(accountservice.Service)
s.cfg = a.MustComponent(config.CName).(*config.Config)
s.cfg = a.MustComponent("config").(configGetter).GetDebugNet()
s.transport = a.MustComponent(secureservice.CName).(secureservice.SecureService)
s.file = a.MustComponent(fileservice.CName).(fileservice.FileService)
return nil
@ -60,7 +64,7 @@ func (s *service) Run(ctx context.Context) (err error) {
params := server.Params{
BufferSizeMb: s.cfg.Stream.MaxMsgSizeMb,
TimeoutMillis: s.cfg.Stream.TimeoutMilliseconds,
ListenAddrs: s.cfg.APIServer.ListenAddrs,
ListenAddrs: s.cfg.Server.ListenAddrs,
Wrapper: func(handler drpc.Handler) drpc.Handler {
return handler
},

View file

@ -3,12 +3,15 @@ package rpcstore
import (
"context"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice/mock_accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonfile/fileblockstore"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonfile/fileproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/rpctest"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/golang/mock/gomock"
blocks "github.com/ipfs/go-block-format"
"github.com/ipfs/go-cid"
"github.com/stretchr/testify/assert"
@ -115,14 +118,16 @@ func newFixture(t *testing.T) *fixture {
conf := &config.Config{}
for i := 0; i < 11; i++ {
conf.Nodes = append(conf.Nodes, config.Node{
conf.Nodes = append(conf.Nodes, nodeconf.NodeConfig{
PeerId: fmt.Sprint(i),
Types: []config.NodeType{config.NodeTypeFile},
Types: []nodeconf.NodeType{nodeconf.NodeTypeFile},
})
}
rserv := rpctest.NewTestServer()
require.NoError(t, fileproto.DRPCRegisterFile(rserv.Mux, fx.serv))
fx.ctrl = gomock.NewController(t)
fx.a.Register(fx.s).
Register(mock_accountservice.NewAccountServiceWithAccount(fx.ctrl, &accountdata.AccountData{})).
Register(rpctest.NewTestPool().WithServer(rserv)).
Register(nodeconf.New()).
Register(conf)
@ -136,11 +141,13 @@ type fixture struct {
s *service
a *app.App
serv *testServer
ctrl *gomock.Controller
}
func (fx *fixture) Finish(t *testing.T) {
assert.NoError(t, fx.store.Close())
assert.NoError(t, fx.a.Close(ctx))
fx.ctrl.Finish()
}
type testServer struct {

View file

@ -5,27 +5,36 @@ replace github.com/anytypeio/go-anytype-infrastructure-experiments/common => ../
go 1.19
require (
github.com/VividCortex/ewma v1.2.0
github.com/anytypeio/go-anytype-infrastructure-experiments/common v0.0.0-00010101000000-000000000000
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c
github.com/dgraph-io/badger/v3 v3.2103.3
github.com/gogo/protobuf v1.3.2
github.com/golang/mock v1.6.0
github.com/ipfs/go-block-format v0.0.3
github.com/ipfs/go-cid v0.3.2
github.com/ipfs/go-ipld-format v0.4.0
github.com/stretchr/testify v1.8.1
go.uber.org/multierr v1.9.0
go.uber.org/zap v1.24.0
gopkg.in/yaml.v3 v3.0.1
storj.io/drpc v0.0.32
)
require (
github.com/VividCortex/ewma v1.2.0 // indirect
github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a // indirect
github.com/anytypeio/go-anytype-infrastructure-experiments/consensus v0.0.0-20221217135026-4eba413631b3 // indirect
github.com/anytypeio/go-chash v0.0.0-20220629194632-4ad1154fe232 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/dgraph-io/ristretto v0.1.1 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/fogleman/gg v1.3.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/goccy/go-graphviz v0.0.9 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
@ -33,9 +42,31 @@ require (
github.com/golang/protobuf v1.5.2 // indirect
github.com/golang/snappy v0.0.3 // indirect
github.com/google/flatbuffers v1.12.1 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/hashicorp/golang-lru v0.5.4 // indirect
github.com/huandu/skiplist v1.2.0 // indirect
github.com/ipfs/go-cid v0.3.2 // indirect
github.com/ipfs/bbloom v0.0.4 // indirect
github.com/ipfs/go-bitfield v1.0.0 // indirect
github.com/ipfs/go-blockservice v0.5.0 // indirect
github.com/ipfs/go-datastore v0.6.0 // indirect
github.com/ipfs/go-ipfs-blockstore v1.2.0 // indirect
github.com/ipfs/go-ipfs-chunker v0.0.5 // indirect
github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 // indirect
github.com/ipfs/go-ipfs-files v0.0.3 // indirect
github.com/ipfs/go-ipfs-posinfo v0.0.1 // indirect
github.com/ipfs/go-ipfs-util v0.0.2 // indirect
github.com/ipfs/go-ipld-cbor v0.0.6 // indirect
github.com/ipfs/go-ipld-legacy v0.1.1 // indirect
github.com/ipfs/go-log v1.0.5 // indirect
github.com/ipfs/go-log/v2 v2.5.1 // indirect
github.com/ipfs/go-merkledag v0.8.1 // indirect
github.com/ipfs/go-metrics-interface v0.0.1 // indirect
github.com/ipfs/go-unixfs v0.4.1 // indirect
github.com/ipfs/go-verifcid v0.0.2 // indirect
github.com/ipld/go-codec-dagpb v1.5.0 // indirect
github.com/ipld/go-ipld-prime v0.19.0 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect
github.com/klauspost/compress v1.15.10 // indirect
github.com/klauspost/cpuid/v2 v2.2.2 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
@ -53,25 +84,31 @@ require (
github.com/multiformats/go-multicodec v0.6.0 // indirect
github.com/multiformats/go-multihash v0.2.1 // indirect
github.com/multiformats/go-varint v0.0.7 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/polydawn/refmt v0.89.0 // indirect
github.com/prometheus/client_golang v1.13.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.37.0 // indirect
github.com/prometheus/procfs v0.8.0 // indirect
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/whyrusleeping/cbor-gen v0.0.0-20221213004032-c09a31a7d5e8 // indirect
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect
github.com/zeebo/blake3 v0.2.3 // indirect
github.com/zeebo/errs v1.3.0 // indirect
go.opencensus.io v0.23.0 // indirect
go.opentelemetry.io/otel v1.11.2 // indirect
go.opentelemetry.io/otel/trace v1.11.2 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/crypto v0.4.0 // indirect
golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b // indirect
golang.org/x/image v0.0.0-20200119044424-58c23975cae1 // indirect
golang.org/x/net v0.3.0 // indirect
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
golang.org/x/sys v0.3.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/blake3 v1.1.7 // indirect
)

View file

@ -42,6 +42,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a h1:E/8AP5dFtMhl5KPJz66Kt9G0n+7Sn41Fy1wv9/jHOrc=
github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
github.com/anytypeio/go-anytype-infrastructure-experiments/consensus v0.0.0-20221217135026-4eba413631b3 h1:yIyGIb7bRkEngKtQ0Ja5bome2SEnErwTaEvR8dA/WtU=
github.com/anytypeio/go-anytype-infrastructure-experiments/consensus v0.0.0-20221217135026-4eba413631b3/go.mod h1:w0i62cRB2jVpjFb2CpPNj5J+ihKqqmBBG9X2+Odekjw=
github.com/anytypeio/go-chash v0.0.0-20220629194632-4ad1154fe232 h1:kMPPZYmJgbs4AJfodbg2OCXg5cp+9LPAJcLZJqmcghk=
@ -73,6 +75,8 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
github.com/corona10/goimagehash v1.0.2 h1:pUfB0LnsJASMPGEZLj7tGY251vF+qLGqOgEP4rUs6kA=
github.com/corona10/goimagehash v1.0.2/go.mod h1:/l9umBhvcHQXVtQO1V6Gp1yD20STawkhRnnX0D1bvVI=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@ -93,6 +97,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@ -105,10 +111,17 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0=
github.com/goccy/go-graphviz v0.0.9 h1:s/FMMJ1Joj6La3S5ApO3Jk2cwM4LpXECC2muFx3IPQQ=
github.com/goccy/go-graphviz v0.0.9/go.mod h1:wXVsXxmyMQU6TN3zGRttjNn3h+iCAS7xQFC6TlNvLhk=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
@ -127,6 +140,7 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@ -160,8 +174,9 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
@ -172,22 +187,106 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c=
github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U=
github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw=
github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w=
github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
github.com/ipfs/go-bitfield v1.0.0 h1:y/XHm2GEmD9wKngheWNNCNL0pzrWXZwCdQGv1ikXknQ=
github.com/ipfs/go-bitfield v1.0.0/go.mod h1:N/UiujQy+K+ceU1EF5EkVd1TNqevLrCQMIcAEPrdtus=
github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=
github.com/ipfs/go-block-format v0.0.3 h1:r8t66QstRp/pd/or4dpnbVfXT5Gt7lOqRvC+/dDTpMc=
github.com/ipfs/go-block-format v0.0.3/go.mod h1:4LmD4ZUw0mhO+JSKdpWwrzATiEfM7WWgQ8H5l6P8MVk=
github.com/ipfs/go-blockservice v0.5.0 h1:B2mwhhhVQl2ntW2EIpaWPwSCxSuqr5fFA93Ms4bYLEY=
github.com/ipfs/go-blockservice v0.5.0/go.mod h1:W6brZ5k20AehbmERplmERn8o2Ni3ZZubvAxaIUeaT6w=
github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M=
github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog=
github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk=
github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk=
github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8=
github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk=
github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
github.com/ipfs/go-ipfs-blockstore v1.2.0 h1:n3WTeJ4LdICWs/0VSfjHrlqpPpl6MZ+ySd3j8qz0ykw=
github.com/ipfs/go-ipfs-blockstore v1.2.0/go.mod h1:eh8eTFLiINYNSNawfZOC7HOxNTxpB1PFuA5E1m/7exE=
github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ=
github.com/ipfs/go-ipfs-chunker v0.0.5 h1:ojCf7HV/m+uS2vhUGWcogIIxiO5ubl5O57Q7NapWLY8=
github.com/ipfs/go-ipfs-chunker v0.0.5/go.mod h1:jhgdF8vxRHycr00k13FM8Y0E+6BoalYeobXmUyTreP8=
github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw=
github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ=
github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q=
github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 h1:8lMSJmKogZYNo2jjhUs0izT+dck05pqUw4mWNW9Pw6Y=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0/go.mod h1:z6+RhJuDQbqKguVyslSOuVDhqF9JtTrO3eptSAiW2/Y=
github.com/ipfs/go-ipfs-exchange-offline v0.3.0 h1:c/Dg8GDPzixGd0MC8Jh6mjOwU57uYokgWRFidfvEkuA=
github.com/ipfs/go-ipfs-files v0.0.3 h1:ME+QnC3uOyla1ciRPezDW0ynQYK2ikOh9OCKAEg4uUA=
github.com/ipfs/go-ipfs-files v0.0.3/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4=
github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs=
github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A=
github.com/ipfs/go-ipfs-pq v0.0.2 h1:e1vOOW6MuOwG2lqxcLA+wEn93i/9laCY8sXAw76jFOY=
github.com/ipfs/go-ipfs-routing v0.3.0 h1:9W/W3N+g+y4ZDeffSgqhgo7BsBSJwPMcyssET9OWevc=
github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8=
github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ=
github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0=
github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA=
github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms=
github.com/ipfs/go-ipld-format v0.2.0/go.mod h1:3l3C1uKoadTPbeNfrDi+xMInYKlx2Cvg1BuydPSdzQs=
github.com/ipfs/go-ipld-format v0.3.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM=
github.com/ipfs/go-ipld-format v0.4.0 h1:yqJSaJftjmjc9jEOFYlpkwOLVKv68OD27jFLlSghBlQ=
github.com/ipfs/go-ipld-format v0.4.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM=
github.com/ipfs/go-ipld-legacy v0.1.1 h1:BvD8PEuqwBHLTKqlGFTHSwrwFOMkVESEvwIYwR2cdcc=
github.com/ipfs/go-ipld-legacy v0.1.1/go.mod h1:8AyKFCjgRPsQFf15ZQgDB8Din4DML/fOmKZkkFkrIEg=
github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=
github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8=
github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo=
github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g=
github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
github.com/ipfs/go-merkledag v0.8.1 h1:N3yrqSre/ffvdwtHL4MXy0n7XH+VzN8DlzDrJySPa94=
github.com/ipfs/go-merkledag v0.8.1/go.mod h1:uYUlWE34GhbcTjGuUDEcdPzsEtOdnOupL64NgSRjmWI=
github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
github.com/ipfs/go-peertaskqueue v0.8.0 h1:JyNO144tfu9bx6Hpo119zvbEL9iQ760FHOiJYsUjqaU=
github.com/ipfs/go-unixfs v0.4.1 h1:nmJFKvF+khK03PIWyCxxydD/nkQX315NZDcgvRqMXf0=
github.com/ipfs/go-unixfs v0.4.1/go.mod h1:2SUDFhUSzrcL408B1qpIkJJ5HznnyTzweViPXUAvkNg=
github.com/ipfs/go-verifcid v0.0.2 h1:XPnUv0XmdH+ZIhLGKg6U2vaPaRDXb9urMyNVCE7uvTs=
github.com/ipfs/go-verifcid v0.0.2/go.mod h1:40cD9x1y4OWnFXbLNJYRe7MpNvWlMn3LZAG5Wb4xnPU=
github.com/ipld/go-codec-dagpb v1.5.0 h1:RspDRdsJpLfgCI0ONhTAnbHdySGD4t+LHSPK4X1+R0k=
github.com/ipld/go-codec-dagpb v1.5.0/go.mod h1:0yRIutEFD8o1DGVqw4RSHh+BUTlJA9XWldxaaWR/o4g=
github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8=
github.com/ipld/go-ipld-prime v0.19.0 h1:5axC7rJmPc17Emw6TelxGwnzALk0PdupZ2oj2roDj04=
github.com/ipld/go-ipld-prime v0.19.0/go.mod h1:Q9j3BaVXwaA3o5JUDNvptDDr/x8+F7FG6XJ8WI3ILg4=
github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA=
github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o=
github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@ -196,8 +295,12 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
@ -206,24 +309,36 @@ github.com/klauspost/compress v1.15.10/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrD
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
github.com/klauspost/cpuid/v2 v2.1.1 h1:t0wUqjowdm8ezddV5k0tLWVklVuvLJpoHeb4WBdydm0=
github.com/klauspost/cpuid/v2 v2.1.1/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/klauspost/cpuid/v2 v2.2.2 h1:xPMwiykqNK9VK0NYC3+jTMYv9I6Vl3YdjZgPZKG3zO0=
github.com/klauspost/cpuid/v2 v2.2.2/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM=
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg=
github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c=
github.com/libp2p/go-libp2p v0.23.2 h1:yqyTeKQJyofWXxEv/eEVUvOrGdt/9x+0PIQ4N1kaxmE=
github.com/libp2p/go-libp2p v0.23.2/go.mod h1:s9DEa5NLR4g+LZS+md5uGU4emjMWFiqkZr6hBTY8UxI=
github.com/libp2p/go-libp2p-asn-util v0.2.0 h1:rg3+Os8jbnO5DxkC7K/Utdi+DkY3q/d1/1q+8WeNAsw=
github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0=
github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
github.com/libp2p/go-msgio v0.2.0 h1:W6shmB+FeynDrUVl2dgFQvzfBZcXiyqY4VmpQLu9FqU=
github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg=
github.com/libp2p/go-netroute v0.2.0 h1:0FpsbsvuSnAhXFnCY0VLFbJOzaK0VnP0r1QT/o4nWRE=
github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo=
github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
@ -231,6 +346,10 @@ github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o
github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA=
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@ -240,28 +359,46 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=
github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=
github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI=
github.com/multiformats/go-base36 v0.1.0 h1:JR6TyF7JjGd3m6FbLU2cOxhC0Li8z8dLNGQ89tUg4F4=
github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM=
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
github.com/multiformats/go-multiaddr v0.7.0 h1:gskHcdaCyPtp9XskVwtvEeQOG465sCohbQIirSyqxrc=
github.com/multiformats/go-multiaddr v0.7.0/go.mod h1:Fs50eBDWvZu+l3/9S6xAE7ZYj6yhxlvaVZjakWN7xRs=
github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A=
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=
github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs=
github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc=
github.com/multiformats/go-multibase v0.1.1 h1:3ASCDsuLX8+j4kx58qnJ4YFq/JWTJpCyDW27ztsVTOI=
github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8=
github.com/multiformats/go-multicodec v0.6.0 h1:KhH2kSuCARyuJraYMFxrNO3DqIaYhOdS039kbhgVwpE=
github.com/multiformats/go-multicodec v0.6.0/go.mod h1:GUC8upxSBE4oG+q3kWZRw/+6yC1BqO550bjhWsJbZlw=
github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U=
github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg=
github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108=
github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc=
github.com/multiformats/go-varint v0.0.6 h1:gk85QWKxh3TazbLxED/NlDVv8+q+ReFJk7Y2W/KhfNY=
github.com/multiformats/go-multistream v0.3.3 h1:d5PZpjwRgVlbwfdTDjife7XszfZd8KYWfROYFlGcR8o=
github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8=
github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 h1:BvoENQQU+fZ9uukda/RzCAL/191HHwJA5b13R6diVlY=
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -269,6 +406,10 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o=
github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4=
github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
@ -295,10 +436,20 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU=
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
@ -320,10 +471,22 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/warpfork/go-testmark v0.10.0 h1:E86YlUMYfwIacEsQGlnTvjk1IgYkyTGjPhF0RnwTCmw=
github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ=
github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw=
github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI=
github.com/whyrusleeping/cbor-gen v0.0.0-20221213004032-c09a31a7d5e8 h1:wGJHI5UqTlrtrgpA5kaQACNegkEHGhG/6Lmc7QORfqI=
github.com/whyrusleeping/cbor-gen v0.0.0-20221213004032-c09a31a7d5e8/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ=
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E=
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8=
github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@ -346,29 +509,37 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0=
go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI=
go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0=
go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA=
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY=
go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY=
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -405,11 +576,13 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@ -439,8 +612,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220920183852-bf014ff85ad5 h1:KafLifaRFIuSJ5C+7CyFJOF9haxKNC1CEIDk8GX6X0k=
golang.org/x/net v0.0.0-20220920183852-bf014ff85ad5/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk=
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -460,11 +632,16 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -474,6 +651,7 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -495,6 +673,7 @@ golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@ -505,9 +684,10 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc=
golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -520,12 +700,14 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
@ -535,6 +717,8 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@ -562,11 +746,15 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
@ -658,6 +846,7 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View file

@ -4,7 +4,6 @@ package accountservice
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
)
const CName = "common.accountservice"
@ -14,6 +13,13 @@ type Service interface {
Account() *accountdata.AccountData
}
type ConfigGetter interface {
GetAccount() config.Account
type Config struct {
PeerId string `yaml:"peerId"`
PeerKey string `yaml:"peerKey"`
SigningKey string `yaml:"signingKey"`
EncryptionKey string `yaml:"encryptionKey"`
}
type ConfigGetter interface {
GetAccount() Config
}

View file

@ -0,0 +1,15 @@
package mock_accountservice
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/golang/mock/gomock"
)
func NewAccountServiceWithAccount(ctrl *gomock.Controller, acc *accountdata.AccountData) *MockService {
mock := NewMockService(ctrl)
mock.EXPECT().Name().Return(accountservice.CName).AnyTimes()
mock.EXPECT().Init(gomock.Any()).AnyTimes()
mock.EXPECT().Account().Return(acc).AnyTimes()
return mock
}

View file

@ -1,17 +1,14 @@
package config
package logger
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"go.uber.org/zap"
)
import "go.uber.org/zap"
type Log struct {
type Config struct {
Production bool `yaml:"production"`
DefaultLevel string `yaml:"defaultLevel"`
NamedLevels map[string]string `yaml:"namedLevels"`
}
func (l Log) ApplyGlobal() {
func (l Config) ApplyGlobal() {
var conf zap.Config
if l.Production {
conf = zap.NewProductionConfig()
@ -29,8 +26,8 @@ func (l Log) ApplyGlobal() {
}
defaultLogger, err := conf.Build()
if err != nil {
logger.Default().Fatal("can't build logger", zap.Error(err))
Default().Fatal("can't build logger", zap.Error(err))
}
logger.SetDefault(defaultLogger)
logger.SetNamedLevels(levels)
SetDefault(defaultLogger)
SetNamedLevels(levels)
}

View file

@ -1,29 +1,30 @@
package nodeconf
package confconnector
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/slice"
)
type ConfConnector interface {
Configuration() Configuration
Configuration() nodeconf.Configuration
Pool() pool.Pool
GetResponsiblePeers(ctx context.Context, spaceId string) ([]peer.Peer, error)
DialInactiveResponsiblePeers(ctx context.Context, spaceId string, activeNodeIds []string) ([]peer.Peer, error)
}
type confConnector struct {
conf Configuration
conf nodeconf.Configuration
pool pool.Pool
}
func NewConfConnector(conf Configuration, pool pool.Pool) ConfConnector {
func NewConfConnector(conf nodeconf.Configuration, pool pool.Pool) ConfConnector {
return &confConnector{conf: conf, pool: pool}
}
func (s *confConnector) Configuration() Configuration {
func (s *confConnector) Configuration() nodeconf.Configuration {
// TODO: think about rewriting this, because these deps should not be exposed
return s.conf
}

View file

@ -0,0 +1,10 @@
package commonspace
type ConfigGetter interface {
GetSpace() Config
}
type Config struct {
GCTTL int `yaml:"gcTTL"`
SyncPeriod int `yaml:"syncPeriod"`
}

View file

@ -3,6 +3,7 @@ package headsync
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/synctree"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settings/deletionstate"
@ -11,7 +12,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/rpcerr"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"go.uber.org/zap"
"time"
)
@ -26,7 +26,7 @@ type DiffSyncer interface {
func newDiffSyncer(
spaceId string,
diff ldiff.Diff,
confConnector nodeconf.ConfConnector,
confConnector confconnector.ConfConnector,
cache treegetter.TreeGetter,
storage spacestorage.SpaceStorage,
clientFactory spacesyncproto.ClientFactory,
@ -47,7 +47,7 @@ func newDiffSyncer(
type diffSyncer struct {
spaceId string
diff ldiff.Diff
confConnector nodeconf.ConfConnector
confConnector confconnector.ConfConnector
cache treegetter.TreeGetter
storage spacestorage.SpaceStorage
clientFactory spacesyncproto.ClientFactory

View file

@ -4,12 +4,12 @@ package headsync
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ldiff"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settings/deletionstate"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/periodicsync"
"go.uber.org/zap"
"strings"
@ -47,7 +47,7 @@ func NewHeadSync(
spaceId string,
syncPeriod int,
storage spacestorage.SpaceStorage,
confConnector nodeconf.ConfConnector,
confConnector confconnector.ConfConnector,
cache treegetter.TreeGetter,
syncStatus syncstatus.StatusUpdater,
log *zap.Logger) HeadSync {

View file

@ -10,4 +10,5 @@ type AccountData struct { // TODO: create a convenient constructor for this
PeerKey signingkey.PrivKey
SignKey signingkey.PrivKey
EncKey encryptionkey.PrivKey
PeerId string
}

View file

@ -2,6 +2,7 @@
package synctree
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/objectsync"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
@ -19,7 +20,7 @@ type syncClient struct {
objectsync.StreamPool
RequestFactory
spaceId string
connector nodeconf.ConfConnector
connector confconnector.ConfConnector
configuration nodeconf.Configuration
checker objectsync.StreamChecker

View file

@ -5,10 +5,10 @@ import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/ocache"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/syncobjectgetter"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/objectsync/synchandler"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/periodicsync"
"go.uber.org/zap"
"time"
@ -42,7 +42,7 @@ type objectSync struct {
func NewObjectSync(
spaceId string,
confConnector nodeconf.ConfConnector,
confConnector confconnector.ConfConnector,
periodicSeconds int) (objectSync ObjectSync) {
streamPool := newStreamPool(func(ctx context.Context, senderId string, message *spacesyncproto.ObjectSyncMessage) (err error) {
return objectSync.HandleMessage(ctx, senderId, message)

View file

@ -3,10 +3,10 @@ package objectsync
import (
"context"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/rpcerr"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"go.uber.org/atomic"
"go.uber.org/zap"
"golang.org/x/exp/slices"
@ -20,7 +20,7 @@ type StreamChecker interface {
type streamChecker struct {
spaceId string
connector nodeconf.ConfConnector
connector confconnector.ConfConnector
streamPool StreamPool
clientFactory spacesyncproto.ClientFactory
log *zap.Logger
@ -32,7 +32,7 @@ const streamCheckerInterval = time.Second * 10
func NewStreamChecker(
spaceId string,
connector nodeconf.ConfConnector,
connector confconnector.ConfConnector,
streamPool StreamPool,
clientFactory spacesyncproto.ClientFactory,
syncCtx context.Context,

View file

@ -5,6 +5,7 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/confconnector"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/headsync"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/acl/aclrecordproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/tree/treechangeproto"
@ -13,7 +14,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/syncstatus"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
@ -39,7 +39,7 @@ type SpaceService interface {
}
type spaceService struct {
config config.Space
config Config
account accountservice.Service
configurationService nodeconf.Service
storageProvider spacestorage.SpaceStorageProvider
@ -48,7 +48,7 @@ type spaceService struct {
}
func (s *spaceService) Init(a *app.App) (err error) {
s.config = a.MustComponent(config.CName).(*config.Config).Space
s.config = a.MustComponent("config").(ConfigGetter).GetSpace()
s.account = a.MustComponent(accountservice.CName).(accountservice.Service)
s.storageProvider = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorageProvider)
s.configurationService = a.MustComponent(nodeconf.CName).(nodeconf.Service)
@ -108,7 +108,7 @@ func (s *spaceService) NewSpace(ctx context.Context, id string) (Space, error) {
}
lastConfiguration := s.configurationService.GetLast()
confConnector := nodeconf.NewConfConnector(lastConfiguration, s.pool)
confConnector := confconnector.NewConfConnector(lastConfiguration, s.pool)
syncStatus := syncstatus.NewNoOpSyncStatus()
// this will work only for clients, not the best solution, but...

View file

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

View file

@ -1,5 +0,0 @@
package config
type Anytype struct {
SwarmKey string `yaml:"swarmKey"`
}

View file

@ -1,5 +0,0 @@
package config
type APIServer struct {
Port string `yaml:"port"`
}

View file

@ -1,65 +0,0 @@
package config
import (
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"gopkg.in/yaml.v3"
"io/ioutil"
)
const CName = "config"
func NewFromFile(path string) (c *Config, err error) {
c = &Config{}
data, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
if err = yaml.Unmarshal(data, c); err != nil {
return nil, err
}
return
}
type Config struct {
Anytype Anytype `yaml:"anytype"`
GrpcServer GrpcServer `yaml:"grpcServer"`
Account Account `yaml:"account"`
APIServer GrpcServer `yaml:"apiServer"`
Nodes []Node `yaml:"nodes"`
Space Space `yaml:"space"`
Storage Storage `yaml:"storage"`
Metric Metric `yaml:"metric"`
Log Log `yaml:"log"`
Stream Stream `yaml:"stream"`
}
func (c *Config) Init(a *app.App) (err error) {
logger.NewNamed("config").Info(fmt.Sprint(c.Space))
return
}
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) GetStream() Stream {
return c.Stream
}
func (c Config) GetAccount() Account {
return c.Account
}
func (c Config) GetMetric() Metric {
return c.Metric
}

View file

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

View file

@ -1,5 +0,0 @@
package config
type Metric struct {
Addr string `yaml:"addr"`
}

View file

@ -1,14 +0,0 @@
package config
type PeerList struct {
MyId struct {
PeerId string `yaml:"peerId"`
PrivKey string `yaml:"privKey"`
} `yaml:"myId"`
Remote []PeerRemote `yaml:"remote"`
}
type PeerRemote struct {
PeerId string `yaml:"peerId"`
Addr string `yaml:"addr"`
}

View file

@ -1,6 +0,0 @@
package config
type Space struct {
GCTTL int `yaml:"gcTTL"`
SyncPeriod int `yaml:"syncPeriod"`
}

View file

@ -1,5 +0,0 @@
package config
type Storage struct {
Path string `yaml:"path"`
}

View file

@ -1,6 +0,0 @@
package config
type Stream struct {
TimeoutMilliseconds int `yaml:"timeoutMilliseconds"`
MaxMsgSizeMb int `yaml:"maxMsgSizeMb"`
}

9
common/metric/config.go Normal file
View file

@ -0,0 +1,9 @@
package metric
type configSource interface {
GetMetric() Config
}
type Config struct {
Addr string `yaml:"addr"`
}

View file

@ -3,7 +3,6 @@ package metric
import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
config2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/collectors"
"github.com/prometheus/client_golang/prometheus/promhttp"
@ -24,16 +23,12 @@ type Metric interface {
type metric struct {
registry *prometheus.Registry
config config2.Metric
}
type configSource interface {
GetMetric() config2.Metric
config Config
}
func (m *metric) Init(a *app.App) (err error) {
m.registry = prometheus.NewRegistry()
m.config = a.MustComponent(config2.CName).(configSource).GetMetric()
m.config = a.MustComponent("config").(configSource).GetMetric()
return nil
}

19
common/net/config.go Normal file
View file

@ -0,0 +1,19 @@
package net
type ConfigGetter interface {
GetNet() Config
}
type Config struct {
Server ServerConfig `yaml:"server"`
Stream StreamConfig `yaml:"stream"`
}
type ServerConfig struct {
ListenAddrs []string `yaml:"listenAddrs"`
}
type StreamConfig struct {
TimeoutMilliseconds int `yaml:"timeoutMilliseconds"`
MaxMsgSizeMb int `yaml:"maxMsgSizeMb"`
}

View file

@ -5,10 +5,11 @@ import (
"errors"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
net2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/peer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secureservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/timeoutconn"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/libp2p/go-libp2p/core/sec"
"go.uber.org/zap"
"net"
@ -38,7 +39,7 @@ type Dialer interface {
type dialer struct {
transport secureservice.SecureService
config *config.Config
config net2.Config
peerAddrs map[string][]string
mu sync.RWMutex
@ -46,11 +47,8 @@ type dialer struct {
func (d *dialer) Init(a *app.App) (err error) {
d.transport = a.MustComponent(secureservice.CName).(secureservice.SecureService)
d.config = a.MustComponent(config.CName).(*config.Config)
d.peerAddrs = map[string][]string{}
for _, n := range d.config.Nodes {
d.peerAddrs[n.PeerId] = []string{n.Address}
}
d.peerAddrs = a.MustComponent(nodeconf.CName).(nodeconf.Service).GetLast().Addresses()
d.config = a.MustComponent("config").(net2.ConfigGetter).GetNet()
return
}

View file

@ -4,8 +4,8 @@ import (
"context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secureservice"
"github.com/prometheus/client_golang/prometheus"
"storj.io/drpc"
@ -24,20 +24,15 @@ type DRPCServer interface {
drpc.Mux
}
type configGetter interface {
GetGRPCServer() config.GrpcServer
GetStream() config.Stream
}
type drpcServer struct {
config configGetter
config net.Config
metric metric.Metric
transport secureservice.SecureService
*BaseDrpcServer
}
func (s *drpcServer) Init(a *app.App) (err error) {
s.config = a.MustComponent(config.CName).(configGetter)
s.config = a.MustComponent("config").(net.ConfigGetter).GetNet()
s.metric = a.MustComponent(metric.CName).(metric.Metric)
s.transport = a.MustComponent(secureservice.CName).(secureservice.SecureService)
return nil
@ -63,9 +58,9 @@ func (s *drpcServer) Run(ctx context.Context) (err error) {
return
}
params := Params{
BufferSizeMb: s.config.GetStream().MaxMsgSizeMb,
TimeoutMillis: s.config.GetStream().TimeoutMilliseconds,
ListenAddrs: s.config.GetGRPCServer().ListenAddrs,
BufferSizeMb: s.config.Stream.MaxMsgSizeMb,
TimeoutMillis: s.config.Stream.TimeoutMilliseconds,
ListenAddrs: s.config.Server.ListenAddrs,
Wrapper: func(handler drpc.Handler) drpc.Handler {
return &metric.PrometheusDRPC{
Handler: handler,

View file

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

View file

@ -1,4 +1,4 @@
package config
package nodeconf
type NodeType string
@ -8,15 +8,19 @@ const (
NodeTypeFile NodeType = "file"
)
type Node struct {
type configGetter interface {
GetNodes() []NodeConfig
}
type NodeConfig struct {
PeerId string `yaml:"peerId"`
Address string `yaml:"address"`
Addresses []string `yaml:"address"`
SigningKey string `yaml:"signingKey,omitempty"`
EncryptionKey string `yaml:"encryptionKey,omitempty"`
Types []NodeType `yaml:"types,omitempty"`
}
func (n Node) HasType(t NodeType) bool {
func (n NodeConfig) HasType(t NodeType) bool {
for _, nt := range n.Types {
if nt == t {
return true

View file

@ -16,6 +16,8 @@ type Configuration interface {
FilePeers() []string
// ConsensusPeers returns list of consensusnodes
ConsensusPeers() []string
// Addresses returns map[peerId][]addr with connection addresses for all known nodes
Addresses() map[string][]string
}
type configuration struct {
@ -24,6 +26,7 @@ type configuration struct {
filePeers []string
consensusPeers []string
chash chash.CHash
allMembers []NodeConfig
}
func (c *configuration) Id() string {
@ -57,3 +60,11 @@ func (c *configuration) FilePeers() []string {
func (c *configuration) ConsensusPeers() []string {
return c.consensusPeers
}
func (c *configuration) Addresses() map[string][]string {
res := make(map[string][]string)
for _, m := range c.allMembers {
res[m.PeerId] = m.Addresses
}
return res
}

View file

@ -1,9 +1,9 @@
package nodeconf
import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
@ -35,7 +35,7 @@ type service struct {
}
type Node struct {
Address string
Addresses []string
PeerId string
SigningKey signingkey.PubKey
EncryptionKey encryptionkey.PubKey
@ -50,8 +50,8 @@ func (n *Node) Capacity() float64 {
}
func (s *service) Init(a *app.App) (err error) {
conf := a.MustComponent(config.CName).(*config.Config)
s.accountId = conf.Account.PeerId
nodesConf := a.MustComponent("config").(configGetter).GetNodes()
s.accountId = a.MustComponent(commonaccount.CName).(commonaccount.Service).Account().PeerId
fileConfig := &configuration{
id: "config",
@ -63,9 +63,10 @@ func (s *service) Init(a *app.App) (err error) {
}); err != nil {
return
}
members := make([]chash.Member, 0, len(conf.Nodes))
for _, n := range conf.Nodes {
if n.HasType(config.NodeTypeTree) {
members := make([]chash.Member, 0, len(nodesConf))
for _, n := range nodesConf {
if n.HasType(NodeTypeTree) {
var member *Node
member, err = nodeFromConfigNode(n)
if err != nil {
@ -76,12 +77,13 @@ func (s *service) Init(a *app.App) (err error) {
if n.PeerId == s.accountId {
continue
}
if n.HasType(config.NodeTypeConsensus) {
if n.HasType(NodeTypeConsensus) {
fileConfig.consensusPeers = append(fileConfig.consensusPeers, n.PeerId)
}
if n.HasType(config.NodeTypeFile) {
if n.HasType(NodeTypeFile) {
fileConfig.filePeers = append(fileConfig.filePeers, n.PeerId)
}
fileConfig.allMembers = append(fileConfig.allMembers, n)
}
if err = fileConfig.chash.AddMembers(members...); err != nil {
return
@ -103,8 +105,7 @@ func (s *service) GetById(id string) Configuration {
panic("implement me")
}
func nodeFromConfigNode(
n config.Node) (*Node, error) {
func nodeFromConfigNode(n NodeConfig) (*Node, error) {
decodedSigningKey, err := keys.DecodeKeyFromString(
n.SigningKey,
signingkey.UnmarshalEd25519PrivateKey,
@ -122,7 +123,7 @@ func nodeFromConfigNode(
}
return &Node{
Address: n.Address,
Addresses: n.Addresses,
PeerId: n.PeerId,
SigningKey: decodedSigningKey.GetPublic(),
EncryptionKey: decodedEncryptionKey.GetPublic(),

View file

@ -6,7 +6,7 @@ proto:
build:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/consensus))
go build -v -o ../bin/consensus-node -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/cmd
go build -v -o ../bin/anytype-consensus -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/cmd
test:
go test ./... --cover
go test ./... --cover

View file

@ -4,7 +4,6 @@ import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
@ -24,7 +23,7 @@ func New() app.Component {
}
func (s *service) Init(a *app.App) (err error) {
acc := a.MustComponent(config.CName).(commonaccount.ConfigGetter).GetAccount()
acc := a.MustComponent("config").(commonaccount.ConfigGetter).GetAccount()
decodedEncryptionKey, err := keys.DecodeKeyFromString(
acc.EncryptionKey,

View file

@ -1,17 +1,20 @@
package config
import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
config2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"gopkg.in/yaml.v3"
"io/ioutil"
"os"
)
const CName = "config"
func NewFromFile(path string) (c *Config, err error) {
c = &Config{}
data, err := ioutil.ReadFile(path)
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
@ -22,12 +25,11 @@ func NewFromFile(path string) (c *Config, err error) {
}
type Config struct {
GrpcServer config2.GrpcServer `yaml:"grpcServer"`
Account config2.Account `yaml:"account"`
Mongo Mongo `yaml:"mongo"`
Metric config2.Metric `yaml:"metric"`
Log config2.Log `yaml:"log"`
Stream config2.Stream `yaml:"stream"`
GrpcServer net.Config `yaml:"grpcServer"`
Account commonaccount.Config `yaml:"account"`
Mongo Mongo `yaml:"mongo"`
Metric metric.Config `yaml:"metric"`
Log logger.Config `yaml:"log"`
}
func (c *Config) Init(a *app.App) (err error) {
@ -42,18 +44,14 @@ func (c Config) GetMongo() Mongo {
return c.Mongo
}
func (c Config) GetGRPCServer() config2.GrpcServer {
func (c Config) GetNet() net.Config {
return c.GrpcServer
}
func (c Config) GetStream() config2.Stream {
return c.Stream
}
func (c Config) GetAccount() config2.Account {
func (c Config) GetAccount() commonaccount.Config {
return c.Account
}
func (c Config) GetMetric() config2.Metric {
func (c Config) GetMetric() metric.Config {
return c.Metric
}

View file

@ -3,8 +3,9 @@ package consensusclient
import (
"context"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice/mock_accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/rpctest"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
@ -137,20 +138,21 @@ func newFixture(t *testing.T) *fixture {
fx.drpcTS = rpctest.NewTestServer()
require.NoError(t, consensusproto.DRPCRegisterConsensus(fx.drpcTS.Mux, fx.testServer))
fx.a.Register(fx.Service).
Register(mock_accountservice.NewAccountServiceWithAccount(fx.ctrl, &accountdata.AccountData{})).
Register(fx.nodeconf).
Register(rpctest.NewTestPool().WithServer(fx.drpcTS)).
Register(&config.Config{Nodes: []config.Node{
Register(&testConfig{Nodes: []nodeconf.NodeConfig{
{
PeerId: "c1",
Types: []config.NodeType{config.NodeTypeConsensus},
Types: []nodeconf.NodeType{nodeconf.NodeTypeConsensus},
},
{
PeerId: "c2",
Types: []config.NodeType{config.NodeTypeConsensus},
Types: []nodeconf.NodeType{nodeconf.NodeTypeConsensus},
},
{
PeerId: "c3",
Types: []config.NodeType{config.NodeTypeConsensus},
Types: []nodeconf.NodeType{nodeconf.NodeTypeConsensus},
},
}})
return fx
@ -240,3 +242,14 @@ func (t *testWatcher) AddConsensusError(err error) {
close(t.ready)
})
}
type testConfig struct {
Nodes []nodeconf.NodeConfig
}
func (t testConfig) GetNodes() []nodeconf.NodeConfig {
return t.Nodes
}
func (t *testConfig) Init(a *app.App) error { return nil }
func (t *testConfig) Name() string { return "config" }

View file

@ -1,51 +1,62 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4630
tls: false
server:
listenAddrs:
- 127.0.0.1:4630
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWAFkTthV9yfBHka2XZZ7obiCLeAxTcR1WkWABD894jZhz
peerKey: usEO/nvRwBM4Zb8jgWu7pJVpT2ed1IagN1kE5QZlXMIGgLrhNeoz6r2ITiQbx8dGSPxWxM5AwSaJqoGA+YOmSQ==
signingKey: blF7T3vxMI8qGvQCQpiMpEjKj6XfTKbAvhxgwJXKTBmw8wEcmvu8g0CjhT0lhXdguRB4PBcDeBrMal3Qla6JwQ==
encryptionKey: MIIEowIBAAKCAQEAq/wBUWRcbCNTIgQdlNfyMs+/aMIv5UYoVcJ2uEujzR+pIBnp3GwqBIa77UsfahR2eLQDVjSP4T0J5alTM7BPNgDE//E3gZZzIH8njttxu8FdfNmJv95Iy8QX3fl7MboC/NddZ8Lrw0BmrgUrcDAUK7x6UvYgYTsp2ID+PDbZCTbq1VqCihbS0TLsgR0eq+XF/fO4yaWPrdbOG7+3bKAObDs0MCObBpMlhuUrFYjnwgJLtct+8bElDncsMPckw4fK7ZjbEAbl3n6NtYefa2CXu1ce89avFTVqLU04FDH/jYUYvNuIVB3vdUpHLwpc4+CIDgM3ys/AI3dhmJYyQDAcEwIDAQABAoIBABrDDhlyOoeBP7BtX4UHzWJmvWw5u2Y78o7Vwc+PxZ9nq9OY9LEeC7PEm32jUPIa2QyTRmmlqDXuX5njLVU/vDO1DvKcwHxjwuptnuQ19Y632ipRV4QJvN4oV2ZtKeRlA44AnUJGLJWncdLmbwn4EUt0+rvqHMPEhxBvkiAgkMlEBuVXBWjukIZ3AZsu1DxF+3YkoWO/w9R5E+kGHPmkeYosKONTde6f44/u3OTQ9NA3udDEMIXzF+b1AMObX8aFambbtI7wOx4Dd85r7m1XYFdsoLre+7MHXIfoAUFJQi2Se89iJ9964/BVJEPHvG24LSE8qkn5aqgRr4CqwNPd7UECgYEA47jpfX+4NF9xWR5LzIv66Tfz5w44OeAN8JA8o5596NntbDSSF5dIhc0LJJatWysRLAx80op2L1g1rEzCBu/HEUqpRvjxqoKV/ZIT8nmwoPj3QxXQQzXZ32Pbv8wXoRloIGci4sYrXa2ZbrAct2W1j0DV9fQ3J1OLFuyOfgAAUEMCgYEAwVc8FXWCesW2U+vEu9SnPd5Yy7+D1oaeu6dGepU2s5Z6fPAQADG+WAlRJK1m+vaFOvYFl2nmnhnxLVZsKF9/CFo8KDtP0h8LT2AoS5AXi/OAcEnf5ix/WZp8vK4O73pFmibhSC48YwHz5+LJsZsr9GXoiYQqVDGQoF1Z2orS7/ECgYBmGBLmZwpowJmKwOBu1hsp0CITZvaiS+c0ARaOrJH6gSnGp1MQLI0hH6ptPvh9tTM/smGL6vPNihiWJNugTIPNJtH5tcZzEZS5WHKE9TXRFY2VkAQM/emuE5EDzjaRzVg3nsWvMfVjTF9Llr1pI7pgfUrvuAu6H+Rt5KSFrO53DQKBgQCoZo479rVmsG1GHXanT+s3tUJMfYycv3bk5ic6QFt8Axa/We3l7W3oinz14F9xOmYDXCS0pJYtoVTzc3ITnFIueUIqnLbCwy17vrp6TpBj4v09UOtHNfzak/gP89+ocSzMvw68ayFH73x9voiFPS4E2vq3RLoFyYI6W/UWqJJgUQKBgAjGoLIs2w6BlGAOOB3oxvj6YFpwsRH3E/zATtk08qC6BSuZIY6sIitIzizA3aXzZ4Xks0oMaUykArsix/5hk1akTFoH1IkCmHyq20UvZn15Py+8Z2gFzz97/6fvgeBg73ZtNrwDWv6pu633tuNs4jX4RlSusxm+cvJe/AvveAcT
peerId: 12D3KooWA3snvPWvocpXefCy8bVbLGNB7oFoKfyD4hfEcdGBz29K
peerKey: OL6vRR0FchBkYej86GgysuF+fBMF6l+J7Uz1Ku25VtoDdgvS3TWY8iXSp8DPDyKV+VCdQyRTomWrXdvkW1z6bg==
signingKey: 1ABIkla1rsphFo0PZPzOtVM5DKoJqDd+iIwN11WvFKLQ+10fWq2dZcAddmkyX7utEerlVFH7bqTPquqoVlUqpQ==
encryptionKey: MIIEogIBAAKCAQEArKfNFTVh2k3guPoy0aIHjKdwqmEMEKs4EJWu7kkXzYy1vqQQWb4pyTKoQ/3oaZuyXxib9dzgImIxzSyRXroIgODeapXA3lCR56zf+deJMGf7v/HJpDqK6K0IjJqOnXTKjY4uVcqsXDEFX3er+PunetZoVh3BFt8ZjfeJrfgQ0KN+21Ki7qiB9CuvEMOh4w0a62LitxMfxzK/sRYL8HDWU0m3p+kFPs5eLJOiRC1g9rE2NLtivwOhrNKkx1SaVV8E/4YwZ4guERvgVErzKhc1hFwHtjP+f2ZiIX7l2s0JspSEDyYCUCbEHFDcDEZvgLXjVzh/L18JwXL/gqe2zmd5CwIDAQABAoIBAEMocilRvmI/8K2DBMluESmw564eWacSMpig4I5neA7IMNmaz5FY2sAcKD9qQED0AwnidKfJ5pT5RQ3dzB3glvYqgdlLrt3K0TYglG6GXCKsD8y1rA1piCbBR5YJeHfeufsd1wAf+bNSjhh4YDhVCuxJAgSdRkIzPalvI+q7ly7QBaXJMDs0ywxCombKTnhsJGxMP4d34497J659iIi2T94RjO/vnFKKR73FyxGgcc8/zMzsovVwP/m+PC+d0cuqN6K/2F8bGBRCG684aS7CIjz1tuV4yfY2SsDc77V4Vwu6BJjl1UMeVb8vb16Fuw6j4lhjWsZ9Knpekh8vzTDJE+ECgYEAwX77PVGpb2cwoMzeF2bfIGggmLJHxG6xzcEfTXAImBssOePL+ce3svyECwXGDmqLmayL/N6rDpsu8kSnRGy0h7aYo3N1V+GNAk1QYs+2BjSCMCdpAbdC0/rgoobcAJwOGw4qxvvclxqLNPsV7AbrYA+/CJZsiJNGV9O8TOCSFrUCgYEA5G1s08EEoiVd4tPlphgho1cvsUHRT8iCUbmaNBhhP2ujbR74pg5M6ixFAfrX7FG5b0DzQ/PWDLjiBVyJP8z9NJGE9Ui3THOAumx8bX6J/KrV05bUeR3HE1I0h/5XBUVuqrEZnkwZZsFeWewP1wZGOZDERGhDMgLSMD3nUA3TaL8CgYAGlkMJQFlrQHEIWFELLOZVnRXW/OKyji4hWfytzy2LuAkWY2nTM/hN8IiyM10dqoTcE2KklhPuqFu9xZaIHsc6g33Iuqp49mWteWJOKtIAfhMcfor1kv6EZtr0zXB52NYmF6JfKb3FqxKoGBAT+9xRZdfT/ALv10uiu8OCPnbarQKBgB0+PP5m6XbwnbJaOj4nPLcyhDKHIIq8OqLHxgwBSwHZf9SKcH6hugsIm9UDDf19AOZTRFFgt/hs+tKA5Dk8vvWp44GbS4wIBWTYWp2R44xrOnCaEJ1oyIGatorqbq2IFADaJ1NynpXfD3snk2eNsBPSiq3PQzr1zX7Ljf9bpcL1AoGAEsnMJFnhOD/Lk8v5jR52cuEsi3Ua264JqVaqhTAoYNxoDS+PbUdKUVt7uCKfnHZnUV1Oug69yOqEsQX2JyncdRQ0MbwNHIoeBrdGUgT1MTW8tswRWlBqh4BKVVT2hQrrmlDiRdrwEnkiceDl38nHfnXPTXJoN34qqyCxcY6pmdU=
apiServer:
listenAddrs:
- 127.0.0.1:8090
tls: false
server:
listenAddrs:
- 127.0.0.1:8090
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
nodes:
- peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
address: 127.0.0.1:4430
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
- peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
address:
- 127.0.0.1:4430
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
types:
- tree
- peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
address: 127.0.0.1:4431
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
- peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
address:
- 127.0.0.1:4431
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
types:
- tree
- peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
address: 127.0.0.1:4432
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
- peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
address:
- 127.0.0.1:4432
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
types:
- tree
- peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
address: 127.0.0.1:4530
- peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
address:
- 127.0.0.1:4530
types:
- consensus
- peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
address: 127.0.0.1:4531
- peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
address:
- 127.0.0.1:4531
types:
- consensus
- peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
address: 127.0.0.1:4532
- peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
address:
- 127.0.0.1:4532
types:
- consensus
- peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
address: 127.0.0.1:4730
- peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
address:
- 127.0.0.1:4730
types:
- file
space:
@ -59,6 +70,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,51 +1,62 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4631
tls: false
server:
listenAddrs:
- 127.0.0.1:4631
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWBvTaK7tTMLDAtEGYGV9sn6TAXop95NmUUrsRSBghN5L9
peerKey: PreOE1Gf6hRD/SOF9xoLCt6vkegBenMuJaPP6ZFlZi0fRvjBCff16BOicdQjQvx4jtzoWj1NgqUeGXrzJAURDg==
signingKey: blF7T3vxMI8qGvQCQpiMpEjKj6XfTKbAvhxgwJXKTBmw8wEcmvu8g0CjhT0lhXdguRB4PBcDeBrMal3Qla6JwQ==
encryptionKey: MIIEowIBAAKCAQEAq/wBUWRcbCNTIgQdlNfyMs+/aMIv5UYoVcJ2uEujzR+pIBnp3GwqBIa77UsfahR2eLQDVjSP4T0J5alTM7BPNgDE//E3gZZzIH8njttxu8FdfNmJv95Iy8QX3fl7MboC/NddZ8Lrw0BmrgUrcDAUK7x6UvYgYTsp2ID+PDbZCTbq1VqCihbS0TLsgR0eq+XF/fO4yaWPrdbOG7+3bKAObDs0MCObBpMlhuUrFYjnwgJLtct+8bElDncsMPckw4fK7ZjbEAbl3n6NtYefa2CXu1ce89avFTVqLU04FDH/jYUYvNuIVB3vdUpHLwpc4+CIDgM3ys/AI3dhmJYyQDAcEwIDAQABAoIBABrDDhlyOoeBP7BtX4UHzWJmvWw5u2Y78o7Vwc+PxZ9nq9OY9LEeC7PEm32jUPIa2QyTRmmlqDXuX5njLVU/vDO1DvKcwHxjwuptnuQ19Y632ipRV4QJvN4oV2ZtKeRlA44AnUJGLJWncdLmbwn4EUt0+rvqHMPEhxBvkiAgkMlEBuVXBWjukIZ3AZsu1DxF+3YkoWO/w9R5E+kGHPmkeYosKONTde6f44/u3OTQ9NA3udDEMIXzF+b1AMObX8aFambbtI7wOx4Dd85r7m1XYFdsoLre+7MHXIfoAUFJQi2Se89iJ9964/BVJEPHvG24LSE8qkn5aqgRr4CqwNPd7UECgYEA47jpfX+4NF9xWR5LzIv66Tfz5w44OeAN8JA8o5596NntbDSSF5dIhc0LJJatWysRLAx80op2L1g1rEzCBu/HEUqpRvjxqoKV/ZIT8nmwoPj3QxXQQzXZ32Pbv8wXoRloIGci4sYrXa2ZbrAct2W1j0DV9fQ3J1OLFuyOfgAAUEMCgYEAwVc8FXWCesW2U+vEu9SnPd5Yy7+D1oaeu6dGepU2s5Z6fPAQADG+WAlRJK1m+vaFOvYFl2nmnhnxLVZsKF9/CFo8KDtP0h8LT2AoS5AXi/OAcEnf5ix/WZp8vK4O73pFmibhSC48YwHz5+LJsZsr9GXoiYQqVDGQoF1Z2orS7/ECgYBmGBLmZwpowJmKwOBu1hsp0CITZvaiS+c0ARaOrJH6gSnGp1MQLI0hH6ptPvh9tTM/smGL6vPNihiWJNugTIPNJtH5tcZzEZS5WHKE9TXRFY2VkAQM/emuE5EDzjaRzVg3nsWvMfVjTF9Llr1pI7pgfUrvuAu6H+Rt5KSFrO53DQKBgQCoZo479rVmsG1GHXanT+s3tUJMfYycv3bk5ic6QFt8Axa/We3l7W3oinz14F9xOmYDXCS0pJYtoVTzc3ITnFIueUIqnLbCwy17vrp6TpBj4v09UOtHNfzak/gP89+ocSzMvw68ayFH73x9voiFPS4E2vq3RLoFyYI6W/UWqJJgUQKBgAjGoLIs2w6BlGAOOB3oxvj6YFpwsRH3E/zATtk08qC6BSuZIY6sIitIzizA3aXzZ4Xks0oMaUykArsix/5hk1akTFoH1IkCmHyq20UvZn15Py+8Z2gFzz97/6fvgeBg73ZtNrwDWv6pu633tuNs4jX4RlSusxm+cvJe/AvveAcT
peerId: 12D3KooWMNDfQ3veiG7ZKPcQWWC8WWwuoUhKEwoUiertQjpFpqkM
peerKey: /5OcmokQbtnPAEJiRUuSdoW4M8Qe/UyD155FtDSlrDurmYY70d9v8jL6GaU/SO6PtaawiYJbzhIKrVOAtqtOKg==
signingKey: 1ABIkla1rsphFo0PZPzOtVM5DKoJqDd+iIwN11WvFKLQ+10fWq2dZcAddmkyX7utEerlVFH7bqTPquqoVlUqpQ==
encryptionKey: MIIEogIBAAKCAQEArKfNFTVh2k3guPoy0aIHjKdwqmEMEKs4EJWu7kkXzYy1vqQQWb4pyTKoQ/3oaZuyXxib9dzgImIxzSyRXroIgODeapXA3lCR56zf+deJMGf7v/HJpDqK6K0IjJqOnXTKjY4uVcqsXDEFX3er+PunetZoVh3BFt8ZjfeJrfgQ0KN+21Ki7qiB9CuvEMOh4w0a62LitxMfxzK/sRYL8HDWU0m3p+kFPs5eLJOiRC1g9rE2NLtivwOhrNKkx1SaVV8E/4YwZ4guERvgVErzKhc1hFwHtjP+f2ZiIX7l2s0JspSEDyYCUCbEHFDcDEZvgLXjVzh/L18JwXL/gqe2zmd5CwIDAQABAoIBAEMocilRvmI/8K2DBMluESmw564eWacSMpig4I5neA7IMNmaz5FY2sAcKD9qQED0AwnidKfJ5pT5RQ3dzB3glvYqgdlLrt3K0TYglG6GXCKsD8y1rA1piCbBR5YJeHfeufsd1wAf+bNSjhh4YDhVCuxJAgSdRkIzPalvI+q7ly7QBaXJMDs0ywxCombKTnhsJGxMP4d34497J659iIi2T94RjO/vnFKKR73FyxGgcc8/zMzsovVwP/m+PC+d0cuqN6K/2F8bGBRCG684aS7CIjz1tuV4yfY2SsDc77V4Vwu6BJjl1UMeVb8vb16Fuw6j4lhjWsZ9Knpekh8vzTDJE+ECgYEAwX77PVGpb2cwoMzeF2bfIGggmLJHxG6xzcEfTXAImBssOePL+ce3svyECwXGDmqLmayL/N6rDpsu8kSnRGy0h7aYo3N1V+GNAk1QYs+2BjSCMCdpAbdC0/rgoobcAJwOGw4qxvvclxqLNPsV7AbrYA+/CJZsiJNGV9O8TOCSFrUCgYEA5G1s08EEoiVd4tPlphgho1cvsUHRT8iCUbmaNBhhP2ujbR74pg5M6ixFAfrX7FG5b0DzQ/PWDLjiBVyJP8z9NJGE9Ui3THOAumx8bX6J/KrV05bUeR3HE1I0h/5XBUVuqrEZnkwZZsFeWewP1wZGOZDERGhDMgLSMD3nUA3TaL8CgYAGlkMJQFlrQHEIWFELLOZVnRXW/OKyji4hWfytzy2LuAkWY2nTM/hN8IiyM10dqoTcE2KklhPuqFu9xZaIHsc6g33Iuqp49mWteWJOKtIAfhMcfor1kv6EZtr0zXB52NYmF6JfKb3FqxKoGBAT+9xRZdfT/ALv10uiu8OCPnbarQKBgB0+PP5m6XbwnbJaOj4nPLcyhDKHIIq8OqLHxgwBSwHZf9SKcH6hugsIm9UDDf19AOZTRFFgt/hs+tKA5Dk8vvWp44GbS4wIBWTYWp2R44xrOnCaEJ1oyIGatorqbq2IFADaJ1NynpXfD3snk2eNsBPSiq3PQzr1zX7Ljf9bpcL1AoGAEsnMJFnhOD/Lk8v5jR52cuEsi3Ua264JqVaqhTAoYNxoDS+PbUdKUVt7uCKfnHZnUV1Oug69yOqEsQX2JyncdRQ0MbwNHIoeBrdGUgT1MTW8tswRWlBqh4BKVVT2hQrrmlDiRdrwEnkiceDl38nHfnXPTXJoN34qqyCxcY6pmdU=
apiServer:
listenAddrs:
- 127.0.0.1:8091
tls: false
server:
listenAddrs:
- 127.0.0.1:8091
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
nodes:
- peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
address: 127.0.0.1:4430
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
- peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
address:
- 127.0.0.1:4430
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
types:
- tree
- peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
address: 127.0.0.1:4431
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
- peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
address:
- 127.0.0.1:4431
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
types:
- tree
- peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
address: 127.0.0.1:4432
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
- peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
address:
- 127.0.0.1:4432
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
types:
- tree
- peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
address: 127.0.0.1:4530
- peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
address:
- 127.0.0.1:4530
types:
- consensus
- peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
address: 127.0.0.1:4531
- peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
address:
- 127.0.0.1:4531
types:
- consensus
- peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
address: 127.0.0.1:4532
- peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
address:
- 127.0.0.1:4532
types:
- consensus
- peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
address: 127.0.0.1:4730
- peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
address:
- 127.0.0.1:4730
types:
- file
space:
@ -59,6 +70,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,12 +1,15 @@
grpcServer:
listenAddrs:
- 127.0.0.1:4530
tls: false
server:
listenAddrs:
- 127.0.0.1:4530
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
peerKey: aIA/Xrt2sFC/nQYOYS/O4Uan6CBK6CFLl1fo8yFJkfyEGg4UQj4UXhYuLj3MaKd5Ts6f3zIZu60bpk7t2a9qEw==
signingKey: aIA/Xrt2sFC/nQYOYS/O4Uan6CBK6CFLl1fo8yFJkfyEGg4UQj4UXhYuLj3MaKd5Ts6f3zIZu60bpk7t2a9qEw==
encryptionKey: MIIEpAIBAAKCAQEA4FVIVzFvJJnc6Ik+xAYL8YHfgWLCBmKkPL9pzzaKbPNBzEkLLolt6BQQzg4dX23SbcN9KoBBO97v4vhp60xgQNtf0yT0IfBQhs59AYN5SK2HEsH+04EZY7vibPXSaVC+H+tFBgMwOc7ThSlcWyNWpz9be+AW9mFz9XN4RLs5hppESIn5BZVAWN05zm/suYkd+nVU3W+FapELLlqHgtiT+8UvMNP5eREj2pJ8QNlbg50dETAccnZkY6ouxklvD6AE42ENnvlPaZkRHF5yYRrwWwpFmGxAm8y3KFz4uM7ADQ5ndvNx8XdN7YFK7OV9cVfXhQrE2wh1TldrLrF9QSyxLQIDAQABAoIBAQC7Wd4hm9JzoeBhgAWgVmBxIQLVnvHlvUnmxgGLIcS3uuzPvI0PH41fjip+vEEBqslcDDCjZxuT8dssFkT3UwDsCYpc33bYRUgrXZX+xptq/ClbnBLC9wWKSqaOUzqX4+v04lrx64XCMZ5rjqBoKPo8kWhI61yiBb9/VSEzXZ1scCeba6hpjcO0s0Llwd+VfGth5Ur9jHqv9acreT0ZznRlHqcAb7Sh4gWcUHe4j5pEdw+JGrqacTmYnLmXCwqPdYt1IHWIqRAse8cAIi+zBkV2AaTpd5YMJ1s93KPxCjpjXQ5YFe1GV1pupuj3SD5GNN/gjRuitfPTv6wpgA42EEYhAoGBAPIWwIzwg9J/XtCDSuWFPGmJiB8S0NdHBA3U8xEZ2hIj+Os/w4e74P5EXRT+bbddDxEus6FwsmNU2Q94134K7ohOK613Nk0XGWtqjfuge6p5yGBcBNCtwi03M3RP6oLjxgrfQljybfWZ8SontIOT8W/bQL3qy5Otc2KNlWVkkghpAoGBAO05Vaucxxei5Xn2klfgN3dQCaX54ZsdS7Cffah4dZDRG/XkVrvUH0wL1O4h7kcT4bok8HyvazOf2PvZnCkDFXaaKEyyiHNebjZ+TFZEl0guCLPQys2TBk8KVyKoG8ZLpia7u8FiqLWa1VbOQAslKsUDts1/edP+5YC2V+vZJmolAoGBALjFLMllePdcR52V18A+ZNGYKtCsp8Dnbuyvr6VJuetGkWHcFPywJRVsUC8J0eu1lx5iKq/5N+4ggFsSvEZzSYO3RhbregJ0su4NMbjvz/NZZ9pD4Vj0hdPE4fzQUgj8l9cMd7MztUFS8YJfM6OJcykQiuVpI1/fbsW1kmUE0YChAoGABq2niMZIIJU4ap+TbR/lz9kT/HU1cb14ZQeIbRa/EI2igOClxHHrU6O9odqYr62SnD/v+UKi/PgSDr0IlWr9zrH2UnpwNvdAmQ4jLgaOT7zkB9Pn8bOi6NS8sUAUUBfPHKYKWh5h64LpYKE70lSAiL1bBxwAnQQ/B8maXgxl9XUCgYBMObufBmN2Rg2Fhq6a75mZwuH8RzR8SfTOT9v7X50mL/qBup16ALMe4c3F/SDCNwoXv4yikehBjMAKfQ89pp3djHY4OYQv1W5fH1GraoQPCua7jwzS+rooMuihWlXQgIcVOPDV1/YNYFbbnd6oUwz33j+ev8SB6c02IVbq70FY/g==
peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
peerKey: 5Btn70kUmMokNhSDhu3GzuFcbLxK9aRnoyb/zPWkLvu7svtWJZxQDJ5AWYZ4TxGhgb/GbZB1nPjp7Kz+V+J4OQ==
signingKey: 5Btn70kUmMokNhSDhu3GzuFcbLxK9aRnoyb/zPWkLvu7svtWJZxQDJ5AWYZ4TxGhgb/GbZB1nPjp7Kz+V+J4OQ==
encryptionKey: MIIEowIBAAKCAQEA8/3ITa/Tjr46B2UmrCqCBDctoSUMjJGeF8vAZMEQLsR4tn9ngDga9kk6eMwiBJ8u18gqe5ATNghLSkDENQ/tUehkFhZFHdbb/T3eNb3kjD22YFRXuoW/fGPD6BtVQu+ZpZ57u9OU9O51fPcit7DjNM2kBPRrleNJ49Ijye+h/BApCtUSiLEZ/Ivd+CCppnJzyLtokWyZY1VgwXkc5wq+iFXxXAtD6PfE/hNmopkYK9Hh4fy//mNZpxJbtmutFC0TlIvlZe0e9c7ZpTO29TaxyqQ9Kma59OCc/PQ4dD47mMySwD5xi+oY9jJensz8o9eX26L/s1yTSfv+U0recgACpQIDAQABAoIBAQDRn+6h4DhQ4VqV0+/f5z2BRa7sThp0Av/izelkJwMySxazJM7VuF5hzxRviGKJugHS3mSxeF0pBQM6rl5kgGSTBKhI2aVUN68V6jupzJY5byPrq0scM6EKy+Qa3LDqK1TEmF8SRnwp214RmXq4ez8ZtLwAjcaJJpfrJjYdXsa6+bHrwZsOfhETbh10j9LwJAJ4rDUUPGi/7zB1wr75Nm2OlT3aBSPAjW6ISSqjAmi9eTUqjuv8hqqo2MlYcRGCUKMvvcUbAr6QxNClV0X1MM1X69jY5BEVM8X2qkT14/0mAKSBd/3kyB6fopvIsa1q5abYFqxCctt8RJ4MY6iEbTcZAoGBAP1qdGBPCj+Cy16WzvkdNjm2cbBPiJJukNdCnoUt1LGKhSQUgponslJJ9v0BwLTVtPrhuAxu3euOeU+KYHwCsqX8EYk1qEqJxSN/w299kqh22raEPYq9VDjczMm2yEjtkpPaOKw6fvFUUjoVSahE9pa2Kf8Wuwcp8rDjhXj65xRXAoGBAPZ6uZ1WdoHKzZQgsCkqjYkBklbEeuWE2722mT7tymJV2iEmKp9hjRs81lYhuiLdyIF3wJDrDNJsWTQaiZiWdMGYum0+aNA5Ix7YI08Fi5nE3UzU0qdp8FjWx7qKPmJJnMEZ0KIYv/gxwqEB9FkbBVU2ws9gVpe5EJgBTv/I9uNjAoGAaBHpzQtoqABsyGGiigeHF1hnhAKFka06akx/kS3rJSY/2ztZDzmyL70UY37uxtTkyAsebGyzUmNmSlYHnaX1+9hy0yhn/oRpo1R6zDSDoA9/bmkMZQevqNJ0f3pC8kAua+24THKRY0Y/pn7LiwEXS3lv8cRB9oUxl5c4XyCa+W0CgYAlEFlfFoRlihiV4MB8wEBeTNUzpQISB4N/qLispNddKCnP+ExKgUHVybU1aIbz/UPMbDSR1jasYcycMC1mu6E9B3lpOgxK23yzg67zkBLpAZiBmDNBJ4YT5eBM5cLxxr4Cr54W8f/UE69/xKp4x75qjPyIcKU01YhwQyoc/pxZnwKBgAnQAiWxh4c71U/7Q9VzYHbN4w686ymtqsZE3LhOo5i7MsovGDh7ppIZK7K4aYs6imuV4Iai2KXdFCkn1Pe6jwTE30O3IkBxQJiNu19PuoDXKgnhzAtCzeX2wQK0UtLcKERgrIaMCDTBNT9xa8eY2fnLWSa9Bb/U0zky2DXTpWEF
mongo:
connect: mongodb://localhost:27017/?w=majority
database: consensus
@ -17,6 +20,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,12 +1,15 @@
grpcServer:
listenAddrs:
- 127.0.0.1:4531
tls: false
server:
listenAddrs:
- 127.0.0.1:4531
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
peerKey: sKEX26/7hp9h/u0XQAdBWBeDBl7WLxP0fYMYOlw7pho/Tde8/bFwSjZfHw9X3l//NaFgnbF3iH19y3vDSCUNjQ==
signingKey: sKEX26/7hp9h/u0XQAdBWBeDBl7WLxP0fYMYOlw7pho/Tde8/bFwSjZfHw9X3l//NaFgnbF3iH19y3vDSCUNjQ==
encryptionKey: MIIEpAIBAAKCAQEAyVHYPs+5RWYn9eRYkcR2+kciJ1tO7TUVHm+R3EXKL0/70wjtEgylA1cF5KwjRphkQhLjKGTw3wgXPlHe8KNT42c3/eRrFEikrOhp2OHqfEa0o3KGZTXb4AoRM0DDcWHL2K3A3fvmlHYOGtTzsJUp0NIhBQn0GzWcgJkE4CG6NHbZh3WADeYj8s8qzKeXw9LSzqzkjRix1kushLI9bIaziH4J3ex1L/E03aTHARiWTgLQesrkXl1VixrlYpePgvSeK1H8XJXqZQ9CXSOOO/0kcY00Qc+0djgHvhue4xvcYT2wgYBW/OLZvCpUBwt10JYSB/UShuW6udp+GodviWj2KQIDAQABAoIBAEIzjsfA6SzgFf3vFA0DLRjKMXn9taudTA+RIsbrkDwUsjvIcKUB0XWStVZoIMWDMVzk9xv+bZL6ByKwK364Rsq905TC+09VQAm3966hQ8mQOrCQ5Y78sgwvY06WWm67eRwMryKQRlfFpoe+RVBpDLIll0Qf7MzRyWAkcYz+qku7v9oqhZtp/nuSOuaDsCfK37pck+Ms03+sL/O0RFZq7eBosGnxBwCvuaigBQT/dPSiD3xKGrmwPDMCDfYiCIBcyQIJrULf8Dk+07N82fXJP2aZyJTCW8voFgQ+ZviIqcneh7dxLuKySgYqeGrO32FOKKIorQ0etuM+UvuEBW3CT20CgYEA8fovVzTD/fpnJag1G74RHs4rLBXVhtytcp6nTYF0PdoFJehzWl0V/lEoZvzsdV9REzKWhjpgPmrmDK+E7XgbyTCIWLDLPQfddJ0ZcTAecaouihkmvTWMdWZATPeQKatcwtlMc0/8sH8oSC+Near9ajr87Kb+Sva9afok8RLt2n8CgYEA1Px9peu6e7d35X0IRKZScKuOy9HCKwE5Z0PY1PgQePG2HaukHlrlQil940zyuA2sjAQ6IPecIwyaeFANGg+heOvJ2X/NWUihufTSg+7V7fj/SaMbfp7Jjf3bo1+wZlXYvKU783/XOItwFaNymlKlbQhP5/DkvXApUq6iIR8vy1cCgYEAsfcXKkQcgYbQpdl4ddbsMIPhLKNCT9Wtm0ckNNSo8XSPpLm5XRRpQInf9R6/qfNYZY4nNsFoV3+3gkz0rtJPXUDchp5AW7qVHVcNhzmkqmRHpjmpTC8+BnoVgIXy+TKXHpdCquyBJC3hKnYOzxT7HE4WBtcq32dpF7BpywPo+3ECgYEAqAPCTshFZOEXaOaYRid6cz0yuWBwLqKZmPexrlc+D1qGEqPbJMMJhYbbsxp5gm3vBsky3dzWw+NmW7CylTNtasl+guBJqrwcMGiMRN18z2yUXo+X2ewDDcsLn7aVnjTsc+xY/b6EliuRMNCuUEUQEJH1DwA+QZ6gSoROi5hhiKMCgYBv7shoLVGd+YGADjDoBUszSAL+9OfFB5xQIIUeNTWJnyLBFDgOXCE8Pyo8UO1CmKMoY1CT3n0xdCoRX9EFBrsHjQDLOMePN27IexkPdjm6iMX94QNWHYg0X9hD2zcNkF0v4mRmIAafZmPOWbVzVdmNhNFN3Vfkss+jMNtNOaCiIg==
peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
peerKey: SWdUoOefb/9zMLAYBgoNunIq4tzXm5Lr9Czn/Hs2IEO7DxBIWh7yjXSXpI5maURS7clClZOBe5PVO+1HCPKR2g==
signingKey: SWdUoOefb/9zMLAYBgoNunIq4tzXm5Lr9Czn/Hs2IEO7DxBIWh7yjXSXpI5maURS7clClZOBe5PVO+1HCPKR2g==
encryptionKey: MIIEpAIBAAKCAQEAsQGYl8hNwYzrug/FZ/K37dzUGxf6a2/tpMCVNTDwW5+UfGsWg4m1yuQwn3LubKIO9imC+jVLZ2XYisdu6WttFmdMzYUxflza5/xkuUjGuLkptKZeL996rP2xioKfMWaWjo8OpJ/jVr9HWx4buFWLqI01gwarXi5DnGKEg7BdvzcAeJO3k9VhhMTR5o5nCHRHaHH+EbOKV7rG+unDQYmoz1WgogJMbzNFTkOL8jxKpnGg36QDOtEQhngSyA/2f+nhucEihX5s7IfC5qw0cFHPovDxn0MSGAPYDxTsgZ/A9jz5agFDQ2PrTHJN0YWXg8IEvZ02A2kDVWos0pEGlE/OxQIDAQABAoIBAGPfVKv/lu/ohXEcSPQX3XPWr88Bvog0RVA6YXX7wQLRjcSN38wkPXDXRCAThzfAUNTQI1juDTewHXhggtItjQWhD5K+3mhAGDvhCywIRiggQcnuPSKh4+QL2MsgXJZRHg4d5dM5a9qcXrSozlc53W0jD9h4QOUJEZkBdWegcaTbgOovYwmMvsCEOQ8pDObd/uqWx/iid98//VtzEEDPw8/gC5hqMoJiQb1WPJ8y3Vrh94hinde6SHiwb7po36geMcsQ0kaWv3fAimyWW9YZSBgvBTnwRPXJXsnoIbYYkEH5GOV1d4l59RzMqDIzCuQGiDVmwQ1qhQ7Cz7lVHFlJcsECgYEAxIfCQUovW0Zyn6Fro9h6tvMccwWKRMLYkQPyOCMZNKwpbE4PxxvENJfr1jdQ/lljZbot1kmzqilfKOOCH4DCtwoRvZ985h/3wbw3IIOIiWeSoHq0dxm4kN6dXu2F3VyyVjz5XgJ1IL60hG6+XA0vkQ8ILDOac3MsvgrcKzBiz+kCgYEA5pFnIS7pzH8gtqSMXbI/Dyjg1KvNqaYqG/c2mbo1Gubm1tmTxAfe24vSTaOpSj1b3PL2xrpPrG6QlRRqb1ob3nR2E3I0RaLRCc/UUm/RVNfc41Kuisd5pQPq9nJ0CdM3A9TbRs54hyHFc1ObtN85hFbYyLTS6Avx+21wKzlZun0CgYEAsN4MsH13CQnpdkfre1UDe0pnPAysVx2TkU6f2m2b7Y9S6CmIgYQ3m61tjSfTOFRx48ceIU/K5US+Yyn8nSVgFyJ0vNafrOrwKeadJiG56w7PIqXLa7Q2KgpuTlQsuP8HcB0HvtcvWfzGsLiJkIY9XKrOjBkU0vnANnfHlQbCpqECgYEAkDnWHAC/iQbgzL8Dery8C1yTvxS08nEZmCK8yc6b13cmYLD7aL1Pn1/ILn64r9LP+tcUnN0AZ6lF0atSpNLl6fJJxgJDRmgBgLS7aNG/TOY2qxAWVINQyXM47+5KPbcci84DWDhhVo4+d9SN6sdTsD+vHWVXJIYMWS1s4+zc/vUCgYAkTPNny+Anx6/WS2bQ2rRz/w+K6CWA4JPxaZW04eX5RrBd6PbAyI6xmU8YfbcM4OegZUzGybmqCxkIGN8vgiI3h85ZZxt7foRG89DJAJbdCItandjps2MHM7NHm+qbgEYF69/7c5d6J2B0Z0wMzVsdk0eTrwnhU76CA4MjPabBaA==
mongo:
connect: mongodb://localhost:27017/?w=majority
database: consensus
@ -17,6 +20,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,12 +1,15 @@
grpcServer:
listenAddrs:
- 127.0.0.1:4532
tls: false
server:
listenAddrs:
- 127.0.0.1:4532
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
peerKey: Bn1itxyTCgOmB7Sk3CgZ20KCWMNvux90oDl9T/gtnKTn9zSa61s/Uoqww3egTYtgkBuy60XEIL1i4mHGzxqBAg==
signingKey: Bn1itxyTCgOmB7Sk3CgZ20KCWMNvux90oDl9T/gtnKTn9zSa61s/Uoqww3egTYtgkBuy60XEIL1i4mHGzxqBAg==
encryptionKey: MIIEowIBAAKCAQEAsK4Lqo5KzWVUmoHIud02xBL9hYIPiCVFlYgwtzA1I2gJEC2wLmycbq/2PRInNNYPl0sDiBvRVlQKTGzPhGyDQMD1lBuP9Jv8H345ThLQ+EuRtLqr2LQOVn98jq9MV7/sn9uGGW1bp1nkHXw9ey/XbRy7BhMrIoIf6oFgJFq7aoBybSUdTNtC+aQtoitf+GXTWCY3KRnwcRfHeNj80s5q9/6Ru2SPHcCyCTe2MgZIVHG1RFIF2PqqcXK/jziz6z8ekByTi9PpOd95newd0WwXO8fZVPpILJ6Ii3VGiHldtoGcMMipp4slWxE3sv44n9cvy7zwnDCINtBwLlYYR6c71wIDAQABAoIBAHYgF4qz0g1bh2I6DaM+5MPZUol1uL609L4SLUf9Qjnm79BSS63uTfSvTvnr7iykRg5ISBczShXm4G/SfDg0eNjNaiPY/bl0pO/Fa7joWbD4jXWBLS4YzFFGsVeQmoE8v47trc3IUPQl5J9WFqELDoRUJjLclAVhbMdUMpx70TxVgYbmELjtUwsjWnBuHQv7YbAbN2QFmdUFfZOUpQZno8ArufQtB+B3rZVzemHjb5+fB2PPv63LHJKhDoZ0HJvSWivBQYGmL/Aph10sSkqfDk+6F64RLGs+uonWcL2SK485aUZLQYweRCo7u+409QD437ERzff2c0Wmfu0t+hlRzbECgYEA5MqWg7Rp1Z95NHTajsOm95ea65EB0is/wqRa++fng6FQ3UsGF9aNjo2R6Io/BUYnvqkTIbD26pqDCSVBOiuRk8fnw66Q4REP8ceKlvk7gwYByUFTPz28R0YeJpbt2P7lbEmm5HuyJ5sMbCW9TzDhatoDA+f1hNMj8UhORBfMPb8CgYEAxbD0jbHDnQ8o5tg1/FoqBGy0f9kOixReKKNhBvVbKwrYn3uHOoZsgXDnKgXa5UEjWC1CmS00OOi0nW2yQmRBRm+jO7wOEnslYf9WuiRZrmK5LwAFyREIQXdYo/RPGz2YjNjGGkPMCukHFxtp2VB/gH56/TvX/9SoNbSyffBBN+kCgYAVWeKZ/+gwi2VgQ9dxo0idqoRGn42v82FL5NKo14d/fTpyrGGxL9CeERAgx2YCM/3ZiSXD6yPf2POJkvR3XUGErQ8v78aNem4mfhys4i1vmMvp4DLIoBZGAIEn0MX5jjAS3vy4LeL+VzXdkdgM397pfdbyMl9zOdEM31aOfDoPOQKBgQCQj9oFU5yr2U4boLe5lWVsXuGPK/aKlZZVOUPWhszoKMJHvVkh3vKxpRIllKqBQqTJ8i7lPD0X8HNDO9hC3HUvQKupHtdbhFnN055j9/jsoJyyVd3lLmNPHCrhmeHPFbfcJxiWVEV9JPJeX1mD5G2YVOUzEPPezG9E9qIfnfTTIQKBgCst1oRJ41uiJQ5Wi/v4O6niIZGptpNxXgTWeBiGl11d0bFujYlTx25jpQGWvF6ZZWbhUtNR9Kjpp6QGqNxxcWpQehKFFPytEYkkbA3roUC/k5E7CjN3UfWNte5kJ/pnlTZCE3+6VOwQ9Cdnqh4mPxIdRxv1Dk10xLpd4iGncbRU
peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
peerKey: ZeIGyAHh5/FOyPAFABPAGls2y8u5q9ndlXeWvWtlG9ni2QGe8+mu6KS6Lf2aXqDnALprDUSaeb/ezTAGB3NtDA==
signingKey: ZeIGyAHh5/FOyPAFABPAGls2y8u5q9ndlXeWvWtlG9ni2QGe8+mu6KS6Lf2aXqDnALprDUSaeb/ezTAGB3NtDA==
encryptionKey: MIIEogIBAAKCAQEArgUvy8MrSMDHzymuOC5xsPmQB93P+cd47FgeinZPS/DdEIXJDCc7VhbYDX4cZdxYgqoISJLgUN6/HNrAQILh1u2TA+meLPgtKCZgSgs8UGLYbQl1OoWd2BEpy7K6gxYNUu+mxvrMUOXSjU8Jl/yde8WeqZGBeNRQLHYXpw5DoSRQ91pag6Z8llIM/m11A8OUtFQMq1z8v4LHaQoi1Z7cyPJqLKEUS8etjJ8cHYWXF7b/68vbPmYiv4IwpWt7zefpfL5Qa/NcQgPm72HNz29P2V3h90Gs1muYy0Ka+GfCOcNqv4hnXfK78YZlACFBtBCn5Ar4CmT2LuXsIHe6qyXOqQIDAQABAoIBAF5LgTKwduvdSmf+9eCLih+Tm3AnyWJXrDalKSduJFnKEn+5fs+PEp/7kOb+xvSLCYsEB6kLrXEkwfoorrRGN4n3AgrEtGk5sX5oDRUSMYR9izjKPzOO45EI+9Tc7CPL9zxRj9WSYNQVNJpNka1BvTQsSWUo6zdGFIuDEh37pLnTxy2C3+uFaWI7aMUllU16ACO+0cNaOWKCKtASHk75SSTqnEh2P00oH5SBOUjmeAPc4eVpkzcR0+xbXQU+m0hs+9NKnrrQsNFUuWhv5Evvg5KrwWhEBcsbR4n8+q4YF2mj/eRbVK4eI7bc+vcrvF9MjuHpuuQPkQuH0ZqxDEuKmGECgYEA0kjm/FhaRlGgBZkh+z//Qch4dvK+ZtOiM8yKmYqctecl9mPL9fQoTMbTP7ml5y9Wt3z9msplD/b5FICfq327zGX+tFD3ZRXxtSzL0G0hTp6kh6Ywgj++pjK1tDV82uW1F8AHxsdyDl6wCmp0SIwF44j3kjpJ4oi9j3tMQX8doK8CgYEA09oI7SVvPYmTya8gCDBsZLM7kReEQPA8D8KVO24EdTYzjwpiwmQGocqxSmkQ36Rnn45/33JLnrSWMPVdXuHJ7XNvuKu94r3+2t7zUw4T/d5l7oBRXicEePz650IeeqoTddQgFEPIWXQmyo0XlKwZ48wbF0gLAev9l0c0iPDP7CcCgYBhREtjqdKH+DWWoVBwkReW7A2cp4eetIGwiAoMH2uBUFvk7iBnsfn6GXWZYlv05Zas5OnBcaDxk4F/FEfG4S++yebYrSLh5RaagQ/9Zp0jaoocHKkPdkDPS2F069DGx73OMIroTVTahL3U84y6CdqndrFdOAz49dsIxTVujke8DQKBgDGA12kiwDWu+ju8kk2XkxyMzTSAPEU4XbCJFXoHoT8KZU3dbWpjGTGhPYBXwLuhnR0pnTPHb2gsZpQWIbVUKW009jw+1WYwY2cdhdo4he9ikosCrQDFOURUSQTU7G5ZY6a65KwXkq9kdtQJ2CLDfGFAhmwQR5IxZNZ+qwX8z3ktAoGAPCU7XOZsRr6E+UIx17ghjNZ0Y/RwpmxqqOFuVPmpITO47BQIIQVL/gKqUOW649xfdpkTdIXc/eHeD8GEnksopO/O3Qaa8DkAHzQ+vVD0DAWzY1/2wVPARoGuo6qqNPEqRoKLy/TK5aZOO53rbVq+hiT90b6PytE4RWIATYqE2Bs=
mongo:
connect: mongodb://localhost:27017/?w=majority
database: consensus
@ -17,6 +20,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,16 +1,16 @@
account:
peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
peerKey: TXZuL/m33AzjAzVe+kI7mnoiLkZdl7drSMN8tKQJ6M0/hO4d5HsC9n0pIxjAz7NF5d9nlfBVM9AhOtiEjS+3hQ==
signingKey: TXZuL/m33AzjAzVe+kI7mnoiLkZdl7drSMN8tKQJ6M0/hO4d5HsC9n0pIxjAz7NF5d9nlfBVM9AhOtiEjS+3hQ==
encryptionKey: MIIEpAIBAAKCAQEAwA85uexjOjWr8N5r3/4EQk1J5z39HjhQaDgL+58ohstIHoyHsp0fBDGy3j8puwv7RDT5U0Rjk0u36Lm4Y72NUi1DxaJ/0xtvB7k7AVjX1tGbGAoTWf55ljmJ7qhYA48bUU5ylzCj9xkfwfVMAVhvTAbYafW34foR3NYab1PloPz5i/c9yo6hhf7dGyqzQ5e03S7Fzrs4wAAAaQR88ZjaYUvMCnG1xUtGIkWqvTdLLMuoCikKcPFsrTEfwEXffBsDs7ZUmRHPEFd+SC4iP6wflRQFyZmU+t4PJF17Fo9JUgwshcfGwHAk0yq8aCAGkNotoGJyh78y0t+tjBMehY58EwIDAQABAoIBAQCvE7INuF1kDNUmh7tSvx5myknaUHnS+Ibj2mOiBp5M8jZWEskIm45QpnVlf7Ks3ek5bgjyTN9wwI9vyQ07bunKxZSILu/TI6j9I2+UdMac/wogyd6GJSH1PZJtSmyhIe1HGvn+tMpjUDXQ+6lDeLhMV9kkDmiHyQxLgakrXxFuxFWLRGdRQKz0XPKtyizftq1g5uKLL9sqw3oNKM92Qo6vzFS12CvtnhfpOURrRLNPz2WubnUO595z3f6pyKTDGtmczhpNwaqOKJ58kez5x4zTm1XPJVHu4XKFHEl8UKpU07eLK4i3dTcDlOGMT23tV6pRZXvS2nAdP/WdM+E9LogRAoGBAPyalYSCfaijSiBUoKy0C8eVeRm828ZppuwSARvNptMa55bKwcQ6GWlODYsmcfvOUhvPj55rW5KnDjCCzUO6XwrHPrk5KZCdZGnDsIaayKLpdfQ8TcdEInZxLLexZMEIz3F1N94e//rl/R7ZSxH2PKg9GoVoIK8R01DedrxzpQAVAoGBAMKkQkTHppKNmI3eJXgDaKoZqTJC73irApO7o//LsIfwCK0ehFJ/x3lvVaQBLGGUGGyN4j64+PXETGLg6oVfXgpBDC74kWsF901vhIR66w1HWqqjm6frHc4HozuQUP4aQ4rct2rx0XWFSnU2hT5AuXG0xGLGCK/BOCkZClHMmO2HAoGAX0qliuZ7JunqpcWnE1+cbf86PvZa5j+nA7lLB8UN4OduZBk6/Z55RZt3Sn4HU9miafFkGXwggHNay/wcGSeugO9m/xLMVky5u5hh+HVdqO9vWuKA6OIQKiRJnUZjXtrG/uMcX0PMh0bJtSB9zFnayhC694avhbuwvvodSrxJi30CgYEArYT0Ew8Nv4791lOZgaFAWIxh2w3zINcLiBp6vNqguL9TbMpM2qNReD+50Gi/YQo+r9/ZN2N9htQF6Qxr5pS7aFbO/rzYHtoFuwHU2KogDAl1mbQbWxpuyrLiYYJpwe42EoBr/6ouuh8m3tHI/VOEPwsRHKFBMzYE1BafrYbBOtcCgYB4kNtGEQ2t/BGyUlNatcDCjZsex2kgtoEGVTrBig98FyafEMYjZBwEVcESBDzJk8QBiyI/BhkKra/ChM7FAeZTCfqx+p84E9U6QpqSqaex66jS4BY9WjlRmCzGV9bDtMmeVhJkcvB0YSk5HB3Q9Ap6BxtSnByUGhyEqp7V7Bz+vA==
peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
peerKey: X7YT92hRIQf42tNiIlOS01p1uJiPSqcdkE6LViS8PxnhAv/28YzTctqPjm11AC63Dq7ybmwPQiBu1pwa3AxHzQ==
signingKey: X7YT92hRIQf42tNiIlOS01p1uJiPSqcdkE6LViS8PxnhAv/28YzTctqPjm11AC63Dq7ybmwPQiBu1pwa3AxHzQ==
encryptionKey: MIIEpAIBAAKCAQEA5KuB40UIN6LbGaFw1EK7PZ30bkQerMC24hiorv9oUqBPsFXnGuqSd09B9yLWsUGBHn4q2G3ZF2e73+K6Exn/OPp4othDwUPzm0sx75y1D2iy7nNbP4EAqC4n5x3rBaLCvdN9MJEc8TfvkKJAJ8gCAub3RXuf8so5GfYra2WcFjRovjqtpV5dN0onq5Z9gNYMUrzmHNE2PjO4jpAyTh2/zIP3odpt9e14xUjB+Xv3gonX7Scl7njJFXcRMfdriDBkTDlCMPt/hA7Sabif7jXzd3hDIFBiX51SYCSeBpv70+iSNwR1bO4zKagAyI1s5MiBriNdO07CvbI6WK6MzC3NeQIDAQABAoIBAQDS9Xrt3ajYExGJEsxRtoKhNNDkzUlzXJMcAV3VnGF1INqDtqxvw4p+MYuM4QIqI2FobUM/yg+mrRfBU50QtEImIcUbjuLrMLJUSUn3YZ4UaiXxIFFFQ9EEVxiO+qXw3BhHIg5zuNx3mYAU8eq4CKf6X3QuEQAd7/w//EBQYzxdqhsGqRdawnqlRg0GdqsYP6SaGliyQcjIybb8+UA4YbBofECQmubY+ObrAKiE2Y+AxXtO/JMC4hM7r4QV9RYd9O7n5n6cP7eEN0oo6gViHEhCsMktPeawXwXXbvrS4iz/gyYFs4pYTuQxC+UNVusIRNfrHQTQuyXIqioArPgj4TlRAoGBAOUv6ioGsDF89VQFhYPrJdeoGkARRG6fRWVxuVK1Yx/3uCuHp01mjmczowY36w3MdMSZMuiRk3zeVkts3UQwHgUR8jHJT7Ty/cL80K2/n12aI2OK8vnY71idiZPoy7PL0vY2S4klLsBfumrEB9sHCE7G3+0Ai9jfePAUNj+RCHOVAoGBAP9sGiorjyZbFOCaXDemJcI140VUqJ+OFeBsiZZCOvHlgE1tFcy2RpDvs7dwe2gBb/Gkt2hsDbQdEWdSQk5AVcJBnALoWn4eoarEN6TVDxIDhN0Vz63uTYM+rMvgETVFfc8lxvEmcO7G9rxNPSkIUSqVXw3AywYizNAgRb4fRnlVAoGAY2zQ6iByqVVrXGL01BDcHt1nXenfxRnFUkfuvMnB0el2dTPpSXO3TWAiVh1GFHthILTRWAFneWE/EIOOzfkN3Oc3KZAKyxYrLj7dDLM3oLSwq4to8yjAVLIrMAZq8Hn48CUHydxelsgwqAaY3dUELqCqHjgBczknTweFrTfu8a0CgYEAtPSDPOkLS6MvkUgKmSpOid7fmpi1tgRVn1+Fwjw9wm5TjYcA8L0aFUiczBMWesK56jpF7ebPdpE5aTev3fxaRXtx6eVvZvaQlojY2yBOwvZXRMJVFeZEZ/0ZMn8V8eW/kegzn1kanS+8Uf9umwlXZ5HXe8jgjQJOlAypHF7P8NkCgYA0Z1F1kGUSl8DBIaNbOAR9FOKE/cMOubxoFCi/eHQc0wu+jEa53SnD5a8TYpEU3eqAiWsImuqoJA4RsvLZcKKfk2PJl8w+CD65YOJckyNRzUjzSz2S7oUXkUVhzbJ676y2B4Vp+CxYLllg/s5qh4ZMSOBj2quy1NhFbOq5rISddg==
grpcServer:
listenAddrs:
- 127.0.0.1:4730
tls: false
server:
listenAddrs:
- 127.0.0.1:4730
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
metric:
addr: ""
fileStorePogreb:
path: db/file/1
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,51 +1,62 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4430
tls: false
server:
listenAddrs:
- 127.0.0.1:4430
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
peerKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
peerKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
apiServer:
listenAddrs:
- 127.0.0.1:8080
tls: false
server:
listenAddrs:
- 127.0.0.1:8080
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
nodes:
- peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
address: 127.0.0.1:4430
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
- peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
address:
- 127.0.0.1:4430
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
types:
- tree
- peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
address: 127.0.0.1:4431
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
- peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
address:
- 127.0.0.1:4431
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
types:
- tree
- peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
address: 127.0.0.1:4432
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
- peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
address:
- 127.0.0.1:4432
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
types:
- tree
- peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
address: 127.0.0.1:4530
- peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
address:
- 127.0.0.1:4530
types:
- consensus
- peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
address: 127.0.0.1:4531
- peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
address:
- 127.0.0.1:4531
types:
- consensus
- peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
address: 127.0.0.1:4532
- peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
address:
- 127.0.0.1:4532
types:
- consensus
- peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
address: 127.0.0.1:4730
- peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
address:
- 127.0.0.1:4730
types:
- file
space:
@ -59,6 +70,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,51 +1,62 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4431
tls: false
server:
listenAddrs:
- 127.0.0.1:4431
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
peerKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
peerKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
apiServer:
listenAddrs:
- 127.0.0.1:8081
tls: false
server:
listenAddrs:
- 127.0.0.1:8081
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
nodes:
- peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
address: 127.0.0.1:4430
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
- peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
address:
- 127.0.0.1:4430
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
types:
- tree
- peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
address: 127.0.0.1:4431
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
- peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
address:
- 127.0.0.1:4431
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
types:
- tree
- peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
address: 127.0.0.1:4432
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
- peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
address:
- 127.0.0.1:4432
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
types:
- tree
- peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
address: 127.0.0.1:4530
- peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
address:
- 127.0.0.1:4530
types:
- consensus
- peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
address: 127.0.0.1:4531
- peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
address:
- 127.0.0.1:4531
types:
- consensus
- peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
address: 127.0.0.1:4532
- peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
address:
- 127.0.0.1:4532
types:
- consensus
- peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
address: 127.0.0.1:4730
- peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
address:
- 127.0.0.1:4730
types:
- file
space:
@ -59,6 +70,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -1,51 +1,62 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4432
tls: false
server:
listenAddrs:
- 127.0.0.1:4432
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
account:
peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
peerKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
peerKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
apiServer:
listenAddrs:
- 127.0.0.1:8082
tls: false
server:
listenAddrs:
- 127.0.0.1:8082
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256
nodes:
- peerId: 12D3KooWASSfyabE6Qhr735j7tEwotryNkwwbGWXGMZ4XtP1wPVj
address: 127.0.0.1:4430
signingKey: ITu3NaR3D76DjGz7/O1CmMk8RMT7OrJuW5TVWcJdbUIJPgB21FKWYgpzvFOvyXm9c4GvjSV/Yvbe/Jqp6Cksig==
encryptionKey: MIIEpAIBAAKCAQEA9AG9HVfWD07+nbrB/GfH+D335lxkTMhDWUJUHOPAmWdzhSgMSrwFraC58sz9Qibtpch8BNUiWTejolhrSUxW7XoPqqKeOlbj8VUpHee5QqJ/Bzmo/OxAEwTuJFGz+96l+4QOz2z3ORDkB0Zm/jrnAmHBLPyr8pNkSnzcrjqnfb4nXZEnFvRDRPtURoG4D0Tv0T3nHIKWStkHudGaotaH+0+fz1gNiHlbKt+SWQTNQHojakhnNMjJvQCtqkuLI365kZD8PcEqeTs5Ip0J2aeEHYwWRaeaWyXvcbdM2bc1r/bH0yCDXzG+btMykepzeBhPXqiBpV4Aw03SX47h2CNf0QIDAQABAoIBAQCfsP+e05yBmlZizhYk5Zrm6U9zkOYHpk0FfrZjzd5/x0fATqx0wMcKkhUARY4+HBIOHL6lvwNi1loeZrWYXADMHMViDFl3nuRBTlXBf6UsagKurNre5JMun1xnop0jatzAVfYHZK4Lx/UkmbvQCKalVWrC0X6LHFFXuo4G7NYvINuhpaW7WXhy27hZhALIWnt5x8ipQTKLUeOSuoL2QhHupQj0SJlA6qKBSB+guM13xqrrYpaRR8mPhmpoiTu1l+iGvLi63TUWMrk2xGa+k6xyGWluO2Uv4jCKSSjRa7VQicP0uNsZrn8SeKI3xo3OI/4+5Pm3+sTpztY6Vv2ImGwBAoGBAPbdIn1OlVGK1Id0KfMAmPweeiRMwmVr8JxdrJDl+XnkGQAvvt8IcSPJuAUc35EsTSW4iUyCVLr/uywQAQvG0aUxjtNvQhnikU1K6mUxWdxuSutDERin8U9wLDwDkbhKXglTAq8J1hYCL+t0//eLtHDjKv08XiX8gqZ2f1SebHZBAoGBAP0JiSZRZCfzOPSTxAVTQWg753HY1HGRRYAoKdnAXewedycUTjBPvyPYP6EwX211rysabttDbdC6wL2fl+ERv5NcCCey7XwKBTb8CwR4x1lakpnFmgOA/UT/6mPToWlvs3f6c1AjI/dY/CJr4dN8HyHVO64BdwG68opSKSz6XSWRAoGAD23CuhIvQulqXwzjkkx3Q0qkV6B0heI5J4yzPFsjPHsFFP3m8AmXCKWS2r7zOh+KstDVw/JhWU6iZB6b8iB6+dgfFRffCb8fVbVY8Poko6JBDHMknmXgrxZTrWyLrvj2555IjKgQuU9pr02gsdgJbwTDqxAa0kT15XGCg8djAAECgYB3QBU4z8bp5QCEk1cgQ1ph60lqKAwG8bXVbhg7HSOmcb0p17H5pruoAvQJ3Sg8B+hj4fM4tpB8fGb1ds83LQwiQI8/Vl4BxR8sCKCQnPMmMz8/5RZubE3wRMOMBGLfs9rawlex/r2mhnNdLYaiCq8JXNrhaKNTV22SrqHlJqDbYQKBgQDmAspmGAiyyXb1o5ortCmU6bZeGCeTP28HBV2jNGaniYeKcbIpZjpm/wB9iEag9u9shP688A0MMpHH8DD3khLGo4e7CFmyXurV6RKVAcyH1FiDXKkr0wmE4fqIaD2Dkj5raiDa+lWAxCTTNXnNip1j1JZcAH4lPYZboB3oHBaspA==
- peerId: 12D3KooWKnXTtbveMDUFfeSqR5dt9a4JW66tZQXG7C7PdDh3vqGu
address:
- 127.0.0.1:4430
signingKey: /Ou28/uU/z3BbGmkHMV5ev0mwl6lJI/NNniFlMm2gOeUHDfed/zbwYZLbPt1B0sujNx0DGKUgUTUXy/SE7biwg==
encryptionKey: MIIEpAIBAAKCAQEA23AWlsGaLrUxea+x6rkpy1ByqUJKdb2oS10q0urntUCivsNb7ipo1tvM2rldn6DAIrIC1nQHdlwrakNhl/j9zfX/GdACRDEuy7pVigm78QqYwSoyZn1l717HGjXKpJpa2m9Qyo6ZNGTLcej06zuOK8yUR4gudxSV5BJ2AmMvB9v4jUdCUwROSMy0e/hDa3Cx2xV33iULF/XltoeBVDoW6yYXfsok2yH3jHUV59yqQDbZO+kAj5rO8Fd/DnmGriuQZwAwdqJBH6/NtkhbA6triS/xW7f+RoyjjA3dp7TSUscHTFW0LIUaS0ZKt6amaanT7L/Jwi/0w133wTboYPG7NQIDAQABAoIBAGRYaGv+ElSDlSFRP6nXjI4ltplB8CzRUrFL5HZY5yZSbVmQmmxZxmFiV9Y5Z9/EMbhr8LJCktsEIPJR58IIIX/amxIhtbebSgvtpIogE2qRbvL+KdgGRePlUmTg7k7BKwSyXJ6UAOkdoo7veXhMXqIWxkPDuYPIzRZjfsVut6X+j0e9W2/kK7Tx1cn07GGyEX6T9sYsrDZud9xAgDWeE3ARga+M8l3RpTi3GiM6aaz82byjtn+uROUioUSDRLeOx4lOsmTzwWs4+tcyguqC4h/01Hejs9gDsJTOZ+xsrSc+eTsj1oOmABtHcuQ6NWq4KTqV9gVAB9BEMa39k3SrzaECgYEA9kd71vAwqFp6iu3INXBuwJouV72Egwm936KGcs9/NxfXQ7R6NdKa4LiWxdIn8e7uT6+bGPxCPuUmeJ9pYandb6j6fcBcGAjPOJPg5cTtoaeXSTOBNtzaoDLM191dNkhftXAgVoz6EQXUXaGXqnUEWDCptZ8/VKO4Jbb+Zco3F30CgYEA5BljE1KiWKP3IXwfndnPFKwev8Ds6YMczCFpiCzHB4LVLAWShUQrQIcA12yIRHTvD35Vg7SwH5mM+DFd9AMNxTznz8aC7R+jXEApeaCEQqBEKakoDFMsdblT6WFwerfl5ug32IyeKglfLuOiID5M740t+6TxUR1ZjnhIx3QdMBkCgYBUANn63H6cThBSZvzNTYZZZ72668fRMndzWmplquUHk7g3Pc4ZobZ2REAZRa+eVBMxVwKeKR0net3+ctFtIJWJSqf2ULCY+hhEghxKAzvS0elGbKz8W6Su0+UPFFCA/Xq31oERRJDfUY+4SDAFUlijBCY+7wyZACcFpj9r1OepuQKBgQDAJV6ffWHC98SLkYr0pvFZgbCZaYRpJQiSMKc8jjPO8PhwD/Wgi48/2TntPsD/od1sGMkinIgs5mWpAbUag6QK/cZs8dWCuL8dS/NkQMKJeYZR7ewNjdcLCGZWV72vstBZFk9M/Q+Ta7ehwSHmtXSL60rMC+M4qFezu0HbusWHqQKBgQCNuIsiB1yS1aByY2Hw2NJyAWFIRLuv4VNm+S/+YUJzOb/cuX5rwJ+PydJj0xD5mKKq5zGhCFzGZYdheKCYC4UQKn+Zz6Iv5T/mIJU7ELy9R2/I/Jv/IQMQwDXUokbNU8p25Hxul+rI+INjoHihUFKRNL68iuGVNjQHyKQYjit+mg==
types:
- tree
- peerId: 12D3KooWCZehy8V3i5mrSi7G2vHhP8tDoVo3yqH6jmDyjsomP6Pm
address: 127.0.0.1:4431
signingKey: YYM+h4qdkkaHK7qBwu8P03eWPhzd/HojiGp2zNduu/UozgxxyA8da2Pb6jLTJJcKIg4Xm3ObXNT6Eb/3Z5uZTA==
encryptionKey: MIIEowIBAAKCAQEAsBUpbKyrBFbqFHq7gf/AKEJv26X4axFLqm8SJkNT9A6KvnQUptfI+x9wp8qkUG/4c8HNPyR/lB5QWJvdDQvQBQ1hrCxZcvMmukV+qtnKlcGmrglBHwbXt3hwA/Z3l1ICIrO5mrbXxEZ3CD2iD/ur2zo4i2st6zLUBHo4RmYQoskYUibS8npFRrnX1Qaoi0GjOtvrpAeafMcqSgdRv9ERuaPccvlGvT1bwRksb8uwEu6htINwDuLQ2vGWp6qsrp83qTJK6L7PaNsy9w9FBDtpl4xzYnwR0QOgS6i2RYBvcQI6tlsCstzNsbEMRu1xaPYpQ+ZsxpzdZVM/HDNZd3/3tQIDAQABAoIBAAiwYqTsOFw0dcSg8dPObQsPjDmIjSOrbNJyPLEKrX/jn9EaJVK+XzqVKJf/FfCqNdZwf9JX2LvUax6UQmo8ZP161ZELdzaG7ShP+ZowuSB+t9zqs/319nslRFHNvcUH1Pcla0lJMIiM+Z68e9zSDH769oNavJ9YmMHHzjMbIkMGGFCskJwJs36rXfL3WiNlmMHAfS+KE0s38eIRcvjiqtUU1krj5vRXtSxQHcyeGwxvCAu/03kmq+KGAeemZKHOtoU0OmQQN7QKc7d2NEF9VyI1F6GpwqROL3oAJ9MKiGUKSG3bCaTlnEIz4pIASRqGTajMXIFe0jOVo1PF7Zn/hcECgYEA6l/Dxs7gBXCaxGZNqDiMnWwc8AIwGkjl6ATo6nIt3Owrre/6CDwh686IWMIX9kl9gHlDh2Bzc77xkOTpEHpgpO7XdI2jsqynv075iK0m0Ak4FsShy5+1qWQNToOUuTRNSpK0bwi25iG5qjNzzXxadXdlkQgO7Q/2cPRKKCG1hi0CgYEAwFR5bUxsiFEQ78jcYIVjyx+MPztPcJXH1z7/SnaDFw8KCsDiSMaOahaPZKO8TSNcMaJ7qAKmD0fc148e/tH7GpI9vSkHf9JaaswwCfCuRvMo/tUnWdGddRG/rIfyuPZcKeoQsHvR55PBLV2ACz3fSh0V4/+EocaSj6q9i+YWdKkCgYEA4EgyNj7kG/CM+mMX72HmFgNOkdLWK2EVOXnxVeFbyCztA69A6r54i4qB6cYbXiEni1j/6T3AXcQcsNaNvaoOb+broWqleydEA4vUuRlRqgUYeplCZ3R3SBkprre2C6FkUXegWRzSwdkGLjy8lahpfD18oVQ/zFXZNHBhwpO3fSUCgYBhMM8D2qDl6gFjCt/CruWVGeYndfNY83e/YAhmOqlYF7N9Z6dyG1SQa8Iem1dmq73FH1TZvCzqf+grzhldsALylIA6fOdbQpOKcJC+FTAcjnhi/pgaHYEyTbvMlg6kRWqhi7TPWmLiYZo3MI6qH6QcscIEK3V8wvoBO8j5T1Z9sQKBgEeF9feBs9jqGyTkcnxlc8fhsNiZZNYXv43OV7+gsihPetiG5vOjmGEyRLrgiR4ZTESFcZ+cKGNXNmxLyGu/uXTYV0Bx/h2ma+vYe1MMD36HNpmF7x6A5ISpoZbj8PGCgh2sWRZM/ScCDrlRBbREP5zXSQ12u7lnm8npmbUdCaaD
- peerId: 12D3KooWKgVN2kW8xw5Uvm2sLUnkeUNQYAvcWvF58maTzev7FjPi
address:
- 127.0.0.1:4431
signingKey: ckI1ThxMQmAWH48so5jT614HNg4VppB/3jTfh1cdrzSSkFuVPiGzSDJcsgFLsRGW2WT0a8ymqtc4hog5Z4mdfQ==
encryptionKey: MIIEpAIBAAKCAQEAwQcHwXkTynIvU5PfTn9kaQEb5Zzz8eHl/uO1srbWI0hM+sIvhOq/ahYuhDlai0mAhRFQIvb6QRnWzCp3qvMH8+j8ls83BKV4hfxuS+SR/Y/LonW+WeLljiloMM5ju9tjw1iSslUK6z7d0HSLppQCCjMP+v3kKjx24qJ2T+2N1MAMbdt+S5c2P2jBUJVSvQbZ1AVuZTEzDau//+cZzV47lsODrVZ2SxW/KAAKA9xIJSIwBFyIqya54FDlrsy4HMcThxUbmcqy0Ou3bRjPR2f9A6QaNDNlolPhW1Z4gs+MTQOXJyAj2vdKwNKPwr8X6wyUtN4v8MiJt2yl4h3EVSVkGQIDAQABAoIBAQCak4iwdMdWfa5MncRb1kSQmiS+8bug3igSwEOHREejpYiP3uWy6VI0IGNL26oYlNnotf6YoXOyooCSqwd9zHV37AIquvHyNJiZo5aoC/ilN3v5M5Ul4j+2Yo5fV0gi7gOsMcf4K4Y88PEst8gFs80WYeHQO3V2JUmHIFbilvfXgDfQNuKlHXgWq5kNNCxIobGpuP70Vvn1ANkDXLt+bU8RCbmBYFUZ/4HUeawf2NX+Xn5T1NFpheA68hAGprFQu6CuEsM34TtPZwH5SxyvOmA218nQbtq5fNLUgHZdq/uAeQyq7E8kxyOMEbx7m1UYtxDjwowBQgQd1dOtm3wTeQdpAoGBANjs7B0IW/B3TY6mRipcKtTYMVJ+M6AKu7etTkcmM6NpLGaIL9HqNP/a8PoNmHzVOBPJlC96ChQAvcULe+SKBL4L5g1T+k7OQvHEFMwzkFgs/HxjvQE9b1xX1Qyp+e9H7yvrcJhvRPbj3LLp7vunHL9dEm4/PFNKgCFExNsiv8WvAoGBAOPMGXtAethDYZE7vdlD55GdhsgklCmF3YQcraWsZrswj9paIBV8FWtVZIUDdaqOasPwT8L2NdajYWXXcmLlvxkOQQx7+cJG4SdLRwEz531rXvtcYrWPYYwjf37DQMi2qRmvZ0Oc/atitwN7mQ4wCMzZ+CV04HJTjK4eRfeDeyy3AoGAFbQWp4z3jeaR1uzh5kkUa/k5bhR8W83XHDh1tX6n+fiC3btQdYMmTFb+dzY3BH5cvvYTInDmYzvzwKw2eBYrBUyxdrHpQEs4vXGt1wRts7TEijl8ZoxcAPQ0t7Cl9f/PeSh0OnwffUgtA6WOKJV+tdK9DlS7V2YDzdBQldAzObcCgYAbjn0mo844iy4qW4fD2KsSunOrkoE55K+/Y5i+CfUDgARm7bAj6TbOHS5jyN9bGo9f1JpRg2dP58PIhh+YRyKu7UKBOB4mmlxyXHDifFzslyiOT8bBH+80/LZXp1cW8MHUEZv0WfF14iMxkKobRURLQ7L5FQJx0hmalp7wKj+kUQKBgQCEavx+ELQu1M22t4Kk1MOI1zEsrG4D+hjACmoWQsIjMqi5x+9vPJNshrO9vbYljjsIt4EOfqBB88oMepCesVHwbX3+/j7Yb48pmf2vZNcQ+SFozJqnCqYNQiWMtNXWT312NVdzkvpTlA0e1vaauwJjtetRnYDJUOPjc8BrdKsftw==
types:
- tree
- peerId: 12D3KooWLhR5S52XyDhfZvyvZG99BTqnKiFm3gPcuEa3T4FtDCrj
address: 127.0.0.1:4432
signingKey: 2YHyrAJNMb/e0iHjjx5KcZOb3hzTUroZVDzREiFi9fahqMdykmVIFDfk0hdLm33syhFYNwLeiFfyCFaWTl+iYA==
encryptionKey: MIIEpAIBAAKCAQEA4ZMzzFFf8yvHUIR05z1vd7jG6LHQMj3PFH2nLPf8mHG5VGRnUdjNUu1IsPyNCgzHKh9KvCCwSrWuNXnw/fVln177mhBHUgyLF9uzRlRvf8fMoHo0ylL7ENBgCEJrgR92XE+d97zDPE46NqFo6lJul4gH+bSl5brP+Kb155o1/51LUOprKiL1wj2fyVNpOgTiuEhUNJB0FqmjkmbejschgwXwma+0gy2IQY6DCCSCb4ck5U2YBQUlwxFJ2NaCOgsXWRcEfjZoNFMzTlfwbfUjwFts3/K+1hJI1gKfG/EDIMM1255zDwcbbDZR6Y7HgN9gbEK4SUK0SmbGwsx4ha+6GwIDAQABAoIBABQbnRhvgJAarO++fvVGArO3YvPHNfnkjJsVAFv/1yJ3sL+XG6auHs9vm3U7bg8hSHe2xmCywURHobnent7kiySDwQXgwZrMx3FfAkIYsL/BPbpoamBGuV6sVIMn+JFQDqr35er5hqXPi1znUoTgyD71v1BBDDDIUFWn/G+izYF1hy90/yfocu2OADPSoPdvc1MhbmZ8uT7xYQF7E5tmJwfK+AR9VdS7adsGekpqfpmyIprJKFN4aQbXOq61WX8KGCxDOxUvZmyV3DiF/BSiCVwTMVMH2XbJmIuHXN/B/p/lowQcCXtQULj4jo87RUxN6ZsHXV1PHjnUS7YINeYGfAECgYEA9uVoRIdE4kcr3jwYo2g5IIUEbeXyl6DamT2Vv/uHxMnMNqlN943in9y+dgzC9LrIfZPRnjYVv3dr/mBmKWs5RNHutEMUYya0sLmg9dxFCm1ewzoU993Q4sZmt6sZdTjLNAQosdUnJ/s3cuozNeNIGWOJ0PXaeXmnDzMTh0Dd4wECgYEA6eSIbynaLumLUzgX8dAGW3WTlggEJnGpiDvsVAP286TkjCBZksy/ceI2chSsyvV6t+4FnIfTa5Y3lsHLC+3zP4m5prby4sk/HwDxUkVY5W+IpuvXGEXb8Hwc5PAPGiMHCp3r008BVzVX72VKt+704drX6U/hXsthQovIMfANyRsCgYEA59O22Qnuy02qykzBkcYORhPAefS9mlSmjdc+4nqrHEOjpfvJQtaOYi8jA7Ot55/vG8MNw7HjL9pRpBQeOWv95Tn+GnMWFJfGeF6E3fbLOSRDI6tI/wjf1+AVmQZmrCP84cW59GlCEA+aHCP+m+3iyDwnrvb7Aq8RB3udLZXiAwECgYEAn97x0uoMlJxV+2AQHd1POxy28IoyLATtGI29EABVwFwpTA6gq1MAWNuC05+GLIR2iVpMw52jyZo4DPgRzemrpvaAy4+pnZJpbsu6J7328Xy3L0FtGM5Hc62iImpkKD1hBsTC+QC7rdxsatoVpHvVLrvjcTqElcL2jAH3qQqooZkCgYASyKRslDmPaHvtCF1366AkhYgqgWABwM1BgjES6xpBzgdQONp/qq/iw9Z43rZz076fRRGD5GQ/fQZLR6lZIgVyRDsq2VI9H8tiWdWgXtnp19B1wpD8L5hwy/YytpZbh1HrPCzRL53C5taJzR0kXylHvNlrACYCsSEZ4aQDmrh9wg==
- peerId: 12D3KooWCUPYuMnQhu9yREJgQyjcz8zWY83rZGmDLwb9YR6QkbZX
address:
- 127.0.0.1:4432
signingKey: EqD0bdvO2E9+i29hfJTMtae8Zw8Dgnb/KanLSg59K7YndQHdxxvtVUljy3htlXd7dGKfEuJ7EglVHdNxzg5q7g==
encryptionKey: MIIEpAIBAAKCAQEAuOwKfzHLrm94jH4PElKfkB9geQ5OhtdbcS4K3TeyZ5xU0hi0TiXxOiHQOCg2uO7B/fnQcAArUBvPNa4QOvNuWRY+246FHYBxCJvJdfOpwirQbQ2l5iqR13rpSAELnF/zB4XMQa6wGVhsgWipvY9PUrLF6RwpeeBu9OtpVaA2oUiUXyD+v1f4dNXjZqrTKS9IycksGEEI4knEfG421K862BRty94pVWfqv/ZgpJUQZiWLX9CSbAdvjoHxOdm96VhMjTBw3oyv7hTr/zQR9y77OMFwOOBtn4QWXSS54r89inoksgGjH5cProhR+V4QZ4962TGsnc92j+IjtlxI/o3CuQIDAQABAoIBACyLl5+6NBFqAsT9HM5SHuPN2yRuINZ0jC+AYteVMiGpU/lkQBLPKwPQ32KXtU7pHMv8YIyKTeS3Pjv1GS3KNBu7sxqag1Bu/0uOk4IZVxxRyfFrJzqBqK4aipVwwwZBSr7WKTTtSrhgR4sI1lK2ceo+7FPSF9+nA7N1/eLFfENvWegG9cM9G1162f1ypTmTKB6zvyEhrMnpw5IWGiyL41Pbn7Q6qMxJCMedJn40UWwZ+K04StxcX0MdPqiRC1mhEECF23y/Yu3QYVlyAR/Ya6POPK+Y/PQhvYuA8gMbdJgM/BpFntqqJx6nf9ojZjmkpFytHuKojDP+SOYSvifGSzECgYEA85YGa9DNHeEGU7e7U6iReHn0Cy1ZlDl4q/E1tyOSY1tpuTdiIYNLZAmx/ZDLj7y8NcNwK44CWhNGUlsTGOL0wrsFefH6tJOLLklTgwo6gnFFeNKUaTrZMQhu1Rf6fruO6yUHe34EgDnMIclx3+bXpZmWGVVOXLx7e/gQfDiRg3UCgYEAwlimHW2pJshQdCCyIFPvf36FK7xNiTIGy4VW8q8ulX4UESioxQtv8Irf5UCo1WpTSNA8RYRPU4gZnp0jkBydNDU2bdNGiN3IySU99/2dtYEHPJAferwXoOVdSCVXw2fGyQZK6GaciWDP3bgZdVKBSGBCN30eJ2PDVKni2NiHbbUCgYAdPHKE2kjkPy/9OF45ik/7f9e0x7qqucMsEAV8d76IQl6MJoOWtiWEWk2Mu6ZTGDoW0eBSufa6TPnxxJCkOglangvoOQz4Q4U/BvoJDl87bNED0XKStsd+xR5YYUplj6l1u7oMLnHn2ggQPhd24kQb0jVb0QtYwh6oIHwKDNgaSQKBgQCuTYeeuS2ORPYzUOexKtaQSE7z7My1kZKakhprSkbDePJSeV70as+Ys1UfbaB+1/+ePHTx/DqRNm2T3md45tDvdBI+6dBHDHL6RFaRxnrdwL1WygQRtgSTH2NMQ4G1Fawpu2UPjogyhguoVWcv3DFrUjnRPnv+4/DaTAvSZFECSQKBgQDh6g0n+MIknDo89ffCmIuD5qkPi7GYYGBfQ7HHHq5dUXazN6+vKazgGEJo72MU4ZlHl/U33MoMuuVP2cBEYJx8iMaP7ze8jUWVRA7rzg4A2ayBCOQxpBehEBhD1yEBPKO5PVTYV0a3BiM4tQLLPuoh5QcB7ANwmZkFdLpizLqn2A==
types:
- tree
- peerId: 12D3KooWJi32ajZPuHVV3DqknS6UinPoHNEKE4mzx2qz356UPp6N
address: 127.0.0.1:4530
- peerId: 12D3KooWNT4hbNKXeFuDtdQ13ZbhQ1oJJ2AVWgAQVRrCj6Zb5wxk
address:
- 127.0.0.1:4530
types:
- consensus
- peerId: 12D3KooWE5UhTEvzfZhjDpbwademWbGHYzK6tfTVNrcAYNtZy5Gx
address: 127.0.0.1:4531
- peerId: 12D3KooWNQZjL4H82u9qdjpWFBFjFdZyTqvgXT6dajkJuRn9yE8H
address:
- 127.0.0.1:4531
types:
- consensus
- peerId: 12D3KooWRRryc9JSd5qdRATTLCB21m9ELopJvbTiDehyovQZvgf3
address: 127.0.0.1:4532
- peerId: 12D3KooWR5tEHzEqVjQas8PfhsGjWMooTWXsryDUz8HXWYnQhczf
address:
- 127.0.0.1:4532
types:
- consensus
- peerId: 12D3KooWE6KRBwb1CGZHChD4nw1zGSt7kVKsyiL3DyZe245Lo9nL
address: 127.0.0.1:4730
- peerId: 12D3KooWQxiZ5a7vcy4DTJa8Gy1eVUmwb5ojN4SrJC9Rjxzigw6C
address:
- 127.0.0.1:4730
types:
- file
space:
@ -59,6 +70,3 @@ log:
production: false
defaultLevel: ""
namedLevels: {}
stream:
timeoutMilliseconds: 1000
maxMsgSizeMb: 256

View file

@ -3,7 +3,7 @@ export GOPRIVATE=github.com/anytypeio
build:
@$(eval FLAGS := $$(shell govvv -flags -pkg github.com/anytypeio/go-anytype-infrastructure-experiments/filenode))
go build -v -o ../bin/file-node -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/filenode/cmd
go build -v -o ../bin/anytype-file -ldflags "$(FLAGS)" github.com/anytypeio/go-anytype-infrastructure-experiments/filenode/cmd
test:
go test ./... --cover
go test ./... --cover

View file

@ -4,7 +4,6 @@ import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
@ -24,7 +23,7 @@ func New() app.Component {
}
func (s *service) Init(a *app.App) (err error) {
acc := a.MustComponent(config.CName).(commonaccount.ConfigGetter).GetAccount()
acc := a.MustComponent("config").(commonaccount.ConfigGetter).GetAccount()
decodedEncryptionKey, err := keys.DecodeKeyFromString(
acc.EncryptionKey,

View file

@ -1,17 +1,19 @@
package config
import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"gopkg.in/yaml.v3"
"io/ioutil"
"os"
)
const CName = config.CName
const CName = "config"
func NewFromFile(path string) (c *Config, err error) {
c = &Config{}
data, err := ioutil.ReadFile(path)
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
@ -22,11 +24,10 @@ func NewFromFile(path string) (c *Config, err error) {
}
type Config struct {
Account config.Account `yaml:"account"`
GrpcServer config.GrpcServer `yaml:"grpcServer"`
Metric config.Metric `yaml:"metric"`
FileStorePogreb FileStorePogreb `yaml:"fileStorePogreb"`
Stream config.Stream `yaml:"stream"`
Account commonaccount.Config `yaml:"account"`
GrpcServer net.Config `yaml:"grpcServer"`
Metric metric.Config `yaml:"metric"`
FileStorePogreb FileStorePogreb `yaml:"fileStorePogreb"`
}
func (c *Config) Init(a *app.App) (err error) {
@ -37,7 +38,7 @@ func (c Config) Name() (name string) {
return CName
}
func (c Config) GetAccount() config.Account {
func (c Config) GetAccount() commonaccount.Config {
return c.Account
}
@ -45,14 +46,10 @@ func (c Config) GetFileStorePogreb() FileStorePogreb {
return c.FileStorePogreb
}
func (c Config) GetGRPCServer() config.GrpcServer {
func (c Config) GetNet() net.Config {
return c.GrpcServer
}
func (c Config) GetMetric() config.Metric {
func (c Config) GetMetric() metric.Config {
return c.Metric
}
func (c Config) GetStream() config.Stream {
return c.Stream
}

View file

@ -16,7 +16,6 @@ require (
require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect

View file

@ -50,8 +50,6 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c h1:+bD75daSbsxyTzkKpNplC4xls+7/tGwty+zruzOnOmk=
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c/go.mod h1:zCt2QeYukhd/g0bIdNqF+b/kKz1hnLFNDkP49qN5kqI=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=

View file

@ -4,10 +4,10 @@ import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/accountdata"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/config"
)
type service struct {
@ -60,6 +60,7 @@ func (s *service) Init(a *app.App) (err error) {
PeerKey: decodedPeerKey,
SignKey: decodedSigningKey,
EncKey: decodedEncryptionKey,
PeerId: acc.PeerId,
}
return nil

View file

@ -7,7 +7,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/dialer"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/pool"
@ -15,6 +14,7 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secureservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/account"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/debug/nodedebugrpc"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/nodespace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/nodespace/nodecache"

75
node/config/config.go Normal file
View file

@ -0,0 +1,75 @@
package config
import (
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/metric"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/storage"
"gopkg.in/yaml.v3"
"os"
)
const CName = "config"
func NewFromFile(path string) (c *Config, err error) {
c = &Config{}
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
if err = yaml.Unmarshal(data, c); err != nil {
return nil, err
}
return
}
type Config struct {
GrpcServer net.Config `yaml:"grpcServer"`
Account commonaccount.Config `yaml:"account"`
APIServer net.Config `yaml:"apiServer"`
Nodes []nodeconf.NodeConfig `yaml:"nodes"`
Space commonspace.Config `yaml:"space"`
Storage storage.Config `yaml:"storage"`
Metric metric.Config `yaml:"metric"`
Log logger.Config `yaml:"log"`
}
func (c *Config) Init(a *app.App) (err error) {
return
}
func (c Config) Name() (name string) {
return CName
}
func (c Config) GetNet() net.Config {
return c.GrpcServer
}
func (c Config) GetDebugNet() net.Config {
return c.APIServer
}
func (c Config) GetAccount() commonaccount.Config {
return c.Account
}
func (c Config) GetMetric() metric.Config {
return c.Metric
}
func (c Config) GetSpace() commonspace.Config {
return c.Space
}
func (c Config) GetStorage() storage.Config {
return c.Storage
}
func (c Config) GetNodes() []nodeconf.NodeConfig {
return c.Nodes
}

View file

@ -6,7 +6,7 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/object/treegetter"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/secureservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/debug/nodedebugrpc/nodedebugrpcproto"
@ -23,6 +23,10 @@ func New() NodeDebugRpc {
return &nodeDebugRpc{BaseDrpcServer: server.NewBaseDrpcServer()}
}
type configGetter interface {
GetDebugNet() net.Config
}
type NodeDebugRpc interface {
app.ComponentRunnable
drpc.Mux
@ -30,7 +34,7 @@ type NodeDebugRpc interface {
type nodeDebugRpc struct {
transport secureservice.SecureService
cfg *config.Config
cfg net.Config
treeCache treegetter.TreeGetter
spaceService nodespace.Service
storageService nodestorage.NodeStorage
@ -41,7 +45,7 @@ func (s *nodeDebugRpc) Init(a *app.App) (err error) {
s.treeCache = a.MustComponent(treegetter.CName).(treegetter.TreeGetter)
s.spaceService = a.MustComponent(nodespace.CName).(nodespace.Service)
s.storageService = a.MustComponent(spacestorage.CName).(nodestorage.NodeStorage)
s.cfg = a.MustComponent(config.CName).(*config.Config)
s.cfg = a.MustComponent("config").(configGetter).GetDebugNet()
s.transport = a.MustComponent(secureservice.CName).(secureservice.SecureService)
return nil
}
@ -54,7 +58,7 @@ func (s *nodeDebugRpc) Run(ctx context.Context) (err error) {
params := server.Params{
BufferSizeMb: s.cfg.Stream.MaxMsgSizeMb,
TimeoutMillis: s.cfg.Stream.TimeoutMilliseconds,
ListenAddrs: s.cfg.APIServer.ListenAddrs,
ListenAddrs: s.cfg.Server.ListenAddrs,
Wrapper: func(handler drpc.Handler) drpc.Handler {
return handler
},

View file

@ -9,11 +9,14 @@ replace github.com/anytypeio/go-anytype-infrastructure-experiments/consensus =>
require (
github.com/akrylysov/pogreb v0.10.1
github.com/anytypeio/go-anytype-infrastructure-experiments/common v0.0.0-00010101000000-000000000000
github.com/anytypeio/go-anytype-infrastructure-experiments/consensus v0.0.0-00010101000000-000000000000
github.com/anytypeio/go-anytype-infrastructure-experiments/consensus v0.0.0-20221107145605-92bdf7d57b48
github.com/gogo/protobuf v1.3.2
github.com/golang/mock v1.6.0
github.com/ipfs/go-cid v0.3.2
github.com/stretchr/testify v1.8.0
go.uber.org/zap v1.23.0
github.com/stretchr/testify v1.8.1
go.uber.org/zap v1.24.0
gopkg.in/yaml.v3 v3.0.1
storj.io/drpc v0.0.32
)
require (
@ -21,17 +24,16 @@ require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cheggaaa/mb/v2 v2.0.1 // indirect
github.com/cheggaaa/mb/v3 v3.0.0-20221122160120-e9034545510c // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
github.com/fogleman/gg v1.3.0 // indirect
github.com/goccy/go-graphviz v0.0.9 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/huandu/skiplist v1.2.0 // indirect
github.com/ipfs/go-log/v2 v2.5.1 // indirect
github.com/klauspost/cpuid/v2 v2.1.1 // indirect
github.com/klauspost/cpuid/v2 v2.2.2 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-libp2p v0.23.2 // indirect
github.com/libp2p/go-openssl v0.1.0 // indirect
@ -41,12 +43,12 @@ require (
github.com/minio/sha256-simd v1.0.0 // indirect
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/multiformats/go-base32 v0.1.0 // indirect
github.com/multiformats/go-base36 v0.1.0 // indirect
github.com/multiformats/go-base36 v0.2.0 // indirect
github.com/multiformats/go-multiaddr v0.7.0 // indirect
github.com/multiformats/go-multibase v0.1.1 // indirect
github.com/multiformats/go-multicodec v0.6.0 // indirect
github.com/multiformats/go-multihash v0.2.1 // indirect
github.com/multiformats/go-varint v0.0.6 // indirect
github.com/multiformats/go-varint v0.0.7 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.13.0 // indirect
@ -58,12 +60,11 @@ require (
github.com/zeebo/blake3 v0.2.3 // indirect
github.com/zeebo/errs v1.3.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/crypto v0.4.0 // indirect
golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b // indirect
golang.org/x/image v0.0.0-20200119044424-58c23975cae1 // indirect
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect
golang.org/x/sys v0.3.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/blake3 v1.1.7 // indirect
storj.io/drpc v0.0.32 // indirect
)

View file

@ -8,7 +8,6 @@ import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/server"
"time"
)
@ -27,14 +26,14 @@ type Service interface {
}
type service struct {
conf config.Space
conf commonspace.Config
spaceCache ocache.OCache
commonSpace commonspace.SpaceService
spaceStorageProvider spacestorage.SpaceStorageProvider
}
func (s *service) Init(a *app.App) (err error) {
s.conf = a.MustComponent(config.CName).(*config.Config).Space
s.conf = a.MustComponent("config").(commonspace.ConfigGetter).GetSpace()
s.commonSpace = a.MustComponent(commonspace.CName).(commonspace.SpaceService)
s.spaceStorageProvider = a.MustComponent(spacestorage.CName).(spacestorage.SpaceStorageProvider)
s.spaceCache = ocache.New(

9
node/storage/config.go Normal file
View file

@ -0,0 +1,9 @@
package storage
type configGetter interface {
GetStorage() Config
}
type Config struct {
Path string `yaml:"path"`
}

View file

@ -3,7 +3,6 @@ package storage
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacestorage"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"os"
)
@ -21,8 +20,8 @@ func New() NodeStorage {
}
func (s *storageService) Init(a *app.App) (err error) {
cfg := a.MustComponent(config.CName).(*config.Config)
s.rootPath = cfg.Storage.Path
cfg := a.MustComponent("config").(configGetter).GetStorage()
s.rootPath = cfg.Path
return nil
}

View file

@ -3,13 +3,20 @@ package main
import (
"flag"
"fmt"
config "github.com/anytypeio/go-anytype-infrastructure-experiments/common/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/client/badgerprovider"
clconfig "github.com/anytypeio/go-anytype-infrastructure-experiments/client/config"
commonaccount "github.com/anytypeio/go-anytype-infrastructure-experiments/common/accountservice"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/keys/asymmetric/signingkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/peer"
cconfig "github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/config"
consconfig "github.com/anytypeio/go-anytype-infrastructure-experiments/consensus/config"
fconfig "github.com/anytypeio/go-anytype-infrastructure-experiments/filenode/config"
config "github.com/anytypeio/go-anytype-infrastructure-experiments/node/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/node/storage"
"gopkg.in/yaml.v3"
"io/ioutil"
"os"
@ -51,7 +58,7 @@ func main() {
}
var configs []config.Config
var nodes []config.Node
var nodes []nodeconf.NodeConfig
for i, n := range nodesMap.Nodes {
cfg, err := genNodeConfig(n.Addresses, n.APIAddresses, i+1)
if err != nil {
@ -59,12 +66,12 @@ func main() {
}
configs = append(configs, cfg)
node := config.Node{
node := nodeconf.NodeConfig{
PeerId: cfg.Account.PeerId,
Address: cfg.GrpcServer.ListenAddrs[0],
Addresses: cfg.GrpcServer.Server.ListenAddrs,
SigningKey: cfg.Account.SigningKey,
EncryptionKey: cfg.Account.EncryptionKey,
Types: []config.NodeType{config.NodeTypeTree},
Types: []nodeconf.NodeType{nodeconf.NodeTypeTree},
}
nodes = append(nodes, node)
}
@ -79,7 +86,7 @@ func main() {
panic(fmt.Sprintf("could not generate client signing key: %s", err.Error()))
}
var clientConfigs []config.Config
var clientConfigs []clconfig.Config
for i, c := range nodesMap.Clients {
cfg, err := genClientConfig(c.Addresses, c.APIAddresses, encClientKey, signClientKey, i+1)
if err != nil {
@ -88,17 +95,17 @@ func main() {
clientConfigs = append(clientConfigs, cfg)
}
var consConfigs []cconfig.Config
var consConfigs []consconfig.Config
for _, n := range nodesMap.Consensus {
cfg, err := genConsensusConfig(n.Addresses)
if err != nil {
panic(fmt.Sprintf("could not generate the config file: %s", err.Error()))
}
consConfigs = append(consConfigs, cfg)
nodes = append(nodes, config.Node{
PeerId: cfg.Account.PeerId,
Address: n.Addresses[0],
Types: []config.NodeType{config.NodeTypeConsensus},
nodes = append(nodes, nodeconf.NodeConfig{
PeerId: cfg.Account.PeerId,
Addresses: n.Addresses,
Types: []nodeconf.NodeType{nodeconf.NodeTypeConsensus},
})
}
var fileConfigs []fconfig.Config
@ -108,10 +115,10 @@ func main() {
panic(fmt.Sprintf("could not generate the config file: %s", err.Error()))
}
fileConfigs = append(fileConfigs, cfg)
nodes = append(nodes, config.Node{
PeerId: cfg.Account.PeerId,
Address: n.Addresses[0],
Types: []config.NodeType{config.NodeTypeFile},
nodes = append(nodes, nodeconf.NodeConfig{
PeerId: cfg.Account.PeerId,
Addresses: n.Addresses,
Types: []nodeconf.NodeType{nodeconf.NodeTypeFile},
})
}
@ -216,133 +223,144 @@ func genNodeConfig(addresses []string, apiAddresses []string, num int) (config.C
}
return config.Config{
Anytype: config.Anytype{SwarmKey: "/key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec"},
GrpcServer: config.GrpcServer{
ListenAddrs: addresses,
TLS: false,
GrpcServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: addresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Storage: config.Storage{Path: fmt.Sprintf("db/node/%d/data", num)},
Account: config.Account{
Storage: storage.Config{Path: fmt.Sprintf("db/node/%d/data", num)},
Account: commonaccount.Config{
PeerId: peerID.String(),
PeerKey: encSignKey,
SigningKey: encSignKey,
EncryptionKey: encEncKey,
},
APIServer: config.GrpcServer{
ListenAddrs: apiAddresses,
TLS: false,
APIServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: apiAddresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Space: config.Space{
Space: commonspace.Config{
GCTTL: 60,
SyncPeriod: 600,
},
Stream: config.Stream{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
}, nil
}
func genClientConfig(addresses []string, apiAddresses []string, encKey encryptionkey.PrivKey, signKey signingkey.PrivKey, num int) (config.Config, error) {
func genClientConfig(addresses []string, apiAddresses []string, encKey encryptionkey.PrivKey, signKey signingkey.PrivKey, num int) (clconfig.Config, error) {
peerKey, _, err := signingkey.GenerateRandomEd25519KeyPair()
if err != nil {
return config.Config{}, err
return clconfig.Config{}, err
}
encEncKey, err := keys.EncodeKeyToString(encKey)
if err != nil {
return config.Config{}, err
return clconfig.Config{}, err
}
encSignKey, err := keys.EncodeKeyToString(signKey)
if err != nil {
return config.Config{}, err
return clconfig.Config{}, err
}
encPeerKey, err := keys.EncodeKeyToString(peerKey)
if err != nil {
return config.Config{}, err
return clconfig.Config{}, err
}
peerID, err := peer.IdFromSigningPubKey(peerKey.GetPublic())
if err != nil {
return config.Config{}, err
return clconfig.Config{}, err
}
return config.Config{
Anytype: config.Anytype{SwarmKey: "/key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec"},
GrpcServer: config.GrpcServer{
ListenAddrs: addresses,
TLS: false,
return clconfig.Config{
GrpcServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: addresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Storage: config.Storage{Path: fmt.Sprintf("db/client/%d", num)},
Account: config.Account{
Storage: badgerprovider.Config{Path: fmt.Sprintf("db/client/%d", num)},
Account: commonaccount.Config{
PeerId: peerID.String(),
PeerKey: encPeerKey,
SigningKey: encSignKey,
EncryptionKey: encEncKey,
},
APIServer: config.GrpcServer{
ListenAddrs: apiAddresses,
TLS: false,
APIServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: apiAddresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Space: config.Space{
Space: commonspace.Config{
GCTTL: 60,
SyncPeriod: 20,
},
Stream: config.Stream{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
}, nil
}
func genConsensusConfig(addresses []string) (cconfig.Config, error) {
func genConsensusConfig(addresses []string) (consconfig.Config, error) {
encKey, _, err := encryptionkey.GenerateRandomRSAKeyPair(2048)
if err != nil {
return cconfig.Config{}, err
return consconfig.Config{}, err
}
signKey, _, err := signingkey.GenerateRandomEd25519KeyPair()
if err != nil {
return cconfig.Config{}, err
return consconfig.Config{}, err
}
encEncKey, err := keys.EncodeKeyToString(encKey)
if err != nil {
return cconfig.Config{}, err
return consconfig.Config{}, err
}
encSignKey, err := keys.EncodeKeyToString(signKey)
if err != nil {
return cconfig.Config{}, err
return consconfig.Config{}, err
}
peerID, err := peer.IdFromSigningPubKey(signKey.GetPublic())
if err != nil {
return cconfig.Config{}, err
return consconfig.Config{}, err
}
return cconfig.Config{
GrpcServer: config.GrpcServer{
ListenAddrs: addresses,
TLS: false,
return consconfig.Config{
GrpcServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: addresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Account: config.Account{
Account: commonaccount.Config{
PeerId: peerID.String(),
PeerKey: encSignKey,
SigningKey: encSignKey,
EncryptionKey: encEncKey,
},
Mongo: cconfig.Mongo{
Mongo: consconfig.Mongo{
Connect: "mongodb://localhost:27017/?w=majority",
Database: "consensus",
LogCollection: "log",
},
Stream: config.Stream{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
}, nil
}
@ -372,10 +390,16 @@ func getFileNodeConfig(addresses []string, num int) (fconfig.Config, error) {
return fconfig.Config{}, err
}
return fconfig.Config{
GrpcServer: config.GrpcServer{
ListenAddrs: addresses,
GrpcServer: net.Config{
Server: net.ServerConfig{
ListenAddrs: addresses,
},
Stream: net.StreamConfig{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
},
Account: config.Account{
Account: commonaccount.Config{
PeerId: peerID.String(),
PeerKey: encSignKey,
SigningKey: encSignKey,
@ -384,9 +408,5 @@ func getFileNodeConfig(addresses []string, num int) (fconfig.Config, error) {
FileStorePogreb: fconfig.FileStorePogreb{
Path: fmt.Sprintf("db/file/%d", num),
},
Stream: config.Stream{
TimeoutMilliseconds: 1000,
MaxMsgSizeMb: 256,
},
}, nil
}