2022-01-26 11:27:06 +00:00
|
|
|
package storagecfg
|
|
|
|
|
|
|
|
const configTemplate = `logger:
|
|
|
|
level: info # logger level: one of "debug", "info" (default), "warn", "error", "dpanic", "panic", "fatal"
|
|
|
|
|
|
|
|
node:
|
|
|
|
wallet:
|
|
|
|
path: {{ .Wallet.Path }} # path to a NEO wallet; ignored if key is presented
|
|
|
|
address: {{ .Wallet.Account }} # address of a NEO account in the wallet; ignored if key is presented
|
|
|
|
password: {{ .Wallet.Password }} # password for a NEO account in the wallet; ignored if key is presented
|
|
|
|
addresses: # list of addresses announced by Storage node in the Network map
|
|
|
|
- {{ .AnnouncedAddress }}
|
|
|
|
attribute_0: UN-LOCODE:{{ .Attribute.Locode }}
|
|
|
|
relay: {{ .Relay }} # start Storage node in relay mode without bootstrapping into the Network map
|
|
|
|
|
|
|
|
grpc:
|
|
|
|
num: 1 # total number of listener endpoints
|
|
|
|
0:
|
|
|
|
endpoint: {{ .Endpoint }} # endpoint for gRPC server
|
|
|
|
tls:{{if .TLSCert}}
|
|
|
|
enabled: true # enable TLS for a gRPC connection (min version is TLS 1.2)
|
|
|
|
certificate: {{ .TLSCert }} # path to TLS certificate
|
|
|
|
key: {{ .TLSKey }} # path to TLS key
|
|
|
|
{{- else }}
|
|
|
|
enabled: false # disable TLS for a gRPC connection
|
|
|
|
{{- end}}
|
|
|
|
|
|
|
|
control:
|
|
|
|
authorized_keys: # list of hex-encoded public keys that have rights to use the Control Service
|
|
|
|
{{- range .AuthorizedKeys }}
|
|
|
|
- {{.}}{{end}}
|
|
|
|
grpc:
|
|
|
|
endpoint: {{.ControlEndpoint}} # endpoint that is listened by the Control Service
|
|
|
|
|
|
|
|
morph:
|
|
|
|
dial_timeout: 20s # timeout for side chain NEO RPC client connection
|
2022-09-06 15:05:59 +00:00
|
|
|
cache_ttl: 15s # use TTL cache for side chain GET operations
|
2022-01-26 11:27:06 +00:00
|
|
|
rpc_endpoint: # side chain N3 RPC endpoints
|
|
|
|
{{- range .MorphRPC }}
|
2022-07-18 13:41:35 +00:00
|
|
|
- address: wss://{{.}}/ws{{end}}
|
2022-01-26 11:27:06 +00:00
|
|
|
{{if not .Relay }}
|
|
|
|
storage:
|
|
|
|
shard_pool_size: 15 # size of per-shard worker pools used for PUT operations
|
|
|
|
|
2022-07-19 11:13:36 +00:00
|
|
|
shard:
|
|
|
|
default: # section with the default shard parameters
|
|
|
|
metabase:
|
|
|
|
perm: 0644 # permissions for metabase files(directories: +x for current user and group)
|
2022-01-26 11:27:06 +00:00
|
|
|
|
2022-07-19 11:13:36 +00:00
|
|
|
blobstor:
|
|
|
|
perm: 0644 # permissions for blobstor files(directories: +x for current user and group)
|
|
|
|
depth: 2 # max depth of object tree storage in FS
|
|
|
|
small_object_size: 102400 # 100KiB, size threshold for "small" objects which are stored in key-value DB, not in FS, bytes
|
|
|
|
compress: true # turn on/off Zstandard compression (level 3) of stored objects
|
|
|
|
compression_exclude_content_types:
|
|
|
|
- audio/*
|
|
|
|
- video/*
|
2022-01-26 11:27:06 +00:00
|
|
|
|
2022-07-19 11:13:36 +00:00
|
|
|
blobovnicza:
|
|
|
|
size: 1073741824 # approximate size limit of single blobovnicza instance, total size will be: size*width^(depth+1), bytes
|
|
|
|
depth: 1 # max depth of object tree storage in key-value DB
|
|
|
|
width: 4 # max width of object tree storage in key-value DB
|
|
|
|
opened_cache_capacity: 50 # maximum number of opened database files
|
2023-12-18 09:47:32 +00:00
|
|
|
opened_cache_ttl: 5m # ttl for opened database file
|
2022-01-26 11:27:06 +00:00
|
|
|
|
2022-07-19 11:13:36 +00:00
|
|
|
gc:
|
|
|
|
remover_batch_size: 200 # number of objects to be removed by the garbage collector
|
|
|
|
remover_sleep_interval: 5m # frequency of the garbage collector invocation
|
2022-01-26 11:27:06 +00:00
|
|
|
0:
|
|
|
|
mode: "read-write" # mode of the shard, must be one of the: "read-write" (default), "read-only"
|
|
|
|
|
|
|
|
metabase:
|
|
|
|
path: {{ .MetabasePath }} # path to the metabase
|
|
|
|
|
|
|
|
blobstor:
|
|
|
|
path: {{ .BlobstorPath }} # path to the blobstor
|
|
|
|
{{end}}`
|
|
|
|
|
|
|
|
const (
|
|
|
|
neofsMainnetAddress = "2cafa46838e8b564468ebd868dcafdd99dce6221"
|
|
|
|
balanceMainnetAddress = "dc1ec98d9d0c5f9dfade16144defe08cffc5ca55"
|
|
|
|
neofsTestnetAddress = "b65d8243ac63983206d17e5221af0653a7266fa1"
|
|
|
|
balanceTestnetAddress = "e0420c216003747626670d1424569c17c79015bf"
|
|
|
|
)
|
|
|
|
|
|
|
|
var n3config = map[string]struct {
|
|
|
|
MorphRPC []string
|
|
|
|
RPC []string
|
|
|
|
NeoFSContract string
|
|
|
|
BalanceContract string
|
|
|
|
}{
|
|
|
|
"testnet": {
|
|
|
|
MorphRPC: []string{
|
|
|
|
"rpc01.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc02.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc03.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc04.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc05.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc06.morph.testnet.fs.neo.org:51331",
|
|
|
|
"rpc07.morph.testnet.fs.neo.org:51331",
|
|
|
|
},
|
|
|
|
RPC: []string{
|
|
|
|
"rpc01.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc02.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc03.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc04.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc05.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc06.testnet.n3.nspcc.ru:21331",
|
|
|
|
"rpc07.testnet.n3.nspcc.ru:21331",
|
|
|
|
},
|
|
|
|
NeoFSContract: neofsTestnetAddress,
|
|
|
|
BalanceContract: balanceTestnetAddress,
|
|
|
|
},
|
|
|
|
"mainnet": {
|
|
|
|
MorphRPC: []string{
|
|
|
|
"rpc1.morph.fs.neo.org:40341",
|
|
|
|
"rpc2.morph.fs.neo.org:40341",
|
|
|
|
"rpc3.morph.fs.neo.org:40341",
|
|
|
|
"rpc4.morph.fs.neo.org:40341",
|
|
|
|
"rpc5.morph.fs.neo.org:40341",
|
|
|
|
"rpc6.morph.fs.neo.org:40341",
|
|
|
|
"rpc7.morph.fs.neo.org:40341",
|
|
|
|
},
|
|
|
|
RPC: []string{
|
|
|
|
"rpc1.n3.nspcc.ru:10331",
|
|
|
|
"rpc2.n3.nspcc.ru:10331",
|
|
|
|
"rpc3.n3.nspcc.ru:10331",
|
|
|
|
"rpc4.n3.nspcc.ru:10331",
|
|
|
|
"rpc5.n3.nspcc.ru:10331",
|
|
|
|
"rpc6.n3.nspcc.ru:10331",
|
|
|
|
"rpc7.n3.nspcc.ru:10331",
|
|
|
|
},
|
|
|
|
NeoFSContract: neofsMainnetAddress,
|
|
|
|
BalanceContract: balanceMainnetAddress,
|
|
|
|
},
|
|
|
|
}
|