forked from TrueCloudLab/frostfs-node
[#83] pre-commit: Add initial configuration
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
24a540caa8
commit
861e9ab59a
31 changed files with 163 additions and 146 deletions
|
@ -5,4 +5,4 @@ docker-compose.yml
|
||||||
Dockerfile
|
Dockerfile
|
||||||
temp
|
temp
|
||||||
.dockerignore
|
.dockerignore
|
||||||
docker
|
docker
|
||||||
|
|
|
@ -53,4 +53,3 @@ linters:
|
||||||
- whitespace
|
- whitespace
|
||||||
disable-all: true
|
disable-all: true
|
||||||
fast: false
|
fast: false
|
||||||
|
|
||||||
|
|
19
.pre-commit-config.yaml
Normal file
19
.pre-commit-config.yaml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
ci:
|
||||||
|
autofix_prs: false
|
||||||
|
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.4.0
|
||||||
|
hooks:
|
||||||
|
- id: check-added-large-files
|
||||||
|
- id: check-case-conflict
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
- id: check-shebang-scripts-are-executable
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- id: check-json
|
||||||
|
- id: check-xml
|
||||||
|
- id: check-yaml
|
||||||
|
- id: trailing-whitespace
|
||||||
|
args: [--markdown-linebreak-ext=md]
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
exclude: ".key$"
|
120
CHANGELOG.md
120
CHANGELOG.md
|
@ -199,7 +199,7 @@ Tree service network replication can now be fine-tuned with `tree.replication_ti
|
||||||
- `neo-go` to `v0.99.4`
|
- `neo-go` to `v0.99.4`
|
||||||
- `protoc` to `v3.21.7`
|
- `protoc` to `v3.21.7`
|
||||||
- `neofs-sdk` to `v1.0.0-rc.7`
|
- `neofs-sdk` to `v1.0.0-rc.7`
|
||||||
|
|
||||||
### Updating from v0.33.0
|
### Updating from v0.33.0
|
||||||
Now storage node serves Control API `SetNemapStatus` request with `MAINTENANCE`
|
Now storage node serves Control API `SetNemapStatus` request with `MAINTENANCE`
|
||||||
status only if the mode is allowed in the network settings. To force starting the local
|
status only if the mode is allowed in the network settings. To force starting the local
|
||||||
|
@ -237,7 +237,7 @@ command.
|
||||||
- Policer marks nodes under maintenance as OK without requests (#1680)
|
- Policer marks nodes under maintenance as OK without requests (#1680)
|
||||||
- Unify help messages in CLI (#1854)
|
- Unify help messages in CLI (#1854)
|
||||||
- `evacuate`, `set-mode` and `flush-cache` control subcommands now accept a list of shard ids (#1867)
|
- `evacuate`, `set-mode` and `flush-cache` control subcommands now accept a list of shard ids (#1867)
|
||||||
- Reading `object` commands of NeoFS CLI don't open remote sessions (#1865)
|
- Reading `object` commands of NeoFS CLI don't open remote sessions (#1865)
|
||||||
- Use hex format to print storage node ID (#1765)
|
- Use hex format to print storage node ID (#1765)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -265,7 +265,7 @@ command.
|
||||||
- `neofs-contract` to `v0.16.0`
|
- `neofs-contract` to `v0.16.0`
|
||||||
- `neofs-api-go` to `v2.14.0`
|
- `neofs-api-go` to `v2.14.0`
|
||||||
|
|
||||||
### Updating from v0.32.0
|
### Updating from v0.32.0
|
||||||
Replace using the `control netmap-snapshot` command with `netmap snapshot` one in NeoFS CLI.
|
Replace using the `control netmap-snapshot` command with `netmap snapshot` one in NeoFS CLI.
|
||||||
Node can now specify additional addresses in `ExternalAddr` attribute. To allow a node to dial
|
Node can now specify additional addresses in `ExternalAddr` attribute. To allow a node to dial
|
||||||
other nodes external address, use `apiclient.allow_external` config setting.
|
other nodes external address, use `apiclient.allow_external` config setting.
|
||||||
|
@ -275,7 +275,7 @@ Pass `maintenance` state to `neofs-cli control set-status` to enter maintenance
|
||||||
If network allows maintenance state (*), it will be reflected in the network map.
|
If network allows maintenance state (*), it will be reflected in the network map.
|
||||||
Storage nodes under maintenance are not excluded from the network map, but don't
|
Storage nodes under maintenance are not excluded from the network map, but don't
|
||||||
serve object operations. (*) can be fetched from network configuration via
|
serve object operations. (*) can be fetched from network configuration via
|
||||||
`neofs-cli netmap netinfo` command.
|
`neofs-cli netmap netinfo` command.
|
||||||
|
|
||||||
To allow maintenance mode during neofs-adm deployments, set
|
To allow maintenance mode during neofs-adm deployments, set
|
||||||
`network.maintenance_mode_allowed` parameter in config.
|
`network.maintenance_mode_allowed` parameter in config.
|
||||||
|
@ -570,15 +570,15 @@ Clean up all metabases and re-sync them using `resync_metabase` config flag.
|
||||||
- Reduced amount of slices with pointers (#1239)
|
- Reduced amount of slices with pointers (#1239)
|
||||||
|
|
||||||
### Updating from v0.28.0-rc.2
|
### Updating from v0.28.0-rc.2
|
||||||
Remove `NEOFS_IR_MAINNET_ENDPOINT_NOTIFICATION`,
|
Remove `NEOFS_IR_MAINNET_ENDPOINT_NOTIFICATION`,
|
||||||
`NEOFS_IR_MORPH_ENDPOINT_NOTIFICATION`, and `NEOFS_MORPH_NOTIFICATION_ENDPOINT`
|
`NEOFS_IR_MORPH_ENDPOINT_NOTIFICATION`, and `NEOFS_MORPH_NOTIFICATION_ENDPOINT`
|
||||||
from Inner Ring and Storage configurations.
|
from Inner Ring and Storage configurations.
|
||||||
|
|
||||||
Specify _WebSocket_ endpoints in `NEOFS_IR_MAINNET_ENDPOINT_CLIENT`,
|
Specify _WebSocket_ endpoints in `NEOFS_IR_MAINNET_ENDPOINT_CLIENT`,
|
||||||
`NEOFS_IR_MORPH_ENDPOINT_CLIENT`, and `NEOFS_MORPH_RPC_ENDPOINT` at Inner Ring
|
`NEOFS_IR_MORPH_ENDPOINT_CLIENT`, and `NEOFS_MORPH_RPC_ENDPOINT` at Inner Ring
|
||||||
and Storage configurations.
|
and Storage configurations.
|
||||||
|
|
||||||
Specify path to persistent session token db in Storage configuration with
|
Specify path to persistent session token db in Storage configuration with
|
||||||
`NEOFS_NODE_PERSISTENT_SESSIONS_PATH`.
|
`NEOFS_NODE_PERSISTENT_SESSIONS_PATH`.
|
||||||
|
|
||||||
## [0.28.0-rc.2] - 2022-03-24
|
## [0.28.0-rc.2] - 2022-03-24
|
||||||
|
@ -594,7 +594,7 @@ Specify path to persistent session token db in Storage configuration with
|
||||||
|
|
||||||
## [0.28.0-rc.1] - 2022-03-18
|
## [0.28.0-rc.1] - 2022-03-18
|
||||||
|
|
||||||
Native RFC-6979 signatures of messages and tokens, LOCK object types,
|
Native RFC-6979 signatures of messages and tokens, LOCK object types,
|
||||||
experimental notifications over NATS with NeoFS API v2.12 support
|
experimental notifications over NATS with NeoFS API v2.12 support
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -630,8 +630,8 @@ experimental notifications over NATS with NeoFS API v2.12 support
|
||||||
- Deprecated structures from SDK v1.0.0 rc (#1181)
|
- Deprecated structures from SDK v1.0.0 rc (#1181)
|
||||||
|
|
||||||
### Updating from neofs-node v0.27.5
|
### Updating from neofs-node v0.27.5
|
||||||
Set shard error threshold for read-only mode switch with
|
Set shard error threshold for read-only mode switch with
|
||||||
`NEOFS_STORAGE_SHARD_RO_ERROR_THRESHOLD` (default: 0, deactivated).
|
`NEOFS_STORAGE_SHARD_RO_ERROR_THRESHOLD` (default: 0, deactivated).
|
||||||
|
|
||||||
Set NATS configuration for notifications in `NEOFS_NODE_NOTIFICATION` section.
|
Set NATS configuration for notifications in `NEOFS_NODE_NOTIFICATION` section.
|
||||||
See example config for more details.
|
See example config for more details.
|
||||||
|
@ -697,7 +697,7 @@ See example config for more details.
|
||||||
Use `--wallet` key in CLI to provide WIF or binary key file instead of `--wif`
|
Use `--wallet` key in CLI to provide WIF or binary key file instead of `--wif`
|
||||||
and `--binary-key`.
|
and `--binary-key`.
|
||||||
|
|
||||||
Replace `NEOFS_STORAGE_SHARD_N_USE_WRITE_CACHE` with
|
Replace `NEOFS_STORAGE_SHARD_N_USE_WRITE_CACHE` with
|
||||||
`NEOFS_STORAGE_SHARD_N_WRITECACHE_ENABLED` in Storage node config.
|
`NEOFS_STORAGE_SHARD_N_WRITECACHE_ENABLED` in Storage node config.
|
||||||
|
|
||||||
Specify `password: xxx` in config file for NeoFS CLI to avoid password input.
|
Specify `password: xxx` in config file for NeoFS CLI to avoid password input.
|
||||||
|
@ -774,7 +774,7 @@ NeoFS API v2.11.0 support with response status codes and storage subnetworks.
|
||||||
- CLI now opens LOCODE database in read-only mode for listing command (#958)
|
- CLI now opens LOCODE database in read-only mode for listing command (#958)
|
||||||
- Tombstone owner now is always set (#842)
|
- Tombstone owner now is always set (#842)
|
||||||
- Node in relay mode does not require shard config anymore (#969)
|
- Node in relay mode does not require shard config anymore (#969)
|
||||||
- Alphabet nodes now ignore notary notifications with non-HALT main tx (#976)
|
- Alphabet nodes now ignore notary notifications with non-HALT main tx (#976)
|
||||||
- neofs-adm now prints version of NNS contract (#1014)
|
- neofs-adm now prints version of NNS contract (#1014)
|
||||||
- Possible NPE in blobovnicza (#1007)
|
- Possible NPE in blobovnicza (#1007)
|
||||||
- More precise calculation of blobovnicza size (#915)
|
- More precise calculation of blobovnicza size (#915)
|
||||||
|
@ -791,13 +791,13 @@ NeoFS API v2.11.0 support with response status codes and storage subnetworks.
|
||||||
- Alphabet nodes resign `AddPeer` request if it updates Storage node info (#938)
|
- Alphabet nodes resign `AddPeer` request if it updates Storage node info (#938)
|
||||||
- All applications now use client from neofs-sdk-go library (#966)
|
- All applications now use client from neofs-sdk-go library (#966)
|
||||||
- Some shard configuration records were renamed, see upgrading section (#859)
|
- Some shard configuration records were renamed, see upgrading section (#859)
|
||||||
- `Nonce` and `VUB` values of notary transactions generated from notification
|
- `Nonce` and `VUB` values of notary transactions generated from notification
|
||||||
hash (#844)
|
hash (#844)
|
||||||
- Non alphabet notary invocations now have 4 witnesses (#975)
|
- Non alphabet notary invocations now have 4 witnesses (#975)
|
||||||
- Object replication is now async and continuous (#965)
|
- Object replication is now async and continuous (#965)
|
||||||
- NeoFS ADM updated for the neofs-contract v0.13.0 deploy (#984)
|
- NeoFS ADM updated for the neofs-contract v0.13.0 deploy (#984)
|
||||||
- Minimal TLS version is set to v1.2 (#878)
|
- Minimal TLS version is set to v1.2 (#878)
|
||||||
- Alphabet nodes now invoke `netmap.Register` to add node to the network map
|
- Alphabet nodes now invoke `netmap.Register` to add node to the network map
|
||||||
candidates in notary enabled environment (#1008)
|
candidates in notary enabled environment (#1008)
|
||||||
|
|
||||||
### Upgrading from v0.26.1
|
### Upgrading from v0.26.1
|
||||||
|
@ -827,7 +827,7 @@ with `NEOFS_IR_FEE_NAMED_CONTAINER_REGISTER`.
|
||||||
### Fixed
|
### Fixed
|
||||||
- Storage Node handles requests before its initialization is finished (#934)
|
- Storage Node handles requests before its initialization is finished (#934)
|
||||||
- Release worker pools gracefully (#901)
|
- Release worker pools gracefully (#901)
|
||||||
- Metabase ignored containers of storage group and tombstone objects
|
- Metabase ignored containers of storage group and tombstone objects
|
||||||
in listing (#945)
|
in listing (#945)
|
||||||
- CLI missed endpoint flag in `control netmap-snapshot` command (#942)
|
- CLI missed endpoint flag in `control netmap-snapshot` command (#942)
|
||||||
- Write cache object persisting (#866)
|
- Write cache object persisting (#866)
|
||||||
|
@ -841,16 +841,16 @@ with `NEOFS_IR_FEE_NAMED_CONTAINER_REGISTER`.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Use FSTree counter in write cache (#821)
|
- Use FSTree counter in write cache (#821)
|
||||||
- Calculate notary deposit `till` parameter depending on available
|
- Calculate notary deposit `till` parameter depending on available
|
||||||
deposit (#910)
|
deposit (#910)
|
||||||
- Storage node returns session token error if attached token's private key
|
- Storage node returns session token error if attached token's private key
|
||||||
is not available (#943)
|
is not available (#943)
|
||||||
- Refactor of NeoFS API client in inner ring (#946)
|
- Refactor of NeoFS API client in inner ring (#946)
|
||||||
- LOCODE generator tries to find the closest continent if there are
|
- LOCODE generator tries to find the closest continent if there are
|
||||||
no exact match (#955)
|
no exact match (#955)
|
||||||
|
|
||||||
### Upgrading from v0.26.0
|
### Upgrading from v0.26.0
|
||||||
You can specify default section in storage engine configuration.
|
You can specify default section in storage engine configuration.
|
||||||
See [example](./config/example/node.yaml) for more details.
|
See [example](./config/example/node.yaml) for more details.
|
||||||
|
|
||||||
## [0.26.0] - 2021-10-19 - Udo (우도, 牛島)
|
## [0.26.0] - 2021-10-19 - Udo (우도, 牛島)
|
||||||
|
@ -860,7 +860,7 @@ NeoFS API v2.10 support
|
||||||
### Fixed
|
### Fixed
|
||||||
- Check remote node public key in every response message (#645)
|
- Check remote node public key in every response message (#645)
|
||||||
- Do not lose local container size estimations (#872)
|
- Do not lose local container size estimations (#872)
|
||||||
- Compressed and uncompressed objects are always available for reading
|
- Compressed and uncompressed objects are always available for reading
|
||||||
regardless of compression configuration (#868)
|
regardless of compression configuration (#868)
|
||||||
- Use request session token in ACL check of object.Put (#881)
|
- Use request session token in ACL check of object.Put (#881)
|
||||||
- Parse URI in neofs-cli properly (#883)
|
- Parse URI in neofs-cli properly (#883)
|
||||||
|
@ -914,7 +914,7 @@ instead.
|
||||||
### Added
|
### Added
|
||||||
- Support of multiple Neo RPC endpoints in Inner Ring node (#792)
|
- Support of multiple Neo RPC endpoints in Inner Ring node (#792)
|
||||||
|
|
||||||
`mainchain` section of storage node config is left unused by the application.
|
`mainchain` section of storage node config is left unused by the application.
|
||||||
|
|
||||||
## [0.25.0] - 2021-09-27 - Mungapdo (문갑도, 文甲島)
|
## [0.25.0] - 2021-09-27 - Mungapdo (문갑도, 文甲島)
|
||||||
|
|
||||||
|
@ -922,7 +922,7 @@ instead.
|
||||||
- Work of a storage node with one Neo RPC endpoint instead of a list (#746)
|
- Work of a storage node with one Neo RPC endpoint instead of a list (#746)
|
||||||
- Lack of support for HEAD operation on the object write cache (#762)
|
- Lack of support for HEAD operation on the object write cache (#762)
|
||||||
- Storage node attribute parsing is stable now (#787)
|
- Storage node attribute parsing is stable now (#787)
|
||||||
- Inner Ring node now logs transaction hashes of Deposit and Withdraw events
|
- Inner Ring node now logs transaction hashes of Deposit and Withdraw events
|
||||||
in LittleEndian encoding (#794)
|
in LittleEndian encoding (#794)
|
||||||
- Storage node uses public keys of the remote nodes in placement traverser
|
- Storage node uses public keys of the remote nodes in placement traverser
|
||||||
checks (#645)
|
checks (#645)
|
||||||
|
@ -930,7 +930,7 @@ instead.
|
||||||
(#816)
|
(#816)
|
||||||
- neofs-adm supports update and deploy of neofs-contract v0.11.0 (#834, #836)
|
- neofs-adm supports update and deploy of neofs-contract v0.11.0 (#834, #836)
|
||||||
- Possible NPE in public key conversion (#848)
|
- Possible NPE in public key conversion (#848)
|
||||||
- Object assembly routine do not forward existing request instead of creating
|
- Object assembly routine do not forward existing request instead of creating
|
||||||
new one (#839)
|
new one (#839)
|
||||||
- Shard now returns only physical stored objects for replication (#840)
|
- Shard now returns only physical stored objects for replication (#840)
|
||||||
|
|
||||||
|
@ -939,7 +939,7 @@ instead.
|
||||||
- Smart contract address auto negotiation with NNS contract (#736)
|
- Smart contract address auto negotiation with NNS contract (#736)
|
||||||
- Detailed logs for all data writing operations in storage engine (#790)
|
- Detailed logs for all data writing operations in storage engine (#790)
|
||||||
- Docker build and release targets in Makefile (#785)
|
- Docker build and release targets in Makefile (#785)
|
||||||
- Metabase restore option in the shard config (#789)
|
- Metabase restore option in the shard config (#789)
|
||||||
- Write cache used size limit in bytes (#776)
|
- Write cache used size limit in bytes (#776)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -974,7 +974,7 @@ Added `NEOFS_STORAGE_SHARD_<N>_WRITECACHE_SIZE_LIMIT` where `<N>` is shard ID.
|
||||||
This is the size limit for the all write cache storages combined in bytes. Default
|
This is the size limit for the all write cache storages combined in bytes. Default
|
||||||
size limit is 1 GiB.
|
size limit is 1 GiB.
|
||||||
|
|
||||||
Added `NEOFS_STORAGE_SHARD_<N>_REFILL_METABASE` bool flag where `<N>` is shard
|
Added `NEOFS_STORAGE_SHARD_<N>_REFILL_METABASE` bool flag where `<N>` is shard
|
||||||
ID. This flag purges metabase instance at the application start and reinitialize
|
ID. This flag purges metabase instance at the application start and reinitialize
|
||||||
it with available objects from the blobstor.
|
it with available objects from the blobstor.
|
||||||
|
|
||||||
|
@ -983,12 +983,12 @@ Object service pool size now split into `NEOFS_OBJECT_PUT_POOL_SIZE_REMOTE` and
|
||||||
|
|
||||||
## [0.24.1] - 2021-09-07
|
## [0.24.1] - 2021-09-07
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Storage and Inner Ring will not start until Neo RPC node will have the height
|
- Storage and Inner Ring will not start until Neo RPC node will have the height
|
||||||
of the latest processed block by the nodes (#795)
|
of the latest processed block by the nodes (#795)
|
||||||
|
|
||||||
### Upgrading from v0.24.0
|
### Upgrading from v0.24.0
|
||||||
Specify path to the local state DB in Inner Ring node config with
|
Specify path to the local state DB in Inner Ring node config with
|
||||||
`NEOFS_IR_NODE_PERSISTENT_STATE_PATH`. Specify path to the local state DB in
|
`NEOFS_IR_NODE_PERSISTENT_STATE_PATH`. Specify path to the local state DB in
|
||||||
Storage node config with `NEOFS_NODE_PERSISTENT_STATE_PATH`.
|
Storage node config with `NEOFS_NODE_PERSISTENT_STATE_PATH`.
|
||||||
|
|
||||||
|
@ -1007,7 +1007,7 @@ Storage node config with `NEOFS_NODE_PERSISTENT_STATE_PATH`.
|
||||||
- Contract update support in `neofs-adm` utility (#748)
|
- Contract update support in `neofs-adm` utility (#748)
|
||||||
- Container transferring support in `neofs-adm` utility (#755)
|
- Container transferring support in `neofs-adm` utility (#755)
|
||||||
- Storage Node's balance refilling support in `neofs-adm` utility (#758)
|
- Storage Node's balance refilling support in `neofs-adm` utility (#758)
|
||||||
- Support `COMMON_PREFIX` filter for object attributes in storage engine and `neofs-cli` (#760)
|
- Support `COMMON_PREFIX` filter for object attributes in storage engine and `neofs-cli` (#760)
|
||||||
- Node's and IR's notary status debug message on startup (#758)
|
- Node's and IR's notary status debug message on startup (#758)
|
||||||
- Go `1.17` unit tests in CI (#766)
|
- Go `1.17` unit tests in CI (#766)
|
||||||
- Supporting all eACL filter fields from the specification (#768)
|
- Supporting all eACL filter fields from the specification (#768)
|
||||||
|
@ -1069,7 +1069,7 @@ Improved stability for notary disabled environment.
|
||||||
- Storage Node configuration example contains usable parameters (#699)
|
- Storage Node configuration example contains usable parameters (#699)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Do not use side chain RoleManagement contract as source of Inner Ring list
|
- Do not use side chain RoleManagement contract as source of Inner Ring list
|
||||||
when notary disabled in side chain (#672)
|
when notary disabled in side chain (#672)
|
||||||
- Alphabet list transition is even more effective (#697)
|
- Alphabet list transition is even more effective (#697)
|
||||||
- Inner Ring node does not require proxy and processing contracts if notary
|
- Inner Ring node does not require proxy and processing contracts if notary
|
||||||
|
@ -1136,9 +1136,9 @@ Storage nodes with a group of network endpoints.
|
||||||
- Control service with healthcheck RPC in IR and CLI support ([#414](https://github.com/nspcc-dev/neofs-node/issues/414)).
|
- Control service with healthcheck RPC in IR and CLI support ([#414](https://github.com/nspcc-dev/neofs-node/issues/414)).
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Approval of objects with with duplicate attribute keys or empty values ([#633](https://github.com/nspcc-dev/neofs-node/issues/633)).
|
- Approval of objects with with duplicate attribute keys or empty values ([#633](https://github.com/nspcc-dev/neofs-node/issues/633)).
|
||||||
- Approval of containers with with duplicate attribute keys or empty values ([#634](https://github.com/nspcc-dev/neofs-node/issues/634)).
|
- Approval of containers with with duplicate attribute keys or empty values ([#634](https://github.com/nspcc-dev/neofs-node/issues/634)).
|
||||||
- Default path for CLI config ([#626](https://github.com/nspcc-dev/neofs-node/issues/626)).
|
- Default path for CLI config ([#626](https://github.com/nspcc-dev/neofs-node/issues/626)).
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- `version` command replaced with `--version` flag in CLI ([#571](https://github.com/nspcc-dev/neofs-node/issues/571)).
|
- `version` command replaced with `--version` flag in CLI ([#571](https://github.com/nspcc-dev/neofs-node/issues/571)).
|
||||||
|
@ -1166,7 +1166,7 @@ Storage nodes with a group of network endpoints.
|
||||||
- grpc: [v1.38.0](https://github.com/grpc/grpc-go/releases/tag/v1.38.0).
|
- grpc: [v1.38.0](https://github.com/grpc/grpc-go/releases/tag/v1.38.0).
|
||||||
- cast: [v1.3.1](https://github.com/spf13/cast/releases/tag/v1.3.1).
|
- cast: [v1.3.1](https://github.com/spf13/cast/releases/tag/v1.3.1).
|
||||||
- cobra: [1.1.3](https://github.com/spf13/cobra/releases/tag/v1.1.3).
|
- cobra: [1.1.3](https://github.com/spf13/cobra/releases/tag/v1.1.3).
|
||||||
- viper: [v1.8.1](https://github.com/spf13/viper/releases/tag/v1.8.1).
|
- viper: [v1.8.1](https://github.com/spf13/viper/releases/tag/v1.8.1).
|
||||||
|
|
||||||
## [0.21.1] - 2021-06-10
|
## [0.21.1] - 2021-06-10
|
||||||
|
|
||||||
|
@ -1186,7 +1186,7 @@ Session token support in container service, refactored config in storage node,
|
||||||
TLS support on gRPC servers.
|
TLS support on gRPC servers.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- ACL service traverses over all RequestMetaHeader chain to find
|
- ACL service traverses over all RequestMetaHeader chain to find
|
||||||
bearer and session tokens (#548).
|
bearer and session tokens (#548).
|
||||||
- Object service correctly resends complete objects without attached
|
- Object service correctly resends complete objects without attached
|
||||||
session token (#501).
|
session token (#501).
|
||||||
|
@ -1194,7 +1194,7 @@ TLS support on gRPC servers.
|
||||||
- Client cache now gracefully closes all available connections (#567).
|
- Client cache now gracefully closes all available connections (#567).
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Session token support in container service for `container.Put`,
|
- Session token support in container service for `container.Put`,
|
||||||
`container.Delete` and `container.SetEACL` operations.
|
`container.Delete` and `container.SetEACL` operations.
|
||||||
- Session token support in container and sign command of NeoFS CLI.
|
- Session token support in container and sign command of NeoFS CLI.
|
||||||
- TLS encryption support of gRPC service in storage node.
|
- TLS encryption support of gRPC service in storage node.
|
||||||
|
@ -1204,8 +1204,8 @@ TLS support on gRPC servers.
|
||||||
update earlier.
|
update earlier.
|
||||||
- Inner ring processes extended ACL changes.
|
- Inner ring processes extended ACL changes.
|
||||||
- Inner ring makes signature checks of containers and extended ACLs.
|
- Inner ring makes signature checks of containers and extended ACLs.
|
||||||
- Refactored config of storage node.
|
- Refactored config of storage node.
|
||||||
- Static clients from `morph/client` do not process notary invocations
|
- Static clients from `morph/client` do not process notary invocations
|
||||||
explicitly anymore. Now notary support specified at static client creation.
|
explicitly anymore. Now notary support specified at static client creation.
|
||||||
- Updated neo-go to v0.95.1 release.
|
- Updated neo-go to v0.95.1 release.
|
||||||
- Updated neofs-api-go to v1.27.0 release.
|
- Updated neofs-api-go to v1.27.0 release.
|
||||||
|
@ -1216,7 +1216,7 @@ TLS support on gRPC servers.
|
||||||
|
|
||||||
## [0.20.0] - 2021-05-21 - Dolsando (돌산도, 突山島)
|
## [0.20.0] - 2021-05-21 - Dolsando (돌산도, 突山島)
|
||||||
|
|
||||||
NeoFS is N3 RC2 compatible.
|
NeoFS is N3 RC2 compatible.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Calculations in EigenTrust algorithm (#527).
|
- Calculations in EigenTrust algorithm (#527).
|
||||||
|
@ -1229,7 +1229,7 @@ NeoFS is N3 RC2 compatible.
|
||||||
- Client for NeoFSID contract.
|
- Client for NeoFSID contract.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Reorganized and removed plenty of application configuration records
|
- Reorganized and removed plenty of application configuration records
|
||||||
(#510, #511, #512, #514).
|
(#510, #511, #512, #514).
|
||||||
- Nodes do not resolve remote addresses manually.
|
- Nodes do not resolve remote addresses manually.
|
||||||
- Presets for basic ACL in CLI are `private` ,`public-read` and
|
- Presets for basic ACL in CLI are `private` ,`public-read` and
|
||||||
|
@ -1247,11 +1247,11 @@ NeoFS is N3 RC2 compatible.
|
||||||
|
|
||||||
Storage nodes exchange, calculate, aggregate and store reputation information
|
Storage nodes exchange, calculate, aggregate and store reputation information
|
||||||
in reputation contract. Inner ring nodes support workflows with and without
|
in reputation contract. Inner ring nodes support workflows with and without
|
||||||
notary subsystem in chains.
|
notary subsystem in chains.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Build with go1.16.
|
- Build with go1.16.
|
||||||
- Notary deposits last more blocks.
|
- Notary deposits last more blocks.
|
||||||
- TX hashes now prints in little endian in logs.
|
- TX hashes now prints in little endian in logs.
|
||||||
- Metabase deletes graves regardless of the presence of objects.
|
- Metabase deletes graves regardless of the presence of objects.
|
||||||
- SplitInfo error created from all shards instead of first matched shard.
|
- SplitInfo error created from all shards instead of first matched shard.
|
||||||
|
@ -1259,7 +1259,7 @@ notary subsystem in chains.
|
||||||
- Storage node does not send rebootstrap messages after it went offline.
|
- Storage node does not send rebootstrap messages after it went offline.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Reputation subsystem that includes reputation collection, exchange,
|
- Reputation subsystem that includes reputation collection, exchange,
|
||||||
calculation and storage components.
|
calculation and storage components.
|
||||||
- Notary and non notary workflows in inner ring.
|
- Notary and non notary workflows in inner ring.
|
||||||
- Audit fee transfer for inner ring nodes that performed audit.
|
- Audit fee transfer for inner ring nodes that performed audit.
|
||||||
|
@ -1269,7 +1269,7 @@ calculation and storage components.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Metabase puts data in batches.
|
- Metabase puts data in batches.
|
||||||
- Network related new epoch handlers in storage node executed asynchronously.
|
- Network related new epoch handlers in storage node executed asynchronously.
|
||||||
- Storage node gets epoch duration from global config.
|
- Storage node gets epoch duration from global config.
|
||||||
- Storage node resign and resend Search, Range, Head, Get requests of object
|
- Storage node resign and resend Search, Range, Head, Get requests of object
|
||||||
service without modification.
|
service without modification.
|
||||||
|
@ -1286,7 +1286,7 @@ alphabet keys are synchronized with main chain.
|
||||||
### Fixed
|
### Fixed
|
||||||
- Metabase does not store object payloads anymore.
|
- Metabase does not store object payloads anymore.
|
||||||
- TTLNetCache now always evict data after a timeout.
|
- TTLNetCache now always evict data after a timeout.
|
||||||
- NeoFS CLI keyer could misinterpret hex value as base58.
|
- NeoFS CLI keyer could misinterpret hex value as base58.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Local trust controller in storage node.
|
- Local trust controller in storage node.
|
||||||
|
@ -1298,7 +1298,7 @@ alphabet keys are synchronized with main chain.
|
||||||
|
|
||||||
## [0.17.0] - 2021-03-22 - Jebudo (제부도, 濟扶島)
|
## [0.17.0] - 2021-03-22 - Jebudo (제부도, 濟扶島)
|
||||||
|
|
||||||
Notary contract support, updated neofs-api-go with raw client, some performance
|
Notary contract support, updated neofs-api-go with raw client, some performance
|
||||||
tweaks with extra caches and enhanced metrics.
|
tweaks with extra caches and enhanced metrics.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -1317,7 +1317,7 @@ tweaks with extra caches and enhanced metrics.
|
||||||
|
|
||||||
Garbage collector is now running inside storage engine. It is accessed
|
Garbage collector is now running inside storage engine. It is accessed
|
||||||
via Control API, from `policer` component and through object expiration
|
via Control API, from `policer` component and through object expiration
|
||||||
scrubbers.
|
scrubbers.
|
||||||
|
|
||||||
Inner ring configuration now supports single chain mode with any number of
|
Inner ring configuration now supports single chain mode with any number of
|
||||||
alphabet contracts.
|
alphabet contracts.
|
||||||
|
@ -1348,39 +1348,39 @@ Storage node now supports NetworkInfo method in netmap service.
|
||||||
|
|
||||||
## [0.15.0] - 2021-02-12 - Seonyudo (선유도, 仙遊島)
|
## [0.15.0] - 2021-02-12 - Seonyudo (선유도, 仙遊島)
|
||||||
|
|
||||||
NeoFS nodes are now preview5-compatible.
|
NeoFS nodes are now preview5-compatible.
|
||||||
|
|
||||||
IR nodes are now engaged in the distribution of funds to the storage nodes:
|
IR nodes are now engaged in the distribution of funds to the storage nodes:
|
||||||
for the passed audit and for the amount of stored information. All timers
|
for the passed audit and for the amount of stored information. All timers
|
||||||
of the IR nodes related to the generation and processing of global system
|
of the IR nodes related to the generation and processing of global system
|
||||||
events are decoupled from astronomical time, and are measured in the number
|
events are decoupled from astronomical time, and are measured in the number
|
||||||
of blockchain blocks.
|
of blockchain blocks.
|
||||||
|
|
||||||
For the geographic positioning of storage nodes, a global NeoFS location
|
For the geographic positioning of storage nodes, a global NeoFS location
|
||||||
database is now used, the key in which is a UN/LOCODE, and the base itself
|
database is now used, the key in which is a UN/LOCODE, and the base itself
|
||||||
is generated on the basis of the UN/LOCODE and OpenFlights databases.
|
is generated on the basis of the UN/LOCODE and OpenFlights databases.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Timers with time in blocks of the chain.
|
- Timers with time in blocks of the chain.
|
||||||
- Subscriptions to new blocks in blockchain event `Listener`.
|
- Subscriptions to new blocks in blockchain event `Listener`.
|
||||||
- Tracking the volume of stored information by containers in the
|
- Tracking the volume of stored information by containers in the
|
||||||
storage engine and an external interface for obtaining this data.
|
storage engine and an external interface for obtaining this data.
|
||||||
- `TransferX` operation in sidechain client.
|
- `TransferX` operation in sidechain client.
|
||||||
- Calculators of audit and basic settlements.
|
- Calculators of audit and basic settlements.
|
||||||
- Distribution of funds to storage nodes for audit and for the amount
|
- Distribution of funds to storage nodes for audit and for the amount
|
||||||
of stored information (settlement processors of IR).
|
of stored information (settlement processors of IR).
|
||||||
- NeoFS API `Container.AnnounceUsedSpace` RPC service.
|
- NeoFS API `Container.AnnounceUsedSpace` RPC service.
|
||||||
- Exchange of information about container volumes between storage nodes
|
- Exchange of information about container volumes between storage nodes
|
||||||
controlled by IR through sidechain notifications.
|
controlled by IR through sidechain notifications.
|
||||||
- Support of new search matchers (`STRING_NOT_EQUAL`, `NOT_PRESENT`).
|
- Support of new search matchers (`STRING_NOT_EQUAL`, `NOT_PRESENT`).
|
||||||
- Functional for the formation of NeoFS location database.
|
- Functional for the formation of NeoFS location database.
|
||||||
- CLI commands for generating and reading the location database.
|
- CLI commands for generating and reading the location database.
|
||||||
- Checking the locode attribute and generating geographic attributes
|
- Checking the locode attribute and generating geographic attributes
|
||||||
for candidates for a network map on IR side.
|
for candidates for a network map on IR side.
|
||||||
- Verification of the eACL signature when checking Object ACL rules.
|
- Verification of the eACL signature when checking Object ACL rules.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Overwriting the local configuration of node attributes when updating
|
- Overwriting the local configuration of node attributes when updating
|
||||||
the network map.
|
the network map.
|
||||||
- Ignoring the X-headers CLI `storagegroup` commands.
|
- Ignoring the X-headers CLI `storagegroup` commands.
|
||||||
- Inability to attach bearer token in CLI `storagegroup` commands.
|
- Inability to attach bearer token in CLI `storagegroup` commands.
|
||||||
|
@ -1398,7 +1398,7 @@ is generated on the basis of the UN/LOCODE and OpenFlights databases.
|
||||||
### Fixed
|
### Fixed
|
||||||
- Upload of objects bigger than single gRPC message.
|
- Upload of objects bigger than single gRPC message.
|
||||||
- Inconsistent placement issues (#347, #349).
|
- Inconsistent placement issues (#347, #349).
|
||||||
- Bug when ACL request classifier failed to classify `RoleOthers` in
|
- Bug when ACL request classifier failed to classify `RoleOthers` in
|
||||||
first epoch.
|
first epoch.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -1412,13 +1412,13 @@ is generated on the basis of the UN/LOCODE and OpenFlights databases.
|
||||||
|
|
||||||
Testnet4 related bugfixes.
|
Testnet4 related bugfixes.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Default values for blobovnicza object size limit and blobstor small object
|
- Default values for blobovnicza object size limit and blobstor small object
|
||||||
size are not zero.
|
size are not zero.
|
||||||
- Various storage engine log messages.
|
- Various storage engine log messages.
|
||||||
- Bug when inner ring node ignored bootstrap messages from restarted storage
|
- Bug when inner ring node ignored bootstrap messages from restarted storage
|
||||||
nodes.
|
nodes.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Timeout for reading boltDB files at storage node initialization.
|
- Timeout for reading boltDB files at storage node initialization.
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ In alphabetical order:
|
||||||
- Alexey Vanin
|
- Alexey Vanin
|
||||||
- Anastasia Prasolova
|
- Anastasia Prasolova
|
||||||
- Anatoly Bogatyrev
|
- Anatoly Bogatyrev
|
||||||
- Evgeny Kulikov
|
- Evgeny Kulikov
|
||||||
- Evgeny Stratonikov
|
- Evgeny Stratonikov
|
||||||
- Leonard Liubich
|
- Leonard Liubich
|
||||||
- Sergei Liubich
|
- Sergei Liubich
|
||||||
|
|
0
Makefile
Normal file → Executable file
0
Makefile
Normal file → Executable file
|
@ -3,31 +3,30 @@
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Admin tool provides an easier way to deploy and maintain private installation
|
Admin tool provides an easier way to deploy and maintain private installation
|
||||||
of FrostFS. Private installation provides a set of N3 consensus nodes, FrostFS
|
of FrostFS. Private installation provides a set of N3 consensus nodes, FrostFS
|
||||||
Alphabet, and Storage nodes. Admin tool generates consensus keys, initializes
|
Alphabet, and Storage nodes. Admin tool generates consensus keys, initializes
|
||||||
the sidechain, and provides functions to update the network and register new
|
the sidechain, and provides functions to update the network and register new
|
||||||
Storage nodes.
|
Storage nodes.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
To build binary locally, use `make bin/frostfs-adm` command.
|
To build binary locally, use `make bin/frostfs-adm` command.
|
||||||
|
|
||||||
For clean build inside a docker container, use `make docker/bin/frostfs-adm`.
|
For clean build inside a docker container, use `make docker/bin/frostfs-adm`.
|
||||||
|
|
||||||
Build docker image with `make image-adm`.
|
Build docker image with `make image-adm`.
|
||||||
|
|
||||||
At FrostFS private install deployment, frostfs-adm requires compiled FrostFS
|
At FrostFS private install deployment, frostfs-adm requires compiled FrostFS
|
||||||
contracts. Find them in the latest release of
|
contracts. Find them in the latest release of
|
||||||
[frostfs-contract repository](https://git.frostfs.info/TrueCloudLab/frostfs-contract/releases).
|
[frostfs-contract repository](https://git.frostfs.info/TrueCloudLab/frostfs-contract/releases).
|
||||||
|
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
### Config
|
### Config
|
||||||
|
|
||||||
Config section provides `init` command that creates a configuration file for
|
Config section provides `init` command that creates a configuration file for
|
||||||
private installation deployment and updates. Config file is optional, all
|
private installation deployment and updates. Config file is optional, all
|
||||||
parameters can be passed by arguments or read from standard input (wallet
|
parameters can be passed by arguments or read from standard input (wallet
|
||||||
passwords).
|
passwords).
|
||||||
|
|
||||||
Config example:
|
Config example:
|
||||||
|
@ -58,14 +57,14 @@ credentials: # passwords for consensus node / alphabet wallets
|
||||||
|
|
||||||
#### Network deployment
|
#### Network deployment
|
||||||
|
|
||||||
- `generate-alphabet` generates a set of wallets for consensus and
|
- `generate-alphabet` generates a set of wallets for consensus and
|
||||||
Alphabet nodes.
|
Alphabet nodes.
|
||||||
|
|
||||||
- `init` initializes the sidechain by deploying smart contracts and
|
- `init` initializes the sidechain by deploying smart contracts and
|
||||||
setting provided FrostFS network configuration.
|
setting provided FrostFS network configuration.
|
||||||
|
|
||||||
- `generate-storage-wallet` generates a wallet for the Storage node that
|
- `generate-storage-wallet` generates a wallet for the Storage node that
|
||||||
is ready for deployment. It also transfers a bit of sidechain GAS, so this
|
is ready for deployment. It also transfers a bit of sidechain GAS, so this
|
||||||
wallet can be used for FrostFS bootstrap.
|
wallet can be used for FrostFS bootstrap.
|
||||||
|
|
||||||
#### Network maintenance
|
#### Network maintenance
|
||||||
|
@ -75,7 +74,7 @@ credentials: # passwords for consensus node / alphabet wallets
|
||||||
- `force-new-epoch` increments FrostFS epoch number and executes new epoch
|
- `force-new-epoch` increments FrostFS epoch number and executes new epoch
|
||||||
handlers in FrostFS nodes.
|
handlers in FrostFS nodes.
|
||||||
|
|
||||||
- `refill-gas` transfers sidechain GAS to the specified wallet.
|
- `refill-gas` transfers sidechain GAS to the specified wallet.
|
||||||
|
|
||||||
- `update-contracts` updates contracts to a new version.
|
- `update-contracts` updates contracts to a new version.
|
||||||
|
|
||||||
|
@ -87,7 +86,7 @@ info. These commands **do not migrate actual objects**.
|
||||||
- `dump-containers` saves all containers and metadata registered in the container
|
- `dump-containers` saves all containers and metadata registered in the container
|
||||||
contract to a file.
|
contract to a file.
|
||||||
|
|
||||||
- `restore-containers` restores previously saved containers by their repeated registration in
|
- `restore-containers` restores previously saved containers by their repeated registration in
|
||||||
the container contract.
|
the container contract.
|
||||||
|
|
||||||
- `list-containers` output all containers ids.
|
- `list-containers` output all containers ids.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
This is a short guide on how to deploy a private FrostFS storage network on bare
|
This is a short guide on how to deploy a private FrostFS storage network on bare
|
||||||
metal without docker images. This guide does not cover details on how to start
|
metal without docker images. This guide does not cover details on how to start
|
||||||
consensus, Alphabet, or Storage nodes. This guide covers only `frostfs-adm`
|
consensus, Alphabet, or Storage nodes. This guide covers only `frostfs-adm`
|
||||||
related configuration details.
|
related configuration details.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
@ -12,11 +12,11 @@ To follow this guide you need:
|
||||||
- latest released version of [frostfs-adm](https://github.com/TrueCloudLab/frostfs-node/releases) utility (v0.25.1 at the moment),
|
- latest released version of [frostfs-adm](https://github.com/TrueCloudLab/frostfs-node/releases) utility (v0.25.1 at the moment),
|
||||||
- latest released version of compiled [frostfs-contract](https://github.com/TrueCloudLab/frostfs-contract/releases) (v0.11.0 at the moment).
|
- latest released version of compiled [frostfs-contract](https://github.com/TrueCloudLab/frostfs-contract/releases) (v0.11.0 at the moment).
|
||||||
|
|
||||||
## Step 1: Prepare network configuration
|
## Step 1: Prepare network configuration
|
||||||
|
|
||||||
To start a network, you need a set of consensus nodes, the same number of
|
To start a network, you need a set of consensus nodes, the same number of
|
||||||
Alphabet nodes and any number of Storage nodes. While the number of Storage
|
Alphabet nodes and any number of Storage nodes. While the number of Storage
|
||||||
nodes can be scaled almost infinitely, the number of consensus and Alphabet
|
nodes can be scaled almost infinitely, the number of consensus and Alphabet
|
||||||
nodes can't be changed so easily right now. Consider this before going any further.
|
nodes can't be changed so easily right now. Consider this before going any further.
|
||||||
|
|
||||||
It is easier to use`frostfs-adm` with a predefined configuration. First, create
|
It is easier to use`frostfs-adm` with a predefined configuration. First, create
|
||||||
|
@ -27,7 +27,7 @@ consensus / Alphabet node in the network.
|
||||||
$ frostfs-adm config init --path foo.network.yml
|
$ frostfs-adm config init --path foo.network.yml
|
||||||
Initial config file saved to foo.network.yml
|
Initial config file saved to foo.network.yml
|
||||||
|
|
||||||
$ cat foo.network.yml
|
$ cat foo.network.yml
|
||||||
rpc-endpoint: https://neo.rpc.node:30333
|
rpc-endpoint: https://neo.rpc.node:30333
|
||||||
alphabet-wallets: /home/user/deploy/alphabet-wallets
|
alphabet-wallets: /home/user/deploy/alphabet-wallets
|
||||||
network:
|
network:
|
||||||
|
@ -43,17 +43,17 @@ credentials:
|
||||||
az: hunter2
|
az: hunter2
|
||||||
```
|
```
|
||||||
|
|
||||||
For private installation, it is recommended to set all **fees** and **basic
|
For private installation, it is recommended to set all **fees** and **basic
|
||||||
income rate** to 0.
|
income rate** to 0.
|
||||||
|
|
||||||
As for **epoch duration**, consider consensus node block generation frequency.
|
As for **epoch duration**, consider consensus node block generation frequency.
|
||||||
With default 15 seconds per block, 240 blocks are going to be a 1-hour epoch.
|
With default 15 seconds per block, 240 blocks are going to be a 1-hour epoch.
|
||||||
|
|
||||||
For **max object size**, 67108864 (64 MiB) or 134217728 (128 MiB) should provide
|
For **max object size**, 67108864 (64 MiB) or 134217728 (128 MiB) should provide
|
||||||
good chunk distribution in most cases.
|
good chunk distribution in most cases.
|
||||||
|
|
||||||
With this config, generate wallets (private keys) of consensus nodes. The same
|
With this config, generate wallets (private keys) of consensus nodes. The same
|
||||||
wallets will be used for Alphabet nodes. Make sure, that dir for alphabet
|
wallets will be used for Alphabet nodes. Make sure, that dir for alphabet
|
||||||
wallets already exists.
|
wallets already exists.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -69,14 +69,14 @@ storage.
|
||||||
## Step 2: Launch consensus nodes
|
## Step 2: Launch consensus nodes
|
||||||
|
|
||||||
Configure blockchain nodes with the generated wallets from the previous step.
|
Configure blockchain nodes with the generated wallets from the previous step.
|
||||||
Config examples can be found in
|
Config examples can be found in
|
||||||
[neo-go repository](https://github.com/nspcc-dev/neo-go/tree/master/config).
|
[neo-go repository](https://github.com/nspcc-dev/neo-go/tree/master/config).
|
||||||
|
|
||||||
Gather public keys from **all** generated wallets. We are interested in the first
|
Gather public keys from **all** generated wallets. We are interested in the first
|
||||||
`simple signature contract` public key.
|
`simple signature contract` public key.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ neo-go wallet dump-keys -w alphabet-wallets/az.json
|
$ neo-go wallet dump-keys -w alphabet-wallets/az.json
|
||||||
NitdS4k4f1Hh5mbLJhAswBK3WC2gQgPN1o (simple signature contract):
|
NitdS4k4f1Hh5mbLJhAswBK3WC2gQgPN1o (simple signature contract):
|
||||||
02c1cc85f9c856dbe2d02017349bcb7b4e5defa78b8056a09b3240ba2a8c078869
|
02c1cc85f9c856dbe2d02017349bcb7b4e5defa78b8056a09b3240ba2a8c078869
|
||||||
|
|
||||||
|
@ -87,10 +87,10 @@ NiMKabp3ddi3xShmLAXhTfbnuWb4cSJT6E (1 out of 1 multisig contract):
|
||||||
02c1cc85f9c856dbe2d02017349bcb7b4e5defa78b8056a09b3240ba2a8c078869
|
02c1cc85f9c856dbe2d02017349bcb7b4e5defa78b8056a09b3240ba2a8c078869
|
||||||
```
|
```
|
||||||
|
|
||||||
Put the list of public keys into `ProtocolConfiguration.StandbyCommittee`
|
Put the list of public keys into `ProtocolConfiguration.StandbyCommittee`
|
||||||
section. Specify the wallet path and the password in `ApplicationConfiguration.P2PNotary`
|
section. Specify the wallet path and the password in `ApplicationConfiguration.P2PNotary`
|
||||||
and `ApplicationConfiguration.UnlockWallet` sections. If config includes
|
and `ApplicationConfiguration.UnlockWallet` sections. If config includes
|
||||||
`ProtocolConfiguration.NativeActivations` section, add notary
|
`ProtocolConfiguration.NativeActivations` section, add notary
|
||||||
contract `Notary: [0]`.
|
contract `Notary: [0]`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -121,7 +121,7 @@ and possible overload issues.
|
||||||
Use archive with compiled FrostFS contracts to initialize the sidechain.
|
Use archive with compiled FrostFS contracts to initialize the sidechain.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ tar -xzvf frostfs-contract-v0.11.0.tar.gz
|
$ tar -xzvf frostfs-contract-v0.11.0.tar.gz
|
||||||
|
|
||||||
$ ./frostfs-adm -c foo.network.yml morph init --contracts ./frostfs-contract-v0.11.0
|
$ ./frostfs-adm -c foo.network.yml morph init --contracts ./frostfs-contract-v0.11.0
|
||||||
Stage 1: transfer GAS to alphabet nodes.
|
Stage 1: transfer GAS to alphabet nodes.
|
||||||
|
@ -153,8 +153,8 @@ Waiting for transactions to persist...
|
||||||
|
|
||||||
## Step 4: Launch Alphabet nodes
|
## Step 4: Launch Alphabet nodes
|
||||||
|
|
||||||
Configure Alphabet nodes with the wallets generated in step 1. For
|
Configure Alphabet nodes with the wallets generated in step 1. For
|
||||||
`morph.validators` use a list of public keys from
|
`morph.validators` use a list of public keys from
|
||||||
`ProtocolConfiguration.StandbyCommittee`.
|
`ProtocolConfiguration.StandbyCommittee`.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -178,10 +178,10 @@ Generate a new wallet for a Storage node.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ frostfs-adm -c foo.network.yml morph generate-storage-wallet --storage-wallet ./sn01.json --initial-gas 10.0
|
$ frostfs-adm -c foo.network.yml morph generate-storage-wallet --storage-wallet ./sn01.json --initial-gas 10.0
|
||||||
New password >
|
New password >
|
||||||
Waiting for transactions to persist...
|
Waiting for transactions to persist...
|
||||||
|
|
||||||
$ neo-go wallet dump-keys -w sn01.json
|
$ neo-go wallet dump-keys -w sn01.json
|
||||||
Ngr7p8Z9S22XDH6VkUG9oXobv8zZRAWwwv (simple signature contract):
|
Ngr7p8Z9S22XDH6VkUG9oXobv8zZRAWwwv (simple signature contract):
|
||||||
0355eccb72cd46f09a3e5237eaa0f4949cceb5ecfa5a225bd3bb9fd021c4d75b85
|
0355eccb72cd46f09a3e5237eaa0f4949cceb5ecfa5a225bd3bb9fd021c4d75b85
|
||||||
```
|
```
|
||||||
|
@ -205,7 +205,7 @@ Current epoch: 8, increase to 9.
|
||||||
Waiting for transactions to persist...
|
Waiting for transactions to persist...
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
After that, FrostFS Storage is ready to work. You can access it directly or
|
After that, FrostFS Storage is ready to work. You can access it directly or
|
||||||
with protocol gates.
|
with protocol gates.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# FrostFS subnetwork creation
|
# FrostFS subnetwork creation
|
||||||
|
|
||||||
This is a short guide on how to create FrostFS subnetworks. This guide
|
This is a short guide on how to create FrostFS subnetworks. This guide
|
||||||
considers that the sidechain and the inner ring (alphabet nodes) have already been
|
considers that the sidechain and the inner ring (alphabet nodes) have already been
|
||||||
deployed and the sidechain contains a deployed `subnet` contract.
|
deployed and the sidechain contains a deployed `subnet` contract.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
|
@ -88,11 +88,11 @@ has been added by the subnet owner).
|
||||||
|
|
||||||
# Bootstrapping Storage Node
|
# Bootstrapping Storage Node
|
||||||
|
|
||||||
After a subnetwork [is created](subnetwork-creation.md) and a node is included into it, the
|
After a subnetwork [is created](subnetwork-creation.md) and a node is included into it, the
|
||||||
node could be bootstrapped and service subnetwork containers.
|
node could be bootstrapped and service subnetwork containers.
|
||||||
|
|
||||||
For bootstrapping, you need to specify the ID of the subnetwork in the node's
|
For bootstrapping, you need to specify the ID of the subnetwork in the node's
|
||||||
configuration:
|
configuration:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
...
|
...
|
||||||
|
@ -106,7 +106,7 @@ node:
|
||||||
```
|
```
|
||||||
|
|
||||||
**NOTE:** specifying subnetwork that is denied for the node is not an error:
|
**NOTE:** specifying subnetwork that is denied for the node is not an error:
|
||||||
that configuration value would be ignored. You do not need to specify zero
|
that configuration value would be ignored. You do not need to specify zero
|
||||||
(with 0 ID) subnetwork: its inclusion is implicit. On the contrary, to exclude
|
(with 0 ID) subnetwork: its inclusion is implicit. On the contrary, to exclude
|
||||||
a node from the default zero subnetwork, you need to specify it explicitly:
|
a node from the default zero subnetwork, you need to specify it explicitly:
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ node:
|
||||||
|
|
||||||
# Creating container in non-zero subnetwork
|
# Creating container in non-zero subnetwork
|
||||||
|
|
||||||
Creating containers without using `--subnet` flag is equivalent to
|
Creating containers without using `--subnet` flag is equivalent to
|
||||||
creating container in the zero subnetwork.
|
creating container in the zero subnetwork.
|
||||||
|
|
||||||
To create a container in a private network, your wallet must be added to
|
To create a container in a private network, your wallet must be added to
|
||||||
|
|
|
@ -26,18 +26,18 @@ Action is 'allow' or 'deny'.
|
||||||
Operation is an object service verb: 'get', 'head', 'put', 'search', 'delete', 'getrange', or 'getrangehash'.
|
Operation is an object service verb: 'get', 'head', 'put', 'search', 'delete', 'getrange', or 'getrangehash'.
|
||||||
|
|
||||||
Filter consists of <typ>:<key><match><value>
|
Filter consists of <typ>:<key><match><value>
|
||||||
Typ is 'obj' for object applied filter or 'req' for request applied filter.
|
Typ is 'obj' for object applied filter or 'req' for request applied filter.
|
||||||
Key is a valid unicode string corresponding to object or request header key.
|
Key is a valid unicode string corresponding to object or request header key.
|
||||||
Well-known system object headers start with '$Object:' prefix.
|
Well-known system object headers start with '$Object:' prefix.
|
||||||
User defined headers start without prefix.
|
User defined headers start without prefix.
|
||||||
Read more about filter keys at git.frostfs.info.com/TrueCloudLab/frostfs-api/src/branch/master/proto-docs/acl.md#message-eaclrecordfilter
|
Read more about filter keys at git.frostfs.info.com/TrueCloudLab/frostfs-api/src/branch/master/proto-docs/acl.md#message-eaclrecordfilter
|
||||||
Match is '=' for matching and '!=' for non-matching filter.
|
Match is '=' for matching and '!=' for non-matching filter.
|
||||||
Value is a valid unicode string corresponding to object or request header value.
|
Value is a valid unicode string corresponding to object or request header value.
|
||||||
|
|
||||||
Target is
|
Target is
|
||||||
'user' for container owner,
|
'user' for container owner,
|
||||||
'system' for Storage nodes in container and Inner Ring nodes,
|
'system' for Storage nodes in container and Inner Ring nodes,
|
||||||
'others' for all other request senders,
|
'others' for all other request senders,
|
||||||
'pubkey:<key1>,<key2>,...' for exact request sender, where <key> is a hex-encoded 33-byte public key.
|
'pubkey:<key1>,<key2>,...' for exact request sender, where <key> is a hex-encoded 33-byte public key.
|
||||||
|
|
||||||
When both '--rule' and '--file' arguments are used, '--rule' records will be placed higher in resulting extended ACL table.
|
When both '--rule' and '--file' arguments are used, '--rule' records will be placed higher in resulting extended ACL table.
|
||||||
|
|
|
@ -37,7 +37,7 @@ var (
|
||||||
var createContainerCmd = &cobra.Command{
|
var createContainerCmd = &cobra.Command{
|
||||||
Use: "create",
|
Use: "create",
|
||||||
Short: "Create new container",
|
Short: "Create new container",
|
||||||
Long: `Create new container and register it in the FrostFS.
|
Long: `Create new container and register it in the FrostFS.
|
||||||
It will be stored in sidechain when inner ring will accepts it.`,
|
It will be stored in sidechain when inner ring will accepts it.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
placementPolicy, err := parseContainerPolicy(cmd, containerPolicy)
|
placementPolicy, err := parseContainerPolicy(cmd, containerPolicy)
|
||||||
|
|
|
@ -17,7 +17,7 @@ import (
|
||||||
var deleteContainerCmd = &cobra.Command{
|
var deleteContainerCmd = &cobra.Command{
|
||||||
Use: "delete",
|
Use: "delete",
|
||||||
Short: "Delete existing container",
|
Short: "Delete existing container",
|
||||||
Long: `Delete existing container.
|
Long: `Delete existing container.
|
||||||
Only owner of the container has a permission to remove container.`,
|
Only owner of the container has a permission to remove container.`,
|
||||||
Run: func(cmd *cobra.Command, args []string) {
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
id := parseContainerID(cmd)
|
id := parseContainerID(cmd)
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# Examples of correct configuration file structures
|
# Examples of correct configuration file structures
|
||||||
|
|
||||||
Here are files in all supported formats and with all possible configuration values
|
Here are files in all supported formats and with all possible configuration values
|
||||||
of FrostFS 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.
|
All parameters are correct, however, they are for informational purposes only.
|
||||||
It is not recommended transferring these configs for real application launches.
|
It is not recommended transferring these configs for real application launches.
|
||||||
|
|
||||||
## Config files
|
## Config files
|
||||||
|
@ -15,7 +15,7 @@ It is not recommended transferring these configs for real application launches.
|
||||||
- YAML: `ir.yaml`
|
- YAML: `ir.yaml`
|
||||||
- CLI
|
- CLI
|
||||||
- YAML: `cli.yaml`
|
- YAML: `cli.yaml`
|
||||||
|
|
||||||
### Multiple configs
|
### Multiple configs
|
||||||
|
|
||||||
You can split your configuration to several files.
|
You can split your configuration to several files.
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# N3 Mainnet Storage node configuration
|
# N3 Mainnet Storage node configuration
|
||||||
|
|
||||||
Here is a template for simple storage node configuration in N3 Mainnet.
|
Here is a template for simple storage node configuration in N3 Mainnet.
|
||||||
Make sure to specify correct values instead of `<...>` placeholders.
|
Make sure to specify correct values instead of `<...>` placeholders.
|
||||||
Do not change `contracts` section. Run the latest frostfs-node release with
|
Do not change `contracts` section. Run the latest frostfs-node release with
|
||||||
the fixed config `frostfs-node -c config.yml`
|
the fixed config `frostfs-node -c config.yml`
|
||||||
|
|
||||||
To use NeoFS in the Mainnet, you need to deposit assets to NeoFS contract.
|
To use NeoFS in the Mainnet, you need to deposit assets to NeoFS contract.
|
||||||
The contract sript hash is `2cafa46838e8b564468ebd868dcafdd99dce6221`
|
The contract sript hash is `2cafa46838e8b564468ebd868dcafdd99dce6221`
|
||||||
(N3 address `NNxVrKjLsRkWsmGgmuNXLcMswtxTGaNQLk`)
|
(N3 address `NNxVrKjLsRkWsmGgmuNXLcMswtxTGaNQLk`)
|
||||||
|
|
||||||
## Tips
|
## Tips
|
||||||
|
|
|
@ -6,8 +6,8 @@ docker image and run it with docker-compose.
|
||||||
|
|
||||||
## Build image
|
## Build image
|
||||||
|
|
||||||
Prepared **frostfs-storage-testnet** image is available at Docker Hub.
|
Prepared **frostfs-storage-testnet** image is available at Docker Hub.
|
||||||
However, if you need to rebuild it for some reason, run
|
However, if you need to rebuild it for some reason, run
|
||||||
`make image-storage-testnet` command.
|
`make image-storage-testnet` command.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -19,13 +19,13 @@ Successfully tagged nspccdev/neofs-storage-testnet:0.25.1
|
||||||
|
|
||||||
## Deploy node
|
## Deploy node
|
||||||
|
|
||||||
To run a storage node in N3 Testnet environment, you should deposit GAS assets,
|
To run a storage node in N3 Testnet environment, you should deposit GAS assets,
|
||||||
update docker-compose file and start the node.
|
update docker-compose file and start the node.
|
||||||
|
|
||||||
### Deposit
|
### Deposit
|
||||||
|
|
||||||
The Storage Node owner should deposit GAS to NeoFS smart contract. It generates a
|
The Storage Node owner should deposit GAS to NeoFS smart contract. It generates a
|
||||||
bit of sidechain GAS in the node's wallet. Sidechain GAS is used to send bootstrap tx.
|
bit of sidechain GAS in the node's wallet. Sidechain GAS is used to send bootstrap tx.
|
||||||
|
|
||||||
First, obtain GAS in N3 Testnet chain. You can do that with
|
First, obtain GAS in N3 Testnet chain. You can do that with
|
||||||
[faucet](https://neowish.ngd.network) service.
|
[faucet](https://neowish.ngd.network) service.
|
||||||
|
@ -34,7 +34,7 @@ Then, make a deposit by transferring GAS to NeoFS contract in N3 Testnet.
|
||||||
You can provide scripthash in the `data` argument of transfer tx to make a
|
You can provide scripthash in the `data` argument of transfer tx to make a
|
||||||
deposit to a specified account. Otherwise, deposit is made to the tx sender.
|
deposit to a specified account. Otherwise, deposit is made to the tx sender.
|
||||||
|
|
||||||
NeoFS contract scripthash in N3 Testnet is `b65d8243ac63983206d17e5221af0653a7266fa1`,
|
NeoFS contract scripthash in N3 Testnet is `b65d8243ac63983206d17e5221af0653a7266fa1`,
|
||||||
so the address is `NadZ8YfvkddivcFFkztZgfwxZyKf1acpRF`.
|
so the address is `NadZ8YfvkddivcFFkztZgfwxZyKf1acpRF`.
|
||||||
|
|
||||||
See a deposit example with `neo-go`.
|
See a deposit example with `neo-go`.
|
||||||
|
@ -57,7 +57,7 @@ NEOFS_GRPC_0_ENDPOINT=65.52.183.157:36512
|
||||||
NEOFS_NODE_ADDRESSES=65.52.183.157:36512
|
NEOFS_NODE_ADDRESSES=65.52.183.157:36512
|
||||||
```
|
```
|
||||||
|
|
||||||
Set up your [UN/LOCODE](https://unece.org/trade/cefact/unlocode-code-list-country-and-territory)
|
Set up your [UN/LOCODE](https://unece.org/trade/cefact/unlocode-code-list-country-and-territory)
|
||||||
attribute.
|
attribute.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -66,7 +66,7 @@ NEOFS_NODE_ADDRESSES=65.52.183.157:36512
|
||||||
NEOFS_NODE_ATTRIBUTE_2=UN-LOCODE:RU LED
|
NEOFS_NODE_ATTRIBUTE_2=UN-LOCODE:RU LED
|
||||||
```
|
```
|
||||||
|
|
||||||
You can validate UN/LOCODE attribute in
|
You can validate UN/LOCODE attribute in
|
||||||
[NeoFS LOCODE database](https://github.com/TrueCloudLab/frostfs-locode-db/releases/tag/v0.1.0)
|
[NeoFS LOCODE database](https://github.com/TrueCloudLab/frostfs-locode-db/releases/tag/v0.1.0)
|
||||||
with frostfs-cli.
|
with frostfs-cli.
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ Subdivision: [SPE] Sankt-Peterburg
|
||||||
Coordinates: 59.53, 30.15
|
Coordinates: 59.53, 30.15
|
||||||
```
|
```
|
||||||
|
|
||||||
It is recommended to pass the node's key as a file. To do so, convert your wallet
|
It is recommended to pass the node's key as a file. To do so, convert your wallet
|
||||||
WIF to 32-byte hex (via `frostfs-cli` for example) and save it to a file.
|
WIF to 32-byte hex (via `frostfs-cli` for example) and save it to a file.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -104,8 +104,8 @@ Then, specify the path to this file in `docker-compose.yml`
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
NeoFS objects will be stored on your machine. By default, docker-compose
|
NeoFS objects will be stored on your machine. By default, docker-compose
|
||||||
is configured to store objects in named docker volume `frostfs_storage`. You can
|
is configured to store objects in named docker volume `frostfs_storage`. You can
|
||||||
specify a directory on the filesystem to store objects there.
|
specify a directory on the filesystem to store objects there.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
@ -120,7 +120,7 @@ Run the node with `docker-compose up` command and stop it with `docker-compose d
|
||||||
|
|
||||||
### Debug
|
### Debug
|
||||||
|
|
||||||
To print node logs, use `docker logs frostfs-testnet`. To print debug messages in
|
To print node logs, use `docker logs frostfs-testnet`. To print debug messages in
|
||||||
log, set up log level to debug with this env:
|
log, set up log level to debug with this env:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
|
2
debian/clean
vendored
2
debian/clean
vendored
|
@ -1,2 +1,2 @@
|
||||||
man/
|
man/
|
||||||
debian/*.bash-completion
|
debian/*.bash-completion
|
||||||
|
|
4
debian/copyright
vendored
4
debian/copyright
vendored
|
@ -19,5 +19,5 @@ License: GPL-3
|
||||||
General Public License for more details.
|
General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program or at /usr/share/common-licenses/GPL-3
|
along with this program or at /usr/share/common-licenses/GPL-3
|
||||||
If not, see <http://www.gnu.org/licenses/>.
|
If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
0
debian/frostfs-ir.postinst
vendored
Normal file → Executable file
0
debian/frostfs-ir.postinst
vendored
Normal file → Executable file
0
debian/frostfs-ir.postrm
vendored
Normal file → Executable file
0
debian/frostfs-ir.postrm
vendored
Normal file → Executable file
0
debian/frostfs-ir.preinst
vendored
Normal file → Executable file
0
debian/frostfs-ir.preinst
vendored
Normal file → Executable file
0
debian/frostfs-ir.prerm
vendored
Normal file → Executable file
0
debian/frostfs-ir.prerm
vendored
Normal file → Executable file
0
debian/frostfs-storage.postinst
vendored
Normal file → Executable file
0
debian/frostfs-storage.postinst
vendored
Normal file → Executable file
0
debian/frostfs-storage.postrm
vendored
Normal file → Executable file
0
debian/frostfs-storage.postrm
vendored
Normal file → Executable file
0
debian/frostfs-storage.preinst
vendored
Normal file → Executable file
0
debian/frostfs-storage.preinst
vendored
Normal file → Executable file
0
debian/frostfs-storage.prerm
vendored
Normal file → Executable file
0
debian/frostfs-storage.prerm
vendored
Normal file → Executable file
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Each mode is characterized by two important properties:
|
Each mode is characterized by two important properties:
|
||||||
1. Whether modifying operations are allowed.
|
1. Whether modifying operations are allowed.
|
||||||
2. Whether metabase and write-cache is available.
|
2. Whether metabase and write-cache is available.
|
||||||
The expected deployment scenario is to place both metabase and write-cache on an SSD drive thus these modes
|
The expected deployment scenario is to place both metabase and write-cache on an SSD drive thus these modes
|
||||||
can be approximately described as no-SSD modes.
|
can be approximately described as no-SSD modes.
|
||||||
|
|
||||||
|
@ -45,4 +45,4 @@ However, all mode changing operations are idempotent.
|
||||||
Shard can automatically switch to a `degraded-read-only` mode in 3 cases:
|
Shard can automatically switch to a `degraded-read-only` mode in 3 cases:
|
||||||
1. If the metabase was not available or couldn't be opened/initialized during shard startup.
|
1. If the metabase was not available or couldn't be opened/initialized during shard startup.
|
||||||
2. If shard error counter exceeds threshold.
|
2. If shard error counter exceeds threshold.
|
||||||
3. If the metabase couldn't be reopened during SIGHUP handling.
|
3. If the metabase couldn't be reopened during SIGHUP handling.
|
||||||
|
|
|
@ -45,8 +45,8 @@ control:
|
||||||
grpc:
|
grpc:
|
||||||
- endpoint: localhost:8080
|
- endpoint: localhost:8080
|
||||||
tls:
|
tls:
|
||||||
enabled: true
|
enabled: true
|
||||||
certificate: /path/to/cert.pem
|
certificate: /path/to/cert.pem
|
||||||
key: /path/to/key.pem
|
key: /path/to/key.pem
|
||||||
- endpoint: internal.ip:8080
|
- endpoint: internal.ip:8080
|
||||||
- endpoint: external.ip:8080
|
- endpoint: external.ip:8080
|
||||||
|
@ -237,7 +237,7 @@ gc:
|
||||||
| Parameter | Type | Default value | Description |
|
| Parameter | Type | Default value | Description |
|
||||||
|--------------------------|------------|---------------|----------------------------------------------|
|
|--------------------------|------------|---------------|----------------------------------------------|
|
||||||
| `remover_batch_size` | `int` | `100` | Amount of objects to grab in a single batch. |
|
| `remover_batch_size` | `int` | `100` | Amount of objects to grab in a single batch. |
|
||||||
| `remover_sleep_interval` | `duration` | `1m` | Time to sleep between iterations. |
|
| `remover_sleep_interval` | `duration` | `1m` | Time to sleep between iterations. |
|
||||||
|
|
||||||
### `metabase` subsection
|
### `metabase` subsection
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ writecache:
|
||||||
| Parameter | Type | Default value | Description |
|
| Parameter | Type | Default value | Description |
|
||||||
|----------------------|------------|---------------|----------------------------------------------------------------------------------------------------------------------|
|
|----------------------|------------|---------------|----------------------------------------------------------------------------------------------------------------------|
|
||||||
| `path` | `string` | | Path to the metabase file. |
|
| `path` | `string` | | Path to the metabase file. |
|
||||||
| `capacity` | `size` | unrestricted | Approximate maximum size of the writecache. If the writecache is full, objects are written to the blobstor directly. |
|
| `capacity` | `size` | unrestricted | Approximate maximum size of the writecache. If the writecache is full, objects are written to the blobstor directly. |
|
||||||
| `small_object_size` | `size` | `32K` | Maximum object size for "small" objects. This objects are stored in a key-value database instead of a file-system. |
|
| `small_object_size` | `size` | `32K` | Maximum object size for "small" objects. This objects are stored in a key-value database instead of a file-system. |
|
||||||
| `max_object_size` | `size` | `64M` | Maximum object size allowed to be stored in the writecache. |
|
| `max_object_size` | `size` | `64M` | Maximum object size allowed to be stored in the writecache. |
|
||||||
| `workers_number` | `int` | `20` | Amount of background workers that move data from the writecache to the blobstor. |
|
| `workers_number` | `int` | `20` | Amount of background workers that move data from the writecache to the blobstor. |
|
||||||
|
|
|
@ -30,5 +30,5 @@ Update `GO_VERSION` variable in `./Makefile`.
|
||||||
|
|
||||||
## Apply language changes
|
## Apply language changes
|
||||||
|
|
||||||
Open PR that fixes/updates repository's code according to
|
Open PR that fixes/updates repository's code according to
|
||||||
language improvements.
|
language improvements.
|
||||||
|
|
|
@ -7,7 +7,7 @@ This file describes changes between the metabase versions.
|
||||||
### Primary buckets
|
### Primary buckets
|
||||||
- Graveyard bucket
|
- Graveyard bucket
|
||||||
- Name: `_Graveyard`
|
- Name: `_Graveyard`
|
||||||
- Key: object address
|
- Key: object address
|
||||||
- Value: tombstone address
|
- Value: tombstone address
|
||||||
- Garbage bucket
|
- Garbage bucket
|
||||||
- Name: `_Garbage`
|
- Name: `_Garbage`
|
||||||
|
@ -23,7 +23,7 @@ This file describes changes between the metabase versions.
|
||||||
- Key: container ID
|
- Key: container ID
|
||||||
- Value: container size in bytes as little-endian uint64
|
- Value: container size in bytes as little-endian uint64
|
||||||
- Bucket for storing locked objects information
|
- Bucket for storing locked objects information
|
||||||
- Name: `_Locked`
|
- Name: `_Locked`
|
||||||
- Key: container ID
|
- Key: container ID
|
||||||
- Value: bucket mapping objects locked to the list of corresponding LOCK objects
|
- Value: bucket mapping objects locked to the list of corresponding LOCK objects
|
||||||
- Bucket containing auxilliary information. All keys are custom and are not connected to the container
|
- Bucket containing auxilliary information. All keys are custom and are not connected to the container
|
||||||
|
@ -102,4 +102,4 @@ This file describes changes between the metabase versions.
|
||||||
|
|
||||||
- Container ID is encoded as base58 string
|
- Container ID is encoded as base58 string
|
||||||
- Object ID is encoded as base58 string
|
- Object ID is encoded as base58 string
|
||||||
- Address is encoded as container ID + "/" + object ID
|
- Address is encoded as container ID + "/" + object ID
|
||||||
|
|
|
@ -21,15 +21,15 @@ Zsh:
|
||||||
If shell completion is not already enabled in your environment you will need
|
If shell completion is not already enabled in your environment you will need
|
||||||
to enable it. You can execute the following once:
|
to enable it. You can execute the following once:
|
||||||
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
|
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
|
||||||
|
|
||||||
To load completions for each session, execute once:
|
To load completions for each session, execute once:
|
||||||
$ %s completion zsh > "${fpath[1]}/_%s"
|
$ %s completion zsh > "${fpath[1]}/_%s"
|
||||||
|
|
||||||
You will need to start a new shell for this setup to take effect.
|
You will need to start a new shell for this setup to take effect.
|
||||||
|
|
||||||
Fish:
|
Fish:
|
||||||
$ %s completion fish | source
|
$ %s completion fish | source
|
||||||
|
|
||||||
To load completions for each session, execute once:
|
To load completions for each session, execute once:
|
||||||
$ %s completion fish > ~/.config/fish/completions/%s.fish
|
$ %s completion fish > ~/.config/fish/completions/%s.fish
|
||||||
`
|
`
|
||||||
|
|
Loading…
Reference in a new issue