Continue rebranding effort #43
151 changed files with 513 additions and 583 deletions
|
@ -12,6 +12,7 @@ Changelog for FrostFS Node
|
|||
|
||||
### Changed
|
||||
- `common.PrintVerbose` prints via `cobra.Command.Printf` (#1962)
|
||||
- Env prefix in configuration changed to `FROSTFS_*` (#43)
|
||||
|
||||
### Fixed
|
||||
- Big object removal with non-local parts (#1978)
|
||||
|
@ -32,6 +33,7 @@ Changelog for FrostFS Node
|
|||
- Minimum go version to v1.18
|
||||
|
||||
### Updating from v0.35.0
|
||||
You need to change configuration environment variables to `FROSTFS_*` if you use any.
|
||||
|
||||
## [0.35.0] - 2022-12-28 - Sindo (신도)
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ $ git clone https://github.com/TrueCloudLab/frostfs-node
|
|||
|
||||
### Set up git remote as ``upstream``
|
||||
```sh
|
||||
$ cd neofs-node
|
||||
$ cd frostfs-node
|
||||
$ git remote add upstream https://github.com/TrueCloudLab/frostfs-node
|
||||
$ git fetch upstream
|
||||
$ git merge upstream/master
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# How NeoFS CLI uses session mechanism of the NeoFS
|
||||
# How FrostFS CLI uses session mechanism of the FrostFS
|
||||
|
||||
## Overview
|
||||
|
||||
NeoFS sessions implement a mechanism for issuing a power of attorney by one
|
||||
FrostFS sessions implement a mechanism for issuing a power of attorney by one
|
||||
party to another. A trusted party can provide a so-called session token as
|
||||
proof of the right to act on behalf of another member of the network. The
|
||||
client of operations carried out with such a token will be the user who opened
|
||||
|
@ -15,7 +15,7 @@ attached session token is treated as performed by the original client.
|
|||
|
||||
## Types
|
||||
|
||||
NeoFS CLI supports two ways to execute operation within a session depending on
|
||||
FrostFS CLI supports two ways to execute operation within a session depending on
|
||||
whether the user of the command application is an original user (1) or a trusted
|
||||
one (2).
|
||||
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
## Overview
|
||||
|
||||
Extended headers are used for request/response. They may contain any user-defined headers
|
||||
to be interpreted on application level.
|
||||
Key name must be a unique valid UTF-8 string. Value can't be empty. Requests or
|
||||
Responses with duplicated header names or headers with empty values are
|
||||
considered invalid.
|
||||
Extended headers are used for request/response. They may contain any
|
||||
user-defined headers to be interpreted on application level. Key name must be a
|
||||
unique valid UTF-8 string. Value can't be empty. Requests or Responses with
|
||||
duplicated header names or headers with empty values are considered invalid.
|
||||
|
||||
## Existing headers
|
||||
|
||||
There are some "well-known" headers starting with `__NEOFS__` prefix that
|
||||
affect system behaviour:
|
||||
There are some "well-known" headers starting with `__FROSTFS__` prefix that
|
||||
affect system behaviour. For backward compatibility, the same set of
|
||||
"well-known" headers may also use `__NEOFS__` prefix:
|
||||
|
||||
* `__NEOFS__NETMAP_EPOCH` - netmap epoch to use for object placement calculation. The `value` is string
|
||||
* `__FROSTFS__NETMAP_EPOCH` - netmap epoch to use for object placement calculation. The `value` is string
|
||||
encoded `uint64` in decimal presentation. If set to '0' or omitted, the
|
||||
current epoch only will be used.
|
||||
* `__NEOFS__NETMAP_LOOKUP_DEPTH` - if object can't be found using current epoch's netmap, this header limits
|
||||
* `__FROSTFS__NETMAP_LOOKUP_DEPTH` - if object can't be found using current epoch's netmap, this header limits
|
||||
how many past epochs the node can look up through. Depth is applied to a current epoch or the value
|
||||
of `__NEOFS__NETMAP_EPOCH` attribute. The `value` is string encoded `uint64` in decimal presentation.
|
||||
of `__FROSTFS__NETMAP_EPOCH` attribute. The `value` is string encoded `uint64` in decimal presentation.
|
||||
If set to '0' or not set, only the current epoch is used.
|
||||
|
||||
## `neofs-cli` commands with `--xhdr`
|
||||
## `frostfs-cli` commands with `--xhdr`
|
||||
|
||||
List of commands with support of extended headers:
|
||||
* `container list-objects`
|
||||
|
@ -30,5 +30,5 @@ List of commands with support of extended headers:
|
|||
|
||||
Example:
|
||||
```shell
|
||||
$ neofs-cli object put -r s01.neofs.devenv:8080 -w wallet.json --cid CID --file FILE --xhdr "__NEOFS__NETMAP_EPOCH=777"
|
||||
$ frostfs-cli object put -r s01.frostfs.devenv:8080 -w wallet.json --cid CID --file FILE --xhdr "__FROSTFS__NETMAP_EPOCH=777"
|
||||
```
|
||||
|
|
|
@ -34,7 +34,7 @@ func (x BalanceOfRes) Balance() accounting.Decimal {
|
|||
return x.cliRes.Amount()
|
||||
}
|
||||
|
||||
// BalanceOf requests the current balance of a NeoFS user.
|
||||
// BalanceOf requests the current balance of a FrostFS user.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func BalanceOf(prm BalanceOfPrm) (res BalanceOfRes, err error) {
|
||||
|
@ -59,7 +59,7 @@ func (x ListContainersRes) IDList() []cid.ID {
|
|||
return x.cliRes.Containers()
|
||||
}
|
||||
|
||||
// ListContainers requests a list of NeoFS user's containers.
|
||||
// ListContainers requests a list of FrostFS user's containers.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func ListContainers(prm ListContainersPrm) (res ListContainersRes, err error) {
|
||||
|
@ -84,7 +84,7 @@ func (x PutContainerRes) ID() cid.ID {
|
|||
return x.cnr
|
||||
}
|
||||
|
||||
// PutContainer sends a request to save the container in NeoFS.
|
||||
// PutContainer sends a request to save the container in FrostFS.
|
||||
//
|
||||
// Operation is asynchronous and not guaranteed even in the absence of errors.
|
||||
// The required time is also not predictable.
|
||||
|
@ -122,7 +122,7 @@ func (x GetContainerRes) Container() containerSDK.Container {
|
|||
return x.cliRes.Container()
|
||||
}
|
||||
|
||||
// GetContainer reads a container from NeoFS by ID.
|
||||
// GetContainer reads a container from FrostFS by ID.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func GetContainer(prm GetContainerPrm) (res GetContainerRes, err error) {
|
||||
|
@ -140,7 +140,7 @@ func IsACLExtendable(c *client.Client, cnr cid.ID) (bool, error) {
|
|||
|
||||
res, err := GetContainer(prm)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("get container from the NeoFS: %w", err)
|
||||
return false, fmt.Errorf("get container from the FrostFS: %w", err)
|
||||
}
|
||||
|
||||
return res.Container().BasicACL().Extendable(), nil
|
||||
|
@ -155,7 +155,7 @@ type DeleteContainerPrm struct {
|
|||
// DeleteContainerRes groups the resulting values of DeleteContainer operation.
|
||||
type DeleteContainerRes struct{}
|
||||
|
||||
// DeleteContainer sends a request to remove a container from NeoFS by ID.
|
||||
// DeleteContainer sends a request to remove a container from FrostFS by ID.
|
||||
//
|
||||
// Operation is asynchronous and not guaranteed even in the absence of errors.
|
||||
// The required time is also not predictable.
|
||||
|
@ -185,7 +185,7 @@ func (x EACLRes) EACL() eacl.Table {
|
|||
return x.cliRes.Table()
|
||||
}
|
||||
|
||||
// EACL reads eACL table from NeoFS by container ID.
|
||||
// EACL reads eACL table from FrostFS by container ID.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func EACL(prm EACLPrm) (res EACLRes, err error) {
|
||||
|
@ -203,7 +203,7 @@ type SetEACLPrm struct {
|
|||
// SetEACLRes groups the resulting values of SetEACL operation.
|
||||
type SetEACLRes struct{}
|
||||
|
||||
// SetEACL requests to save an eACL table in NeoFS.
|
||||
// SetEACL requests to save an eACL table in FrostFS.
|
||||
//
|
||||
// Operation is asynchronous and no guaranteed even in the absence of errors.
|
||||
// The required time is also not predictable.
|
||||
|
@ -228,12 +228,12 @@ type NetworkInfoRes struct {
|
|||
cliRes *client.ResNetworkInfo
|
||||
}
|
||||
|
||||
// NetworkInfo returns structured information about the NeoFS network.
|
||||
// NetworkInfo returns structured information about the FrostFS network.
|
||||
func (x NetworkInfoRes) NetworkInfo() netmap.NetworkInfo {
|
||||
return x.cliRes.Info()
|
||||
}
|
||||
|
||||
// NetworkInfo reads information about the NeoFS network.
|
||||
// NetworkInfo reads information about the FrostFS network.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func NetworkInfo(prm NetworkInfoPrm) (res NetworkInfoRes, err error) {
|
||||
|
@ -258,12 +258,12 @@ func (x NodeInfoRes) NodeInfo() netmap.NodeInfo {
|
|||
return x.cliRes.NodeInfo()
|
||||
}
|
||||
|
||||
// LatestVersion returns the latest NeoFS API version in use.
|
||||
// LatestVersion returns the latest FrostFS API version in use.
|
||||
func (x NodeInfoRes) LatestVersion() version.Version {
|
||||
return x.cliRes.LatestVersion()
|
||||
}
|
||||
|
||||
// NodeInfo requests information about the remote server from NeoFS netmap.
|
||||
// NodeInfo requests information about the remote server from FrostFS netmap.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func NodeInfo(prm NodeInfoPrm) (res NodeInfoRes, err error) {
|
||||
|
@ -282,7 +282,7 @@ type NetMapSnapshotRes struct {
|
|||
cliRes *client.ResNetMapSnapshot
|
||||
}
|
||||
|
||||
// NetMap returns current local snapshot of the NeoFS network map.
|
||||
// NetMap returns current local snapshot of the FrostFS network map.
|
||||
func (x NetMapSnapshotRes) NetMap() netmap.NetMap {
|
||||
return x.cliRes.NetMap()
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ func (x PutObjectRes) ID() oid.ID {
|
|||
return x.id
|
||||
}
|
||||
|
||||
// PutObject saves the object in NeoFS network.
|
||||
// PutObject saves the object in FrostFS network.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func PutObject(prm PutObjectPrm) (*PutObjectRes, error) {
|
||||
|
@ -460,7 +460,7 @@ func (x DeleteObjectRes) Tombstone() oid.ID {
|
|||
return x.tomb
|
||||
}
|
||||
|
||||
// DeleteObject marks an object to be removed from NeoFS through tombstone placement.
|
||||
// DeleteObject marks an object to be removed from FrostFS through tombstone placement.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func DeleteObject(prm DeleteObjectPrm) (*DeleteObjectRes, error) {
|
||||
|
@ -576,7 +576,7 @@ type HeadObjectPrm struct {
|
|||
mainOnly bool
|
||||
}
|
||||
|
||||
// SetMainOnlyFlag sets flag to get only main fields of an object header in terms of NeoFS API.
|
||||
// SetMainOnlyFlag sets flag to get only main fields of an object header in terms of FrostFS API.
|
||||
func (x *HeadObjectPrm) SetMainOnlyFlag(v bool) {
|
||||
x.mainOnly = v
|
||||
}
|
||||
|
@ -812,7 +812,7 @@ func (x *PayloadRangePrm) SetRange(rng *object.Range) {
|
|||
// PayloadRangeRes groups the resulting values of PayloadRange operation.
|
||||
type PayloadRangeRes struct{}
|
||||
|
||||
// PayloadRange reads object payload range from NeoFS and writes it to the specified writer.
|
||||
// PayloadRange reads object payload range from FrostFS and writes it to the specified writer.
|
||||
//
|
||||
// Interrupts on any writer error.
|
||||
//
|
||||
|
@ -872,7 +872,7 @@ func (s *SyncContainerPrm) SetContainer(c *containerSDK.Container) {
|
|||
// operation.
|
||||
type SyncContainerRes struct{}
|
||||
|
||||
// SyncContainerSettings reads global network config from NeoFS and
|
||||
// SyncContainerSettings reads global network config from FrostFS and
|
||||
// syncs container settings with it.
|
||||
//
|
||||
// Interrupts on any writer error.
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
// Package internal provides functionality for NeoFS CLI application communication with NeoFS network.
|
||||
// Package internal provides functionality for FrostFS CLI application
|
||||
// communication with FrostFS network.
|
||||
//
|
||||
// The base client for accessing remote nodes via NeoFS API is a NeoFS SDK Go API client.
|
||||
// However, although it encapsulates a useful piece of business logic (e.g. the signature mechanism),
|
||||
// the NeoFS CLI application does not fully use the client's flexible interface.
|
||||
// The base client for accessing remote nodes via FrostFS API is a FrostFS SDK
|
||||
// Go API client. However, although it encapsulates a useful piece of business
|
||||
// logic (e.g. the signature mechanism), the FrostFS CLI application does not
|
||||
// fully use the client's flexible interface.
|
||||
//
|
||||
// In this regard, this package provides functions over base API client necessary for the application.
|
||||
// This allows you to concentrate the entire spectrum of the client's use in one place (this will be convenient
|
||||
// both when updating the base client and for evaluating the UX of SDK library). So it is expected that all
|
||||
// application packages will be limited to this package for the development of functionality requiring
|
||||
// NeoFS API communication.
|
||||
// In this regard, this package provides functions over base API client
|
||||
// necessary for the application. This allows you to concentrate the entire
|
||||
// spectrum of the client's use in one place (this will be convenient both when
|
||||
// updating the base client and for evaluating the UX of SDK library). So it is
|
||||
// expected that all application packages will be limited to this package for
|
||||
// the development of functionality requiring FrostFS API communication.
|
||||
package internal
|
||||
|
|
|
@ -16,7 +16,7 @@ type commonPrm struct {
|
|||
cli *client.Client
|
||||
}
|
||||
|
||||
// SetClient sets the base client for NeoFS API communication.
|
||||
// SetClient sets the base client for FrostFS API communication.
|
||||
func (x *commonPrm) SetClient(cli *client.Client) {
|
||||
x.cli = cli
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ func ReadBearerToken(cmd *cobra.Command, flagname string) *bearer.Token {
|
|||
}
|
||||
|
||||
// BinaryOrJSON is an interface of entities which provide json.Unmarshaler
|
||||
// and NeoFS binary decoder.
|
||||
// and FrostFS binary decoder.
|
||||
type BinaryOrJSON interface {
|
||||
Unmarshal([]byte) error
|
||||
json.Unmarshaler
|
||||
|
|
|
@ -8,8 +8,8 @@ import (
|
|||
|
||||
const SessionToken = "session"
|
||||
|
||||
// InitSession registers SessionToken flag representing filepath to the token
|
||||
// of the session with the given name. Supports NeoFS-binary and JSON files.
|
||||
// InitSession registers SessionToken flag representing file path to the token of
|
||||
// the session with the given name. Supports FrostFS-binary and JSON files.
|
||||
func InitSession(cmd *cobra.Command, name string) {
|
||||
cmd.Flags().String(
|
||||
SessionToken,
|
||||
|
|
|
@ -37,7 +37,7 @@ var netInfoCmd = &cobra.Command{
|
|||
|
||||
const format = " %s: %v\n"
|
||||
|
||||
cmd.Println("NeoFS network configuration (system)")
|
||||
cmd.Println("FrostFS network configuration (system)")
|
||||
cmd.Printf(format, "Audit fee", netInfo.AuditFee())
|
||||
cmd.Printf(format, "Storage price", netInfo.StoragePrice())
|
||||
cmd.Printf(format, "Container fee", netInfo.ContainerFee())
|
||||
|
@ -50,7 +50,7 @@ var netInfoCmd = &cobra.Command{
|
|||
cmd.Printf(format, "Homomorphic hashing disabled", netInfo.HomomorphicHashingDisabled())
|
||||
cmd.Printf(format, "Maintenance mode allowed", netInfo.MaintenanceModeAllowed())
|
||||
|
||||
cmd.Println("NeoFS network configuration (other)")
|
||||
cmd.Println("FrostFS network configuration (other)")
|
||||
netInfo.IterateRawNetworkParameters(func(name string, value []byte) {
|
||||
cmd.Printf(format, name, hex.EncodeToString(value))
|
||||
})
|
||||
|
|
|
@ -86,7 +86,7 @@ var objectLockCmd = &cobra.Command{
|
|||
prm.SetHeader(obj)
|
||||
|
||||
res, err := internalclient.PutObject(prm)
|
||||
commonCmd.ExitOnErr(cmd, "Store lock object in NeoFS: %w", err)
|
||||
commonCmd.ExitOnErr(cmd, "Store lock object in FrostFS: %w", err)
|
||||
|
||||
cmd.Printf("Lock object ID: %s\n", res.ID())
|
||||
cmd.Println("Objects successfully locked.")
|
||||
|
|
|
@ -274,7 +274,7 @@ func OpenSessionViaClient(cmd *cobra.Command, dst SessionPrm, cli *client.Client
|
|||
|
||||
var tok session.Object
|
||||
|
||||
const sessionLifetime = 10 // in NeoFS epochs
|
||||
const sessionLifetime = 10 // in FrostFS epochs
|
||||
|
||||
common.PrintVerbose(cmd, "Opening remote session with the node...")
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
envPrefix = "NEOFS_CLI"
|
||||
envPrefix = "FROSTFS_CLI"
|
||||
)
|
||||
|
||||
// Global scope flags.
|
||||
|
|
|
@ -81,7 +81,7 @@ func createSession(cmd *cobra.Command, _ []string) {
|
|||
commonCmd.ExitOnErr(cmd, "can't write token to file: %w", err)
|
||||
}
|
||||
|
||||
// CreateSession opens a new communication with NeoFS storage node using client connection.
|
||||
// CreateSession opens a new communication with FrostFS storage node using client connection.
|
||||
// The session is expected to be maintained by the storage node during the given
|
||||
// number of epochs.
|
||||
//
|
||||
|
|
|
@ -8,14 +8,14 @@ import (
|
|||
)
|
||||
|
||||
func newConfig(path string) (*viper.Viper, error) {
|
||||
const innerRingPrefix = "neofs_ir"
|
||||
const envPrefix = "FROSTFS_IR"
|
||||
|
||||
var (
|
||||
err error
|
||||
v = viper.New()
|
||||
)
|
||||
|
||||
v.SetEnvPrefix(innerRingPrefix)
|
||||
v.SetEnvPrefix(envPrefix)
|
||||
v.AutomaticEnv()
|
||||
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||
|
||||
|
|
|
@ -849,8 +849,8 @@ func (c *cfg) LocalNodeInfo() (*netmapV2.NodeInfo, error) {
|
|||
return &res, nil
|
||||
}
|
||||
|
||||
// handleLocalNodeInfo rewrites local node info from the NeoFS network map.
|
||||
// Called with nil when storage node is outside the NeoFS network map
|
||||
// handleLocalNodeInfo rewrites local node info from the FrostFS network map.
|
||||
// Called with nil when storage node is outside the FrostFS network map
|
||||
// (before entering the network and after leaving it).
|
||||
func (c *cfg) handleLocalNodeInfo(ni *netmap.NodeInfo) {
|
||||
c.cfgNetmap.state.setNodeInfo(ni)
|
||||
|
|
|
@ -9,10 +9,10 @@ import (
|
|||
const (
|
||||
subsection = "apiclient"
|
||||
|
||||
// DialTimeoutDefault is a default dial timeout of NeoFS API client connection.
|
||||
// DialTimeoutDefault is a default dial timeout of FrostFS API client connection.
|
||||
DialTimeoutDefault = 5 * time.Second
|
||||
|
||||
// StreamTimeoutDefault is a default timeout of NeoFS API streaming operation.
|
||||
// StreamTimeoutDefault is a default timeout of FrostFS API streaming operation.
|
||||
StreamTimeoutDefault = 15 * time.Second
|
||||
)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
|
||||
// EnvPrefix is a prefix of ENV variables related
|
||||
// to storage node configuration.
|
||||
const EnvPrefix = "neofs"
|
||||
const EnvPrefix = "FROSTFS"
|
||||
|
||||
// EnvSeparator is a section separator in ENV variables.
|
||||
const EnvSeparator = "_"
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
func TestEnv(t *testing.T) {
|
||||
require.Equal(t,
|
||||
"NEOFS_SECTION_PARAMETER",
|
||||
"FROSTFS_SECTION_PARAMETER",
|
||||
internal.Env("section", "parameter"),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ func TestMorphSection(t *testing.T) {
|
|||
|
||||
var (
|
||||
rpcs = []client.Endpoint{
|
||||
{"wss://rpc1.morph.fs.neo.org:40341/ws", 1},
|
||||
{"wss://rpc2.morph.fs.neo.org:40341/ws", 2},
|
||||
{"wss://rpc1.morph.frostfs.info:40341/ws", 1},
|
||||
{"wss://rpc2.morph.frostfs.info:40341/ws", 2},
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ func initControlService(c *cfg) {
|
|||
c.cfgControlService.server = grpc.NewServer()
|
||||
|
||||
c.onShutdown(func() {
|
||||
stopGRPC("NeoFS Control API", c.cfgControlService.server, c.log)
|
||||
stopGRPC("FrostFS Control API", c.cfgControlService.server, c.log)
|
||||
})
|
||||
|
||||
control.RegisterControlServiceServer(c.cfgControlService.server, ctlSvc)
|
||||
|
|
|
@ -65,7 +65,7 @@ func initGRPC(c *cfg) {
|
|||
srv := grpc.NewServer(serverOpts...)
|
||||
|
||||
c.onShutdown(func() {
|
||||
stopGRPC("NeoFS Public API", srv, c.log)
|
||||
stopGRPC("FrostFS Public API", srv, c.log)
|
||||
})
|
||||
|
||||
c.cfgGRPC.servers = append(c.cfgGRPC.servers, srv)
|
||||
|
|
|
@ -117,7 +117,7 @@ func initNotifications(c *cfg) {
|
|||
}
|
||||
|
||||
natsSvc := nats.New(
|
||||
nats.WithConnectionName("NeoFS Storage Node: "+pubKey), // connection name is used in the server side logs
|
||||
nats.WithConnectionName("FrostFS Storage Node: "+pubKey), // connection name is used in the server side logs
|
||||
nats.WithTimeout(nodeconfig.Notification(c.appCfg).Timeout()),
|
||||
nats.WithClientCert(
|
||||
nodeconfig.Notification(c.appCfg).CertPath(),
|
||||
|
|
|
@ -15,7 +15,7 @@ type commonPrm struct {
|
|||
ctx context.Context
|
||||
}
|
||||
|
||||
// SetClient sets the base client for NeoFS API communication.
|
||||
// SetClient sets the base client for FrostFS API communication.
|
||||
//
|
||||
// Required parameter.
|
||||
func (x *commonPrm) SetClient(cli coreclient.Client) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Package internal provides functionality for NeoFS Node Reputation system communication with NeoFS network.
|
||||
// The base client for accessing remote nodes via NeoFS API is a NeoFS SDK Go API client.
|
||||
// Package internal provides functionality for FrostFS Node Reputation system communication with FrostFS network.
|
||||
// The base client for accessing remote nodes via FrostFS API is a FrostFS SDK Go API client.
|
||||
// However, although it encapsulates a useful piece of business logic (e.g. the signature mechanism),
|
||||
// the Reputation service does not fully use the client's flexible interface.
|
||||
//
|
||||
|
@ -7,5 +7,5 @@
|
|||
// This allows you to concentrate the entire spectrum of the client's use in one place (this will be convenient
|
||||
// both when updating the base client and for evaluating the UX of SDK library). So, it is expected that all
|
||||
// Reputation service packages will be limited to this package for the development of functionality requiring
|
||||
// NeoFS API communication.
|
||||
// FrostFS API communication.
|
||||
package internal
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Examples of correct configuration file structures
|
||||
|
||||
Here are files in all supported formats and with all possible configuration values
|
||||
of NeoFS applications. See [node.yaml](node.yaml) for configuration notes.
|
||||
of FrostFS applications. See [node.yaml](node.yaml) for configuration notes.
|
||||
|
||||
All parameters are correct, however, they are for informational purposes only.
|
||||
It is not recommended transferring these configs for real application launches.
|
||||
|
|
|
@ -1,98 +1,98 @@
|
|||
NEOFS_IR_LOGGER_LEVEL=info
|
||||
FROSTFS_IR_LOGGER_LEVEL=info
|
||||
|
||||
NEOFS_IR_WALLET_PATH=/path/to/wallet.json
|
||||
NEOFS_IR_WALLET_ADDRESS=NUHtW3eM6a4mmFCgyyr4rj4wygsTKB88XX
|
||||
NEOFS_IR_WALLET_PASSWORD=secret
|
||||
FROSTFS_IR_WALLET_PATH=/path/to/wallet.json
|
||||
FROSTFS_IR_WALLET_ADDRESS=NUHtW3eM6a4mmFCgyyr4rj4wygsTKB88XX
|
||||
FROSTFS_IR_WALLET_PASSWORD=secret
|
||||
|
||||
NEOFS_IR_WITHOUT_MAINNET=false
|
||||
FROSTFS_IR_WITHOUT_MAINNET=false
|
||||
|
||||
NEOFS_IR_MORPH_DIAL_TIMEOUT=5s
|
||||
NEOFS_IR_MORPH_ENDPOINT_CLIENT_0_ADDRESS="wss://sidechain1.fs.neo.org:30333/ws"
|
||||
NEOFS_IR_MORPH_ENDPOINT_CLIENT_1_ADDRESS="wss://sidechain2.fs.neo.org:30333/ws"
|
||||
NEOFS_IR_MORPH_VALIDATORS="0283120f4c8c1fc1d792af5063d2def9da5fddc90bc1384de7fcfdda33c3860170"
|
||||
NEOFS_IR_MORPH_SWITCH_INTERVAL=2m
|
||||
FROSTFS_IR_MORPH_DIAL_TIMEOUT=5s
|
||||
FROSTFS_IR_MORPH_ENDPOINT_CLIENT_0_ADDRESS="wss://sidechain1.fs.neo.org:30333/ws"
|
||||
FROSTFS_IR_MORPH_ENDPOINT_CLIENT_1_ADDRESS="wss://sidechain2.fs.neo.org:30333/ws"
|
||||
FROSTFS_IR_MORPH_VALIDATORS="0283120f4c8c1fc1d792af5063d2def9da5fddc90bc1384de7fcfdda33c3860170"
|
||||
FROSTFS_IR_MORPH_SWITCH_INTERVAL=2m
|
||||
|
||||
NEOFS_IR_MAINNET_DIAL_TIMEOUT=5s
|
||||
NEOFS_IR_MAINNET_ENDPOINT_CLIENT_0_ADDRESS="wss://mainchain1.fs.neo.org:30333/ws"
|
||||
NEOFS_IR_MAINNET_ENDPOINT_CLIENT_1_ADDRESS="wss://mainchain2.fs.neo.org:30333/ws"
|
||||
NEOFS_IR_MAINNET_SWITCH_INTERVAL=2m
|
||||
FROSTFS_IR_MAINNET_DIAL_TIMEOUT=5s
|
||||
FROSTFS_IR_MAINNET_ENDPOINT_CLIENT_0_ADDRESS="wss://mainchain1.fs.neo.org:30333/ws"
|
||||
FROSTFS_IR_MAINNET_ENDPOINT_CLIENT_1_ADDRESS="wss://mainchain2.fs.neo.org:30333/ws"
|
||||
FROSTFS_IR_MAINNET_SWITCH_INTERVAL=2m
|
||||
|
||||
NEOFS_IR_CONTROL_AUTHORIZED_KEYS="035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6"
|
||||
NEOFS_IR_CONTROL_GRPC_ENDPOINT=localhost:8090
|
||||
FROSTFS_IR_CONTROL_AUTHORIZED_KEYS="035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6"
|
||||
FROSTFS_IR_CONTROL_GRPC_ENDPOINT=localhost:8090
|
||||
|
||||
NEOFS_IR_GOVERNANCE_DISABLE=false
|
||||
FROSTFS_IR_GOVERNANCE_DISABLE=false
|
||||
|
||||
NEOFS_IR_NODE_PERSISTENT_STATE_PATH=.frostfs-ir-state
|
||||
FROSTFS_IR_NODE_PERSISTENT_STATE_PATH=.frostfs-ir-state
|
||||
|
||||
NEOFS_IR_LOCODE_DB_PATH=/path/to/locode.db
|
||||
FROSTFS_IR_LOCODE_DB_PATH=/path/to/locode.db
|
||||
|
||||
NEOFS_IR_FEE_MAIN_CHAIN=50000000
|
||||
NEOFS_IR_FEE_SIDE_CHAIN=200000000
|
||||
NEOFS_IR_FEE_NAMED_CONTAINER_REGISTER=2500000000
|
||||
FROSTFS_IR_FEE_MAIN_CHAIN=50000000
|
||||
FROSTFS_IR_FEE_SIDE_CHAIN=200000000
|
||||
FROSTFS_IR_FEE_NAMED_CONTAINER_REGISTER=2500000000
|
||||
|
||||
NEOFS_IR_TIMERS_EMIT=240
|
||||
NEOFS_IR_TIMERS_STOP_ESTIMATION_MUL=1
|
||||
NEOFS_IR_TIMERS_STOP_ESTIMATION_DIV=4
|
||||
NEOFS_IR_TIMERS_COLLECT_BASIC_INCOME_MUL=1
|
||||
NEOFS_IR_TIMERS_COLLECT_BASIC_INCOME_DIV=2
|
||||
NEOFS_IR_TIMERS_DISTRIBUTE_BASIC_INCOME_MUL=3
|
||||
NEOFS_IR_TIMERS_DISTRIBUTE_BASIC_INCOME_DIV=4
|
||||
FROSTFS_IR_TIMERS_EMIT=240
|
||||
FROSTFS_IR_TIMERS_STOP_ESTIMATION_MUL=1
|
||||
FROSTFS_IR_TIMERS_STOP_ESTIMATION_DIV=4
|
||||
FROSTFS_IR_TIMERS_COLLECT_BASIC_INCOME_MUL=1
|
||||
FROSTFS_IR_TIMERS_COLLECT_BASIC_INCOME_DIV=2
|
||||
FROSTFS_IR_TIMERS_DISTRIBUTE_BASIC_INCOME_MUL=3
|
||||
FROSTFS_IR_TIMERS_DISTRIBUTE_BASIC_INCOME_DIV=4
|
||||
|
||||
NEOFS_IR_EMIT_STORAGE_AMOUNT=800000000
|
||||
NEOFS_IR_EMIT_MINT_VALUE=20000000
|
||||
NEOFS_IR_EMIT_MINT_CACHE_SIZE=1000
|
||||
NEOFS_IR_EMIT_MINT_CACHE_THRESHOLD=1
|
||||
NEOFS_IR_EMIT_GAS_BALANCE_THRESHOLD=100000000000
|
||||
FROSTFS_IR_EMIT_STORAGE_AMOUNT=800000000
|
||||
FROSTFS_IR_EMIT_MINT_VALUE=20000000
|
||||
FROSTFS_IR_EMIT_MINT_CACHE_SIZE=1000
|
||||
FROSTFS_IR_EMIT_MINT_CACHE_THRESHOLD=1
|
||||
FROSTFS_IR_EMIT_GAS_BALANCE_THRESHOLD=100000000000
|
||||
|
||||
NEOFS_IR_WORKERS_ALPHABET=10
|
||||
NEOFS_IR_WORKERS_BALANCE=10
|
||||
NEOFS_IR_WORKERS_CONTAINER=10
|
||||
NEOFS_IR_WORKERS_NEOFS=10
|
||||
NEOFS_IR_WORKERS_NETMAP=10
|
||||
NEOFS_IR_WORKERS_REPUTATION=10
|
||||
NEOFS_IR_WORKERS_SUBNET=10
|
||||
FROSTFS_IR_WORKERS_ALPHABET=10
|
||||
FROSTFS_IR_WORKERS_BALANCE=10
|
||||
FROSTFS_IR_WORKERS_CONTAINER=10
|
||||
FROSTFS_IR_WORKERS_NEOFS=10
|
||||
FROSTFS_IR_WORKERS_NETMAP=10
|
||||
FROSTFS_IR_WORKERS_REPUTATION=10
|
||||
FROSTFS_IR_WORKERS_SUBNET=10
|
||||
|
||||
NEOFS_IR_AUDIT_TIMEOUT_GET=5s
|
||||
NEOFS_IR_AUDIT_TIMEOUT_HEAD=5s
|
||||
NEOFS_IR_AUDIT_TIMEOUT_RANGEHASH=5s
|
||||
NEOFS_IR_AUDIT_TIMEOUT_SEARCH=10s
|
||||
NEOFS_IR_AUDIT_TASK_EXEC_POOL_SIZE=10
|
||||
NEOFS_IR_AUDIT_TASK_QUEUE_CAPACITY=100
|
||||
NEOFS_IR_AUDIT_PDP_PAIRS_POOL_SIZE=10
|
||||
NEOFS_IR_AUDIT_PDP_MAX_SLEEP_INTERVAL=5s
|
||||
NEOFS_IR_AUDIT_POR_POOL_SIZE=10
|
||||
FROSTFS_IR_AUDIT_TIMEOUT_GET=5s
|
||||
FROSTFS_IR_AUDIT_TIMEOUT_HEAD=5s
|
||||
FROSTFS_IR_AUDIT_TIMEOUT_RANGEHASH=5s
|
||||
FROSTFS_IR_AUDIT_TIMEOUT_SEARCH=10s
|
||||
FROSTFS_IR_AUDIT_TASK_EXEC_POOL_SIZE=10
|
||||
FROSTFS_IR_AUDIT_TASK_QUEUE_CAPACITY=100
|
||||
FROSTFS_IR_AUDIT_PDP_PAIRS_POOL_SIZE=10
|
||||
FROSTFS_IR_AUDIT_PDP_MAX_SLEEP_INTERVAL=5s
|
||||
FROSTFS_IR_AUDIT_POR_POOL_SIZE=10
|
||||
|
||||
NEOFS_IR_INDEXER_CACHE_TIMEOUT=15s
|
||||
FROSTFS_IR_INDEXER_CACHE_TIMEOUT=15s
|
||||
|
||||
NEOFS_IR_NETMAP_CLEANER_ENABLED=true
|
||||
NEOFS_IR_NETMAP_CLEANER_THRESHOLD=3
|
||||
FROSTFS_IR_NETMAP_CLEANER_ENABLED=true
|
||||
FROSTFS_IR_NETMAP_CLEANER_THRESHOLD=3
|
||||
|
||||
NEOFS_IR_CONTRACTS_NEOFS=ee3dee6d05dc79c24a5b8f6985e10d68b7cacc62
|
||||
NEOFS_IR_CONTRACTS_PROCESSING=597f5894867113a41e192801709c02497f611de8
|
||||
NEOFS_IR_CONTRACTS_AUDIT=219e37aed2180b87e7fe945dbf97d67125e8d73f
|
||||
NEOFS_IR_CONTRACTS_BALANCE=d2aa48d14b17b11bc4c68205027884a96706dd16
|
||||
NEOFS_IR_CONTRACTS_CONTAINER=ed4a7a66fe3f9bfe50f214b49be8f215a3c886b6
|
||||
NEOFS_IR_CONTRACTS_NEOFSID=9f5866decbc751a099e74c7c7bc89f609201755a
|
||||
NEOFS_IR_CONTRACTS_NETMAP=83c600c81d47a1b1b7cf58eb49ae7ee7240dc742
|
||||
NEOFS_IR_CONTRACTS_PROXY=abc8794bb40a21f2db5f21ae62741eb46c8cad1c
|
||||
NEOFS_IR_CONTRACTS_REPUTATION=d793b842ff0c103fe89e385069e82a27602135ff
|
||||
NEOFS_IR_CONTRACTS_SUBNET=e9266864d3c562c6e17f2bb9cb1392aaa293d93a
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_AMOUNT=7
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_AZ=c1d211fceeb4b1dc76b8e4054d11fdf887e418ea
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_BUKY=e2ba789320899658b100f331bdebb74474757920
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_VEDI=9623c11fd49aa18220458fbaae0396749c669e19
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_GLAGOLI=39617441b8e06c55e4fc3ce660be9101b6c1f866
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_DOBRO=e6122b65d45c8feeb04455d67814394c147ed4d1
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_YEST=cdbca5cb5d48a4472923844d0e3ee6328cf86d38
|
||||
NEOFS_IR_CONTRACTS_ALPHABET_ZHIVETE=f584699bc2ff457d339fb09f16217042c1a42101
|
||||
FROSTFS_IR_CONTRACTS_NEOFS=ee3dee6d05dc79c24a5b8f6985e10d68b7cacc62
|
||||
FROSTFS_IR_CONTRACTS_PROCESSING=597f5894867113a41e192801709c02497f611de8
|
||||
FROSTFS_IR_CONTRACTS_AUDIT=219e37aed2180b87e7fe945dbf97d67125e8d73f
|
||||
FROSTFS_IR_CONTRACTS_BALANCE=d2aa48d14b17b11bc4c68205027884a96706dd16
|
||||
FROSTFS_IR_CONTRACTS_CONTAINER=ed4a7a66fe3f9bfe50f214b49be8f215a3c886b6
|
||||
FROSTFS_IR_CONTRACTS_NEOFSID=9f5866decbc751a099e74c7c7bc89f609201755a
|
||||
FROSTFS_IR_CONTRACTS_NETMAP=83c600c81d47a1b1b7cf58eb49ae7ee7240dc742
|
||||
FROSTFS_IR_CONTRACTS_PROXY=abc8794bb40a21f2db5f21ae62741eb46c8cad1c
|
||||
FROSTFS_IR_CONTRACTS_REPUTATION=d793b842ff0c103fe89e385069e82a27602135ff
|
||||
FROSTFS_IR_CONTRACTS_SUBNET=e9266864d3c562c6e17f2bb9cb1392aaa293d93a
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_AMOUNT=7
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_AZ=c1d211fceeb4b1dc76b8e4054d11fdf887e418ea
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_BUKY=e2ba789320899658b100f331bdebb74474757920
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_VEDI=9623c11fd49aa18220458fbaae0396749c669e19
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_GLAGOLI=39617441b8e06c55e4fc3ce660be9101b6c1f866
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_DOBRO=e6122b65d45c8feeb04455d67814394c147ed4d1
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_YEST=cdbca5cb5d48a4472923844d0e3ee6328cf86d38
|
||||
FROSTFS_IR_CONTRACTS_ALPHABET_ZHIVETE=f584699bc2ff457d339fb09f16217042c1a42101
|
||||
|
||||
NEOFS_IR_PPROF_ENABLED=true
|
||||
NEOFS_IR_PPROF_ADDRESS=localhost:6060
|
||||
NEOFS_IR_PPROF_SHUTDOWN_TIMEOUT=30s
|
||||
FROSTFS_IR_PPROF_ENABLED=true
|
||||
FROSTFS_IR_PPROF_ADDRESS=localhost:6060
|
||||
FROSTFS_IR_PPROF_SHUTDOWN_TIMEOUT=30s
|
||||
|
||||
NEOFS_IR_PROMETHEUS_ENABLED=true
|
||||
NEOFS_IR_PROMETHEUS_ADDRESS=localhost:9090
|
||||
NEOFS_IR_PROMETHEUS_SHUTDOWN_TIMEOUT=30s
|
||||
FROSTFS_IR_PROMETHEUS_ENABLED=true
|
||||
FROSTFS_IR_PROMETHEUS_ADDRESS=localhost:9090
|
||||
FROSTFS_IR_PROMETHEUS_SHUTDOWN_TIMEOUT=30s
|
||||
|
||||
NEOFS_IR_SETTLEMENT_BASIC_INCOME_RATE=100
|
||||
NEOFS_IR_SETTLEMENT_AUDIT_FEE=100
|
||||
FROSTFS_IR_SETTLEMENT_BASIC_INCOME_RATE=100
|
||||
FROSTFS_IR_SETTLEMENT_AUDIT_FEE=100
|
||||
|
|
|
@ -69,7 +69,7 @@ emit:
|
|||
mint:
|
||||
value: 20000000 # Fixed8 value of sidechain GAS transferred to account that received a deposit from mainchain
|
||||
cache_size: 1000 # LRU cache size of all deposit receivers to avoid double GAS emission
|
||||
threshold: 1 # Lifetime of records in LRU cache of all deposit receivers in NeoFS epochs
|
||||
threshold: 1 # Lifetime of records in LRU cache of all deposit receivers in FrostFS epochs
|
||||
gas:
|
||||
balance_threshold: 100000000000 # Fixed8 value of inner ring wallet balance threshold when GAS emission for deposit receivers is disabled; disabled by default
|
||||
|
||||
|
@ -102,7 +102,7 @@ indexer:
|
|||
|
||||
netmap_cleaner:
|
||||
enabled: true # Enable voting for removing stale storage nodes from network map
|
||||
threshold: 3 # Number of NeoFS epoch without bootstrap request from storage node before it considered stale
|
||||
threshold: 3 # Number of FrostFS epoch without bootstrap request from storage node before it considered stale
|
||||
|
||||
contracts:
|
||||
frostfs: ee3dee6d05dc79c24a5b8f6985e10d68b7cacc62 # Address of FrostFS contract in mainchain; ignore if mainchain is disabled
|
||||
|
|
|
@ -1,180 +1,180 @@
|
|||
NEOFS_LOGGER_LEVEL=debug
|
||||
FROSTFS_LOGGER_LEVEL=debug
|
||||
|
||||
NEOFS_PPROF_ENABLED=true
|
||||
NEOFS_PPROF_ADDRESS=localhost:6060
|
||||
NEOFS_PPROF_SHUTDOWN_TIMEOUT=15s
|
||||
FROSTFS_PPROF_ENABLED=true
|
||||
FROSTFS_PPROF_ADDRESS=localhost:6060
|
||||
FROSTFS_PPROF_SHUTDOWN_TIMEOUT=15s
|
||||
|
||||
NEOFS_PROMETHEUS_ENABLED=true
|
||||
NEOFS_PROMETHEUS_ADDRESS=localhost:9090
|
||||
NEOFS_PROMETHEUS_SHUTDOWN_TIMEOUT=15s
|
||||
FROSTFS_PROMETHEUS_ENABLED=true
|
||||
FROSTFS_PROMETHEUS_ADDRESS=localhost:9090
|
||||
FROSTFS_PROMETHEUS_SHUTDOWN_TIMEOUT=15s
|
||||
|
||||
# Node section
|
||||
NEOFS_NODE_KEY=./wallet.key
|
||||
NEOFS_NODE_WALLET_PATH=./wallet.json
|
||||
NEOFS_NODE_WALLET_ADDRESS=NcpJzXcSDrh5CCizf4K9Ro6w4t59J5LKzz
|
||||
NEOFS_NODE_WALLET_PASSWORD=password
|
||||
NEOFS_NODE_ADDRESSES="s01.frostfs.devenv:8080 /dns4/s02.frostfs.devenv/tcp/8081 grpc://127.0.0.1:8082 grpcs://localhost:8083"
|
||||
NEOFS_NODE_ATTRIBUTE_0=Price:11
|
||||
NEOFS_NODE_ATTRIBUTE_1="UN-LOCODE:RU MSK"
|
||||
NEOFS_NODE_RELAY=true
|
||||
NEOFS_NODE_PERSISTENT_SESSIONS_PATH=/sessions
|
||||
NEOFS_NODE_PERSISTENT_STATE_PATH=/state
|
||||
NEOFS_NODE_SUBNET_EXIT_ZERO=true
|
||||
NEOFS_NODE_SUBNET_ENTRIES=123 456 789
|
||||
NEOFS_NODE_NOTIFICATION_ENABLED=true
|
||||
NEOFS_NODE_NOTIFICATION_ENDPOINT=tls://localhost:4222
|
||||
NEOFS_NODE_NOTIFICATION_TIMEOUT=6s
|
||||
NEOFS_NODE_NOTIFICATION_DEFAULT_TOPIC=topic
|
||||
NEOFS_NODE_NOTIFICATION_CERTIFICATE=/cert/path
|
||||
NEOFS_NODE_NOTIFICATION_KEY=/key/path
|
||||
NEOFS_NODE_NOTIFICATION_CA=/ca/path
|
||||
FROSTFS_NODE_KEY=./wallet.key
|
||||
FROSTFS_NODE_WALLET_PATH=./wallet.json
|
||||
FROSTFS_NODE_WALLET_ADDRESS=NcpJzXcSDrh5CCizf4K9Ro6w4t59J5LKzz
|
||||
FROSTFS_NODE_WALLET_PASSWORD=password
|
||||
FROSTFS_NODE_ADDRESSES="s01.frostfs.devenv:8080 /dns4/s02.frostfs.devenv/tcp/8081 grpc://127.0.0.1:8082 grpcs://localhost:8083"
|
||||
FROSTFS_NODE_ATTRIBUTE_0=Price:11
|
||||
FROSTFS_NODE_ATTRIBUTE_1="UN-LOCODE:RU MSK"
|
||||
FROSTFS_NODE_RELAY=true
|
||||
FROSTFS_NODE_PERSISTENT_SESSIONS_PATH=/sessions
|
||||
FROSTFS_NODE_PERSISTENT_STATE_PATH=/state
|
||||
FROSTFS_NODE_SUBNET_EXIT_ZERO=true
|
||||
FROSTFS_NODE_SUBNET_ENTRIES=123 456 789
|
||||
FROSTFS_NODE_NOTIFICATION_ENABLED=true
|
||||
FROSTFS_NODE_NOTIFICATION_ENDPOINT=tls://localhost:4222
|
||||
FROSTFS_NODE_NOTIFICATION_TIMEOUT=6s
|
||||
FROSTFS_NODE_NOTIFICATION_DEFAULT_TOPIC=topic
|
||||
FROSTFS_NODE_NOTIFICATION_CERTIFICATE=/cert/path
|
||||
FROSTFS_NODE_NOTIFICATION_KEY=/key/path
|
||||
FROSTFS_NODE_NOTIFICATION_CA=/ca/path
|
||||
|
||||
# Tree service section
|
||||
NEOFS_TREE_ENABLED=true
|
||||
NEOFS_TREE_CACHE_SIZE=15
|
||||
NEOFS_TREE_REPLICATION_CHANNEL_CAPACITY=32
|
||||
NEOFS_TREE_REPLICATION_WORKER_COUNT=32
|
||||
NEOFS_TREE_REPLICATION_TIMEOUT=5s
|
||||
NEOFS_TREE_SYNC_INTERVAL=1h
|
||||
FROSTFS_TREE_ENABLED=true
|
||||
FROSTFS_TREE_CACHE_SIZE=15
|
||||
FROSTFS_TREE_REPLICATION_CHANNEL_CAPACITY=32
|
||||
FROSTFS_TREE_REPLICATION_WORKER_COUNT=32
|
||||
FROSTFS_TREE_REPLICATION_TIMEOUT=5s
|
||||
FROSTFS_TREE_SYNC_INTERVAL=1h
|
||||
|
||||
# gRPC section
|
||||
## 0 server
|
||||
NEOFS_GRPC_0_ENDPOINT=s01.frostfs.devenv:8080
|
||||
FROSTFS_GRPC_0_ENDPOINT=s01.frostfs.devenv:8080
|
||||
### TLS config
|
||||
NEOFS_GRPC_0_TLS_ENABLED=true
|
||||
NEOFS_GRPC_0_TLS_CERTIFICATE=/path/to/cert
|
||||
NEOFS_GRPC_0_TLS_KEY=/path/to/key
|
||||
FROSTFS_GRPC_0_TLS_ENABLED=true
|
||||
FROSTFS_GRPC_0_TLS_CERTIFICATE=/path/to/cert
|
||||
FROSTFS_GRPC_0_TLS_KEY=/path/to/key
|
||||
|
||||
## 1 server
|
||||
NEOFS_GRPC_1_ENDPOINT=s02.frostfs.devenv:8080
|
||||
FROSTFS_GRPC_1_ENDPOINT=s02.frostfs.devenv:8080
|
||||
### TLS config
|
||||
NEOFS_GRPC_1_TLS_ENABLED=false
|
||||
FROSTFS_GRPC_1_TLS_ENABLED=false
|
||||
|
||||
# Control service section
|
||||
NEOFS_CONTROL_AUTHORIZED_KEYS="035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6"
|
||||
NEOFS_CONTROL_GRPC_ENDPOINT=localhost:8090
|
||||
FROSTFS_CONTROL_AUTHORIZED_KEYS="035839e45d472a3b7769a2a1bd7d54c4ccd4943c3b40f547870e83a8fcbfb3ce11 028f42cfcb74499d7b15b35d9bff260a1c8d27de4f446a627406a382d8961486d6"
|
||||
FROSTFS_CONTROL_GRPC_ENDPOINT=localhost:8090
|
||||
|
||||
# Contracts section
|
||||
NEOFS_CONTRACTS_BALANCE=5263abba1abedbf79bb57f3e40b50b4425d2d6cd
|
||||
NEOFS_CONTRACTS_CONTAINER=5d084790d7aa36cea7b53fe897380dab11d2cd3c
|
||||
NEOFS_CONTRACTS_NETMAP=0cce9e948dca43a6b592efe59ddb4ecb89bdd9ca
|
||||
NEOFS_CONTRACTS_REPUTATION=441995f631c1da2b133462b71859494a5cd45e90
|
||||
NEOFS_CONTRACTS_PROXY=ad7c6b55b737b696e5c82c85445040964a03e97f
|
||||
FROSTFS_CONTRACTS_BALANCE=5263abba1abedbf79bb57f3e40b50b4425d2d6cd
|
||||
FROSTFS_CONTRACTS_CONTAINER=5d084790d7aa36cea7b53fe897380dab11d2cd3c
|
||||
FROSTFS_CONTRACTS_NETMAP=0cce9e948dca43a6b592efe59ddb4ecb89bdd9ca
|
||||
FROSTFS_CONTRACTS_REPUTATION=441995f631c1da2b133462b71859494a5cd45e90
|
||||
FROSTFS_CONTRACTS_PROXY=ad7c6b55b737b696e5c82c85445040964a03e97f
|
||||
|
||||
# Morph chain section
|
||||
NEOFS_MORPH_DIAL_TIMEOUT=30s
|
||||
NEOFS_MORPH_CACHE_TTL=15s
|
||||
NEOFS_MORPH_SWITCH_INTERVAL=3m
|
||||
NEOFS_MORPH_RPC_ENDPOINT_0_ADDRESS="wss://rpc1.morph.fs.neo.org:40341/ws"
|
||||
NEOFS_MORPH_RPC_ENDPOINT_0_PRIORITY=0
|
||||
NEOFS_MORPH_RPC_ENDPOINT_1_ADDRESS="wss://rpc2.morph.fs.neo.org:40341/ws"
|
||||
NEOFS_MORPH_RPC_ENDPOINT_1_PRIORITY=2
|
||||
FROSTFS_MORPH_DIAL_TIMEOUT=30s
|
||||
FROSTFS_MORPH_CACHE_TTL=15s
|
||||
FROSTFS_MORPH_SWITCH_INTERVAL=3m
|
||||
FROSTFS_MORPH_RPC_ENDPOINT_0_ADDRESS="wss://rpc1.morph.frostfs.info:40341/ws"
|
||||
FROSTFS_MORPH_RPC_ENDPOINT_0_PRIORITY=0
|
||||
FROSTFS_MORPH_RPC_ENDPOINT_1_ADDRESS="wss://rpc2.morph.frostfs.info:40341/ws"
|
||||
FROSTFS_MORPH_RPC_ENDPOINT_1_PRIORITY=2
|
||||
|
||||
# API Client section
|
||||
NEOFS_APICLIENT_DIAL_TIMEOUT=15s
|
||||
NEOFS_APICLIENT_STREAM_TIMEOUT=20s
|
||||
NEOFS_APICLIENT_RECONNECT_TIMEOUT=30s
|
||||
NEOFS_APICLIENT_ALLOW_EXTERNAL=true
|
||||
FROSTFS_APICLIENT_DIAL_TIMEOUT=15s
|
||||
FROSTFS_APICLIENT_STREAM_TIMEOUT=20s
|
||||
FROSTFS_APICLIENT_RECONNECT_TIMEOUT=30s
|
||||
FROSTFS_APICLIENT_ALLOW_EXTERNAL=true
|
||||
|
||||
# Policer section
|
||||
NEOFS_POLICER_HEAD_TIMEOUT=15s
|
||||
FROSTFS_POLICER_HEAD_TIMEOUT=15s
|
||||
|
||||
# Replicator section
|
||||
NEOFS_REPLICATOR_PUT_TIMEOUT=15s
|
||||
NEOFS_REPLICATOR_POOL_SIZE=10
|
||||
FROSTFS_REPLICATOR_PUT_TIMEOUT=15s
|
||||
FROSTFS_REPLICATOR_POOL_SIZE=10
|
||||
|
||||
# Object service section
|
||||
NEOFS_OBJECT_PUT_POOL_SIZE_REMOTE=100
|
||||
FROSTFS_OBJECT_PUT_POOL_SIZE_REMOTE=100
|
||||
|
||||
# Storage engine section
|
||||
NEOFS_STORAGE_SHARD_POOL_SIZE=15
|
||||
NEOFS_STORAGE_SHARD_RO_ERROR_THRESHOLD=100
|
||||
FROSTFS_STORAGE_SHARD_POOL_SIZE=15
|
||||
FROSTFS_STORAGE_SHARD_RO_ERROR_THRESHOLD=100
|
||||
## 0 shard
|
||||
### Flag to refill Metabase from BlobStor
|
||||
NEOFS_STORAGE_SHARD_0_RESYNC_METABASE=false
|
||||
FROSTFS_STORAGE_SHARD_0_RESYNC_METABASE=false
|
||||
### Flag to set shard mode
|
||||
NEOFS_STORAGE_SHARD_0_MODE=read-only
|
||||
FROSTFS_STORAGE_SHARD_0_MODE=read-only
|
||||
### Write cache config
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_ENABLED=false
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_NO_SYNC=true
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_PATH=tmp/0/cache
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_SMALL_OBJECT_SIZE=16384
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_MAX_OBJECT_SIZE=134217728
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_WORKERS_NUMBER=30
|
||||
NEOFS_STORAGE_SHARD_0_WRITECACHE_CAPACITY=3221225472
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_ENABLED=false
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_NO_SYNC=true
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_PATH=tmp/0/cache
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_SMALL_OBJECT_SIZE=16384
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_MAX_OBJECT_SIZE=134217728
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_WORKERS_NUMBER=30
|
||||
FROSTFS_STORAGE_SHARD_0_WRITECACHE_CAPACITY=3221225472
|
||||
### Metabase config
|
||||
NEOFS_STORAGE_SHARD_0_METABASE_PATH=tmp/0/meta
|
||||
NEOFS_STORAGE_SHARD_0_METABASE_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_0_METABASE_MAX_BATCH_SIZE=100
|
||||
NEOFS_STORAGE_SHARD_0_METABASE_MAX_BATCH_DELAY=10ms
|
||||
FROSTFS_STORAGE_SHARD_0_METABASE_PATH=tmp/0/meta
|
||||
FROSTFS_STORAGE_SHARD_0_METABASE_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_0_METABASE_MAX_BATCH_SIZE=100
|
||||
FROSTFS_STORAGE_SHARD_0_METABASE_MAX_BATCH_DELAY=10ms
|
||||
### Blobstor config
|
||||
NEOFS_STORAGE_SHARD_0_COMPRESS=true
|
||||
NEOFS_STORAGE_SHARD_0_COMPRESSION_EXCLUDE_CONTENT_TYPES="audio/* video/*"
|
||||
NEOFS_STORAGE_SHARD_0_SMALL_OBJECT_SIZE=102400
|
||||
FROSTFS_STORAGE_SHARD_0_COMPRESS=true
|
||||
FROSTFS_STORAGE_SHARD_0_COMPRESSION_EXCLUDE_CONTENT_TYPES="audio/* video/*"
|
||||
FROSTFS_STORAGE_SHARD_0_SMALL_OBJECT_SIZE=102400
|
||||
### Blobovnicza config
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_PATH=tmp/0/blob/blobovnicza
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_TYPE=blobovnicza
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_SIZE=4194304
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_DEPTH=1
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_WIDTH=4
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_0_OPENED_CACHE_CAPACITY=50
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_PATH=tmp/0/blob/blobovnicza
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_TYPE=blobovnicza
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_SIZE=4194304
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_DEPTH=1
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_WIDTH=4
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_0_OPENED_CACHE_CAPACITY=50
|
||||
### FSTree config
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_TYPE=fstree
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_PATH=tmp/0/blob
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_0_BLOBSTOR_1_DEPTH=5
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_1_TYPE=fstree
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_1_PATH=tmp/0/blob
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_1_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_0_BLOBSTOR_1_DEPTH=5
|
||||
### Pilorama config
|
||||
NEOFS_STORAGE_SHARD_0_PILORAMA_PATH="tmp/0/blob/pilorama.db"
|
||||
NEOFS_STORAGE_SHARD_0_PILORAMA_MAX_BATCH_DELAY=10ms
|
||||
NEOFS_STORAGE_SHARD_0_PILORAMA_MAX_BATCH_SIZE=200
|
||||
FROSTFS_STORAGE_SHARD_0_PILORAMA_PATH="tmp/0/blob/pilorama.db"
|
||||
FROSTFS_STORAGE_SHARD_0_PILORAMA_MAX_BATCH_DELAY=10ms
|
||||
FROSTFS_STORAGE_SHARD_0_PILORAMA_MAX_BATCH_SIZE=200
|
||||
### GC config
|
||||
#### Limit of the single data remover's batching operation in number of objects
|
||||
NEOFS_STORAGE_SHARD_0_GC_REMOVER_BATCH_SIZE=150
|
||||
FROSTFS_STORAGE_SHARD_0_GC_REMOVER_BATCH_SIZE=150
|
||||
#### Sleep interval between data remover tacts
|
||||
NEOFS_STORAGE_SHARD_0_GC_REMOVER_SLEEP_INTERVAL=2m
|
||||
FROSTFS_STORAGE_SHARD_0_GC_REMOVER_SLEEP_INTERVAL=2m
|
||||
|
||||
## 1 shard
|
||||
### Flag to refill Metabase from BlobStor
|
||||
NEOFS_STORAGE_SHARD_1_RESYNC_METABASE=true
|
||||
FROSTFS_STORAGE_SHARD_1_RESYNC_METABASE=true
|
||||
### Flag to set shard mode
|
||||
NEOFS_STORAGE_SHARD_1_MODE=read-write
|
||||
FROSTFS_STORAGE_SHARD_1_MODE=read-write
|
||||
### Write cache config
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_ENABLED=true
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_PATH=tmp/1/cache
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_SMALL_OBJECT_SIZE=16384
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_MAX_OBJECT_SIZE=134217728
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_WORKERS_NUMBER=30
|
||||
NEOFS_STORAGE_SHARD_1_WRITECACHE_CAPACITY=4294967296
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_ENABLED=true
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_PATH=tmp/1/cache
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_SMALL_OBJECT_SIZE=16384
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_MAX_OBJECT_SIZE=134217728
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_WORKERS_NUMBER=30
|
||||
FROSTFS_STORAGE_SHARD_1_WRITECACHE_CAPACITY=4294967296
|
||||
### Metabase config
|
||||
NEOFS_STORAGE_SHARD_1_METABASE_PATH=tmp/1/meta
|
||||
NEOFS_STORAGE_SHARD_1_METABASE_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_1_METABASE_MAX_BATCH_SIZE=200
|
||||
NEOFS_STORAGE_SHARD_1_METABASE_MAX_BATCH_DELAY=20ms
|
||||
FROSTFS_STORAGE_SHARD_1_METABASE_PATH=tmp/1/meta
|
||||
FROSTFS_STORAGE_SHARD_1_METABASE_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_1_METABASE_MAX_BATCH_SIZE=200
|
||||
FROSTFS_STORAGE_SHARD_1_METABASE_MAX_BATCH_DELAY=20ms
|
||||
### Blobstor config
|
||||
NEOFS_STORAGE_SHARD_1_COMPRESS=false
|
||||
NEOFS_STORAGE_SHARD_1_SMALL_OBJECT_SIZE=102400
|
||||
FROSTFS_STORAGE_SHARD_1_COMPRESS=false
|
||||
FROSTFS_STORAGE_SHARD_1_SMALL_OBJECT_SIZE=102400
|
||||
### Blobovnicza config
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_TYPE=blobovnicza
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_PATH=tmp/1/blob/blobovnicza
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_SIZE=4194304
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_DEPTH=1
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_WIDTH=4
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_0_OPENED_CACHE_CAPACITY=50
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_TYPE=blobovnicza
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_PATH=tmp/1/blob/blobovnicza
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_SIZE=4194304
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_DEPTH=1
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_WIDTH=4
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_0_OPENED_CACHE_CAPACITY=50
|
||||
### FSTree config
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_TYPE=fstree
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_PATH=tmp/1/blob
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_NO_SYNC=true
|
||||
NEOFS_STORAGE_SHARD_1_BLOBSTOR_1_DEPTH=5
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_1_TYPE=fstree
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_1_PATH=tmp/1/blob
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_1_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_1_NO_SYNC=true
|
||||
FROSTFS_STORAGE_SHARD_1_BLOBSTOR_1_DEPTH=5
|
||||
### Pilorama config
|
||||
NEOFS_STORAGE_SHARD_1_PILORAMA_PATH="tmp/1/blob/pilorama.db"
|
||||
NEOFS_STORAGE_SHARD_1_PILORAMA_PERM=0644
|
||||
NEOFS_STORAGE_SHARD_1_PILORAMA_NO_SYNC=true
|
||||
NEOFS_STORAGE_SHARD_1_PILORAMA_MAX_BATCH_DELAY=5ms
|
||||
NEOFS_STORAGE_SHARD_1_PILORAMA_MAX_BATCH_SIZE=100
|
||||
FROSTFS_STORAGE_SHARD_1_PILORAMA_PATH="tmp/1/blob/pilorama.db"
|
||||
FROSTFS_STORAGE_SHARD_1_PILORAMA_PERM=0644
|
||||
FROSTFS_STORAGE_SHARD_1_PILORAMA_NO_SYNC=true
|
||||
FROSTFS_STORAGE_SHARD_1_PILORAMA_MAX_BATCH_DELAY=5ms
|
||||
FROSTFS_STORAGE_SHARD_1_PILORAMA_MAX_BATCH_SIZE=100
|
||||
### GC config
|
||||
#### Limit of the single data remover's batching operation in number of objects
|
||||
NEOFS_STORAGE_SHARD_1_GC_REMOVER_BATCH_SIZE=200
|
||||
FROSTFS_STORAGE_SHARD_1_GC_REMOVER_BATCH_SIZE=200
|
||||
#### Sleep interval between data remover tacts
|
||||
NEOFS_STORAGE_SHARD_1_GC_REMOVER_SLEEP_INTERVAL=5m
|
||||
FROSTFS_STORAGE_SHARD_1_GC_REMOVER_SLEEP_INTERVAL=5m
|
||||
|
|
|
@ -105,11 +105,11 @@
|
|||
"switch_interval": "3m",
|
||||
"rpc_endpoint": [
|
||||
{
|
||||
"address": "wss://rpc1.morph.fs.neo.org:40341/ws",
|
||||
"address": "wss://rpc1.morph.frostfs.info:40341/ws",
|
||||
"priority": 0
|
||||
},
|
||||
{
|
||||
"address": "wss://rpc2.morph.fs.neo.org:40341/ws",
|
||||
"address": "wss://rpc2.morph.frostfs.info:40341/ws",
|
||||
"priority": 2
|
||||
}
|
||||
]
|
||||
|
|
|
@ -31,7 +31,7 @@ node:
|
|||
path: /state # path to persistent state file of Storage node
|
||||
subnet:
|
||||
exit_zero: true # toggle entrance to zero subnet (overrides corresponding attribute and occurrence in `entries`)
|
||||
entries: # list of IDs of subnets to enter in a text format of NeoFS API protocol (overrides corresponding attributes)
|
||||
entries: # list of IDs of subnets to enter in a text format of FrostFS API protocol (overrides corresponding attributes)
|
||||
- 123
|
||||
- 456
|
||||
- 789
|
||||
|
@ -88,13 +88,13 @@ morph:
|
|||
# Cached entities: containers, container lists, eACL tables.
|
||||
switch_interval: 3m # interval b/w RPC switch attempts if the node is connected not to the highest priority node
|
||||
rpc_endpoint: # side chain NEO RPC endpoints; are shuffled and used one by one until the first success
|
||||
- address: wss://rpc1.morph.fs.neo.org:40341/ws
|
||||
- address: wss://rpc1.morph.frostfs.info:40341/ws
|
||||
priority: 0
|
||||
- address: wss://rpc2.morph.fs.neo.org:40341/ws
|
||||
- address: wss://rpc2.morph.frostfs.info:40341/ws
|
||||
priority: 2
|
||||
|
||||
apiclient:
|
||||
dial_timeout: 15s # timeout for NEOFS API client connection
|
||||
dial_timeout: 15s # timeout for FrostFS API client connection
|
||||
stream_timeout: 20s # timeout for individual operations in a streaming RPC
|
||||
allow_external: true # allow to fallback to addresses in `ExternalAddr` attribute
|
||||
reconnect_timeout: 30s # time to wait before reconnecting to a failed node
|
||||
|
|
|
@ -7,7 +7,7 @@ node:
|
|||
- <announced.address:port>
|
||||
attribute_0: UN-LOCODE:<XX YYY>
|
||||
attribute_1: Price:100000
|
||||
attribute_2: User-Agent:NeoFS\/0.27
|
||||
attribute_2: User-Agent:FrostFS\/0.9999
|
||||
|
||||
grpc:
|
||||
num: 1
|
||||
|
@ -55,13 +55,13 @@ object:
|
|||
|
||||
morph:
|
||||
rpc_endpoint:
|
||||
- wss://rpc1.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc2.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc3.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc4.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc5.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc6.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc7.morph.fs.neo.org:40341/ws
|
||||
- wss://rpc1.morph.frostfs.info:40341/ws
|
||||
- wss://rpc2.morph.frostfs.info:40341/ws
|
||||
- wss://rpc3.morph.frostfs.info:40341/ws
|
||||
- wss://rpc4.morph.frostfs.info:40341/ws
|
||||
- wss://rpc5.morph.frostfs.info:40341/ws
|
||||
- wss://rpc6.morph.frostfs.info:40341/ws
|
||||
- wss://rpc7.morph.frostfs.info:40341/ws
|
||||
dial_timeout: 20s
|
||||
|
||||
contracts:
|
||||
|
|
|
@ -3,13 +3,13 @@ logger:
|
|||
|
||||
morph:
|
||||
rpc_endpoint:
|
||||
- wss://rpc01.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc02.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc03.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc04.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc05.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc06.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc07.morph.testnet.fs.neo.org:51331/ws
|
||||
- wss://rpc01.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc02.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc03.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc04.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc05.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc06.morph.testnet.frostfs.info:51331/ws
|
||||
- wss://rpc07.morph.testnet.frostfs.info:51331/ws
|
||||
dial_timeout: 20s
|
||||
|
||||
contracts:
|
||||
|
@ -21,7 +21,7 @@ contracts:
|
|||
node:
|
||||
key: /node.key
|
||||
attribute_0: Deployed:SelfHosted
|
||||
attribute_1: User-Agent:NeoFS\/0.27
|
||||
attribute_1: User-Agent:FrostFS\/0.9999
|
||||
|
||||
prometheus:
|
||||
enabled: true
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
|
||||
version: "2.4"
|
||||
services:
|
||||
storage01:
|
||||
image: nspccdev/neofs-storage-testnet:0.27.7
|
||||
container_name: frostfs-testnet
|
||||
env_file: node_config.env
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- frostfs_storage:/storage
|
||||
- <NEOFS_NODE_KEY>:/node.key
|
||||
stop_signal: SIGINT
|
||||
|
||||
vmagent:
|
||||
image: victoriametrics/vmagent:v1.61.0
|
||||
container_name: vmagent
|
||||
depends_on:
|
||||
- storage01
|
||||
env_file: node_config.env
|
||||
command:
|
||||
- '-promscrape.config=/configs/prometheus.yml'
|
||||
- '-remoteWrite.url=https://collector.fs.neo.org/api/v1/write'
|
||||
network_mode: host
|
||||
restart: always
|
||||
volumes:
|
||||
- ./prometheus.yml:/configs/prometheus.yml
|
||||
|
||||
volumes:
|
||||
frostfs_storage:
|
|
@ -1,32 +0,0 @@
|
|||
#
|
||||
|
||||
# Specify your public IP address or domain name with the open port
|
||||
# in NODE_ADDRESSES and GRPC_0_ENDPOINT
|
||||
# By default keep these addresses the same.
|
||||
|
||||
# This is used for the public announcement in the network map
|
||||
#
|
||||
#NEOFS_NODE_ADDRESSES=1.1.1.1:36512
|
||||
NEOFS_NODE_ADDRESSES=
|
||||
|
||||
# This is used to open the connection listening socket(s) on your machine
|
||||
#
|
||||
#NEOFS_GRPC_0_ENDPOINT=1.1.1.1:36512
|
||||
NEOFS_GRPC_0_ENDPOINT=
|
||||
NEOFS_GRPC_NUM=1
|
||||
|
||||
# Specify control service endpoint for node administration.
|
||||
# It must be different from connection port.
|
||||
# Keep control service endpoint private with firewall rules or use localhost.
|
||||
NEOFS_CONTROL_GRPC_ENDPOINT=localhost:30512
|
||||
|
||||
|
||||
#https://unece.org/trade/cefact/unlocode-code-list-country-and-territory
|
||||
# Find suitable LOCODE (from the link above) for your storage node.
|
||||
#
|
||||
#NEOFS_NODE_ATTRIBUTE_2=UN-LOCODE:<XX YYY>
|
||||
#NEOFS_NODE_ATTRIBUTE_2=UN-LOCODE:RU LED
|
||||
NEOFS_NODE_ATTRIBUTE_2=
|
||||
|
||||
|
||||
NEOFS_NODE_ATTRIBUTE_3=Price:100000
|
|
@ -1,13 +0,0 @@
|
|||
global:
|
||||
scrape_interval: 15s
|
||||
external_labels:
|
||||
monitor: 'user_metrics'
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'frostfs-node-user'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
relabel_configs:
|
||||
- target_label: 'instance'
|
||||
replacement: "%{NEOFS_NODE_ADDRESS}"
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -2,4 +2,4 @@ frostfs-node (0.0.1) stable; urgency=medium
|
|||
|
||||
* Initial package build
|
||||
|
||||
-- NeoSPCC <tech@nspcc.ru> Tue, 25 Oct 2022 21:10:49 +0300
|
||||
-- TrueCloudLab <tech@frostfs.info> Tue, 25 Oct 2022 21:10:49 +0300
|
||||
|
|
24
debian/control
vendored
24
debian/control
vendored
|
@ -11,29 +11,29 @@ Vcs-Browser: https://github.com/TrueCloudLab/frostfs-node
|
|||
Package: frostfs-storage
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}
|
||||
Description: NeoFS Storage node
|
||||
NeoFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. NeoFS Nodes are organized in a peer-to-peer network that takes care
|
||||
Description: FrostFS Storage node
|
||||
FrostFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. FrostFS Nodes are organized in a peer-to-peer network that takes care
|
||||
of storing and distributing user's data. Any Neo user may participate in the
|
||||
network and get paid for providing storage resources to other users or store
|
||||
their data in NeoFS and pay a competitive price for it.
|
||||
their data in FrostFS and pay a competitive price for it.
|
||||
|
||||
Package: frostfs-ir
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, frostfs-locode-db
|
||||
Description: NeoFS InnerRing node
|
||||
NeoFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. NeoFS Nodes are organized in a peer-to-peer network that takes care
|
||||
Description: FrostFS InnerRing node
|
||||
FrostFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. FrostFS Nodes are organized in a peer-to-peer network that takes care
|
||||
of storing and distributing user's data. Any Neo user may participate in the
|
||||
network and get paid for providing storage resources to other users or store
|
||||
their data in NeoFS and pay a competitive price for it.
|
||||
their data in FrostFS and pay a competitive price for it.
|
||||
|
||||
Package: frostfs-cli
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}
|
||||
Description: CLI tools for NeoFS
|
||||
NeoFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. NeoFS Nodes are organized in a peer-to-peer network that takes care
|
||||
Description: CLI tools for FrostFS
|
||||
FrostFS is a decentralized distributed object storage integrated with the NEO
|
||||
Blockchain. FrostFS Nodes are organized in a peer-to-peer network that takes care
|
||||
of storing and distributing user's data. Any Neo user may participate in the
|
||||
network and get paid for providing storage resources to other users or store
|
||||
their data in NeoFS and pay a competitive price for it.
|
||||
their data in FrostFS and pay a competitive price for it.
|
||||
|
|
5
debian/copyright
vendored
5
debian/copyright
vendored
|
@ -1,10 +1,11 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: frostfs-node
|
||||
Upstream-Contact: tech@nspcc.ru
|
||||
Upstream-Contact: tech@frostfs.info
|
||||
Source: https://github.com/TrueCloudLab/frostfs-node
|
||||
It will become real soon. It will become real soon.
|
||||
|
||||
Files: *
|
||||
Copyright: 2018-2022 NeoSPCC (@nspcc-dev), contributors of frostfs-node project
|
||||
Copyright: 2022-2023 TrueCloudLab (@TrueCloudLab), contributors of FrostFS project
|
||||
2018-2022 NeoSPCC (@nspcc-dev), contributors of NeoFS project
|
||||
(https://github.com/TrueCloudLab/frostfs-node/blob/master/CREDITS.md)
|
||||
|
||||
License: GPL-3
|
||||
|
|
2
debian/frostfs-ir.postinst
vendored
2
debian/frostfs-ir.postinst
vendored
|
@ -19,7 +19,7 @@ set -e
|
|||
case "$1" in
|
||||
configure)
|
||||
USERNAME=ir
|
||||
id -u frostfs-ir >/dev/null 2>&1 || useradd -s /usr/sbin/nologin -d /var/lib/frostfs/ir --system -M -U -c "NeoFS InnerRing node" frostfs-ir
|
||||
id -u frostfs-ir >/dev/null 2>&1 || useradd -s /usr/sbin/nologin -d /var/lib/frostfs/ir --system -M -U -c "FrostFS InnerRing node" frostfs-ir
|
||||
if ! dpkg-statoverride --list /etc/frostfs/$USERNAME >/dev/null; then
|
||||
chown -f root:frostfs-$USERNAME /etc/frostfs/$USERNAME
|
||||
chmod -f 0750 /etc/frostfs/$USERNAME
|
||||
|
|
2
debian/frostfs-ir.service
vendored
2
debian/frostfs-ir.service
vendored
|
@ -1,5 +1,5 @@
|
|||
[Unit]
|
||||
Description=NeoFS InnerRing node
|
||||
Description=FrostFS InnerRing node
|
||||
Requires=network.target
|
||||
|
||||
[Service]
|
||||
|
|
2
debian/frostfs-storage.postinst
vendored
2
debian/frostfs-storage.postinst
vendored
|
@ -19,7 +19,7 @@ set -e
|
|||
case "$1" in
|
||||
configure)
|
||||
USERNAME=storage
|
||||
id -u frostfs-$USERNAME >/dev/null 2>&1 || useradd -s /usr/sbin/nologin -d /var/lib/frostfs/$USERNAME --system -M -U -c "NeoFS Storage node" frostfs-$USERNAME
|
||||
id -u frostfs-$USERNAME >/dev/null 2>&1 || useradd -s /usr/sbin/nologin -d /var/lib/frostfs/$USERNAME --system -M -U -c "FrostFS Storage node" frostfs-$USERNAME
|
||||
if ! dpkg-statoverride --list /etc/frostfs/$USERNAME >/dev/null; then
|
||||
chown -f root:frostfs-$USERNAME /etc/frostfs/$USERNAME
|
||||
chmod -f 0750 /etc/frostfs/$USERNAME
|
||||
|
|
2
debian/frostfs-storage.service
vendored
2
debian/frostfs-storage.service
vendored
|
@ -1,5 +1,5 @@
|
|||
[Unit]
|
||||
Description=NeoFS Storage node
|
||||
Description=FrostFS Storage node
|
||||
Requires=network.target
|
||||
|
||||
[Service]
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-sdk-go/client"
|
||||
)
|
||||
|
||||
// Client is an interface of NeoFS storage
|
||||
// Client is an interface of FrostFS storage
|
||||
// node's client.
|
||||
type Client interface {
|
||||
ContainerAnnounceUsedSpace(context.Context, client.PrmAnnounceSpace) (*client.ResAnnounceSpace, error)
|
||||
|
@ -35,7 +35,7 @@ type MultiAddressClient interface {
|
|||
RawForAddress(network.Address, func(cli *rawclient.Client) error) error
|
||||
}
|
||||
|
||||
// NodeInfo groups information about a NeoFS storage node needed for Client construction.
|
||||
// NodeInfo groups information about a FrostFS storage node needed for Client construction.
|
||||
type NodeInfo struct {
|
||||
addrGroup network.AddressGroup
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-sdk-go/session"
|
||||
)
|
||||
|
||||
// Container groups information about the NeoFS container stored in the NeoFS network.
|
||||
// Container groups information about the FrostFS container stored in the FrostFS network.
|
||||
type Container struct {
|
||||
// Container structure.
|
||||
Value container.Container
|
||||
|
@ -43,8 +43,8 @@ func IsErrNotFound(err error) bool {
|
|||
return errors.As(err, new(apistatus.ContainerNotFound))
|
||||
}
|
||||
|
||||
// EACL groups information about the NeoFS container's extended ACL stored in
|
||||
// the NeoFS network.
|
||||
// EACL groups information about the FrostFS container's extended ACL stored in
|
||||
// the FrostFS network.
|
||||
type EACL struct {
|
||||
// Extended ACL structure.
|
||||
Value *eacl.Table
|
||||
|
|
|
@ -2,6 +2,6 @@ package netmap
|
|||
|
||||
// State groups the current system state parameters.
|
||||
type State interface {
|
||||
// CurrentEpoch returns the number of the current NeoFS epoch.
|
||||
// CurrentEpoch returns the number of the current FrostFS epoch.
|
||||
CurrentEpoch() uint64
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
oid "github.com/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||
)
|
||||
|
||||
// AddressWithType groups object address with its NeoFS
|
||||
// AddressWithType groups object address with its FrostFS
|
||||
// object type.
|
||||
type AddressWithType struct {
|
||||
Address oid.Address
|
||||
|
|
|
@ -169,7 +169,7 @@ func (v *FormatValidator) checkOwnerKey(id user.ID, key frostfsecdsa.PublicKey)
|
|||
return nil
|
||||
}
|
||||
|
||||
// ContentMeta describes NeoFS meta information that brings object's payload if the object
|
||||
// ContentMeta describes FrostFS meta information that brings object's payload if the object
|
||||
// is one of:
|
||||
// - object.TypeTombstone;
|
||||
// - object.TypeStorageGroup;
|
||||
|
|
|
@ -4,7 +4,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-sdk-go/version"
|
||||
)
|
||||
|
||||
// IsValid checks if Version is not earlier than the genesis version of the NeoFS.
|
||||
// IsValid checks if Version is not earlier than the genesis version of the FrostFS.
|
||||
func IsValid(v version.Version) bool {
|
||||
const (
|
||||
startMajor = 2
|
||||
|
|
|
@ -32,7 +32,7 @@ func (f FeeConfig) SideChainFee() fixedn.Fixed8 {
|
|||
return f.sidechain
|
||||
}
|
||||
|
||||
// NamedContainerRegistrationFee returns additional GAS fee for named container registration in NeoFS network.
|
||||
// NamedContainerRegistrationFee returns additional GAS fee for named container registration in FrostFS network.
|
||||
func (f FeeConfig) NamedContainerRegistrationFee() fixedn.Fixed8 {
|
||||
return f.registerNamedCnr
|
||||
}
|
||||
|
|
|
@ -16,14 +16,14 @@ import (
|
|||
oid "github.com/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||
)
|
||||
|
||||
// Client represents NeoFS API client cut down to the needs of a purely IR application.
|
||||
// Client represents FrostFS API client cut down to the needs of a purely IR application.
|
||||
type Client struct {
|
||||
key *ecdsa.PrivateKey
|
||||
|
||||
c clientcore.Client
|
||||
}
|
||||
|
||||
// WrapBasicClient wraps a client.Client instance to use it for NeoFS API RPC.
|
||||
// WrapBasicClient wraps a client.Client instance to use it for FrostFS API RPC.
|
||||
func (x *Client) WrapBasicClient(c clientcore.Client) {
|
||||
x.c = c
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ func (x Client) HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error) {
|
|||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("read object header from NeoFS: %w", err)
|
||||
return nil, fmt.Errorf("read object header from FrostFS: %w", err)
|
||||
}
|
||||
|
||||
var hdr object.Object
|
||||
|
@ -225,7 +225,7 @@ func (x Client) HeadObject(prm HeadObjectPrm) (*HeadObjectRes, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
// GetObjectPayload reads an object by address from NeoFS via Client and returns its payload.
|
||||
// GetObjectPayload reads an object by address from FrostFS via Client and returns its payload.
|
||||
//
|
||||
// Returns any error which prevented the operation from completing correctly in error return.
|
||||
func GetObjectPayload(ctx context.Context, c Client, addr oid.Address) ([]byte, error) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Package frostfsapiclient provides functionality for IR application communication with NeoFS network.
|
||||
// Package frostfsapiclient provides functionality for IR application communication with FrostFS network.
|
||||
//
|
||||
// The basic client for accessing remote nodes via NeoFS API is a NeoFS SDK Go API client.
|
||||
// The basic client for accessing remote nodes via FrostFS API is a FrostFS SDK Go API client.
|
||||
// However, although it encapsulates a useful piece of business logic (e.g. the signature mechanism),
|
||||
// the IR application does not fully use the client's flexible interface.
|
||||
//
|
||||
|
@ -8,5 +8,5 @@
|
|||
// The type provides the minimum interface necessary for the application and also allows you to concentrate
|
||||
// the entire spectrum of the client's use in one place (this will be convenient both when updating the base client
|
||||
// and for evaluating the UX of SDK library). So, it is expected that all application packages will be limited
|
||||
// to this package for the development of functionality requiring NeoFS API communication.
|
||||
// to this package for the development of functionality requiring FrostFS API communication.
|
||||
package frostfsapiclient
|
||||
|
|
|
@ -81,7 +81,7 @@ func New(p *Params) (*Processor, error) {
|
|||
case p.ContainerClient == nil:
|
||||
return nil, errors.New("ir/container: Container client is not set")
|
||||
case p.FrostFSIDClient == nil:
|
||||
return nil, errors.New("ir/container: NeoFS ID client is not set")
|
||||
return nil, errors.New("ir/container: FrostFS ID client is not set")
|
||||
case p.NetworkState == nil:
|
||||
return nil, errors.New("ir/container: network state is not set")
|
||||
case p.SubnetClient == nil:
|
||||
|
|
|
@ -123,7 +123,7 @@ func (gp *Processor) processAlphabetSync(txHash util.Uint256) {
|
|||
}
|
||||
}
|
||||
|
||||
// 4. Update NeoFS contract in the mainnet.
|
||||
// 4. Update FrostFS contract in the mainnet.
|
||||
epoch := gp.epochState.EpochCounter()
|
||||
|
||||
buf := make([]byte, 8)
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
)
|
||||
|
||||
// Record is an interface of read-only
|
||||
// NeoFS LOCODE database single entry.
|
||||
// FrostFS LOCODE database single entry.
|
||||
type Record interface {
|
||||
// Must return ISO 3166-1 alpha-2
|
||||
// country code.
|
||||
|
@ -47,7 +47,7 @@ type Record interface {
|
|||
}
|
||||
|
||||
// DB is an interface of read-only
|
||||
// NeoFS LOCODE database.
|
||||
// FrostFS LOCODE database.
|
||||
type DB interface {
|
||||
// Must find the record that corresponds to
|
||||
// LOCODE and provides the Record interface.
|
||||
|
|
|
@ -6,7 +6,7 @@ package locode
|
|||
// Passing incorrect parameter values will result in constructor
|
||||
// failure (error or panic depending on the implementation).
|
||||
type Prm struct {
|
||||
// NeoFS LOCODE database interface.
|
||||
// FrostFS LOCODE database interface.
|
||||
//
|
||||
// Must not be nil.
|
||||
DB DB
|
||||
|
|
|
@ -15,7 +15,7 @@ import (
|
|||
// ErrMaintenanceModeDisallowed is returned when maintenance mode is disallowed.
|
||||
var ErrMaintenanceModeDisallowed = errors.New("maintenance mode is disallowed")
|
||||
|
||||
// NetworkSettings encapsulates current settings of the NeoFS network and
|
||||
// NetworkSettings encapsulates current settings of the FrostFS network and
|
||||
// provides interface used for processing the network map candidates.
|
||||
type NetworkSettings interface {
|
||||
// MaintenanceModeAllowed checks if maintenance state of the storage nodes
|
||||
|
@ -27,7 +27,7 @@ type NetworkSettings interface {
|
|||
}
|
||||
|
||||
// NetMapCandidateValidator represents tool which checks state of nodes which
|
||||
// are going to register in the NeoFS network (enter the network map).
|
||||
// are going to register in the FrostFS network (enter the network map).
|
||||
//
|
||||
// NetMapCandidateValidator can be instantiated using built-in var declaration
|
||||
// and currently doesn't require any additional initialization.
|
||||
|
|
|
@ -29,7 +29,7 @@ type ResultStorage interface {
|
|||
AuditResultsForEpoch(epoch uint64) ([]*audit.Result, error)
|
||||
}
|
||||
|
||||
// SGInfo groups the data about NeoFS storage group
|
||||
// SGInfo groups the data about FrostFS storage group
|
||||
// necessary for calculating audit fee.
|
||||
type SGInfo interface {
|
||||
// Must return sum size of the all group members.
|
||||
|
|
|
@ -17,7 +17,7 @@ type NodeInfo interface {
|
|||
PublicKey() []byte
|
||||
}
|
||||
|
||||
// ContainerInfo groups the data about NeoFS container
|
||||
// ContainerInfo groups the data about FrostFS container
|
||||
// necessary for calculating audit fee.
|
||||
type ContainerInfo interface {
|
||||
// Must return identifier of the container owner.
|
||||
|
@ -25,7 +25,7 @@ type ContainerInfo interface {
|
|||
}
|
||||
|
||||
// ContainerStorage is an interface of
|
||||
// storage of the NeoFS containers.
|
||||
// storage of the FrostFS containers.
|
||||
type ContainerStorage interface {
|
||||
// Must return information about the container by ID.
|
||||
ContainerInfo(cid.ID) (ContainerInfo, error)
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-sdk-go/user"
|
||||
)
|
||||
|
||||
// Put represents a notification about NeoFS subnet creation.
|
||||
// Put represents a notification about FrostFS subnet creation.
|
||||
// Generated by a contract when intending to create a subnet.
|
||||
type Put interface {
|
||||
// Contains the ID of the subnet to be created.
|
||||
|
@ -56,7 +56,7 @@ func (x PutValidator) Assert(event Put) error {
|
|||
}
|
||||
}
|
||||
|
||||
// read creator's user ID in NeoFS system
|
||||
// read creator's user ID in FrostFS system
|
||||
var creator user.ID
|
||||
if err = event.ReadCreator(&creator); err != nil {
|
||||
return fmt.Errorf("read creator: %w", err)
|
||||
|
|
|
@ -184,14 +184,14 @@ type putSubnetEvent struct {
|
|||
ev subnetevents.Put
|
||||
}
|
||||
|
||||
// ReadID unmarshals the subnet ID from a binary NeoFS API protocol's format.
|
||||
// ReadID unmarshals the subnet ID from a binary FrostFS API protocol's format.
|
||||
func (x putSubnetEvent) ReadID(id *subnetid.ID) error {
|
||||
return id.Unmarshal(x.ev.ID())
|
||||
}
|
||||
|
||||
var errMissingSubnetOwner = errors.New("missing subnet owner")
|
||||
|
||||
// ReadCreator unmarshals the subnet creator from a binary NeoFS API protocol's format.
|
||||
// ReadCreator unmarshals the subnet creator from a binary FrostFS API protocol's format.
|
||||
// Returns an error if the byte array is empty.
|
||||
func (x putSubnetEvent) ReadCreator(id *user.ID) error {
|
||||
data := x.ev.Owner()
|
||||
|
@ -210,7 +210,7 @@ func (x putSubnetEvent) ReadCreator(id *user.ID) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// ReadInfo unmarshal the subnet info from a binary NeoFS API protocol's format.
|
||||
// ReadInfo unmarshal the subnet info from a binary FrostFS API protocol's format.
|
||||
func (x putSubnetEvent) ReadInfo(info *subnet.Info) error {
|
||||
return info.Unmarshal(x.ev.Info())
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// Blobovnicza represents the implementation of NeoFS Blobovnicza.
|
||||
// Blobovnicza represents the implementation of FrostFS Blobovnicza.
|
||||
type Blobovnicza struct {
|
||||
cfg
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ type SubStorage struct {
|
|||
Policy func(*objectSDK.Object, []byte) bool
|
||||
}
|
||||
|
||||
// BlobStor represents NeoFS local BLOB storage.
|
||||
// BlobStor represents FrostFS local BLOB storage.
|
||||
type BlobStor struct {
|
||||
cfg
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// StorageEngine represents NeoFS local storage engine.
|
||||
// StorageEngine represents FrostFS local storage engine.
|
||||
type StorageEngine struct {
|
||||
*cfg
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ func (db *DB) Inhume(prm InhumePrm) (res InhumeRes, err error) {
|
|||
bkt = graveyardBKT
|
||||
tombKey := addressKey(*prm.tomb, make([]byte, addressKeySize))
|
||||
|
||||
// it is forbidden to have a tomb-on-tomb in NeoFS,
|
||||
// it is forbidden to have a tomb-on-tomb in FrostFS,
|
||||
// so graveyard keys must not be addresses of tombstones
|
||||
data := bkt.Get(tombKey)
|
||||
if data != nil {
|
||||
|
|
|
@ -15,10 +15,10 @@ import (
|
|||
)
|
||||
|
||||
// TombstoneSource is an interface that checks
|
||||
// tombstone status in the NeoFS network.
|
||||
// tombstone status in the FrostFS network.
|
||||
type TombstoneSource interface {
|
||||
// IsTombstoneAvailable must return boolean value that means
|
||||
// provided tombstone's presence in the NeoFS network at the
|
||||
// provided tombstone's presence in the FrostFS network at the
|
||||
// time of the passed epoch.
|
||||
IsTombstoneAvailable(ctx context.Context, addr oid.Address, epoch uint64) bool
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import (
|
|||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// Shard represents single shard of NeoFS Local Storage Engine.
|
||||
// Shard represents single shard of FrostFS Local Storage Engine.
|
||||
type Shard struct {
|
||||
*cfg
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS Audit contract.
|
||||
// of the FrostFS Audit contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
|
|
|
@ -22,7 +22,7 @@ func (p *PutPrm) SetResult(result *auditAPI.Result) {
|
|||
p.result = result
|
||||
}
|
||||
|
||||
// PutAuditResult saves passed audit result structure in NeoFS system
|
||||
// PutAuditResult saves passed audit result structure in FrostFS system
|
||||
// through Audit contract call.
|
||||
//
|
||||
// Returns encountered error that caused the saving to interrupt.
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS Balance contract.
|
||||
// of the FrostFS Balance contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS Container contract.
|
||||
// of the FrostFS Container contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
|
|
|
@ -52,7 +52,7 @@ func (d *DeletePrm) SetToken(token []byte) {
|
|||
d.token = token
|
||||
}
|
||||
|
||||
// Delete removes the container from NeoFS system
|
||||
// Delete removes the container from FrostFS system
|
||||
// through Container contract call.
|
||||
//
|
||||
// Returns any error encountered that caused
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-sdk-go/session"
|
||||
)
|
||||
|
||||
// GetEACL reads the extended ACL table from NeoFS system
|
||||
// GetEACL reads the extended ACL table from FrostFS system
|
||||
// through Container contract call.
|
||||
//
|
||||
// Returns apistatus.EACLNotFound if eACL table is missing in the contract.
|
||||
|
|
|
@ -72,7 +72,7 @@ func (p *PutEACLPrm) SetToken(token []byte) {
|
|||
}
|
||||
|
||||
// PutEACL saves binary eACL table with its session token, key and signature
|
||||
// in NeoFS system through Container contract call.
|
||||
// in FrostFS system through Container contract call.
|
||||
//
|
||||
// Returns any error encountered that caused the saving to interrupt.
|
||||
func (c *Client) PutEACL(p PutEACLPrm) error {
|
||||
|
|
|
@ -35,7 +35,7 @@ func Get(c *Client, cnr cid.ID) (*containercore.Container, error) {
|
|||
return c.Get(binCnr)
|
||||
}
|
||||
|
||||
// Get reads the container from NeoFS system by binary identifier
|
||||
// Get reads the container from FrostFS system by binary identifier
|
||||
// through Container contract call.
|
||||
//
|
||||
// If an empty slice is returned for the requested identifier,
|
||||
|
|
|
@ -9,10 +9,10 @@ import (
|
|||
)
|
||||
|
||||
// List returns a list of container identifiers belonging
|
||||
// to the specified user of NeoFS system. The list is composed
|
||||
// to the specified user of FrostFS system. The list is composed
|
||||
// through Container contract call.
|
||||
//
|
||||
// Returns the identifiers of all NeoFS containers if pointer
|
||||
// Returns the identifiers of all FrostFS containers if pointer
|
||||
// to user identifier is nil.
|
||||
func (c *Client) List(idUser *user.ID) ([]cid.ID, error) {
|
||||
var rawID []byte
|
||||
|
|
|
@ -29,7 +29,7 @@ func (a2 *AnnounceLoadPrm) SetReporter(key []byte) {
|
|||
}
|
||||
|
||||
// AnnounceLoad saves container size estimation calculated by storage node
|
||||
// with key in NeoFS system through Container contract call.
|
||||
// with key in FrostFS system through Container contract call.
|
||||
//
|
||||
// Returns any error encountered that caused the saving to interrupt.
|
||||
func (c *Client) AnnounceLoad(p AnnounceLoadPrm) error {
|
||||
|
|
|
@ -89,7 +89,7 @@ func (p *PutPrm) SetZone(zone string) {
|
|||
}
|
||||
|
||||
// Put saves binary container with its session token, key and signature
|
||||
// in NeoFS system through Container contract call.
|
||||
// in FrostFS system through Container contract call.
|
||||
//
|
||||
// Returns calculated container identifier and any error
|
||||
// encountered that caused the saving to interrupt.
|
||||
|
|
|
@ -19,7 +19,7 @@ func (x *commonBindArgs) SetOptionalPrm(op client.InvokePrmOptional) {
|
|||
x.InvokePrmOptional = op
|
||||
}
|
||||
|
||||
// SetScriptHash sets script hash of the NeoFS account identifier.
|
||||
// SetScriptHash sets script hash of the FrostFS account identifier.
|
||||
func (x *commonBindArgs) SetScriptHash(v []byte) {
|
||||
x.scriptHash = v
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ type BindKeysPrm struct {
|
|||
commonBindArgs
|
||||
}
|
||||
|
||||
// BindKeys binds list of public keys from NeoFS account by script hash.
|
||||
// BindKeys binds list of public keys from FrostFS account by script hash.
|
||||
func (x *Client) BindKeys(p BindKeysPrm) error {
|
||||
prm := client.InvokePrm{}
|
||||
prm.SetMethod(bindKeysMethod)
|
||||
|
@ -55,7 +55,7 @@ type UnbindKeysPrm struct {
|
|||
}
|
||||
|
||||
// UnbindKeys invokes the call of key unbinding method
|
||||
// of NeoFS contract.
|
||||
// of FrostFS contract.
|
||||
func (x *Client) UnbindKeys(args UnbindKeysPrm) error {
|
||||
prm := client.InvokePrm{}
|
||||
prm.SetMethod(unbindKeysMethod)
|
||||
|
|
|
@ -36,7 +36,7 @@ func (c *ChequePrm) SetLock(lock util.Uint160) {
|
|||
c.lock = lock
|
||||
}
|
||||
|
||||
// Cheque invokes `cheque` method of NeoFS contract.
|
||||
// Cheque invokes `cheque` method of FrostFS contract.
|
||||
func (x *Client) Cheque(p ChequePrm) error {
|
||||
prm := client.InvokePrm{}
|
||||
prm.SetMethod(chequeMethod)
|
||||
|
|
|
@ -27,7 +27,7 @@ const (
|
|||
chequeMethod = "cheque"
|
||||
)
|
||||
|
||||
// NewFromMorph wraps client to work with NeoFS contract.
|
||||
// NewFromMorph wraps client to work with FrostFS contract.
|
||||
func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8, opts ...Option) (*Client, error) {
|
||||
o := defaultOpts()
|
||||
|
||||
|
@ -37,7 +37,7 @@ func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8,
|
|||
|
||||
sc, err := client.NewStatic(cli, contract, fee, ([]client.StaticClientOption)(*o)...)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not create client of NeoFS contract: %w", err)
|
||||
return nil, fmt.Errorf("could not create client of FrostFS contract: %w", err)
|
||||
}
|
||||
|
||||
return &Client{client: sc}, nil
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
)
|
||||
|
||||
type CommonBindPrm struct {
|
||||
ownerID []byte // NeoFS account identifier
|
||||
ownerID []byte // FrostFS account identifier
|
||||
|
||||
keys [][]byte // list of serialized public keys
|
||||
|
||||
|
@ -18,7 +18,7 @@ func (x *CommonBindPrm) SetOptionalPrm(prm client.InvokePrmOptional) {
|
|||
x.InvokePrmOptional = prm
|
||||
}
|
||||
|
||||
// SetOwnerID sets NeoFS account identifier.
|
||||
// SetOwnerID sets FrostFS account identifier.
|
||||
func (x *CommonBindPrm) SetOwnerID(v []byte) {
|
||||
x.ownerID = v
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ func (x *CommonBindPrm) SetKeys(v [][]byte) {
|
|||
x.keys = v
|
||||
}
|
||||
|
||||
// AddKeys adds a list of public keys to/from NeoFS account.
|
||||
// AddKeys adds a list of public keys to/from FrostFS account.
|
||||
func (x *Client) AddKeys(p CommonBindPrm) error {
|
||||
prm := client.InvokePrm{}
|
||||
|
||||
|
@ -44,7 +44,7 @@ func (x *Client) AddKeys(p CommonBindPrm) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// RemoveKeys removes a list of public keys to/from NeoFS account.
|
||||
// RemoveKeys removes a list of public keys to/from FrostFS account.
|
||||
func (x *Client) RemoveKeys(args CommonBindPrm) error {
|
||||
prm := client.InvokePrm{}
|
||||
|
||||
|
|
|
@ -10,14 +10,14 @@ import (
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS ID contract.
|
||||
// of the FrostFS ID contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
// expression (or just declaring a Client variable) is unsafe
|
||||
// and can lead to panic.
|
||||
type Client struct {
|
||||
client *client.StaticClient // static NeoFS ID contract client
|
||||
client *client.StaticClient // static FrostFS ID contract client
|
||||
}
|
||||
|
||||
const (
|
||||
|
@ -26,7 +26,7 @@ const (
|
|||
removeKeysMethod = "removeKey"
|
||||
)
|
||||
|
||||
// NewFromMorph wraps client to work with NeoFS ID contract.
|
||||
// NewFromMorph wraps client to work with FrostFS ID contract.
|
||||
func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8, opts ...Option) (*Client, error) {
|
||||
o := defaultOpts()
|
||||
|
||||
|
@ -36,7 +36,7 @@ func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8,
|
|||
|
||||
sc, err := client.NewStatic(cli, contract, fee, ([]client.StaticClientOption)(*o)...)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not create client of NeoFS ID contract: %w", err)
|
||||
return nil, fmt.Errorf("could not create client of FrostFS ID contract: %w", err)
|
||||
}
|
||||
|
||||
return &Client{client: sc}, nil
|
||||
|
|
|
@ -19,7 +19,7 @@ func (a *AccountKeysPrm) SetID(id user.ID) {
|
|||
a.id = id
|
||||
}
|
||||
|
||||
// AccountKeys requests public keys of NeoFS account from NeoFS ID contract.
|
||||
// AccountKeys requests public keys of FrostFS account from FrostFS ID contract.
|
||||
func (x *Client) AccountKeys(p AccountKeysPrm) (keys.PublicKeys, error) {
|
||||
prm := client.TestInvokePrm{}
|
||||
prm.SetMethod(keyListingMethod)
|
||||
|
|
|
@ -19,7 +19,7 @@ func (a *AddPeerPrm) SetNodeInfo(nodeInfo netmap.NodeInfo) {
|
|||
a.nodeInfo = nodeInfo
|
||||
}
|
||||
|
||||
// AddPeer registers peer in NeoFS network through
|
||||
// AddPeer registers peer in FrostFS network through
|
||||
// Netmap contract call.
|
||||
func (c *Client) AddPeer(p AddPeerPrm) error {
|
||||
var method = addPeerMethod
|
||||
|
|
|
@ -13,7 +13,7 @@ type NodeInfo = netmap.NodeInfo
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS Netmap contract.
|
||||
// of the FrostFS Netmap contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
|
|
|
@ -58,7 +58,7 @@ func (c *Client) AuditFee() (uint64, error) {
|
|||
return fee, nil
|
||||
}
|
||||
|
||||
// EpochDuration returns number of sidechain blocks per one NeoFS epoch.
|
||||
// EpochDuration returns number of sidechain blocks per one FrostFS epoch.
|
||||
func (c *Client) EpochDuration() (uint64, error) {
|
||||
epochDuration, err := c.readUInt64Config(epochDurationConfig)
|
||||
if err != nil {
|
||||
|
@ -132,7 +132,7 @@ func (c *Client) InnerRingCandidateFee() (uint64, error) {
|
|||
}
|
||||
|
||||
// WithdrawFee returns global configuration value of fee paid by user to
|
||||
// withdraw assets from NeoFS contract.
|
||||
// withdraw assets from FrostFS contract.
|
||||
func (c *Client) WithdrawFee() (uint64, error) {
|
||||
fee, err := c.readUInt64Config(withdrawFeeConfig)
|
||||
if err != nil {
|
||||
|
@ -143,7 +143,7 @@ func (c *Client) WithdrawFee() (uint64, error) {
|
|||
}
|
||||
|
||||
// MaintenanceModeAllowed reads admission of "maintenance" state from the
|
||||
// NeoFS network configuration stored in the Sidechain. The admission means
|
||||
// FrostFS network configuration stored in the Sidechain. The admission means
|
||||
// that storage nodes are allowed to switch their state to "maintenance".
|
||||
//
|
||||
// By default, maintenance state is disallowed.
|
||||
|
@ -171,7 +171,7 @@ func (c *Client) readStringConfig(key string) (string, error) {
|
|||
return v.(string), nil
|
||||
}
|
||||
|
||||
// reads boolean value by the given key from the NeoFS network configuration
|
||||
// reads boolean value by the given key from the FrostFS network configuration
|
||||
// stored in the Sidechain. Returns false if key is not presented.
|
||||
func (c *Client) readBoolConfig(key string) (bool, error) {
|
||||
v, err := c.config([]byte(key), BoolAssert)
|
||||
|
@ -221,8 +221,8 @@ func (c *Client) SetConfig(p SetConfigPrm) error {
|
|||
return c.client.Invoke(prm)
|
||||
}
|
||||
|
||||
// RawNetworkParameter is a NeoFS network parameter which is transmitted but
|
||||
// not interpreted by the NeoFS API protocol.
|
||||
// RawNetworkParameter is a FrostFS network parameter which is transmitted but
|
||||
// not interpreted by the FrostFS API protocol.
|
||||
type RawNetworkParameter struct {
|
||||
// Name of the parameter.
|
||||
Name string
|
||||
|
@ -231,8 +231,8 @@ type RawNetworkParameter struct {
|
|||
Value []byte
|
||||
}
|
||||
|
||||
// NetworkConfiguration represents NeoFS network configuration stored
|
||||
// in the NeoFS Sidechain.
|
||||
// NetworkConfiguration represents FrostFS network configuration stored
|
||||
// in the FrostFS Sidechain.
|
||||
type NetworkConfiguration struct {
|
||||
MaxObjectSize uint64
|
||||
|
||||
|
@ -261,7 +261,7 @@ type NetworkConfiguration struct {
|
|||
Raw []RawNetworkParameter
|
||||
}
|
||||
|
||||
// ReadNetworkConfiguration reads NetworkConfiguration from the NeoFS Sidechain.
|
||||
// ReadNetworkConfiguration reads NetworkConfiguration from the FrostFS Sidechain.
|
||||
func (c *Client) ReadNetworkConfiguration() (NetworkConfiguration, error) {
|
||||
var res NetworkConfiguration
|
||||
prm := client.TestInvokePrm{}
|
||||
|
@ -356,7 +356,7 @@ func bytesToBool(val []byte) bool {
|
|||
var ErrConfigNotFound = errors.New("config value not found")
|
||||
|
||||
// config performs the test invoke of get config value
|
||||
// method of NeoFS Netmap contract.
|
||||
// method of FrostFS Netmap contract.
|
||||
//
|
||||
// Returns ErrConfigNotFound if config key is not found in the contract.
|
||||
func (c *Client) config(key []byte, assert func(stackitem.Item) (interface{}, error)) (interface{}, error) {
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-node/pkg/morph/client"
|
||||
)
|
||||
|
||||
// Epoch receives number of current NeoFS epoch
|
||||
// Epoch receives number of current FrostFS epoch
|
||||
// through the Netmap contract call.
|
||||
func (c *Client) Epoch() (uint64, error) {
|
||||
prm := client.TestInvokePrm{}
|
||||
|
@ -30,7 +30,7 @@ func (c *Client) Epoch() (uint64, error) {
|
|||
return uint64(num), nil
|
||||
}
|
||||
|
||||
// LastEpochBlock receives block number of current NeoFS epoch
|
||||
// LastEpochBlock receives block number of current FrostFS epoch
|
||||
// through the Netmap contract call.
|
||||
func (c *Client) LastEpochBlock() (uint32, error) {
|
||||
prm := client.TestInvokePrm{}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"github.com/TrueCloudLab/frostfs-node/pkg/morph/client"
|
||||
)
|
||||
|
||||
// NewEpoch updates NeoFS epoch number through
|
||||
// NewEpoch updates FrostFS epoch number through
|
||||
// Netmap contract call.
|
||||
func (c *Client) NewEpoch(epoch uint64) error {
|
||||
prm := client.InvokePrm{}
|
||||
|
|
|
@ -36,7 +36,7 @@ const (
|
|||
NNSReputationContractName = "reputation.frostfs"
|
||||
// NNSSubnetworkContractName is a name of the subnet contract in NNS.
|
||||
NNSSubnetworkContractName = "subnet.frostfs"
|
||||
// NNSGroupKeyName is a name for the NeoFS group key record in NNS.
|
||||
// NNSGroupKeyName is a name for the FrostFS group key record in NNS.
|
||||
NNSGroupKeyName = "group.frostfs"
|
||||
)
|
||||
|
||||
|
@ -193,7 +193,7 @@ func exists(c *rpcclient.WSClient, nnsHash util.Uint160, domain string) (bool, e
|
|||
return !available, nil
|
||||
}
|
||||
|
||||
// SetGroupSignerScope makes the default signer scope include all NeoFS contracts.
|
||||
// SetGroupSignerScope makes the default signer scope include all FrostFS contracts.
|
||||
// Should be called for side-chain client only.
|
||||
func (c *Client) SetGroupSignerScope() error {
|
||||
c.switchLock.RLock()
|
||||
|
@ -213,7 +213,7 @@ func (c *Client) SetGroupSignerScope() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// contractGroupKey returns public key designating NeoFS contract group.
|
||||
// contractGroupKey returns public key designating FrostFS contract group.
|
||||
func (c *Client) contractGroupKey() (*keys.PublicKey, error) {
|
||||
if gKey := c.cache.groupKey(); gKey != nil {
|
||||
return gKey, nil
|
||||
|
|
|
@ -569,7 +569,7 @@ func (c *Client) notaryCosigners(invokedByAlpha bool, ir []*keys.PublicKey, comm
|
|||
|
||||
multisigScript, err := sc.CreateMultiSigRedeemScript(m, ir)
|
||||
if err != nil {
|
||||
// wrap error as NeoFS-specific since the call is not related to any client
|
||||
// wrap error as FrostFS-specific since the call is not related to any client
|
||||
return nil, wrapFrostFSError(fmt.Errorf("can't create ir multisig redeem script: %w", err))
|
||||
}
|
||||
|
||||
|
@ -703,7 +703,7 @@ func (c *Client) notaryMultisigAccount(ir []*keys.PublicKey, committee, invokedB
|
|||
multisigAccount = wallet.NewAccountFromPrivateKey(c.acc.PrivateKey())
|
||||
err := multisigAccount.ConvertMultisig(m, ir)
|
||||
if err != nil {
|
||||
// wrap error as NeoFS-specific since the call is not related to any client
|
||||
// wrap error as FrostFS-specific since the call is not related to any client
|
||||
return nil, wrapFrostFSError(fmt.Errorf("can't convert account to inner ring multisig wallet: %w", err))
|
||||
}
|
||||
} else {
|
||||
|
@ -712,7 +712,7 @@ func (c *Client) notaryMultisigAccount(ir []*keys.PublicKey, committee, invokedB
|
|||
// inner ring multiaddress witness
|
||||
multisigAccount, err = notary.FakeMultisigAccount(m, ir)
|
||||
if err != nil {
|
||||
// wrap error as NeoFS-specific since the call is not related to any client
|
||||
// wrap error as FrostFS-specific since the call is not related to any client
|
||||
return nil, wrapFrostFSError(fmt.Errorf("can't make inner ring multisig wallet: %w", err))
|
||||
}
|
||||
}
|
||||
|
@ -766,7 +766,7 @@ func invocationParams(args ...interface{}) ([]sc.Parameter, error) {
|
|||
}
|
||||
|
||||
// sigCount returns the number of required signature.
|
||||
// For NeoFS Alphabet M is a 2/3+1 of it (like in dBFT).
|
||||
// For FrostFS Alphabet M is a 2/3+1 of it (like in dBFT).
|
||||
// If committee is true, returns M as N/2+1.
|
||||
func sigCount(ir []*keys.PublicKey, committee bool) int {
|
||||
if committee {
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
|
||||
// Client is a wrapper over StaticClient
|
||||
// which makes calls with the names and arguments
|
||||
// of the NeoFS reputation contract.
|
||||
// of the FrostFS reputation contract.
|
||||
//
|
||||
// Working client must be created via constructor New.
|
||||
// Using the Client that has been created with new(Client)
|
||||
|
|
|
@ -29,7 +29,7 @@ func (x *ManageAdminsPrm) SetClient() {
|
|||
x.client = true
|
||||
}
|
||||
|
||||
// SetSubnet sets identifier of the subnet in a binary NeoFS API protocol format.
|
||||
// SetSubnet sets identifier of the subnet in a binary FrostFS API protocol format.
|
||||
func (x *ManageAdminsPrm) SetSubnet(id []byte) {
|
||||
x.subnet = id
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ func (x *ManageAdminsPrm) SetAdmin(key []byte) {
|
|||
x.admin = key
|
||||
}
|
||||
|
||||
// SetGroup sets identifier of the client group in a binary NeoFS API protocol format.
|
||||
// SetGroup sets identifier of the client group in a binary FrostFS API protocol format.
|
||||
// Makes sense only for client admins (see ManageAdminsPrm.SetClient).
|
||||
func (x *ManageAdminsPrm) SetGroup(id []byte) {
|
||||
x.group = id
|
||||
|
@ -48,7 +48,7 @@ func (x *ManageAdminsPrm) SetGroup(id []byte) {
|
|||
// ManageAdminsRes groups the resulting values of node administer methods of Subnet contract.
|
||||
type ManageAdminsRes struct{}
|
||||
|
||||
// ManageAdmins manages admin list of the NeoFS subnet through Subnet contract calls.
|
||||
// ManageAdmins manages admin list of the FrostFS subnet through Subnet contract calls.
|
||||
func (x Client) ManageAdmins(prm ManageAdminsPrm) (*ManageAdminsPrm, error) {
|
||||
var method string
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ func (x *InitPrm) SetBaseClient(base *client.Client) {
|
|||
x.base = base
|
||||
}
|
||||
|
||||
// SetContractAddress sets address of Subnet contract in NeoFS sidechain.
|
||||
// SetContractAddress sets address of Subnet contract in FrostFS sidechain.
|
||||
func (x *InitPrm) SetContractAddress(addr util.Uint160) {
|
||||
x.addr = addr
|
||||
}
|
||||
|
|
|
@ -11,12 +11,12 @@ type UserAllowedPrm struct {
|
|||
args [2]interface{}
|
||||
}
|
||||
|
||||
// SetID sets identifier of the subnet in a binary NeoFS API protocol format.
|
||||
// SetID sets identifier of the subnet in a binary FrostFS API protocol format.
|
||||
func (x *UserAllowedPrm) SetID(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
||||
// SetClient sets owner ID of the client that is being checked in a binary NeoFS API protocol format.
|
||||
// SetClient sets owner ID of the client that is being checked in a binary FrostFS API protocol format.
|
||||
func (x *UserAllowedPrm) SetClient(id []byte) {
|
||||
x.args[1] = id
|
||||
}
|
||||
|
@ -72,17 +72,17 @@ func (x *ManageClientsPrm) SetRemove() {
|
|||
x.rm = true
|
||||
}
|
||||
|
||||
// SetSubnet sets identifier of the subnet in a binary NeoFS API protocol format.
|
||||
// SetSubnet sets identifier of the subnet in a binary FrostFS API protocol format.
|
||||
func (x *ManageClientsPrm) SetSubnet(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
||||
// SetGroup sets identifier of the client group in a binary NeoFS API protocol format.
|
||||
// SetGroup sets identifier of the client group in a binary FrostFS API protocol format.
|
||||
func (x *ManageClientsPrm) SetGroup(id []byte) {
|
||||
x.args[1] = id
|
||||
}
|
||||
|
||||
// SetClient sets client's user ID in a binary NeoFS API protocol format.
|
||||
// SetClient sets client's user ID in a binary FrostFS API protocol format.
|
||||
func (x *ManageClientsPrm) SetClient(id []byte) {
|
||||
x.args[2] = id
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ func (x *ManageClientsPrm) SetClient(id []byte) {
|
|||
// ManageClientsRes groups the resulting values of client management methods of Subnet contract.
|
||||
type ManageClientsRes struct{}
|
||||
|
||||
// ManageClients manages client list of the NeoFS subnet through Subnet contract calls.
|
||||
// ManageClients manages client list of the FrostFS subnet through Subnet contract calls.
|
||||
func (x Client) ManageClients(prm ManageClientsPrm) (*ManageClientsRes, error) {
|
||||
var method string
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ func (x *DeletePrm) SetTxHash(hash util.Uint256) {
|
|||
x.cliPrm.SetHash(hash)
|
||||
}
|
||||
|
||||
// SetID sets identifier of the subnet to be removed in a binary NeoFS API protocol format.
|
||||
// SetID sets identifier of the subnet to be removed in a binary FrostFS API protocol format.
|
||||
func (x *DeletePrm) SetID(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ type GetPrm struct {
|
|||
args [1]interface{}
|
||||
}
|
||||
|
||||
// SetID sets identifier of the subnet to be read in a binary NeoFS API protocol format.
|
||||
// SetID sets identifier of the subnet to be read in a binary FrostFS API protocol format.
|
||||
func (x *GetPrm) SetID(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ type GetRes struct {
|
|||
info []byte
|
||||
}
|
||||
|
||||
// Info returns information about the subnet in a binary format of NeoFS API protocol.
|
||||
// Info returns information about the subnet in a binary format of FrostFS API protocol.
|
||||
func (x GetRes) Info() []byte {
|
||||
return x.info
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ type NodeAllowedPrm struct {
|
|||
args [2]interface{}
|
||||
}
|
||||
|
||||
// SetID sets identifier of the subnet of the node in a binary NeoFS API protocol format.
|
||||
// SetID sets identifier of the subnet of the node in a binary FrostFS API protocol format.
|
||||
func (x *NodeAllowedPrm) SetID(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
|
|
@ -18,17 +18,17 @@ func (x *PutPrm) SetTxHash(hash util.Uint256) {
|
|||
x.cliPrm.SetHash(hash)
|
||||
}
|
||||
|
||||
// SetID sets identifier of the created subnet in a binary NeoFS API protocol format.
|
||||
// SetID sets identifier of the created subnet in a binary FrostFS API protocol format.
|
||||
func (x *PutPrm) SetID(id []byte) {
|
||||
x.args[0] = id
|
||||
}
|
||||
|
||||
// SetOwner sets identifier of the subnet owner in a binary NeoFS API protocol format.
|
||||
// SetOwner sets identifier of the subnet owner in a binary FrostFS API protocol format.
|
||||
func (x *PutPrm) SetOwner(id []byte) {
|
||||
x.args[1] = id
|
||||
}
|
||||
|
||||
// SetInfo sets information about the created subnet in a binary NeoFS API protocol format.
|
||||
// SetInfo sets information about the created subnet in a binary FrostFS API protocol format.
|
||||
func (x *PutPrm) SetInfo(id []byte) {
|
||||
x.args[2] = id
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
// SetEACL represents structure of notification about
|
||||
// modified eACL table coming from NeoFS Container contract.
|
||||
// modified eACL table coming from FrostFS Container contract.
|
||||
type SetEACL struct {
|
||||
table []byte
|
||||
signature []byte
|
||||
|
@ -25,7 +25,7 @@ type SetEACL struct {
|
|||
// MorphEvent implements Neo:Morph Event interface.
|
||||
func (SetEACL) MorphEvent() {}
|
||||
|
||||
// Table returns returns eACL table in a binary NeoFS API format.
|
||||
// Table returns returns eACL table in a binary FrostFS API format.
|
||||
func (x SetEACL) Table() []byte {
|
||||
return x.table
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue
is it a real contact? i mean, is it possible to send smth via that contact?