From 2d9c805c8111937d74569af7ae9810c0d45441fb Mon Sep 17 00:00:00 2001 From: Pavel Karpy Date: Thu, 5 May 2022 21:28:11 +0300 Subject: [PATCH] [#1365] adm: Add homomorphic hash disabling option Signed-off-by: Pavel Karpy --- .../internal/modules/config/config.go | 45 ++++++------ .../modules/morph/initialize_deploy.go | 22 +++--- cmd/neofs-adm/internal/modules/morph/root.go | 68 ++++++++++--------- 3 files changed, 72 insertions(+), 63 deletions(-) diff --git a/cmd/neofs-adm/internal/modules/config/config.go b/cmd/neofs-adm/internal/modules/config/config.go index c398ba2c1..b01681016 100644 --- a/cmd/neofs-adm/internal/modules/config/config.go +++ b/cmd/neofs-adm/internal/modules/config/config.go @@ -14,17 +14,18 @@ import ( ) type configTemplate struct { - Endpoint string - AlphabetDir string - MaxObjectSize int - EpochDuration int - BasicIncomeRate int - AuditFee int - CandidateFee int - ContainerFee int - ContainerAliasFee int - WithdrawFee int - Glagolitics []string + Endpoint string + AlphabetDir string + MaxObjectSize int + EpochDuration int + BasicIncomeRate int + AuditFee int + CandidateFee int + ContainerFee int + ContainerAliasFee int + WithdrawFee int + Glagolitics []string + HomomorphicHashDisabled bool } const configTxtTemplate = `rpc-endpoint: {{ .Endpoint}} @@ -33,6 +34,7 @@ network: max_object_size: {{ .MaxObjectSize}} epoch_duration: {{ .EpochDuration}} basic_income_rate: {{ .BasicIncomeRate}} + homomorphic_hash_disabled: {{ .HomomorphicHashDisabled}} fee: audit: {{ .AuditFee}} candidate: {{ .CandidateFee}} @@ -106,16 +108,17 @@ func defaultConfigPath() (string, error) { // some comments as well. func generateConfigExample(appDir string, credSize int) (string, error) { tmpl := configTemplate{ - Endpoint: "https://neo.rpc.node:30333", - MaxObjectSize: 67108864, // 64 MiB - EpochDuration: 240, // 1 hour with 15s per block - BasicIncomeRate: 1_0000_0000, // 0.0001 GAS per GiB (Fixed12) - AuditFee: 1_0000, // 0.00000001 GAS per audit (Fixed12) - CandidateFee: 100_0000_0000, // 100.0 GAS (Fixed8) - ContainerFee: 1000, // 0.000000001 * 7 GAS per container (Fixed12) - ContainerAliasFee: 500, // ContainerFee / 2 - WithdrawFee: 1_0000_0000, // 1.0 GAS (Fixed8) - Glagolitics: make([]string, 0, credSize), + Endpoint: "https://neo.rpc.node:30333", + MaxObjectSize: 67108864, // 64 MiB + EpochDuration: 240, // 1 hour with 15s per block + BasicIncomeRate: 1_0000_0000, // 0.0001 GAS per GiB (Fixed12) + HomomorphicHashDisabled: false, // object homomorphic hash is enabled + AuditFee: 1_0000, // 0.00000001 GAS per audit (Fixed12) + CandidateFee: 100_0000_0000, // 100.0 GAS (Fixed8) + ContainerFee: 1000, // 0.000000001 * 7 GAS per container (Fixed12) + ContainerAliasFee: 500, // ContainerFee / 2 + WithdrawFee: 1_0000_0000, // 1.0 GAS (Fixed8) + Glagolitics: make([]string, 0, credSize), } appDir, err := filepath.Abs(appDir) diff --git a/cmd/neofs-adm/internal/modules/morph/initialize_deploy.go b/cmd/neofs-adm/internal/modules/morph/initialize_deploy.go index d34c87273..0a217ca3c 100644 --- a/cmd/neofs-adm/internal/modules/morph/initialize_deploy.go +++ b/cmd/neofs-adm/internal/modules/morph/initialize_deploy.go @@ -47,16 +47,17 @@ const ( ) const ( - netmapEpochKey = "EpochDuration" - netmapMaxObjectSizeKey = "MaxObjectSize" - netmapAuditFeeKey = "AuditFee" - netmapContainerFeeKey = "ContainerFee" - netmapContainerAliasFeeKey = "ContainerAliasFee" - netmapEigenTrustIterationsKey = "EigenTrustIterations" - netmapEigenTrustAlphaKey = "EigenTrustAlpha" - netmapBasicIncomeRateKey = "BasicIncomeRate" - netmapInnerRingCandidateFeeKey = "InnerRingCandidateFee" - netmapWithdrawFeeKey = "WithdrawFee" + netmapEpochKey = "EpochDuration" + netmapMaxObjectSizeKey = "MaxObjectSize" + netmapAuditFeeKey = "AuditFee" + netmapContainerFeeKey = "ContainerFee" + netmapContainerAliasFeeKey = "ContainerAliasFee" + netmapEigenTrustIterationsKey = "EigenTrustIterations" + netmapEigenTrustAlphaKey = "EigenTrustAlpha" + netmapBasicIncomeRateKey = "BasicIncomeRate" + netmapInnerRingCandidateFeeKey = "InnerRingCandidateFee" + netmapWithdrawFeeKey = "WithdrawFee" + netmapHomomorphicHashDisabledKey = "HomomorphicHashingDisabled" defaultEigenTrustIterations = 4 defaultEigenTrustAlpha = "0.1" @@ -544,6 +545,7 @@ func (c *initializeContext) getContractDeployData(ctrName string, keysParam []in netmapBasicIncomeRateKey, viper.GetInt64(incomeRateInitFlag), netmapInnerRingCandidateFeeKey, viper.GetInt64(candidateFeeInitFlag), netmapWithdrawFeeKey, viper.GetInt64(withdrawFeeInitFlag), + netmapHomomorphicHashDisabledKey, viper.GetBool(homomorphicHashDisabledInitFlag), } items = append(items, c.Contracts[balanceContract].Hash, diff --git a/cmd/neofs-adm/internal/modules/morph/root.go b/cmd/neofs-adm/internal/modules/morph/root.go index 66527a3b9..f647af704 100644 --- a/cmd/neofs-adm/internal/modules/morph/root.go +++ b/cmd/neofs-adm/internal/modules/morph/root.go @@ -6,38 +6,40 @@ import ( ) const ( - alphabetWalletsFlag = "alphabet-wallets" - alphabetSizeFlag = "size" - endpointFlag = "rpc-endpoint" - storageWalletFlag = "storage-wallet" - storageWalletLabelFlag = "label" - storageGasCLIFlag = "initial-gas" - storageGasConfigFlag = "storage.initial_gas" - contractsInitFlag = "contracts" - maxObjectSizeInitFlag = "network.max_object_size" - maxObjectSizeCLIFlag = "max-object-size" - epochDurationInitFlag = "network.epoch_duration" - epochDurationCLIFlag = "epoch-duration" - incomeRateInitFlag = "network.basic_income_rate" - incomeRateCLIFlag = "basic-income-rate" - auditFeeInitFlag = "network.fee.audit" - auditFeeCLIFlag = "audit-fee" - containerFeeInitFlag = "network.fee.container" - containerAliasFeeInitFlag = "network.fee.container_alias" - containerFeeCLIFlag = "container-fee" - containerAliasFeeCLIFlag = "container-alias-fee" - candidateFeeInitFlag = "network.fee.candidate" - candidateFeeCLIFlag = "candidate-fee" - withdrawFeeInitFlag = "network.fee.withdraw" - withdrawFeeCLIFlag = "withdraw-fee" - containerDumpFlag = "dump" - containerContractFlag = "container-contract" - containerIDsFlag = "cid" - refillGasAmountFlag = "gas" - walletAccountFlag = "account" - notaryDepositTillFlag = "till" - localDumpFlag = "local-dump" - protoConfigPath = "protocol" + alphabetWalletsFlag = "alphabet-wallets" + alphabetSizeFlag = "size" + endpointFlag = "rpc-endpoint" + storageWalletFlag = "storage-wallet" + storageWalletLabelFlag = "label" + storageGasCLIFlag = "initial-gas" + storageGasConfigFlag = "storage.initial_gas" + contractsInitFlag = "contracts" + maxObjectSizeInitFlag = "network.max_object_size" + maxObjectSizeCLIFlag = "max-object-size" + epochDurationInitFlag = "network.epoch_duration" + epochDurationCLIFlag = "epoch-duration" + incomeRateInitFlag = "network.basic_income_rate" + incomeRateCLIFlag = "basic-income-rate" + auditFeeInitFlag = "network.fee.audit" + auditFeeCLIFlag = "audit-fee" + containerFeeInitFlag = "network.fee.container" + containerAliasFeeInitFlag = "network.fee.container_alias" + containerFeeCLIFlag = "container-fee" + containerAliasFeeCLIFlag = "container-alias-fee" + candidateFeeInitFlag = "network.fee.candidate" + candidateFeeCLIFlag = "candidate-fee" + homomorphicHashDisabledInitFlag = "network.homomorphic_hash_disabled" + homomorphicHashDisabledCLIFlag = "homomorphic-disabled" + withdrawFeeInitFlag = "network.fee.withdraw" + withdrawFeeCLIFlag = "withdraw-fee" + containerDumpFlag = "dump" + containerContractFlag = "container-contract" + containerIDsFlag = "cid" + refillGasAmountFlag = "gas" + walletAccountFlag = "account" + notaryDepositTillFlag = "till" + localDumpFlag = "local-dump" + protoConfigPath = "protocol" ) var ( @@ -66,6 +68,7 @@ var ( _ = viper.BindPFlag(epochDurationInitFlag, cmd.Flags().Lookup(epochDurationCLIFlag)) _ = viper.BindPFlag(maxObjectSizeInitFlag, cmd.Flags().Lookup(maxObjectSizeCLIFlag)) _ = viper.BindPFlag(incomeRateInitFlag, cmd.Flags().Lookup(incomeRateCLIFlag)) + _ = viper.BindPFlag(homomorphicHashDisabledInitFlag, cmd.Flags().Lookup(homomorphicHashDisabledCLIFlag)) _ = viper.BindPFlag(auditFeeInitFlag, cmd.Flags().Lookup(auditFeeCLIFlag)) _ = viper.BindPFlag(candidateFeeInitFlag, cmd.Flags().Lookup(candidateFeeCLIFlag)) _ = viper.BindPFlag(containerFeeInitFlag, cmd.Flags().Lookup(containerFeeCLIFlag)) @@ -210,6 +213,7 @@ func init() { initCmd.Flags().String(contractsInitFlag, "", "path to archive with compiled NeoFS contracts (default fetched from latest github release)") initCmd.Flags().Uint(epochDurationCLIFlag, 240, "amount of side chain blocks in one NeoFS epoch") initCmd.Flags().Uint(maxObjectSizeCLIFlag, 67108864, "max single object size in bytes") + initCmd.Flags().Bool(homomorphicHashDisabledCLIFlag, false, "disable object homomorphic hashing") // Defaults are taken from neo-preodolenie. initCmd.Flags().Uint64(containerFeeCLIFlag, 1000, "container registration fee") initCmd.Flags().Uint64(containerAliasFeeCLIFlag, 500, "container alias fee")