Documentation ¶
Index ¶
- Constants
- Variables
- func BoolAssert(item stackitem.Item) (any, error)
- func DecodeNetMap(resStack []stackitem.Item) (*netmap.NetMap, error)
- func IntegerAssert(item stackitem.Item) (any, error)
- func StringAssert(item stackitem.Item) (any, error)
- type AddPeerPrm
- type Client
- func (c *Client) AddPeer(ctx context.Context, p AddPeerPrm) error
- func (c *Client) ContainerAliasFee() (uint64, error)
- func (c *Client) ContainerFee() (uint64, error)
- func (c Client) ContractAddress() util.Uint160
- func (c *Client) Epoch() (uint64, error)
- func (c *Client) EpochDuration() (uint64, error)
- func (c *Client) ForceRemovePeer(ctx context.Context, nodeInfo netmap.NodeInfo, vub uint32) (uint32, error)
- func (c *Client) GetCandidates() ([]netmap.NodeInfo, error)
- func (c *Client) GetInnerRingList() (keys.PublicKeys, error)
- func (c *Client) GetNetMap(diff uint64) (*netmap.NetMap, error)
- func (c *Client) GetNetMapByEpoch(epoch uint64) (*netmap.NetMap, error)
- func (c *Client) HomomorphicHashDisabled() (bool, error)
- func (c *Client) InnerRingCandidateFee() (uint64, error)
- func (c *Client) LastEpochBlock() (uint32, error)
- func (c *Client) MaintenanceModeAllowed() (bool, error)
- func (c *Client) MaxObjectSize() (uint64, error)
- func (c Client) Morph() *client.Client
- func (c *Client) NetMap() (*netmap.NetMap, error)
- func (c *Client) NewEpoch(ctx context.Context, epoch uint64) error
- func (c *Client) NewEpochControl(ctx context.Context, epoch uint64, vub uint32) (uint32, error)
- func (c *Client) ReadNetworkConfiguration() (NetworkConfiguration, error)
- func (c *Client) SetConfig(ctx context.Context, p SetConfigPrm) error
- func (c *Client) UpdateInnerRing(ctx context.Context, p UpdateIRPrm) error
- func (c *Client) UpdatePeerState(ctx context.Context, p UpdatePeerPrm) (client.InvokeRes, error)
- func (c *Client) WithdrawFee() (uint64, error)
- type NetworkConfiguration
- type NodeInfo
- type Option
- type RawNetworkParameter
- type SetConfigPrm
- type UpdateIRPrm
- type UpdatePeerPrm
Constants ¶
const ( MaxObjectSizeConfig = "MaxObjectSize" MaxECParityCountConfig = "MaxECParityCount" MaxECDataCountConfig = "MaxECDataCount" EpochDurationConfig = "EpochDuration" ContainerFeeConfig = "ContainerFee" ContainerAliasFeeConfig = "ContainerAliasFee" IrCandidateFeeConfig = "InnerRingCandidateFee" WithdrawFeeConfig = "WithdrawFee" HomomorphicHashingDisabledKey = "HomomorphicHashingDisabled" MaintenanceModeAllowedConfig = "MaintenanceModeAllowed" )
Variables ¶
var ErrConfigNotFound = errors.New("config value not found")
ErrConfigNotFound is returned when the requested key was not found in the network config (returned value is `Null`).
Functions ¶
func BoolAssert ¶
BoolAssert converts stack item to bool.
func IntegerAssert ¶
IntegerAssert converts stack item to int64.
Types ¶
type AddPeerPrm ¶
type AddPeerPrm struct { client.InvokePrmOptional // contains filtered or unexported fields }
AddPeerPrm groups parameters of AddPeer operation.
func (*AddPeerPrm) SetNodeInfo ¶
func (a *AddPeerPrm) SetNodeInfo(nodeInfo netmap.NodeInfo)
SetNodeInfo sets new peer NodeInfo.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a wrapper over StaticClient which makes calls with the names and arguments of the FrostFS Netmap 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.
func NewFromMorph ¶
func NewFromMorph(cli *client.Client, contract util.Uint160, fee fixedn.Fixed8, opts ...Option) (*Client, error)
NewFromMorph returns the wrapper instance from the raw morph client.
func (*Client) AddPeer ¶
func (c *Client) AddPeer(ctx context.Context, p AddPeerPrm) error
AddPeer registers peer in FrostFS network through Netmap contract call.
func (*Client) ContainerAliasFee ¶
ContainerAliasFee returns additional fee paid by container owner to each alphabet node for container nice name registration.
func (*Client) ContainerFee ¶
ContainerFee returns fee paid by container owner to each alphabet node for container registration.
func (Client) ContractAddress ¶
ContractAddress returns the address of the associated contract.
func (*Client) Epoch ¶
Epoch receives number of current FrostFS epoch through the Netmap contract call.
func (*Client) EpochDuration ¶
EpochDuration returns number of sidechain blocks per one FrostFS epoch.
func (*Client) ForceRemovePeer ¶ added in v0.37.0
func (c *Client) ForceRemovePeer(ctx context.Context, nodeInfo netmap.NodeInfo, vub uint32) (uint32, error)
ForceRemovePeer marks the given peer as offline via a notary control transaction. If vub > 0, vub will be used as valid until block value.
func (*Client) GetCandidates ¶
GetCandidates calls "netmapCandidates" method and decodes []netmap.NodeInfo from the response.
func (*Client) GetInnerRingList ¶
func (c *Client) GetInnerRingList() (keys.PublicKeys, error)
GetInnerRingList return current IR list.
func (*Client) GetNetMap ¶
GetNetMap calls "snapshot" method and decodes netmap.NetMap from the response.
func (*Client) GetNetMapByEpoch ¶
GetNetMapByEpoch calls "snapshotByEpoch" method with the given epoch and decodes netmap.NetMap from the response.
func (*Client) HomomorphicHashDisabled ¶
HomomorphicHashDisabled returns global configuration value of homomorphic hashing settings.
Returns (false, nil) if config key is not found in the contract.
func (*Client) InnerRingCandidateFee ¶
InnerRingCandidateFee returns global configuration value of fee paid by node to be in inner ring candidates list.
func (*Client) LastEpochBlock ¶
LastEpochBlock receives block number of current FrostFS epoch through the Netmap contract call.
func (*Client) MaintenanceModeAllowed ¶
MaintenanceModeAllowed reads admission of "maintenance" state from the 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.
func (*Client) MaxObjectSize ¶
MaxObjectSize receives max object size configuration value through the Netmap contract call.
func (*Client) NewEpochControl ¶ added in v0.38.0
NewEpochControl updates FrostFS epoch number through control notary transaction internally to ensure all nodes produce the same transaction with high probability. If vub > 0, vub will be used as valid until block value.
func (*Client) ReadNetworkConfiguration ¶
func (c *Client) ReadNetworkConfiguration() (NetworkConfiguration, error)
ReadNetworkConfiguration reads NetworkConfiguration from the FrostFS Sidechain.
func (*Client) SetConfig ¶
func (c *Client) SetConfig(ctx context.Context, p SetConfigPrm) error
SetConfig sets config field.
func (*Client) UpdateInnerRing ¶
func (c *Client) UpdateInnerRing(ctx context.Context, p UpdateIRPrm) error
UpdateInnerRing updates inner ring keys.
func (*Client) UpdatePeerState ¶
UpdatePeerState changes peer status through Netmap contract call.
func (*Client) WithdrawFee ¶
WithdrawFee returns global configuration value of fee paid by user to withdraw assets from FrostFS contract.
type NetworkConfiguration ¶
type NetworkConfiguration struct { MaxObjectSize uint64 EpochDuration uint64 ContainerFee uint64 ContainerAliasFee uint64 IRCandidateFee uint64 WithdrawalFee uint64 HomomorphicHashingDisabled bool MaintenanceModeAllowed bool Raw []RawNetworkParameter }
NetworkConfiguration represents FrostFS network configuration stored in the FrostFS Sidechain.
type Option ¶
type Option func(*opts)
Option allows to set an optional parameter of Wrapper.
func AsAlphabet ¶
func AsAlphabet() Option
AsAlphabet returns option to sign main TX of notary requests with client's private key.
Considered to be used by IR nodes only.
type RawNetworkParameter ¶
type RawNetworkParameter struct { // Name of the parameter. Name string // Raw parameter value. Value []byte }
RawNetworkParameter is a FrostFS network parameter which is transmitted but not interpreted by the FrostFS API protocol.
type SetConfigPrm ¶
type SetConfigPrm struct { client.InvokePrmOptional // contains filtered or unexported fields }
SetConfigPrm groups parameters of SetConfig operation.
func (*SetConfigPrm) SetID ¶
func (s *SetConfigPrm) SetID(id []byte)
SetID sets ID of the config value.
func (*SetConfigPrm) SetKey ¶
func (s *SetConfigPrm) SetKey(key []byte)
SetKey sets key of the config value.
func (*SetConfigPrm) SetValue ¶
func (s *SetConfigPrm) SetValue(value any)
SetValue sets value of the config value.
type UpdateIRPrm ¶
type UpdateIRPrm struct { client.InvokePrmOptional // contains filtered or unexported fields }
UpdateIRPrm groups parameters of UpdateInnerRing invocation.
func (*UpdateIRPrm) SetKeys ¶
func (u *UpdateIRPrm) SetKeys(keys keys.PublicKeys)
SetKeys sets new inner ring keys.
type UpdatePeerPrm ¶
type UpdatePeerPrm struct { client.InvokePrmOptional // contains filtered or unexported fields }
UpdatePeerPrm groups parameters of UpdatePeerState operation.
func (*UpdatePeerPrm) SetMaintenance ¶
func (u *UpdatePeerPrm) SetMaintenance()
SetMaintenance marks node to be switched into "maintenance" state.
Zero UpdatePeerPrm marks node as "offline".
func (*UpdatePeerPrm) SetOnline ¶
func (u *UpdatePeerPrm) SetOnline()
SetOnline marks node to be switched into "online" state.
Zero UpdatePeerPrm marks node as "offline".