Change config generation logic

This commit is contained in:
mcrakhman 2022-08-03 14:20:20 +02:00 committed by Mikhail Iudin
parent 85cdb1c189
commit 634ab66aa4
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0
17 changed files with 289 additions and 184 deletions

View File

@ -29,7 +29,6 @@ var log = logger.NewNamed("main")
var (
flagConfigFile = flag.String("c", "etc/config.yml", "path to config file")
flagNodesFile = flag.String("a", "etc/nodes.yml", "path to account file")
flagVersion = flag.Bool("v", false, "show version and exit")
flagHelp = flag.Bool("h", false, "show help and exit")
)
@ -62,22 +61,8 @@ func main() {
log.Fatal("can't open config file", zap.Error(err))
}
// open nodes file with node's keys
acc, err := account.NewFromFile(*flagNodesFile)
if err != nil {
log.Fatal("can't open nodes file", zap.Error(err))
}
// open nodes file with data related to other nodes
nodes, err := node.NewFromFile(*flagNodesFile)
if err != nil {
log.Fatal("can't open nodes file", zap.Error(err))
}
// bootstrap components
a.Register(conf)
a.Register(acc)
a.Register(nodes)
Bootstrap(a)
// start app
@ -104,8 +89,10 @@ func main() {
}
func Bootstrap(a *app.App) {
a.Register(transport.New()).
a.Register(account.New()).
Register(transport.New()).
Register(drpcserver.New()).
Register(node.New()).
Register(document.New()).
Register(message.New()).
Register(requesthandler.New()).

View File

@ -4,92 +4,134 @@ import (
"flag"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/signingkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/peer"
"gopkg.in/yaml.v3"
"math/rand"
"io/ioutil"
"os"
"time"
)
var (
flagNodeMap = flag.String("n", "cmd/nodesgen/nodemap.yml", "path to nodes map file")
flagAccountConfigFile = flag.String("a", "etc/nodes.yml", "path to account file")
flagBaseAddress = flag.String("ba", "127.0.0.1:4430", "base ip for each node (you should change it later)")
flagNodeCount = flag.Int("nc", 5, "the count of nodes for which we create the keys")
flagEtcPath = flag.String("e", "etc", "path to etc directory")
)
func main() {
rand.Seed(time.Now().UnixNano())
flag.Parse()
type NodesMap struct {
Nodes []struct {
Addresses []string `yaml:"grpcAddresses"`
APIPort string `yaml:"apiPort"`
} `yaml:"nodes"`
}
if *flagNodeCount <= 0 {
panic("node count should not be zero or less")
func main() {
nodesMap := &NodesMap{}
data, err := ioutil.ReadFile(*flagNodeMap)
if err != nil {
panic(err)
}
encryptionDecoder := encryptionkey.NewRSAPrivKeyDecoder()
signingDecoder := signingkey.NewEDPrivKeyDecoder()
err = yaml.Unmarshal(data, nodesMap)
if err != nil {
panic(err)
}
flag.Parse()
var nodes []*config.Node
for i := 0; i < *flagNodeCount; i++ {
node, err := genRandomNodeKeys(*flagBaseAddress, encryptionDecoder, signingDecoder)
var configs []config.Config
var nodes []config.Node
for _, n := range nodesMap.Nodes {
cfg, err := genConfig(n.Addresses, n.APIPort)
if err != nil {
panic(fmt.Sprintf("could not generate keys for node: %v", err))
panic(fmt.Sprintf("could not generate the config file: %s", err.Error()))
}
configs = append(configs, cfg)
node := config.Node{
PeerId: cfg.Account.PeerId,
Address: cfg.GrpcServer.ListenAddrs[0],
SigningKey: cfg.Account.SigningKey,
EncryptionKey: cfg.Account.EncryptionKey,
}
nodes = append(nodes, node)
}
nodeInfo := config.NodeInfo{
CurrentAlias: nodes[0].Alias,
Nodes: nodes,
}
bytes, err := yaml.Marshal(nodeInfo)
if err != nil {
panic(fmt.Sprintf("could not marshal the keys: %v", err))
for idx := range configs {
configs[idx].Nodes = nodes
}
err = os.WriteFile(*flagAccountConfigFile, bytes, 0644)
if err != nil {
panic(fmt.Sprintf("could not write the generated nodes to file: %v", err))
// saving configs
configsPath := fmt.Sprintf("%s/configs", *flagEtcPath)
createDir := func() {
err := os.Mkdir(configsPath, os.ModePerm)
if err != nil {
panic(fmt.Sprintf("failed to create the configs directory: %v", err))
}
}
if _, err := os.Stat(configsPath); os.IsNotExist(err) {
createDir()
} else {
err = os.RemoveAll(configsPath)
if err != nil {
panic(fmt.Sprintf("failed to remove the configs directory: %v", err))
}
createDir()
}
for _, cfg := range configs {
path := fmt.Sprintf("%s/%s.yml", configsPath, cfg.Account.PeerId)
bytes, err := yaml.Marshal(cfg)
if err != nil {
panic(fmt.Sprintf("could not marshal the keys: %v", err))
}
err = os.WriteFile(path, bytes, os.ModePerm)
if err != nil {
panic(fmt.Sprintf("could not write the config to file: %v", err))
}
}
}
func genRandomNodeKeys(address string, encKeyDecoder keys.Decoder, signKeyDecoder keys.Decoder) (*config.Node, error) {
func genConfig(addresses []string, apiPort string) (config.Config, error) {
encKey, _, err := encryptionkey.GenerateRandomRSAKeyPair(2048)
if err != nil {
return nil, err
return config.Config{}, err
}
signKey, _, err := signingkey.GenerateRandomEd25519KeyPair()
if err != nil {
return nil, err
return config.Config{}, err
}
encKeyDecoder := encryptionkey.NewRSAPrivKeyDecoder()
signKeyDecoder := signingkey.NewEDPrivKeyDecoder()
encEncKey, err := encKeyDecoder.EncodeToString(encKey)
if err != nil {
return nil, err
return config.Config{}, err
}
encSignKey, err := signKeyDecoder.EncodeToString(signKey)
if err != nil {
return nil, err
return config.Config{}, err
}
return &config.Node{
Alias: randString(5),
Address: address,
SigningKey: encSignKey,
EncryptionKey: encEncKey,
peerID, err := peer.IDFromSigningPubKey(signKey.GetPublic())
if err != nil {
return config.Config{}, err
}
return config.Config{
Anytype: config.Anytype{SwarmKey: "/key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec"},
GrpcServer: config.GrpcServer{
ListenAddrs: addresses,
TLS: false,
},
Account: config.Account{
PeerId: peerID.String(),
SigningKey: encSignKey,
EncryptionKey: encEncKey,
},
APIServer: config.APIServer{
Port: apiPort,
},
}, nil
}
func randString(n int) string {
const letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
b := make([]byte, n)
for i := 0; i < n; i++ {
idx := rand.Intn(len(letterBytes))
b[i] = letterBytes[idx]
}
return string(b)
}

13
cmd/nodesgen/nodemap.yml Normal file
View File

@ -0,0 +1,13 @@
nodes:
- grpcAddresses:
- "127.0.0.1:4430"
- "127.0.0.1:4431"
apiPort: "8080"
- grpcAddresses:
- "127.0.0.1:4432"
- "127.0.0.1:4433"
apiPort: "8081"
- grpcAddresses:
- "127.0.0.1:4434"
- "127.0.0.1:4435"
apiPort: "8082"

7
config/account.go Normal file
View File

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

5
config/api.go Normal file
View File

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

View File

@ -26,6 +26,9 @@ func NewFromFile(path string) (c *Config, err error) {
type Config struct {
Anytype Anytype `yaml:"anytype"`
GrpcServer GrpcServer `yaml:"grpcServer"`
Account Account `yaml:"account"`
APIServer APIServer `yaml:"apiServer"`
Nodes []Node `yaml:"nodes"`
}
func (c *Config) Init(ctx context.Context, a *app.App) (err error) {

View File

@ -3,6 +3,4 @@ package config
type GrpcServer struct {
ListenAddrs []string `yaml:"listenAddrs"`
TLS bool `yaml:"tls"`
TLSCertFile string `yaml:"tlsCertFile"`
TLSKeyFile string `yaml:"tlsKeyFile"`
}

View File

@ -1,13 +1,8 @@
package config
type Node struct {
Alias string `yaml:"alias"`
PeerId string `yaml:"peerId"`
Address string `yaml:"address"`
SigningKey string `yaml:"signingKey"`
EncryptionKey string `yaml:"encryptionKey"`
}
type NodeInfo struct {
CurrentAlias string `yaml:"currentAlias"`
Nodes []*Node `yaml:"nodes"`
}

View File

@ -1,9 +1,26 @@
anytype:
swarmKey: "/key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec"
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- "127.0.0.1:4430"
- "127.0.0.1:4431"
- 127.0.0.1:4430
- 127.0.0.1:4431
tls: false
account:
peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
apiServer:
port: "8080"
nodes:
- peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
address: 127.0.0.1:4430
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
- peerId: 12D3KooWPzziVTnuypw4MC7m4mzdoh9CM5FXGrYiTW81pfjngmwx
address: 127.0.0.1:4432
signingKey: 3i7TZgCtctChP9rA13BDuK2GmdbRL6sgk51JjetKyFt3SEqXN8M4EwcREWVfPYmayBKYPHveLzY7NsggxvKapJFdYH8F
encryptionKey: JgG4CcCbae1qEpe7mL87XWScKZWBBqSZseakgKVJfHqTUt3CiLPMKPDZtzQWLfb2ouiTbff5YTBZbGxwKqWYMAW8prEVjbcXBtkCi2Y2XkZ8v1ugidF5MC3d1ifnh5Es5CafB8kToUegtAig8vhMCuXAzLQpbiQyFLf25KcyKfVvHUomafaHyKCbYu1bmyGRC7CGxUD6jnPg2MYZZiJiq9scNRaRxbiqCe9C2VcUTFdigV65eGmZPKGgfAThcyKCdQSe1hmoXtNw5MaqbB3eQvkuS4GySap3SaEZUmGsmuVumUvHappUpN8x3UQs1TNWfYxULVx3tUMHfQ98G9No4gwP42ENMgCuMVQW9M68s73WCGucvpPUZdvQFiSJkSoKDqi2F6zdrM2LZTp8qGciunKDFZvh14eAGDbPLw9dBLVmMQLKq68yz8Nzi9BYWjzLa4fDNkoYETB8rArNPECAjVVW6PYLzueVNmqvo7RdWZGHF2YCRXr1wLG7jg4WBX4Lm5jQZS8bkWacbpj49b4nxRnjLsGusdCwRCZPY9qFPim2WU4z2KEgRS87x97TiYAThLUJwGBv5pBKRLkrAAoFWwkDSfxcRt83FiZtJ1hLWkpj6fK56SuubQUjWzNfVPCTfNqcod54PAPVESTuAPjDsmM4YeMGgUpaK9Goqbu1FuuZ9P6mQPwGKdpGuVgjJv7uQJZw3fpC9H1vJ4fa2wBrGFkahyEFo2QDb8iG9oGarpFxewJVVs12cpKJeQzU5dLFBvQJmGnHASTnBwfNBieDT7ZeFmnGuN7sLaPJ5wgdKJpY6aAooztyWfJPKTbxzYjUQMVoyW3YbTD3qg8F9grqVT1VFAp88ta1u55eokqz7h82EJNQf7GptDHxPRg4euAJ3BDvmRUfAwYzU8TD1gyiUnnHGRuvH25xgJRqauNrDLUbha33wVAHeMzWJhpLjLz4DLmtLejpfwNr5PuEbczqFAaLspf8dFjkrvmC3RrwHngKuzTkYo46WSJggWs3CwWDpzMmrATh2LRYmdH7BtNUkvu7onRzms8jWHBsFNfbCitMpfAsM3XmgtFUGTMi4LzVK3f5G8HqwGqcVEnFJTZzdoBsfNMKyFapXPnUBUHQse8jZjSYQv3dJpVuTV6HQ5R8saBdKDGMpXFyYqZK85cikcK6Nkd7ZrnbUUN2i6f3ano7hnxTbeW7kGxatUWETTwAzwGjdMhpJjieLFBTomAqqfXopEr1FeWcFmQ6kYBL2fa6XYqhZJevG6LpNXeuLcbyTiADt5CMNwt6MTmEomqtzqE7BgvqYEibuEj5K22ufvvLmX7XbGiB7wZKRPGuTR1pPDgJbzU9HGmF5fWjTVGPeNMn7ZmbQVcys6xy79notYp6MoQhBCTWyuuEuc24REEfMCjPuhNgssJQWT3ZR3xskrcEdCUyGbvQT2eWVa6atYsu5Z2m7sGXXwfH7vhdiUkVZEmhNPusij7dsMa9io63D6itYuu8Ed5aZYoUkZCfKZ39KQ16rtYpa9mfcwG4fyQy11Zy9G7nxdNJohGYeq3xuerSdwTDNdK2PREJcAoNA7Nfcsxk7333B5gXNFZKcBLQk56C1PqApLerSfo3jVuojcNAxYB688K6
- peerId: 12D3KooWL9qu6sDua8hK8sEyeUVzpei8SVf3DA4W1gVAxDMwW9Ze
address: 127.0.0.1:4434
signingKey: 3iPPhpw3jndkSCvpZ4yf5eWYydZwbFAk7gdMkXZBgyh939AicHVakwkabDpxzhtrsgJEXrP5sKam9QL7weMyyoMrKNCH
encryptionKey: JgG4CcCbae1qEpe7mL5br9LinoxiiuQqGC7y6HBbvmQ9pcZM4F4q2oGDQA71ZumaTJ1RAiUDaxi1fBVnrvv4Tqm9fau3NyijggQ246UtHKemsPFBX9Qyv4oYZJ9X3WNNc9q3BkPX9C8WHdfda9fxW4wD1QYKzd5F1J7FdhxZh3MZUdc4GEfPLwew8dTfEJp7ipAvM7TY1r6URe4VHVmsdaEL3jsEUzEqL4MRSc69WdjdKZLyVzQVcjnLegFfoH2c6476MfnoPggeVGghPjDmoqoJ2kzHwjvDQKoGyC9m4wkicS4YZkVA6N2ezKBSumJkV1mY6hpBPuCtdYLDw2zsCqMq9AXFhtMxzSCtLLRnRVntErY3Wb8ty5vEnS8aY7B612okwdsMg2rYxP55ccK4zP7PoKTKTS4TWTqGiLW2GtptTLhQ7ynJudG9YArzwwjgqXaxExrMqFCSMCfQbVNvwv3SckfpwQjpJjCfRS73SQKPY8ghqrdKnuRHyUWpJbYb9y5doCWMCuLw6u6t2LqfcwknNkjoWNCG69tohSgRStbYfmA7AZvHzPGc3gKByZecVxdmvPmtbSLXRiB9FbqtuqEerGxpisL3FhDM6SVqxRm2E2SxwJTHVcyL2LNF5tE2V7mujSa5dwzZfbRA9p3SwFeRhd42z1r36iL92yugfa2SbHYYDhdKFCJLhMc8ogqd1b8oUBbwBktKg6p6MJeZdqS2vfsLQRnV8TyP72fKUjFtaQ4o7D6vQ9VnsBMQS9FF8PEuZ5yF3XQaMjJMpeGho3c4dNFEw4vCiUaVN2WzF7XR28dyGwLASMoVFuUoErgr7TUQm4yKJG8QaHePx7A7Ku3Ys6fvrDsBVJWz5taQB7cMBqXmrAg2DHSUwqr8XfhxXnv8cnZZzPTrtib86P7w3kUYLrJYaR6jur5jTFucFSxthKEMqzBPtS3wgn2hcj31ATSNR7FNDcZmteWex5vAzGkuDoCG4c7dUCGinT3akYvukR7WugdHAYySkhf6AhNGg4wrZ7y3YVRMwRkex3PumcwGGKoTvNMNMqz2kTCNjSsDr6xRBk8njCLwDMunvDZM7VThTMKQ4CvegCtX3kV11qk46WjouqFedYSmShmxB5dMMVKui3owicS3ioVXoSqCRAcov3LJ3zL5aQ19FBBvvezeN27PkcZjvXKQwNEpnMzJeLTLdz8guWrER9Vn7XB3zgvt6xzab8JbHJ62XEEGFC5EoU68D3Wn9oXH6EqfCNbUsfW6EScc7wcsRu7aLi4ddjYrDcd4pQgct3dpAzR9Z4ZHRgQi9k4DF8bg9LUjfjaJS53DGSiSSfGBNtkpdyLp8K8Y89BZRnw21yVcKwA8JD47By6s3vfJ8PdSTs4Lsfm7mEhERuVLyQC9wpPe6ysjzUTQjx7RyTaVVA9ENQfpc1XCdHufDFST1eeiRFLwKzEFCr2bATo5r5oQ6UtBdQv6eFaGv19ju4cikXTNq2vCGw6aMupdaESYeWL5Gs8ssCjb1K2iZfGwqidfTJejEiuoiD2S6shTRv6BFz3JrhU7XsZdLkU9rvDYJs6rWq4C4ix4VWDxNHktF7iBuCASnZjgMYs9Lipt5hZEow4FrWcvUtVQ8PXQT3SC

View File

@ -0,0 +1,26 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4434
- 127.0.0.1:4435
tls: false
account:
peerId: 12D3KooWL9qu6sDua8hK8sEyeUVzpei8SVf3DA4W1gVAxDMwW9Ze
signingKey: 3iPPhpw3jndkSCvpZ4yf5eWYydZwbFAk7gdMkXZBgyh939AicHVakwkabDpxzhtrsgJEXrP5sKam9QL7weMyyoMrKNCH
encryptionKey: JgG4CcCbae1qEpe7mL5br9LinoxiiuQqGC7y6HBbvmQ9pcZM4F4q2oGDQA71ZumaTJ1RAiUDaxi1fBVnrvv4Tqm9fau3NyijggQ246UtHKemsPFBX9Qyv4oYZJ9X3WNNc9q3BkPX9C8WHdfda9fxW4wD1QYKzd5F1J7FdhxZh3MZUdc4GEfPLwew8dTfEJp7ipAvM7TY1r6URe4VHVmsdaEL3jsEUzEqL4MRSc69WdjdKZLyVzQVcjnLegFfoH2c6476MfnoPggeVGghPjDmoqoJ2kzHwjvDQKoGyC9m4wkicS4YZkVA6N2ezKBSumJkV1mY6hpBPuCtdYLDw2zsCqMq9AXFhtMxzSCtLLRnRVntErY3Wb8ty5vEnS8aY7B612okwdsMg2rYxP55ccK4zP7PoKTKTS4TWTqGiLW2GtptTLhQ7ynJudG9YArzwwjgqXaxExrMqFCSMCfQbVNvwv3SckfpwQjpJjCfRS73SQKPY8ghqrdKnuRHyUWpJbYb9y5doCWMCuLw6u6t2LqfcwknNkjoWNCG69tohSgRStbYfmA7AZvHzPGc3gKByZecVxdmvPmtbSLXRiB9FbqtuqEerGxpisL3FhDM6SVqxRm2E2SxwJTHVcyL2LNF5tE2V7mujSa5dwzZfbRA9p3SwFeRhd42z1r36iL92yugfa2SbHYYDhdKFCJLhMc8ogqd1b8oUBbwBktKg6p6MJeZdqS2vfsLQRnV8TyP72fKUjFtaQ4o7D6vQ9VnsBMQS9FF8PEuZ5yF3XQaMjJMpeGho3c4dNFEw4vCiUaVN2WzF7XR28dyGwLASMoVFuUoErgr7TUQm4yKJG8QaHePx7A7Ku3Ys6fvrDsBVJWz5taQB7cMBqXmrAg2DHSUwqr8XfhxXnv8cnZZzPTrtib86P7w3kUYLrJYaR6jur5jTFucFSxthKEMqzBPtS3wgn2hcj31ATSNR7FNDcZmteWex5vAzGkuDoCG4c7dUCGinT3akYvukR7WugdHAYySkhf6AhNGg4wrZ7y3YVRMwRkex3PumcwGGKoTvNMNMqz2kTCNjSsDr6xRBk8njCLwDMunvDZM7VThTMKQ4CvegCtX3kV11qk46WjouqFedYSmShmxB5dMMVKui3owicS3ioVXoSqCRAcov3LJ3zL5aQ19FBBvvezeN27PkcZjvXKQwNEpnMzJeLTLdz8guWrER9Vn7XB3zgvt6xzab8JbHJ62XEEGFC5EoU68D3Wn9oXH6EqfCNbUsfW6EScc7wcsRu7aLi4ddjYrDcd4pQgct3dpAzR9Z4ZHRgQi9k4DF8bg9LUjfjaJS53DGSiSSfGBNtkpdyLp8K8Y89BZRnw21yVcKwA8JD47By6s3vfJ8PdSTs4Lsfm7mEhERuVLyQC9wpPe6ysjzUTQjx7RyTaVVA9ENQfpc1XCdHufDFST1eeiRFLwKzEFCr2bATo5r5oQ6UtBdQv6eFaGv19ju4cikXTNq2vCGw6aMupdaESYeWL5Gs8ssCjb1K2iZfGwqidfTJejEiuoiD2S6shTRv6BFz3JrhU7XsZdLkU9rvDYJs6rWq4C4ix4VWDxNHktF7iBuCASnZjgMYs9Lipt5hZEow4FrWcvUtVQ8PXQT3SC
apiServer:
port: "8082"
nodes:
- peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
address: 127.0.0.1:4430
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
- peerId: 12D3KooWPzziVTnuypw4MC7m4mzdoh9CM5FXGrYiTW81pfjngmwx
address: 127.0.0.1:4432
signingKey: 3i7TZgCtctChP9rA13BDuK2GmdbRL6sgk51JjetKyFt3SEqXN8M4EwcREWVfPYmayBKYPHveLzY7NsggxvKapJFdYH8F
encryptionKey: JgG4CcCbae1qEpe7mL87XWScKZWBBqSZseakgKVJfHqTUt3CiLPMKPDZtzQWLfb2ouiTbff5YTBZbGxwKqWYMAW8prEVjbcXBtkCi2Y2XkZ8v1ugidF5MC3d1ifnh5Es5CafB8kToUegtAig8vhMCuXAzLQpbiQyFLf25KcyKfVvHUomafaHyKCbYu1bmyGRC7CGxUD6jnPg2MYZZiJiq9scNRaRxbiqCe9C2VcUTFdigV65eGmZPKGgfAThcyKCdQSe1hmoXtNw5MaqbB3eQvkuS4GySap3SaEZUmGsmuVumUvHappUpN8x3UQs1TNWfYxULVx3tUMHfQ98G9No4gwP42ENMgCuMVQW9M68s73WCGucvpPUZdvQFiSJkSoKDqi2F6zdrM2LZTp8qGciunKDFZvh14eAGDbPLw9dBLVmMQLKq68yz8Nzi9BYWjzLa4fDNkoYETB8rArNPECAjVVW6PYLzueVNmqvo7RdWZGHF2YCRXr1wLG7jg4WBX4Lm5jQZS8bkWacbpj49b4nxRnjLsGusdCwRCZPY9qFPim2WU4z2KEgRS87x97TiYAThLUJwGBv5pBKRLkrAAoFWwkDSfxcRt83FiZtJ1hLWkpj6fK56SuubQUjWzNfVPCTfNqcod54PAPVESTuAPjDsmM4YeMGgUpaK9Goqbu1FuuZ9P6mQPwGKdpGuVgjJv7uQJZw3fpC9H1vJ4fa2wBrGFkahyEFo2QDb8iG9oGarpFxewJVVs12cpKJeQzU5dLFBvQJmGnHASTnBwfNBieDT7ZeFmnGuN7sLaPJ5wgdKJpY6aAooztyWfJPKTbxzYjUQMVoyW3YbTD3qg8F9grqVT1VFAp88ta1u55eokqz7h82EJNQf7GptDHxPRg4euAJ3BDvmRUfAwYzU8TD1gyiUnnHGRuvH25xgJRqauNrDLUbha33wVAHeMzWJhpLjLz4DLmtLejpfwNr5PuEbczqFAaLspf8dFjkrvmC3RrwHngKuzTkYo46WSJggWs3CwWDpzMmrATh2LRYmdH7BtNUkvu7onRzms8jWHBsFNfbCitMpfAsM3XmgtFUGTMi4LzVK3f5G8HqwGqcVEnFJTZzdoBsfNMKyFapXPnUBUHQse8jZjSYQv3dJpVuTV6HQ5R8saBdKDGMpXFyYqZK85cikcK6Nkd7ZrnbUUN2i6f3ano7hnxTbeW7kGxatUWETTwAzwGjdMhpJjieLFBTomAqqfXopEr1FeWcFmQ6kYBL2fa6XYqhZJevG6LpNXeuLcbyTiADt5CMNwt6MTmEomqtzqE7BgvqYEibuEj5K22ufvvLmX7XbGiB7wZKRPGuTR1pPDgJbzU9HGmF5fWjTVGPeNMn7ZmbQVcys6xy79notYp6MoQhBCTWyuuEuc24REEfMCjPuhNgssJQWT3ZR3xskrcEdCUyGbvQT2eWVa6atYsu5Z2m7sGXXwfH7vhdiUkVZEmhNPusij7dsMa9io63D6itYuu8Ed5aZYoUkZCfKZ39KQ16rtYpa9mfcwG4fyQy11Zy9G7nxdNJohGYeq3xuerSdwTDNdK2PREJcAoNA7Nfcsxk7333B5gXNFZKcBLQk56C1PqApLerSfo3jVuojcNAxYB688K6
- peerId: 12D3KooWL9qu6sDua8hK8sEyeUVzpei8SVf3DA4W1gVAxDMwW9Ze
address: 127.0.0.1:4434
signingKey: 3iPPhpw3jndkSCvpZ4yf5eWYydZwbFAk7gdMkXZBgyh939AicHVakwkabDpxzhtrsgJEXrP5sKam9QL7weMyyoMrKNCH
encryptionKey: JgG4CcCbae1qEpe7mL5br9LinoxiiuQqGC7y6HBbvmQ9pcZM4F4q2oGDQA71ZumaTJ1RAiUDaxi1fBVnrvv4Tqm9fau3NyijggQ246UtHKemsPFBX9Qyv4oYZJ9X3WNNc9q3BkPX9C8WHdfda9fxW4wD1QYKzd5F1J7FdhxZh3MZUdc4GEfPLwew8dTfEJp7ipAvM7TY1r6URe4VHVmsdaEL3jsEUzEqL4MRSc69WdjdKZLyVzQVcjnLegFfoH2c6476MfnoPggeVGghPjDmoqoJ2kzHwjvDQKoGyC9m4wkicS4YZkVA6N2ezKBSumJkV1mY6hpBPuCtdYLDw2zsCqMq9AXFhtMxzSCtLLRnRVntErY3Wb8ty5vEnS8aY7B612okwdsMg2rYxP55ccK4zP7PoKTKTS4TWTqGiLW2GtptTLhQ7ynJudG9YArzwwjgqXaxExrMqFCSMCfQbVNvwv3SckfpwQjpJjCfRS73SQKPY8ghqrdKnuRHyUWpJbYb9y5doCWMCuLw6u6t2LqfcwknNkjoWNCG69tohSgRStbYfmA7AZvHzPGc3gKByZecVxdmvPmtbSLXRiB9FbqtuqEerGxpisL3FhDM6SVqxRm2E2SxwJTHVcyL2LNF5tE2V7mujSa5dwzZfbRA9p3SwFeRhd42z1r36iL92yugfa2SbHYYDhdKFCJLhMc8ogqd1b8oUBbwBktKg6p6MJeZdqS2vfsLQRnV8TyP72fKUjFtaQ4o7D6vQ9VnsBMQS9FF8PEuZ5yF3XQaMjJMpeGho3c4dNFEw4vCiUaVN2WzF7XR28dyGwLASMoVFuUoErgr7TUQm4yKJG8QaHePx7A7Ku3Ys6fvrDsBVJWz5taQB7cMBqXmrAg2DHSUwqr8XfhxXnv8cnZZzPTrtib86P7w3kUYLrJYaR6jur5jTFucFSxthKEMqzBPtS3wgn2hcj31ATSNR7FNDcZmteWex5vAzGkuDoCG4c7dUCGinT3akYvukR7WugdHAYySkhf6AhNGg4wrZ7y3YVRMwRkex3PumcwGGKoTvNMNMqz2kTCNjSsDr6xRBk8njCLwDMunvDZM7VThTMKQ4CvegCtX3kV11qk46WjouqFedYSmShmxB5dMMVKui3owicS3ioVXoSqCRAcov3LJ3zL5aQ19FBBvvezeN27PkcZjvXKQwNEpnMzJeLTLdz8guWrER9Vn7XB3zgvt6xzab8JbHJ62XEEGFC5EoU68D3Wn9oXH6EqfCNbUsfW6EScc7wcsRu7aLi4ddjYrDcd4pQgct3dpAzR9Z4ZHRgQi9k4DF8bg9LUjfjaJS53DGSiSSfGBNtkpdyLp8K8Y89BZRnw21yVcKwA8JD47By6s3vfJ8PdSTs4Lsfm7mEhERuVLyQC9wpPe6ysjzUTQjx7RyTaVVA9ENQfpc1XCdHufDFST1eeiRFLwKzEFCr2bATo5r5oQ6UtBdQv6eFaGv19ju4cikXTNq2vCGw6aMupdaESYeWL5Gs8ssCjb1K2iZfGwqidfTJejEiuoiD2S6shTRv6BFz3JrhU7XsZdLkU9rvDYJs6rWq4C4ix4VWDxNHktF7iBuCASnZjgMYs9Lipt5hZEow4FrWcvUtVQ8PXQT3SC

View File

@ -0,0 +1,26 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4430
- 127.0.0.1:4431
tls: false
account:
peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
apiServer:
port: "8080"
nodes:
- peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
address: 127.0.0.1:4430
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
- peerId: 12D3KooWPzziVTnuypw4MC7m4mzdoh9CM5FXGrYiTW81pfjngmwx
address: 127.0.0.1:4432
signingKey: 3i7TZgCtctChP9rA13BDuK2GmdbRL6sgk51JjetKyFt3SEqXN8M4EwcREWVfPYmayBKYPHveLzY7NsggxvKapJFdYH8F
encryptionKey: JgG4CcCbae1qEpe7mL87XWScKZWBBqSZseakgKVJfHqTUt3CiLPMKPDZtzQWLfb2ouiTbff5YTBZbGxwKqWYMAW8prEVjbcXBtkCi2Y2XkZ8v1ugidF5MC3d1ifnh5Es5CafB8kToUegtAig8vhMCuXAzLQpbiQyFLf25KcyKfVvHUomafaHyKCbYu1bmyGRC7CGxUD6jnPg2MYZZiJiq9scNRaRxbiqCe9C2VcUTFdigV65eGmZPKGgfAThcyKCdQSe1hmoXtNw5MaqbB3eQvkuS4GySap3SaEZUmGsmuVumUvHappUpN8x3UQs1TNWfYxULVx3tUMHfQ98G9No4gwP42ENMgCuMVQW9M68s73WCGucvpPUZdvQFiSJkSoKDqi2F6zdrM2LZTp8qGciunKDFZvh14eAGDbPLw9dBLVmMQLKq68yz8Nzi9BYWjzLa4fDNkoYETB8rArNPECAjVVW6PYLzueVNmqvo7RdWZGHF2YCRXr1wLG7jg4WBX4Lm5jQZS8bkWacbpj49b4nxRnjLsGusdCwRCZPY9qFPim2WU4z2KEgRS87x97TiYAThLUJwGBv5pBKRLkrAAoFWwkDSfxcRt83FiZtJ1hLWkpj6fK56SuubQUjWzNfVPCTfNqcod54PAPVESTuAPjDsmM4YeMGgUpaK9Goqbu1FuuZ9P6mQPwGKdpGuVgjJv7uQJZw3fpC9H1vJ4fa2wBrGFkahyEFo2QDb8iG9oGarpFxewJVVs12cpKJeQzU5dLFBvQJmGnHASTnBwfNBieDT7ZeFmnGuN7sLaPJ5wgdKJpY6aAooztyWfJPKTbxzYjUQMVoyW3YbTD3qg8F9grqVT1VFAp88ta1u55eokqz7h82EJNQf7GptDHxPRg4euAJ3BDvmRUfAwYzU8TD1gyiUnnHGRuvH25xgJRqauNrDLUbha33wVAHeMzWJhpLjLz4DLmtLejpfwNr5PuEbczqFAaLspf8dFjkrvmC3RrwHngKuzTkYo46WSJggWs3CwWDpzMmrATh2LRYmdH7BtNUkvu7onRzms8jWHBsFNfbCitMpfAsM3XmgtFUGTMi4LzVK3f5G8HqwGqcVEnFJTZzdoBsfNMKyFapXPnUBUHQse8jZjSYQv3dJpVuTV6HQ5R8saBdKDGMpXFyYqZK85cikcK6Nkd7ZrnbUUN2i6f3ano7hnxTbeW7kGxatUWETTwAzwGjdMhpJjieLFBTomAqqfXopEr1FeWcFmQ6kYBL2fa6XYqhZJevG6LpNXeuLcbyTiADt5CMNwt6MTmEomqtzqE7BgvqYEibuEj5K22ufvvLmX7XbGiB7wZKRPGuTR1pPDgJbzU9HGmF5fWjTVGPeNMn7ZmbQVcys6xy79notYp6MoQhBCTWyuuEuc24REEfMCjPuhNgssJQWT3ZR3xskrcEdCUyGbvQT2eWVa6atYsu5Z2m7sGXXwfH7vhdiUkVZEmhNPusij7dsMa9io63D6itYuu8Ed5aZYoUkZCfKZ39KQ16rtYpa9mfcwG4fyQy11Zy9G7nxdNJohGYeq3xuerSdwTDNdK2PREJcAoNA7Nfcsxk7333B5gXNFZKcBLQk56C1PqApLerSfo3jVuojcNAxYB688K6
- peerId: 12D3KooWL9qu6sDua8hK8sEyeUVzpei8SVf3DA4W1gVAxDMwW9Ze
address: 127.0.0.1:4434
signingKey: 3iPPhpw3jndkSCvpZ4yf5eWYydZwbFAk7gdMkXZBgyh939AicHVakwkabDpxzhtrsgJEXrP5sKam9QL7weMyyoMrKNCH
encryptionKey: JgG4CcCbae1qEpe7mL5br9LinoxiiuQqGC7y6HBbvmQ9pcZM4F4q2oGDQA71ZumaTJ1RAiUDaxi1fBVnrvv4Tqm9fau3NyijggQ246UtHKemsPFBX9Qyv4oYZJ9X3WNNc9q3BkPX9C8WHdfda9fxW4wD1QYKzd5F1J7FdhxZh3MZUdc4GEfPLwew8dTfEJp7ipAvM7TY1r6URe4VHVmsdaEL3jsEUzEqL4MRSc69WdjdKZLyVzQVcjnLegFfoH2c6476MfnoPggeVGghPjDmoqoJ2kzHwjvDQKoGyC9m4wkicS4YZkVA6N2ezKBSumJkV1mY6hpBPuCtdYLDw2zsCqMq9AXFhtMxzSCtLLRnRVntErY3Wb8ty5vEnS8aY7B612okwdsMg2rYxP55ccK4zP7PoKTKTS4TWTqGiLW2GtptTLhQ7ynJudG9YArzwwjgqXaxExrMqFCSMCfQbVNvwv3SckfpwQjpJjCfRS73SQKPY8ghqrdKnuRHyUWpJbYb9y5doCWMCuLw6u6t2LqfcwknNkjoWNCG69tohSgRStbYfmA7AZvHzPGc3gKByZecVxdmvPmtbSLXRiB9FbqtuqEerGxpisL3FhDM6SVqxRm2E2SxwJTHVcyL2LNF5tE2V7mujSa5dwzZfbRA9p3SwFeRhd42z1r36iL92yugfa2SbHYYDhdKFCJLhMc8ogqd1b8oUBbwBktKg6p6MJeZdqS2vfsLQRnV8TyP72fKUjFtaQ4o7D6vQ9VnsBMQS9FF8PEuZ5yF3XQaMjJMpeGho3c4dNFEw4vCiUaVN2WzF7XR28dyGwLASMoVFuUoErgr7TUQm4yKJG8QaHePx7A7Ku3Ys6fvrDsBVJWz5taQB7cMBqXmrAg2DHSUwqr8XfhxXnv8cnZZzPTrtib86P7w3kUYLrJYaR6jur5jTFucFSxthKEMqzBPtS3wgn2hcj31ATSNR7FNDcZmteWex5vAzGkuDoCG4c7dUCGinT3akYvukR7WugdHAYySkhf6AhNGg4wrZ7y3YVRMwRkex3PumcwGGKoTvNMNMqz2kTCNjSsDr6xRBk8njCLwDMunvDZM7VThTMKQ4CvegCtX3kV11qk46WjouqFedYSmShmxB5dMMVKui3owicS3ioVXoSqCRAcov3LJ3zL5aQ19FBBvvezeN27PkcZjvXKQwNEpnMzJeLTLdz8guWrER9Vn7XB3zgvt6xzab8JbHJ62XEEGFC5EoU68D3Wn9oXH6EqfCNbUsfW6EScc7wcsRu7aLi4ddjYrDcd4pQgct3dpAzR9Z4ZHRgQi9k4DF8bg9LUjfjaJS53DGSiSSfGBNtkpdyLp8K8Y89BZRnw21yVcKwA8JD47By6s3vfJ8PdSTs4Lsfm7mEhERuVLyQC9wpPe6ysjzUTQjx7RyTaVVA9ENQfpc1XCdHufDFST1eeiRFLwKzEFCr2bATo5r5oQ6UtBdQv6eFaGv19ju4cikXTNq2vCGw6aMupdaESYeWL5Gs8ssCjb1K2iZfGwqidfTJejEiuoiD2S6shTRv6BFz3JrhU7XsZdLkU9rvDYJs6rWq4C4ix4VWDxNHktF7iBuCASnZjgMYs9Lipt5hZEow4FrWcvUtVQ8PXQT3SC

View File

@ -0,0 +1,26 @@
anytype:
swarmKey: /key/swarm/psk/1.0.0/base16/209992e611c27d5dce8fbd2e7389f6b51da9bee980992ef60739460b536139ec
grpcServer:
listenAddrs:
- 127.0.0.1:4432
- 127.0.0.1:4433
tls: false
account:
peerId: 12D3KooWPzziVTnuypw4MC7m4mzdoh9CM5FXGrYiTW81pfjngmwx
signingKey: 3i7TZgCtctChP9rA13BDuK2GmdbRL6sgk51JjetKyFt3SEqXN8M4EwcREWVfPYmayBKYPHveLzY7NsggxvKapJFdYH8F
encryptionKey: JgG4CcCbae1qEpe7mL87XWScKZWBBqSZseakgKVJfHqTUt3CiLPMKPDZtzQWLfb2ouiTbff5YTBZbGxwKqWYMAW8prEVjbcXBtkCi2Y2XkZ8v1ugidF5MC3d1ifnh5Es5CafB8kToUegtAig8vhMCuXAzLQpbiQyFLf25KcyKfVvHUomafaHyKCbYu1bmyGRC7CGxUD6jnPg2MYZZiJiq9scNRaRxbiqCe9C2VcUTFdigV65eGmZPKGgfAThcyKCdQSe1hmoXtNw5MaqbB3eQvkuS4GySap3SaEZUmGsmuVumUvHappUpN8x3UQs1TNWfYxULVx3tUMHfQ98G9No4gwP42ENMgCuMVQW9M68s73WCGucvpPUZdvQFiSJkSoKDqi2F6zdrM2LZTp8qGciunKDFZvh14eAGDbPLw9dBLVmMQLKq68yz8Nzi9BYWjzLa4fDNkoYETB8rArNPECAjVVW6PYLzueVNmqvo7RdWZGHF2YCRXr1wLG7jg4WBX4Lm5jQZS8bkWacbpj49b4nxRnjLsGusdCwRCZPY9qFPim2WU4z2KEgRS87x97TiYAThLUJwGBv5pBKRLkrAAoFWwkDSfxcRt83FiZtJ1hLWkpj6fK56SuubQUjWzNfVPCTfNqcod54PAPVESTuAPjDsmM4YeMGgUpaK9Goqbu1FuuZ9P6mQPwGKdpGuVgjJv7uQJZw3fpC9H1vJ4fa2wBrGFkahyEFo2QDb8iG9oGarpFxewJVVs12cpKJeQzU5dLFBvQJmGnHASTnBwfNBieDT7ZeFmnGuN7sLaPJ5wgdKJpY6aAooztyWfJPKTbxzYjUQMVoyW3YbTD3qg8F9grqVT1VFAp88ta1u55eokqz7h82EJNQf7GptDHxPRg4euAJ3BDvmRUfAwYzU8TD1gyiUnnHGRuvH25xgJRqauNrDLUbha33wVAHeMzWJhpLjLz4DLmtLejpfwNr5PuEbczqFAaLspf8dFjkrvmC3RrwHngKuzTkYo46WSJggWs3CwWDpzMmrATh2LRYmdH7BtNUkvu7onRzms8jWHBsFNfbCitMpfAsM3XmgtFUGTMi4LzVK3f5G8HqwGqcVEnFJTZzdoBsfNMKyFapXPnUBUHQse8jZjSYQv3dJpVuTV6HQ5R8saBdKDGMpXFyYqZK85cikcK6Nkd7ZrnbUUN2i6f3ano7hnxTbeW7kGxatUWETTwAzwGjdMhpJjieLFBTomAqqfXopEr1FeWcFmQ6kYBL2fa6XYqhZJevG6LpNXeuLcbyTiADt5CMNwt6MTmEomqtzqE7BgvqYEibuEj5K22ufvvLmX7XbGiB7wZKRPGuTR1pPDgJbzU9HGmF5fWjTVGPeNMn7ZmbQVcys6xy79notYp6MoQhBCTWyuuEuc24REEfMCjPuhNgssJQWT3ZR3xskrcEdCUyGbvQT2eWVa6atYsu5Z2m7sGXXwfH7vhdiUkVZEmhNPusij7dsMa9io63D6itYuu8Ed5aZYoUkZCfKZ39KQ16rtYpa9mfcwG4fyQy11Zy9G7nxdNJohGYeq3xuerSdwTDNdK2PREJcAoNA7Nfcsxk7333B5gXNFZKcBLQk56C1PqApLerSfo3jVuojcNAxYB688K6
apiServer:
port: "8081"
nodes:
- peerId: 12D3KooWPviVQZY23iXQU7eva7k4ojyScagRAqE8cXm6cTm6rhNs
address: 127.0.0.1:4430
signingKey: 3inYSp8q7WidZi7RkhLFNZPF9yMJXHpnyrTpTsE7cd2ggESfTAEpWiQNa8zCnNdzK9DpG6Mu5hDCZhfU6RMDL466H8om
encryptionKey: udNkNsbKtm7eu1Bqt6DUwLZka2Rq22vm33K5eezrMkGnXx8X13oQ8HBSHgkLmRZTC1737hgZ66s92QRNe1YC1v8JNiv6yXVuV3MujBkmrYYVbGB7DBz6REsGAMPmuqDiG5PubjVHP468MDJJYRTZN6VEJuSGZtEAyLBJe9iErRVFsMdNc6ZMbY5pxoYE6LHWbsfZejrnAXvgABTnYTN4ad6EaxRiEWHGACizr59uf3KYFb9hFwxkFMhenpTpxbkBwQp3V8MxV4eLbgsWQPMpfeGeinjmNRAnZfi6tnqSDLyy3RWM5y9W89rYKt3EdVRwcFWFHh8FgSjzhpqE77GEwjGU9ddKorUfW85jQGdd2xdFwQfLF2eTGEwSxX9Gz2fTTtkN4pNJC8MesKK2cRsLAZLb9rv5ebCMgQ3S86WjfbWRcEYLoKUWKjujiY1XT5GszTgSa2b68QpcDmqgUv7FiwcZwC5qaCsgoARZ2GGsPgW7mCBahxTJnor4dCLF9Aiz1YvFvwWzm8k9zUmY5pxPQFNSWfAAcodqEHJV6i9TSf5ERNLJCQiRTSStZZdoeqAf42sYCSdiaiVUc26Q7QcTxtxxpfCTqGc2Lgh6ofgwG1m2CfmhXTsBDwBFRc8q6TcGJ4fT4WuZXF9f4MhKHqgqppFKMWYyvtJyvypbJ735kU63UWWSMCo8BbVTRrtaq7bPHbgvHHWYso5o7PeqNuhD2YwTKd6wpbAeg8wpv3eEWB2sgotQ5JiW2itEyinLZHRpLvbtYGFWctsZisvBbCssiCsPqzG1DffZWNjt2nj1vztuapZLpz9azanCaXhFxLBBLVveEk4tvEknHtREwXtmTpQK5GqpmW9LTFqA5jj7fVtytYQFufe9Cp4HKNNodv1UCPQ1KTLwkwA6UEMwqamvE67GDDvjmE2XaMoq6ErEYX6FkQi2d9kbLJaFVGwYH3DVcbBGAJzSoeYceosuoQJBcKS19BhFqXWT1W3iKvMibadh8MYLim7ncxezuHFCyUPFnFn33kfzzTWTsFYbKDukCECRBKciptevx9zS6V2YiSgcYRWV7Rd8sNg8vAGUBQ6mLBtWNExn5gRkoBQDqN9BhfqpEbGo33JHb7GVLsN7um9VxKcTSkiDLPKTxijNevHeRWRbtbCvQ31WHaNLzihnsowVQMk8SV6CiqzqwUb4ETxiXCDHABGuCACcYVC2jgEoFuqSAwS6c2y5sfcjxWSe3hs9eLjyWmeHu75MbNcJN8EtBrLs4j2tWGtbq6BR7SYVcygUbscf75HKncC4YBkF1MWRHmos11ZKaCwLfjsTW6XUXdfhvpco6mxic8muiq5XA3G8x47stQ3eBoSXoehRAMd4FKNv9geDagAhjorfcMd7kCT5CEENMqCLpjtUsFXSGtjqpYg1aeaQsxdEszfw2LS5pvPQEnYmqMRxZsuYHbuAH4J7sQwvjn7ezWfpsJfwQT6EqDFJp4g6vcgfUeCYzim9DVDnJYWocL9Uzb9P3rvknDKZmAkFWgTVWq16GaX4xUsXVNLMkDm88q4vvxrCQyAerNzox27uF2yH1ca66pVu9GZkGHM1KJrNmyyYEm445wNgkgSx8ivhyC11SUKs3nTKNVrnc
- peerId: 12D3KooWPzziVTnuypw4MC7m4mzdoh9CM5FXGrYiTW81pfjngmwx
address: 127.0.0.1:4432
signingKey: 3i7TZgCtctChP9rA13BDuK2GmdbRL6sgk51JjetKyFt3SEqXN8M4EwcREWVfPYmayBKYPHveLzY7NsggxvKapJFdYH8F
encryptionKey: JgG4CcCbae1qEpe7mL87XWScKZWBBqSZseakgKVJfHqTUt3CiLPMKPDZtzQWLfb2ouiTbff5YTBZbGxwKqWYMAW8prEVjbcXBtkCi2Y2XkZ8v1ugidF5MC3d1ifnh5Es5CafB8kToUegtAig8vhMCuXAzLQpbiQyFLf25KcyKfVvHUomafaHyKCbYu1bmyGRC7CGxUD6jnPg2MYZZiJiq9scNRaRxbiqCe9C2VcUTFdigV65eGmZPKGgfAThcyKCdQSe1hmoXtNw5MaqbB3eQvkuS4GySap3SaEZUmGsmuVumUvHappUpN8x3UQs1TNWfYxULVx3tUMHfQ98G9No4gwP42ENMgCuMVQW9M68s73WCGucvpPUZdvQFiSJkSoKDqi2F6zdrM2LZTp8qGciunKDFZvh14eAGDbPLw9dBLVmMQLKq68yz8Nzi9BYWjzLa4fDNkoYETB8rArNPECAjVVW6PYLzueVNmqvo7RdWZGHF2YCRXr1wLG7jg4WBX4Lm5jQZS8bkWacbpj49b4nxRnjLsGusdCwRCZPY9qFPim2WU4z2KEgRS87x97TiYAThLUJwGBv5pBKRLkrAAoFWwkDSfxcRt83FiZtJ1hLWkpj6fK56SuubQUjWzNfVPCTfNqcod54PAPVESTuAPjDsmM4YeMGgUpaK9Goqbu1FuuZ9P6mQPwGKdpGuVgjJv7uQJZw3fpC9H1vJ4fa2wBrGFkahyEFo2QDb8iG9oGarpFxewJVVs12cpKJeQzU5dLFBvQJmGnHASTnBwfNBieDT7ZeFmnGuN7sLaPJ5wgdKJpY6aAooztyWfJPKTbxzYjUQMVoyW3YbTD3qg8F9grqVT1VFAp88ta1u55eokqz7h82EJNQf7GptDHxPRg4euAJ3BDvmRUfAwYzU8TD1gyiUnnHGRuvH25xgJRqauNrDLUbha33wVAHeMzWJhpLjLz4DLmtLejpfwNr5PuEbczqFAaLspf8dFjkrvmC3RrwHngKuzTkYo46WSJggWs3CwWDpzMmrATh2LRYmdH7BtNUkvu7onRzms8jWHBsFNfbCitMpfAsM3XmgtFUGTMi4LzVK3f5G8HqwGqcVEnFJTZzdoBsfNMKyFapXPnUBUHQse8jZjSYQv3dJpVuTV6HQ5R8saBdKDGMpXFyYqZK85cikcK6Nkd7ZrnbUUN2i6f3ano7hnxTbeW7kGxatUWETTwAzwGjdMhpJjieLFBTomAqqfXopEr1FeWcFmQ6kYBL2fa6XYqhZJevG6LpNXeuLcbyTiADt5CMNwt6MTmEomqtzqE7BgvqYEibuEj5K22ufvvLmX7XbGiB7wZKRPGuTR1pPDgJbzU9HGmF5fWjTVGPeNMn7ZmbQVcys6xy79notYp6MoQhBCTWyuuEuc24REEfMCjPuhNgssJQWT3ZR3xskrcEdCUyGbvQT2eWVa6atYsu5Z2m7sGXXwfH7vhdiUkVZEmhNPusij7dsMa9io63D6itYuu8Ed5aZYoUkZCfKZ39KQ16rtYpa9mfcwG4fyQy11Zy9G7nxdNJohGYeq3xuerSdwTDNdK2PREJcAoNA7Nfcsxk7333B5gXNFZKcBLQk56C1PqApLerSfo3jVuojcNAxYB688K6
- peerId: 12D3KooWL9qu6sDua8hK8sEyeUVzpei8SVf3DA4W1gVAxDMwW9Ze
address: 127.0.0.1:4434
signingKey: 3iPPhpw3jndkSCvpZ4yf5eWYydZwbFAk7gdMkXZBgyh939AicHVakwkabDpxzhtrsgJEXrP5sKam9QL7weMyyoMrKNCH
encryptionKey: JgG4CcCbae1qEpe7mL5br9LinoxiiuQqGC7y6HBbvmQ9pcZM4F4q2oGDQA71ZumaTJ1RAiUDaxi1fBVnrvv4Tqm9fau3NyijggQ246UtHKemsPFBX9Qyv4oYZJ9X3WNNc9q3BkPX9C8WHdfda9fxW4wD1QYKzd5F1J7FdhxZh3MZUdc4GEfPLwew8dTfEJp7ipAvM7TY1r6URe4VHVmsdaEL3jsEUzEqL4MRSc69WdjdKZLyVzQVcjnLegFfoH2c6476MfnoPggeVGghPjDmoqoJ2kzHwjvDQKoGyC9m4wkicS4YZkVA6N2ezKBSumJkV1mY6hpBPuCtdYLDw2zsCqMq9AXFhtMxzSCtLLRnRVntErY3Wb8ty5vEnS8aY7B612okwdsMg2rYxP55ccK4zP7PoKTKTS4TWTqGiLW2GtptTLhQ7ynJudG9YArzwwjgqXaxExrMqFCSMCfQbVNvwv3SckfpwQjpJjCfRS73SQKPY8ghqrdKnuRHyUWpJbYb9y5doCWMCuLw6u6t2LqfcwknNkjoWNCG69tohSgRStbYfmA7AZvHzPGc3gKByZecVxdmvPmtbSLXRiB9FbqtuqEerGxpisL3FhDM6SVqxRm2E2SxwJTHVcyL2LNF5tE2V7mujSa5dwzZfbRA9p3SwFeRhd42z1r36iL92yugfa2SbHYYDhdKFCJLhMc8ogqd1b8oUBbwBktKg6p6MJeZdqS2vfsLQRnV8TyP72fKUjFtaQ4o7D6vQ9VnsBMQS9FF8PEuZ5yF3XQaMjJMpeGho3c4dNFEw4vCiUaVN2WzF7XR28dyGwLASMoVFuUoErgr7TUQm4yKJG8QaHePx7A7Ku3Ys6fvrDsBVJWz5taQB7cMBqXmrAg2DHSUwqr8XfhxXnv8cnZZzPTrtib86P7w3kUYLrJYaR6jur5jTFucFSxthKEMqzBPtS3wgn2hcj31ATSNR7FNDcZmteWex5vAzGkuDoCG4c7dUCGinT3akYvukR7WugdHAYySkhf6AhNGg4wrZ7y3YVRMwRkex3PumcwGGKoTvNMNMqz2kTCNjSsDr6xRBk8njCLwDMunvDZM7VThTMKQ4CvegCtX3kV11qk46WjouqFedYSmShmxB5dMMVKui3owicS3ioVXoSqCRAcov3LJ3zL5aQ19FBBvvezeN27PkcZjvXKQwNEpnMzJeLTLdz8guWrER9Vn7XB3zgvt6xzab8JbHJ62XEEGFC5EoU68D3Wn9oXH6EqfCNbUsfW6EScc7wcsRu7aLi4ddjYrDcd4pQgct3dpAzR9Z4ZHRgQi9k4DF8bg9LUjfjaJS53DGSiSSfGBNtkpdyLp8K8Y89BZRnw21yVcKwA8JD47By6s3vfJ8PdSTs4Lsfm7mEhERuVLyQC9wpPe6ysjzUTQjx7RyTaVVA9ENQfpc1XCdHufDFST1eeiRFLwKzEFCr2bATo5r5oQ6UtBdQv6eFaGv19ju4cikXTNq2vCGw6aMupdaESYeWL5Gs8ssCjb1K2iZfGwqidfTJejEiuoiD2S6shTRv6BFz3JrhU7XsZdLkU9rvDYJs6rWq4C4ix4VWDxNHktF7iBuCASnZjgMYs9Lipt5hZEow4FrWcvUtVQ8PXQT3SC

View File

@ -1,22 +0,0 @@
currentAlias: ULSsy
nodes:
- alias: ULSsy
address: 127.0.0.1:4430
signingKey: 3hvsvs4FSnU1p6MFJFVaHFfTfTrD7efGbacacAcYbnWMcXcAQd7k6V7PgLbHddabQH18a1TnNKHQ3Z7yRinXohAzY8HT
encryptionKey: udNkNsbKtm7eu1Bqt5d1jyhFAxd26wjema4tDqRiZ72xdCcBZvK6WBdpXWzb5w75FHEz8DDo7qoFLB9xAQA6GuNzoDTsWJjPX9vQHz2m9rCK5FcotjZF5WWCrgeg1FhyVcnF2zTSnw8kQFejMv4iCLnhjTC8op3U1eUpZ4GVxWQ1oLTg6dBS5MQsry7TU4gX77rJQF5gY2CnG9wK3Lv127vJZ6sphQXKQ3T5E7EfDoacGphH9ondtUgd7JRUices5PS7QMPXGVxqHjn2XR4SfRu6tN3USWVBMH5TbPfJbHvhGCHogbzj3ZXt3VidJKyHk2qnXASh9akFRAvgHpf7uhK4Eet3keXV93t9yeLZfttb5HdQ6PtapdMiYYAxPscd761daY5EdhmmBJWBRGSH2TephjcZDjYY1ZwFpNteXmyiWdvodA64cvHHbtFDQtbCu8oZ1GKvM6vq53rKkVvaJT58qrCoThFGVT3xXTFDSTAiKrLxXdiJikdk87mygvPyShdhASNH95be7co9HMrpit6V1Uyk92VcSWqb84bKDhYAsn5PEJSqNtrxRZjG2Zwzd8gFMwgGvcD8iZfhXUA1PWttZ2hwp2kaEanKsSh8sEA7qkJPpvi1f23fYPhhsxjK3DRauZStbaXHoFzWXQUwtDJnitMCwu9k3A7cJmxy9R5YjTnpivgsrivMcy5cHtDXVAKv4UT2DwSgN3d6phT4jzso2sXrmbNjCnrbJjP1A7UztBuwfefHgw4kKnimB4ZyGBWbtSLY42Lt2hSWcoQPcUXkVMTabEaMY8VKApSiRFVcZX9LyiN3vYMoLgFEFs6pnc6TGVRuMP5DfdyogyEyYHSK9iumSy8iVhftjvBc1xtvv4C8q3G3yipRawKiz9FymufgXBZgnHopo1aWaMsHsr5SwQWtaGapy1rNPX51rE9fLY3a4PhBT31a6XwFxJu7pdgWjXYxeN4rioRrfQUGy4D4PW81UTkqpkVZr3bUMWxUorW6tGpSm2irTwk2KM2a62pxErbTFMZUXdcT5zeZeYTFFpVMocaixGgBS4nYvviYXqeXvQ28uNLeWAiE1PTyur32ShHf8uvtoPfVXKhCfNmTkCBh9Met9b6NYoQwk9VTUAP9E3t9DPAAtyPigkLNdERtPEje4NAoV3wsa1WNXSKNU15dpYh3B6Qcvp95YfX253eucQmVjb71Synb4RkSBdnghZzsBYvhQewAkT3432i7hwnjyTWooDgbXMiHd3UaTTFsHS7EYSJxgCe94UEHUF2SL3Wqno1ReZ95678KLLdFwEPbbXWfvAnGU1KvEiMh9y6b7WMtTwx1kdwCghpwgDhE9ktMZNc6ypyWWLYA6473ge5WKrbnR3ugCoLaEpRAWmZBhc52zP9f7SZS1PgwF4fPtuxLtEJTTBkTkdPPwhQVTwfT8viggbdPVQG4iEhdRoEUBE46HC3MK4tchz8ev8CKJMQp4GH8zweGP3JKTNbNG6b7v6kTxHnvG5LbMJMGrq1tDfADDD8NwgL2Luhoe4y9JfAysK5UHkSWaQw9L7TsxUPgj3otgrwSjGFLvfc2D6zNddfGELcoWzNLzXoFZqAyQUvFdAqUcMYanepAQJke717Wv
- alias: NpBrA
address: 127.0.0.1:4430
signingKey: 3ixAJXFCYUu366ywFxsvNzAFQkVPyDKRiis1nCviHXUu5i3PkDP9FJFPGs5WZUMe83mEYVaipiW2ntiQXaxHYyYys6wp
encryptionKey: JgG4CcCbae1qEpe7mL9SrVoZim2d7ydWKL1KV6dMtgKcnb62MVgezmTyTPrcx29ZF4wecMxKmQNcdYhAN1t7vDQTBgUrGdCbkCUYu3sLaQYuitCEM6nykS1WWTsKSkFS1HiAVoWeSpQTzVwDNM2VDkVyS5Vbmg9gnE8qt8EnebiD3Cg64YwWi3HgEyVRauygAktmanFJNRtkBsriTPFZn9RDh4mMxSa1Q4iTx4Gxuq6avw6WACWV3x7RpbwrkWh54d8abXUdWxFZGCfe87o9v4UrxcujhWzE4F4tbGyrPBNy7abamb3sVqzRZPAikLeAKeb3s8K5JpUKXTVEiKCNpijaBFBKSLf7znowdJ9NGTMsJCSwTpsznANsBMhaz5uGaL4ur8CK6u4VXQbH1yUpKrnnVVjzoXVqh4vAeUaA7sanWKdPwGcaS6oDwwWp9Mi7qrqYocWQ6EtaeAQhbQ4qRPygujnBdThGnXFLrriYH6Yzb3BJsEG9S5gXEDHytFKAYudmYd77xYcu1rN5k6V35c8EaNp8AWZbkCpkefsSPCc1dTG4Fgg9GnBwdJvrXLV6CrE6SQtjUgPcpiLGK65sEutgApbkfkyasPdpyBBp8xND4woihHpANkTx5Lxn68rDj2bk5NTLgZLJgixJRoNPLXtCWSnQU97xvtjU8UnT195KwkCTm8X62syiRE6jkR3seVWUrwLZ8qojdZkm3bS1yUyYAPaCapUwppTT4SSgTrhCjGjGkYJarJPsxinedwTEvCPzujRcNofq4nF1RedgfSimvkjHPaztQv8h8YmxX1iRZ99AoLzuSw3uohoPvDsQMt97uQFCEZt5gLmzZSXpQpNDmAX6xpwbmuHuLgP2fJ5XrygnZo1jFGPPcfTurx4aghyrBGhbVB1XBcLvrzr6XA5WtU9HwriFYx27TVfiKJFG4ZdsbSUgLSQcYKJz1cZTm2QntLaCMpiG4jEkQtaEPANgp9oARvrh6kizpkGMpuMfVbcfE4cNiYDKwkj4cHa1NRmZHzxUyKiwTzwxh2YKra28NQnFZCnbqm3kBAaf8RiJkjb489uMtDo1nQ3cFhH6X68BqnfAmx2QEWMDHeT1XLPPEAwMhJ3tqrb6nMx9oEjcof8GMxv2GyyMtsAUHFY3KE3NAvfwbgWh35V2kKiyZEmmMWrs5TuMncKCMib85ymwmfa79igHERnhH9dJhKn2HcbhUxSX3SUB1CRihDNnXLT4rExwJfQmZfUhJmAK2BjkfaEGwNwxfcLE3KWMi6BRAiXnYhBiLHeM47poNhc5c9wE5krvis6Mh3HeLxbwjLZxoLWEonQzxstSrRKz6FSzkqXWQKaavELLsiVvo7s7Ga9gMoTvLqmCK9Ksk2u1ZKkgwsp26JAfDkWpvx7UtnomdztpGbMFSiPFvHzEwhKz8qohCyBWDgN7ZjdN4doRyG98MR9wweRyKuneUE6qxXpBhCAGWSUdBYtd3EFtmpGfYscYKQazGNBw3YsfK3UADQQsWMPXqCWGqpi4mpqRsKrZv3niZB1XHHP6kNUGN75awEjh4soKhHwhpBdUx9NXYAx5BDQWR6CeZS3pzUVTnMNAcizm3SJoN6HhmhvBt7LNFEcphPtotM5f
- alias: aVIrA
address: 127.0.0.1:4430
signingKey: 3hwxb9marr5HkvtWrDkXmE82mBQrNUUxeqMbrBbUjXFJuENrAe6JwqftFjLFmHvTN3r9SELsxujsaehxv1b7VcXXf3ay
encryptionKey: 2M2HT8EVmV3H4KkqzeTUAgw4okcbPbBpUxBMg6kLKpoiJPjg1fHZtZuZjc3HEHn5n7mihCs23uJVDGhtCjQXnpwWZUn2ezBzA1t4ZjURJUDCp7FzL7kKoFETtCuxrdh4j7RcbmA73in2C5YgXeUuEpMn39ApAXTxASMcdSzm9Tk9KMqVXNNMezfu836jDG5cj72wkJgzPFKhviEZTzYjPAeqe9qMnnGLPWqwDCarj2xeqx9n15zA1Ld2KfY5JDQQDj4WBohC5N4kLTzmNjiVnKBbZzLwfW42Nypz7AWxVeKYAZVPmKbTPtJRWGAtMjY3QC36SX8YqnkxV9cHUbCo7cWbEKctsDjJjMFxR5aXsiftqTo5REaVvu8RMQXx2QPshqxFBdJiGpfyrfBnjC6KbdszBTpdSQqiAEhNkoNuvniY8DTdrNWiH1n8CPuuzx3diQVSAaX1CnJzPqXhke2pBQBZWGsiMWFVFDUjZqH9PHe2BWZ3nMaKFxKAggiVhzpRFdC5xW4DbWsfaw9m2atKC5atWaaSs1uPkjtmURGP3DvFdWGdQfiEm5WBfMCR4sd9w5Y23SBFwPvMTJCHbKsAt5iqp9BwvnnX1D4sKxP2FA9Db16aZFczfzvWfsvWGRmZwt9y8dW8axBgCL526YYap9gihFPJbEEgABZpzrLzSTeVuJfsKuwXjwKBqEiGsJaAnKzEK7KwRhsJvz2e31MYx27E2u143njA7aD5AW3civNaDzbqkeTWJYwvXXavsJ94i3FAiG6FF8yARkcPxV76FV87QFwCfN6dz8ZJthmhEDMkLgTYcsVKkhzhGWnAYB2ayJjbmL28ewGDtQtFEAosdoVs6FYjKPUDVvahWiQWmGGnnF3FwY67JCkwnYzPB96kLSQcvjE366s8x8SFwZWy32u1JwwcCwAMBKJTN3RSc1KAa2VazM5knjgtyqyFeF3EJQZLHcLGrusSWpXFqBhMbnbn7Z4GuNNwuzjEDGKK2bJ97o9xtx1pgHjjvRoK6wfJ7zTDtFWXkJqCY6CtC2cwrkw4TuyhaBz1fCnD2Nu9jz2YWu5Ery7wGJkaiVW7wfPHK3ks9VLwXViF2kHDEB1c2AzabRyTWrgGb9JU1kt9PVQM8TPyKHbBvhp6pr4jmU188PMdHKkca8Nx6mTEWhn3QbTzqPxYBzmHSFrvVVKtwyU2J2izvHfbURQ3a9psDYriZVVFeDHRCN64RFku11JREa6ddjTupEoJmBpb9VBkqzmuXFw6diTruRVNQurgm38MVCKKswTLz4BxHGMSrZh5R3YJzFJScRCDkLVy8NgZeydY1h6iE53GCZDaP1Y68XREVqkaNRnrqkaTgL6Vvr9pV1oMSrKfwAUhcCaxS9n9fxSmy8xt1p1k8VYFV91FbkTZU1r2RMQKeWA1tPCDjs9Cd65GgRkvUgJ8zHi1x6GE9CneqmqTuUqXt1xiM6Ha2eZvcGFH99xpqcskCkTkP7GAJsddb3GUuoVgGzSkXBpMSt1ghSQHp8TArzuVYkLrVViygustEXp2YtJREu6c9NWFDnCyXKDUCcGMHtS6GK1entBMr5BWK6szHys3GPLr2mK76TNWX2Xqrm1C3rCkiARhhgTLqqu8zKhJFu
- alias: JDBbe
address: 127.0.0.1:4430
signingKey: 3i7vzUsjAfsaShNzUY4GQNWP6283s6HudHsWjKf55NoKBtVgcLhkVw7jA1nxt9fswtFsXGNLcpgyAScYUR3mHDZoD2Pk
encryptionKey: 51HYzTYh5uokpYWp8EscYm3wA7Z7J2SQXirK8kjW1kkshSx3EBrkceia4jHcwbqMHSgFxBRBmuTRJAVqKPpLJ12CfEFfdcM3A2iiWJx65iacQmnFtCMvEuFrF4xKxYUyLMWXeoT5BCpLC4Vr6EDZuatvdQHER9T8fCqrBhm4ZSzyJfyzM6Vqj2pXwAMgnLN7hydUjYoxiR23E56zPva8eu1cuFuicMrmPUCwkpZohLE7wbytnkHESQvXNdbJTps3BZ7LP1K66RzwdLFvem3RC6ZxPTrNQfPeMa3KmYkaNtVPcMhbVtj2pTuLJ4EhKNx3WNLVr61UyR91n9EeQxA1G7mts7zeHN2sZbJfonJJkuxN8ppN3MeDfy8tWFRb1DQhgMwmojqhGNFQmJmbM79BHe2zSnySLNU5VtCbDobvsid2g4ZfdVgDqbBYdVaRHzgU8psDX6JiEhxZxEHu2VUy16S4PrWFa92yEpAsXQ1NLD5wg5e1utvVoWHAf4D8PyiNvy3FPwUZg42rmVbj8mWRoerDArQ4ey38SJgSX5LNddYyb6hpQQC8TQzFKTLXGgHsPsyXm8C6xdHnvtEVVNDAejbKHsDsEuom1g4EwgGdEZUYR6WKng8A9K2HP3B8fJA4qvdcnX5BgzGwGYFu5auin3doEKz6zmHmSKyWk7YMCAmeQ4UheTpBFzzW4ynRrKYQHbfRNh69skQmfJR8ANtVXcUX5VvrK8vampSxDZHMcbJKSTyh8D648HiFvoNZk77Q7K4XMiYY2ENjVfXABW29j7sLV6M3qwxqXxqerBmLRFeVZKvhrtqqG13xbQRMYqdxhSvFzcbauPE4RuLukdKiSRDh7nQrvhjp53trWLeHgECsrk4spBrsQXfn5MFJxzrt7xpcRkj4cwgiwobXfVj2z8YEakWC8965ZSr78GJgx4xDBtxJfYcxmXykysRhZd3rqfev47y9q9R5qPgZFy4PxGKsXkwFT6nwDmyghXLfVQYXsJXun2f4xwzJ7D23t825JiwwnUNrzCcEtG3fMRF3tm9yCXBB6iPRtgqwK1Uwpyu81Y9c2ztDw8zuScbMD1SAgeGcuZkA52VT7duqBLu2GAK2dddx8b4aDVZ44fGXSsmZ3bNQNPY4YtQb923hrSoPhNmwVjSLdiXWHWbszvBzMpxRKSnnNjG79St8h3Ydw9GAAuQjRkurpxWUKnhVUBUUBJ2ZvPaVADMqWzRyhKATHTSmGKtdHjX5uN8djjp6xt8FmUteQyKX9LxokMUneExp1nvQvgQxGUGdFqRqmBh2PjWvCXwsWZMaK1cFtriyqJVGr3NdsS1xCNhdxHkot2RxMeMAfzPRRsbHyR8LtJk9zcsCjWDJfpM5YBbgtrLzkuxMNPPCtMJdndyQbiW9ewY4n1WiXgH5mVkZcggrG6e78zu7jre9haC6MRKpNacsvvAUxvJLFqUFfWra48RU4MBp13Ad3JEaQkQgkKYj6qmoDK9mcaYxK3Pi8EeofAUta4kU2WBMnhsAzRCKnG2mdutsjkvTdFkEs9Nms7kvNDFdcdG6ZVQgDHdogpsSEfaXNYnoHdwNmiVGQvYEnBfgVgg4KihoBZMY5D5ZFv8amuj4mVeA9fyym1L
- alias: PqyLS
address: 127.0.0.1:4430
signingKey: 3hwkRSkxTpC96DnUM9wWKRuxwLZS7CrKzXCGuWTdnhVHT644XMEEYoSiapATVMcE6Dhbmsqmpzop6ox1bqUXiyuCLbha
encryptionKey: JgG4CcCbae1qEpe7mKhXWxXceQPz4hkU4XurwrRAoczMzDmkfpgnVtemFhuHyQqsBbEdeLrEBjxMyqu8TgtiZMD6cX4X7nPcmYRiyjq2dgeZtr7iw2syG7Zpxs5yL51jJCqbmRkJ4HCnGASFR7NWYwUGaEVKCRbgqGHwwNSBr7nKhrmm6ZHs5m6YSyXQbpqA8SxPce5GGGs6JesBzoBEh7f8S95SchThpqAKCFRFisTUFJBjbpuJTZ3T7GbR6tgVMcQTodZf2TAweStvkMzCtHpbLiDqkHxjEAB68p2KLwWN5PR9GuZQtupuKPDMVtmh3e7yvdrSF49ACL6nRSpRiB6ARMgTxb4X5sPR3CFiTVNqo7KK81KB1PyaytNkSHJ2WgURJrAafqt85BiCLney6Pk9xfGiSXve2FMY8mmzzLjccZa4PJER9WXGoFjd7QyfEkQcBEQpk77cKEeT5xc8mZEwg7sKkBGRZypMKkTd3vM3RVXRqavuq9GgW8oL1kPAZ7cknwveyZ4F446thVutK5ieXTwDikY5QpsJuJTKszpeK56EL1GWL9AV4z2xfPmsSVwvPYSi4mC5mSWgesVAatUXpWKCX5mwgw3U1D8WXhosCbnJTvtuAWKsmnyBUQWVxS3pGsb3wWZjHvnt294mUdqTbGAoS9PEGNGxEYqc7zf5i2vRfbCXAEHg9bi8qd4vMxpbxptT7s1MiTgDntFyLeKQLZ1aNkWtpfL2P3tT8VtzReEH72WQd8nMCdtFo3MiGZycqcFsSvpmofmq8DWLU6r7ZYJq5CXekrcyVBDHSbhf62KW2DMV3Z8htkUjZojwk5qVyeLNNBgDHFAFA4puZBMFVnjsn6hmwbUMqSY8kjrEsDqCXa2cLrSWu48Mm9LPLCaxsNAxVTAGAxHPBXww7cecJSWrFcfuK1iLNYg37fzU9ZYgGQ17wVMw35GL5xdq1ZC5tAdte8xYYoW4AfNoajPfnVMEHZMh7EpGLN9K4p4yr5dD9gsxtaBE8ZKJtMx5tyePS3BeajhB4Fsr7fb1CpssneCmJkXqzxqFy7U2wjaaW7FyJfwu4e5sa4KgAoNUyLHumD2F4AjDqBw7hCahut8Ua5Qo12WSjASxUAwoazPQyuech7xh71DGVPZGmzmcMamc8ek7rBWeWrxXPeTCfwXavW4F7aZDXqCHRDDjHkCaHYNyrYRhNY263Vy5VRDdKb8iHDfLToe1uf8z4BAaLQ7nYMWgZoHjum8TGQkGqCM5Jk4HpJY2mbahD4bjMueQcZH9ks82ttsrg7mFmALAUoyVjkub4KYyXhR6GqRDRLFaDUv7toM9gZ3L3p5n1RwJr7hFr2sRwjTGJ7hdSCzgNPk3NUGK3vnojpjQoKXNPgCXYyRJgTr2y7UoZWj15Gm8H1QnrK5Ar76i663RV1zu3MhghweFGnh7WE14j2NqJ4vkfe37AJmntwF19j4JdUpTtDY9b7DZT9ohSSeRkmoSuPsy9Vpai3JyFpfAWom8CmkYkDA2GR9Uwxmg2UuqWSoxxcsdn1dZJdfYWrrXodjK9PGsJ8YPLMTSZz2Ye4vshmW4znLam5B6Yh11vtivD8njej9cm8eCP2SvPcUvMyFb7ZW9p6ByeWSq

View File

@ -2,14 +2,11 @@ package account
import (
"context"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/account"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/signingkey"
"gopkg.in/yaml.v3"
"io/ioutil"
)
const CName = "account"
@ -20,6 +17,7 @@ type Service interface {
type service struct {
accountData *account.AccountData
peerId string
}
func (s *service) Account() *account.AccountData {
@ -31,54 +29,42 @@ type StaticAccount struct {
EncryptionKey string `yaml:"encryptionKey"`
}
func NewFromFile(path string) (app.Component, error) {
nodeInfo := &config.NodeInfo{}
data, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
if err = yaml.Unmarshal(data, nodeInfo); err != nil {
return nil, err
}
func New() app.Component {
return &service{}
}
func (s *service) Init(ctx context.Context, a *app.App) (err error) {
cfg := a.MustComponent(config.CName).(*config.Config)
// decoding our keys
privateEncryptionDecoder := encryptionkey.NewRSAPrivKeyDecoder()
privateSigningDecoder := signingkey.NewEDPrivKeyDecoder()
publicSigningDecoder := signingkey.NewEDPubKeyDecoder()
var acc *config.Node
for _, node := range nodeInfo.Nodes {
if node.Alias == nodeInfo.CurrentAlias {
acc = node
break
}
}
if acc == nil {
return nil, fmt.Errorf("the node should have a defined alias")
}
acc := cfg.Account
decodedEncryptionKey, err := privateEncryptionDecoder.DecodeFromString(acc.EncryptionKey)
if err != nil {
return nil, err
return err
}
decodedSigningKey, err := privateSigningDecoder.DecodeFromString(acc.SigningKey)
if err != nil {
return nil, err
return err
}
signKey := decodedSigningKey.(signingkey.PrivKey)
identity, err := publicSigningDecoder.EncodeToString(signKey.GetPublic())
if err != nil {
return nil, err
return err
}
accountData := &account.AccountData{
// TODO: using acl lib format basically, but we should simplify this
s.accountData = &account.AccountData{
Identity: identity,
SignKey: signKey,
EncKey: decodedEncryptionKey.(encryptionkey.PrivKey),
Decoder: signingkey.NewEd25519PubKeyDecoder(),
}
return &service{accountData: accountData}, nil
}
s.peerId = acc.PeerId
func (s *service) Init(ctx context.Context, a *app.App) (err error) {
return nil
}

View File

@ -5,6 +5,7 @@ import (
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/acltree"
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/sync/document"
"github.com/anytypeio/go-anytype-infrastructure-experiments/service/treecache"
@ -25,11 +26,13 @@ type service struct {
treeCache treecache.Service
documentService document.Service
srv *http.Server
cfg *config.Config
}
func (s *service) Init(ctx context.Context, a *app.App) (err error) {
s.treeCache = a.MustComponent(treecache.CName).(treecache.Service)
s.documentService = a.MustComponent(document.CName).(document.Service)
s.cfg = a.MustComponent(config.CName).(*config.Config)
return nil
}
@ -40,12 +43,12 @@ func (s *service) Name() (name string) {
func (s *service) Run(ctx context.Context) (err error) {
defer func() {
if err == nil {
log.Info("api server started running on port 8080")
log.With(zap.String("port", s.cfg.APIServer.Port)).Info("api server started running")
}
}()
s.srv = &http.Server{
Addr: ":8080",
Addr: fmt.Sprintf(":%s", s.cfg.APIServer.Port),
}
mux := http.NewServeMux()
mux.HandleFunc("/treeDump", s.treeDump)

View File

@ -2,16 +2,11 @@ package node
import (
"context"
"fmt"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/config"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/encryptionkey"
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/signingkey"
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/libp2p/go-libp2p-core/peer"
"gopkg.in/yaml.v3"
"io/ioutil"
)
const CName = "NodesService"
@ -25,32 +20,8 @@ type Node struct {
EncryptionKeyString string
}
func NewFromFile(path string) (app.Component, error) {
nodeInfo := &config.NodeInfo{}
data, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
if err = yaml.Unmarshal(data, nodeInfo); err != nil {
return nil, err
}
var nodes []*Node
privateEncryptionDecoder := encryptionkey.NewRSAPrivKeyDecoder()
privateSigningDecoder := signingkey.NewEDPrivKeyDecoder()
for _, n := range nodeInfo.Nodes {
// ignoring ourselves
if n.Alias == nodeInfo.CurrentAlias {
continue
}
newNode, err := nodeFromYamlNode(n, privateSigningDecoder, privateEncryptionDecoder)
if err != nil {
return nil, fmt.Errorf("failed to parse node: %w", err)
}
nodes = append(nodes, newNode)
}
return &service{nodes: nodes}, nil
func New() app.Component {
return &service{}
}
type Service interface {
@ -62,6 +33,23 @@ type service struct {
}
func (s *service) Init(ctx context.Context, a *app.App) (err error) {
cfg := a.MustComponent(config.CName).(*config.Config)
signDecoder := signingkey.NewEDPrivKeyDecoder()
rsaDecoder := encryptionkey.NewRSAPrivKeyDecoder()
var filteredNodes []*Node
for _, n := range cfg.Nodes {
if n.PeerId == cfg.Account.PeerId {
continue
}
node, err := nodeFromConfigNode(n, n.PeerId, signDecoder, rsaDecoder)
if err != nil {
return err
}
filteredNodes = append(filteredNodes, node)
}
s.nodes = filteredNodes
return nil
}
@ -81,8 +69,9 @@ func (s *service) Nodes() []*Node {
return s.nodes
}
func nodeFromYamlNode(
n *config.Node,
func nodeFromConfigNode(
n config.Node,
peerId string,
privateSigningDecoder keys.Decoder,
privateEncryptionDecoder keys.Decoder) (*Node, error) {
decodedSigningKey, err := privateSigningDecoder.DecodeFromString(n.SigningKey)
@ -95,33 +84,16 @@ func nodeFromYamlNode(
return nil, err
}
rawSigning, err := decodedSigningKey.Raw()
encKeyString, err := privateEncryptionDecoder.EncodeToString(decodedEncryptionKey.(encryptionkey.PrivKey).GetPublic())
if err != nil {
return nil, err
}
libp2pKey, err := crypto.UnmarshalEd25519PrivateKey(rawSigning)
if err != nil {
return nil, err
}
peerId, err := peer.IDFromPublicKey(libp2pKey.GetPublic())
if err != nil {
return nil, err
}
encKeyString, err := privateEncryptionDecoder.EncodeToString(
decodedEncryptionKey.(encryptionkey.PrivKey).GetPublic())
if err != nil {
return nil, err
}
signKeyString, err := privateSigningDecoder.EncodeToString(
decodedSigningKey.(signingkey.PrivKey).GetPublic())
signKeyString, err := privateSigningDecoder.EncodeToString(decodedSigningKey.(signingkey.PrivKey).GetPublic())
return &Node{
Address: n.Address,
PeerId: peerId.String(),
PeerId: peerId,
SigningKey: decodedSigningKey.(signingkey.PrivKey).GetPublic(),
EncryptionKey: decodedEncryptionKey.(encryptionkey.PrivKey).GetPublic(),
SigningKeyString: signKeyString,

21
util/peer/peer.go Normal file
View File

@ -0,0 +1,21 @@
package peer
import (
"github.com/anytypeio/go-anytype-infrastructure-experiments/util/keys/asymmetric/signingkey"
"github.com/libp2p/go-libp2p-core/crypto"
"github.com/libp2p/go-libp2p-core/peer"
)
func IDFromSigningPubKey(pubKey signingkey.PubKey) (peer.ID, error) {
rawSigning, err := pubKey.Raw()
if err != nil {
return "", err
}
libp2pKey, err := crypto.UnmarshalEd25519PublicKey(rawSigning)
if err != nil {
return "", err
}
return peer.IDFromPublicKey(libp2pKey)
}