From dc2d526507bea24b741b8761cd084d1e76510075 Mon Sep 17 00:00:00 2001 From: Shane Bammel Date: Tue, 31 Jan 2023 18:55:13 -0600 Subject: [PATCH] Remove tos --- TERMS_OF_SERVICE.md | 53 ------------ cmd/beacon-chain/BUILD.bazel | 1 - cmd/beacon-chain/db/BUILD.bazel | 1 - cmd/beacon-chain/db/db.go | 2 - cmd/beacon-chain/main.go | 7 -- cmd/beacon-chain/usage.go | 1 - cmd/flags.go | 5 -- cmd/prysmctl/validator/BUILD.bazel | 1 - cmd/prysmctl/validator/cmd.go | 13 +-- cmd/validator/BUILD.bazel | 1 - cmd/validator/accounts/BUILD.bazel | 1 - cmd/validator/accounts/accounts.go | 21 ----- cmd/validator/db/BUILD.bazel | 1 - cmd/validator/db/db.go | 4 - cmd/validator/main.go | 7 -- cmd/validator/slashing-protection/BUILD.bazel | 1 - .../slashing-protection.go | 14 +-- cmd/validator/usage.go | 1 - cmd/validator/wallet/BUILD.bazel | 1 - cmd/validator/wallet/wallet.go | 9 -- cmd/validator/web/BUILD.bazel | 1 - cmd/validator/web/web.go | 7 +- runtime/tos/BUILD.bazel | 29 ------- runtime/tos/tos.go | 85 ------------------- runtime/tos/tos_test.go | 58 ------------- testing/endtoend/components/beacon_node.go | 1 - testing/endtoend/components/validator.go | 1 - 27 files changed, 7 insertions(+), 320 deletions(-) delete mode 100644 TERMS_OF_SERVICE.md delete mode 100644 runtime/tos/BUILD.bazel delete mode 100644 runtime/tos/tos.go delete mode 100644 runtime/tos/tos_test.go diff --git a/TERMS_OF_SERVICE.md b/TERMS_OF_SERVICE.md deleted file mode 100644 index bd64aa581..000000000 --- a/TERMS_OF_SERVICE.md +++ /dev/null @@ -1,53 +0,0 @@ -# Terms of Use -Effective as of November 2, 2023 - -By downloading, accessing or using the Prysm implementation (“Prysm”), you (referenced herein as “you” or the “user”) certify that you have read and agreed to the terms and conditions below (the “Terms”) which form a binding contract between you and Offchain Labs, Inc. (as successor in interest to Prysmatic Labs LLC) (referenced herein as “Offchain Labs”, “we” or “us”). If you do not agree to the Terms, do not download or use Prysm. Additionally, the Terms of Use available at https://arbitrum.io/tos (or any successor site, the “OCL Terms of Use”) are hereby incorporated by reference into these Terms. In the event of any conflict between provisions set forth herein and those set forth in the OCL Terms of Use, the provisions set forth herein shall control. - -## About Prysm - -Prysm is a client implementation for the Ethereum blockchain’s consensus protocol. To participate in the network, a user must send ETH from the Ethereum mainnet blockchain to a validator deposit smart contract on Ethereum mainnet. Validators participate in proposing and voting on blocks in the protocol, and the network applies rewards/penalties based on their behavior. A detailed set of installation and usage instructions as well as breakdowns of each individual component are available in the official documentation portal, however, we do not warrant the accuracy, completeness or usefulness of this documentation. Any reliance you place on such information is strictly at your own risk. - -## Licensing Terms -Prysm is an open-source software program licensed pursuant to the GNU General Public License v3.0. -The Offchain Labs name, the term “Prysm” and all related names, logos, product and service names, designs and slogans are trademarks of Offchain Labs or its affiliates and/or licensors. You must not use such marks without our prior written permission. -PLEASE READ THESE TERMS CAREFULLY, AS THE OCL TERMS OF USE INCORPORATED BY REFERENCE HEREIN CONTAIN AN AGREEMENT TO ARBITRATE AND OTHER IMPORTANT INFORMATION REGARDING YOUR LEGAL RIGHTS, REMEDIES, AND OBLIGATIONS. THE AGREEMENT TO ARBITRATE REQUIRES (WITH LIMITED EXCEPTION) THAT YOU SUBMIT CLAIMS YOU HAVE AGAINST US TO BINDING AND FINAL ARBITRATION, AND FURTHER (1) YOU WILL ONLY BE PERMITTED TO PURSUE CLAIMS AGAINST OFFCHAIN LABS ON AN INDIVIDUAL BASIS, NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY CLASS OR REPRESENTATIVE ACTION OR PROCEEDING, (2) YOU WILL ONLY BE PERMITTED TO SEEK RELIEF (INCLUDING MONETARY, INJUNCTIVE, AND DECLARATORY RELIEF) ON AN INDIVIDUAL BASIS, AND (3) YOU MAY NOT BE ABLE TO HAVE ANY CLAIMS YOU HAVE AGAINST US RESOLVED BY A JURY OR IN A COURT OF LAW. - -## Risks of Operating Prysm - -The use of Prysm and acting as a validator on the Ethereum network can lead to loss of money, tokens and value. Ethereum is still an experimental system and ETH remains a risky investment. You alone are responsible for your actions on Prysm, including the security of your ETH and meeting any applicable minimum system requirements. - -Use of Prysm and the ability to receive rewards or penalties may be affected at any time by mistakes made by the user or other users, software problems such as bugs, errors, incorrectly constructed transactions, unsafe cryptographic libraries or malware affecting the network, technical failures in the hardware of a user, security problems experienced by a user and/or actions or inactions of third parties and/or events experienced by third parties, among other risks. We cannot and do not guarantee that any user of Prysm will make money, that the Prysm network will operate in accordance with the documentation or that transactions will be effective or secure. - -YOU ACKNOWLEDGE THAT WE ARE NOT RESPONSIBLE FOR ANY RISKS ASSOCIATED WITH YOUR USE OF PRYSM, AND CANNOT BE HELD LIABLE FOR ANY RESULTING LOSSES THAT YOU EXPERIENCE WHILE ACCESSING OR USING PRYSM. - -BY ACCESSING AND USING PRYSM, YOU REPRESENT AND WARRANT THAT YOU UNDERSTAND THE INHERENT RISKS ASSOCIATED WITH USING CRYPTOGRAPHIC AND BLOCKCHAIN-BASED SYSTEMS, AND THAT YOU HAVE A WORKING KNOWLEDGE OF THE USAGE AND INTRICACIES OF DIGITAL ASSETS, SUCH AS THOSE FOLLOWING THE ETHEREUM TOKEN STANDARD (ERC-20). YOU FURTHER UNDERSTAND THAT THE MARKETS FOR DIGITAL ASSETS ARE HIGHLY VOLATILE DUE TO VARIOUS FACTORS, INCLUDING ADOPTION, SPECULATION, TECHNOLOGY, SECURITY, AND REGULATION. YOU ACKNOWLEDGE AND ACCEPT THAT THE COST AND SPEED OF TRANSACTING WITH CRYPTOGRAPHIC AND BLOCKCHAIN-BASED SYSTEMS SUCH AS ETHEREUM ARE VARIABLE AND MAY INCREASE DRAMATICALLY AT ANY TIME. YOU UNDERSTAND THAT ANYONE CAN CREATE A TOKEN, INCLUDING FAKE VERSIONS OF EXISTING TOKENS AND TOKENS THAT FALSELY CLAIM TO REPRESENT PROJECTS, AND ACKNOWLEDGE AND ACCEPT THE RISK THAT YOU MAY MISTAKENLY INTERACT WITH THOSE OR OTHER TOKENS. YOU FURTHER ACKNOWLEDGE THAT WE ARE NOT RESPONSIBLE FOR ANY OF THE VARIABLES OR RISKS DESCRIBED IN THESE TERMS. YOU UNDERSTAND AND AGREE TO ASSUME FULL RESPONSIBILITY FOR ALL OF THE RISKS OF ACCESSING AND USING PRYSM. YOU ARE SOLELY RESPONSIBLE FOR YOUR WALLETS, FOR SAFEGUARDING THE ASSOCIATED PRIVATE KEY AND FOR ANY ACTIVITY THAT OCCURS USING YOUR WALLET. WITHOUT LIMITING THE FOREGOING, YOU ALSO UNDERSTAND THAT THERE MAY BE TAX AND REGULATORY RISKS RELATED TO USING PRYSM. IT IS YOUR SOLE RESPONSIBILITY TO DETERMINE WHETHER, AND TO WHAT EXTENT, ANY TAXES APPLY TO ANY TRANSACTIONS YOU CONDUCT IN CONNECTION WITH YOUR USE OF PRYSM, AND TO WITHHOLD, COLLECT, REPORT AND REMIT THE CORRECT AMOUNTS OF TAXES TO THE APPROPRIATE TAX AUTHORITIES. DIGITAL ASSETS, BLOCKCHAIN TECHNOLOGY, AND ANY RELATED SOFTWARE AND SERVICES ARE ALSO SUBJECT TO LEGAL AND REGULATORY UNCERTAINTY IN THE UNITED STATES AND OTHER JURISDICTIONS. YOU UNDERSTAND THAT LEGISLATIVE AND REGULATORY CHANGES OR ACTIONS MAY ADVERSELY AFFECT THE USAGE, TRANSFERABILITY, TRANSACTABILITY AND ACCESSIBILITY RELATED TO PRYSM. - -We make no claims that Prysm is appropriate or permitted for use in any specific jurisdiction. Access to Prysm may not be legal by certain persons or in certain jurisdictions or countries. If you access Prysm, you do so on your own initiative and are responsible for compliance with all Applicable Law (as defined below), including, without limitation, for the avoidance of doubt, local laws. - -Some Internet plans will charge additional amounts for bandwidth or any excess upload bandwidth used that isn’t included in the plan and may terminate your connection without warning because of overuse. We advise that you check whether your Internet connection is subjected to any such limitations and monitor your bandwidth use and upload volumes. - -## Warranty Disclaimer - -PRYSM IS PROVIDED ON AN “AS-IS” BASIS AND MAY INCLUDE ERRORS, OMISSIONS, OR OTHER INACCURACIES. WITHOUT LIMITING ANYTHING SET FORTH ELSEWHERE IN THESE TERMS, OFFCHAIN LABS AND ITS CONTRIBUTORS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT PRYSM FOR ANY PURPOSE, AND HEREBY EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT OR ANY OTHER IMPLIED WARRANTY UNDER THE UNIFORM COMPUTER INFORMATION TRANSACTIONS ACT AS ENACTED BY ANY STATE OR OTHER GOVERNMENTAL AUTHORITY. WE ALSO MAKE NO REPRESENTATIONS OR WARRANTIES THAT PRYSM WILL OPERATE ERROR-FREE, UNINTERRUPTED, OR IN A MANNER THAT WILL MEET YOUR REQUIREMENTS AND/OR NEEDS. THEREFORE, YOU ASSUME THE ENTIRE RISK REGARDING THE QUALITY AND/OR PERFORMANCE OF PRYSM AND ANY TRANSACTIONS ENTERED INTO THEREON. - -## Limitation of Liability - -IN NO EVENT WILL OFFCHAIN LABS OR ANY OF ITS AFFILIATES OR ITS OR ANY SUCH AFFILIATE’S DIRECTORS, OFFICERS, EMPLOYEES, AGENTS, OR REPRESENTATIVES OR ANY CONTRIBUTORS (COLLECTIVELY, THE “OCL PARTIES”) BE LIABLE, WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE, WHETHER ACTIVE, PASSIVE OR IMPUTED), PRODUCT LIABILITY, STRICT LIABILITY OR OTHER THEORY, BREACH OF STATUTORY DUTY OR OTHERWISE ARISING OUT OF, OR IN CONNECTION WITH, YOUR USE OF PRYSM, FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING ANY LOSS OF PROFITS OR DATA, BUSINESS INTERRUPTION OR OTHER PECUNIARY LOSS, OR DAMAGE, LOSS OR OTHER COMPROMISE OF DATA, IN EACH CASE WHETHER DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL) ARISING OUT OF USE PRYSM, EVEN IF WE OR OTHER USERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. The foregoing limitations and disclaimers shall apply to the maximum extent permitted by Applicable Law, even if any remedy fails of its essential purpose. You acknowledge and agree that the limitations of liability afforded us hereunder constitute a material and actual inducement and condition to entering into these Terms, and are reasonable, fair and equitable in scope to protect our legitimate interests in light of the fact that we are not receiving consideration from you for providing Prysm. - -## Indemnification - -To the maximum extent permitted by Applicable Law, you will defend, indemnify and hold each OCL Party harmless from and against any and all claims, actions, suits, investigations, or proceedings by any third party (including any party or purported party to or beneficiary or purported beneficiary of any transaction or other activity on Prysm), as well as any and all losses, liabilities, damages, costs, and expenses (including reasonable attorneys’ fees and costs) arising out of, accruing from, or in any way related to (i) your breach of the terms of this Agreement, (ii) any transaction, or the failure to occur of any transaction on Prysm, and (iii) your negligence, fraud, or willful misconduct. - -## Compliance with Laws - -Your use of Prysm is subject to all applicable laws of any governmental authority, including, without limitation, federal, state and foreign securities laws, tax laws, tariff and trade laws, ordinances, judgments, decrees, injunctions, writs and orders or like actions of any governmental authority and rules, regulations, orders, interpretations, licenses, and permits of any federal, regional, state, county, municipal or other governmental authority (collectively, “Applicable Law”) and you agree to comply with all such Applicable Law in your use of Prysm. The users of Prysm are solely responsible to determinate what, if any, taxes apply to their ETH transactions. The owners of, or contributors to, Prysm are not responsible for determining the taxes that apply to ETH transactions. - -## Miscellaneous - -These Terms will be governed by the laws of the State of Delaware without regard to its conflict of law provisions. With respect to any disputes or claims not subject to arbitration, as set forth in the OCL Terms of Use, you and Offchain Labs submit to the personal and exclusive jurisdiction of the state and federal courts located within New York, New York and waive any objection to such jurisdiction and venue. The failure of Offchain Labs to exercise or enforce any right or provision of these Terms will not constitute a waiver of such right or provision. -We reserve the right to revise these Terms, and your rights and obligations are at all times subject to the then-current Terms provided on Prysm. Your use of Prysm following any such revision to these Terms constitutes acceptance of such revised Terms. - -These Terms constitute the entire agreement between you and Offchain Labs regarding use of Prysm and will supersede all prior agreements whether, written or oral. No usage of trade or other regular practice or method of dealing between the parties will be used to modify, interpret, supplement, or alter the terms of these Terms. - -If any portion of these Terms is held invalid or unenforceable, such invalidity or enforceability will not affect the other provisions of these Terms, which will remain in full force and effect, and the invalid or unenforceable portion will be given effect to the greatest extent possible. The failure of a party to require performance of any provision will not affect that party’s right to require performance at any time thereafter, nor will a waiver of any breach or default of these Terms or any provision of these Terms constitute a waiver of any subsequent breach or default or a waiver of the provision itself. - diff --git a/cmd/beacon-chain/BUILD.bazel b/cmd/beacon-chain/BUILD.bazel index 0155f15f6..a16aa6fde 100644 --- a/cmd/beacon-chain/BUILD.bazel +++ b/cmd/beacon-chain/BUILD.bazel @@ -33,7 +33,6 @@ go_library( "//runtime/fdlimits:go_default_library", "//runtime/logging/logrus-prefixed-formatter:go_default_library", "//runtime/maxprocs:go_default_library", - "//runtime/tos:go_default_library", "//runtime/version:go_default_library", "@com_github_ethereum_go_ethereum//log:go_default_library", "@com_github_ipfs_go_log_v2//:go_default_library", diff --git a/cmd/beacon-chain/db/BUILD.bazel b/cmd/beacon-chain/db/BUILD.bazel index 21fa8118d..f5b4550b6 100644 --- a/cmd/beacon-chain/db/BUILD.bazel +++ b/cmd/beacon-chain/db/BUILD.bazel @@ -8,7 +8,6 @@ go_library( deps = [ "//beacon-chain/db:go_default_library", "//cmd:go_default_library", - "//runtime/tos:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", ], diff --git a/cmd/beacon-chain/db/db.go b/cmd/beacon-chain/db/db.go index 96e6718dc..0bd8a53a4 100644 --- a/cmd/beacon-chain/db/db.go +++ b/cmd/beacon-chain/db/db.go @@ -3,7 +3,6 @@ package db import ( beacondb "github.com/prysmaticlabs/prysm/v5/beacon-chain/db" "github.com/prysmaticlabs/prysm/v5/cmd" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -23,7 +22,6 @@ var Commands = &cli.Command{ cmd.RestoreSourceFileFlag, cmd.RestoreTargetDirFlag, }), - Before: tos.VerifyTosAcceptedOrPrompt, Action: func(cliCtx *cli.Context) error { if err := beacondb.Restore(cliCtx); err != nil { log.WithError(err).Fatal("Could not restore database") diff --git a/cmd/beacon-chain/main.go b/cmd/beacon-chain/main.go index 56a10b590..1c6e90173 100644 --- a/cmd/beacon-chain/main.go +++ b/cmd/beacon-chain/main.go @@ -33,7 +33,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/runtime/fdlimits" prefixed "github.com/prysmaticlabs/prysm/v5/runtime/logging/logrus-prefixed-formatter" _ "github.com/prysmaticlabs/prysm/v5/runtime/maxprocs" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/prysmaticlabs/prysm/v5/runtime/version" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" @@ -127,7 +126,6 @@ var appFlags = []cli.Flag{ cmd.ConfigFileFlag, cmd.ChainConfigFileFlag, cmd.GrpcMaxCallRecvMsgSizeFlag, - cmd.AcceptTosFlag, cmd.RestoreSourceFileFlag, cmd.RestoreTargetDirFlag, cmd.ValidatorMonitorIndicesFlag, @@ -256,11 +254,6 @@ func startNode(ctx *cli.Context, cancel context.CancelFunc) error { return err } - // verify if ToS accepted - if err := tos.VerifyTosAcceptedOrPrompt(ctx); err != nil { - return err - } - verbosity := ctx.String(cmd.VerbosityFlag.Name) level, err := logrus.ParseLevel(verbosity) if err != nil { diff --git a/cmd/beacon-chain/usage.go b/cmd/beacon-chain/usage.go index c07e49380..4536f559f 100644 --- a/cmd/beacon-chain/usage.go +++ b/cmd/beacon-chain/usage.go @@ -71,7 +71,6 @@ var appHelpFlagGroups = []flagGroup{ cmd.ConfigFileFlag, cmd.ChainConfigFileFlag, cmd.GrpcMaxCallRecvMsgSizeFlag, - cmd.AcceptTosFlag, cmd.RestoreSourceFileFlag, cmd.RestoreTargetDirFlag, cmd.ValidatorMonitorIndicesFlag, diff --git a/cmd/flags.go b/cmd/flags.go index 613db570f..4ca69ea47 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -235,11 +235,6 @@ var ( 50Mb. The default here is set to a very high value for local users.`, Value: math.MaxInt32, } - // AcceptTosFlag specifies user acceptance of ToS for non-interactive environments. - AcceptTosFlag = &cli.BoolFlag{ - Name: "accept-terms-of-use", - Usage: "Accepts Terms and Conditions (for non-interactive environments).", - } // ValidatorMonitorIndicesFlag specifies a list of validator indices to // track for performance updates ValidatorMonitorIndicesFlag = &cli.IntSliceFlag{ diff --git a/cmd/prysmctl/validator/BUILD.bazel b/cmd/prysmctl/validator/BUILD.bazel index 0d1174c50..f295203f6 100644 --- a/cmd/prysmctl/validator/BUILD.bazel +++ b/cmd/prysmctl/validator/BUILD.bazel @@ -27,7 +27,6 @@ go_library( "//io/file:go_default_library", "//io/prompt:go_default_library", "//proto/prysm/v1alpha1/validator-client:go_default_library", - "//runtime/tos:go_default_library", "@com_github_ethereum_go_ethereum//common:go_default_library", "@com_github_logrusorgru_aurora//:go_default_library", "@com_github_pkg_errors//:go_default_library", diff --git a/cmd/prysmctl/validator/cmd.go b/cmd/prysmctl/validator/cmd.go index 6b804bd96..89274253e 100644 --- a/cmd/prysmctl/validator/cmd.go +++ b/cmd/prysmctl/validator/cmd.go @@ -9,7 +9,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/cmd/validator/accounts" "github.com/prysmaticlabs/prysm/v5/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v5/config/features" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" log "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -88,14 +87,13 @@ var Commands = []*cli.Command{ ConfirmFlag, VerifyOnlyFlag, cmd.ConfigFileFlag, - cmd.AcceptTosFlag, }, Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } au := aurora.NewAurora(true) - if !cliCtx.Bool(cmd.AcceptTosFlag.Name) || !cliCtx.Bool(ConfirmFlag.Name) { + if !cliCtx.Bool(ConfirmFlag.Name) { fmt.Println(au.Red("===============IMPORTANT===============")) fmt.Println(au.Red("Please read the following carefully")) fmt.Print("This action will allow the partial withdrawal of amounts over the 32 staked ETH in your active validator balance. \n" + @@ -103,9 +101,8 @@ var Commands = []*cli.Command{ "Please navigate to our website (https://docs.prylabs.network/) and make sure you understand the full implications of setting your withdrawal address. \n") fmt.Println(au.Red("THIS ACTION WILL NOT BE REVERSIBLE ONCE INCLUDED. ")) fmt.Println(au.Red("You will NOT be able to change the address again once changed. ")) - return fmt.Errorf("both the `--%s` and `--%s` flags are required to run this command. \n"+ - "By providing these flags the user has read and accepts the TERMS AND CONDITIONS: https://github.com/prysmaticlabs/prysm/blob/master/TERMS_OF_SERVICE.md "+ - "and confirms the action of setting withdrawals addresses", cmd.AcceptTosFlag.Name, ConfirmFlag.Name) + return fmt.Errorf("the `--%s` flag is required to run this command. \n"+ + "By providing this flag the user accepts full responsibility for the action of setting withdrawals addresses", ConfirmFlag.Name) } else { return nil } @@ -170,15 +167,11 @@ var Commands = []*cli.Command{ features.PraterTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { diff --git a/cmd/validator/BUILD.bazel b/cmd/validator/BUILD.bazel index 698bb6bd4..e8a3d99d5 100644 --- a/cmd/validator/BUILD.bazel +++ b/cmd/validator/BUILD.bazel @@ -25,7 +25,6 @@ go_library( "//runtime/debug:go_default_library", "//runtime/logging/logrus-prefixed-formatter:go_default_library", "//runtime/maxprocs:go_default_library", - "//runtime/tos:go_default_library", "//runtime/version:go_default_library", "//validator/node:go_default_library", "@com_github_joonix_log//:go_default_library", diff --git a/cmd/validator/accounts/BUILD.bazel b/cmd/validator/accounts/BUILD.bazel index e9b072c62..d9a20ea37 100644 --- a/cmd/validator/accounts/BUILD.bazel +++ b/cmd/validator/accounts/BUILD.bazel @@ -20,7 +20,6 @@ go_library( "//config/features:go_default_library", "//io/prompt:go_default_library", "//proto/prysm/v1alpha1:go_default_library", - "//runtime/tos:go_default_library", "//validator/accounts:go_default_library", "//validator/accounts/iface:go_default_library", "//validator/accounts/userprompt:go_default_library", diff --git a/cmd/validator/accounts/accounts.go b/cmd/validator/accounts/accounts.go index 8e0a0df42..be77db4de 100644 --- a/cmd/validator/accounts/accounts.go +++ b/cmd/validator/accounts/accounts.go @@ -6,7 +6,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/cmd" "github.com/prysmaticlabs/prysm/v5/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v5/config/features" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -32,15 +31,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { @@ -70,15 +65,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { @@ -106,15 +97,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { @@ -139,15 +126,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { @@ -184,15 +167,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { diff --git a/cmd/validator/db/BUILD.bazel b/cmd/validator/db/BUILD.bazel index ce15f0e7f..933d20e97 100644 --- a/cmd/validator/db/BUILD.bazel +++ b/cmd/validator/db/BUILD.bazel @@ -7,7 +7,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//cmd:go_default_library", - "//runtime/tos:go_default_library", "//validator/db:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", diff --git a/cmd/validator/db/db.go b/cmd/validator/db/db.go index 706819408..343f158a2 100644 --- a/cmd/validator/db/db.go +++ b/cmd/validator/db/db.go @@ -2,7 +2,6 @@ package db import ( "github.com/prysmaticlabs/prysm/v5/cmd" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" validatordb "github.com/prysmaticlabs/prysm/v5/validator/db" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" @@ -39,7 +38,6 @@ var Commands = &cli.Command{ cmd.RestoreSourceFileFlag, cmd.RestoreTargetDirFlag, }), - Before: tos.VerifyTosAcceptedOrPrompt, Action: func(cliCtx *cli.Context) error { if err := validatordb.Restore(cliCtx); err != nil { log.WithError(err).Fatal("Could not restore database") @@ -58,7 +56,6 @@ var Commands = &cli.Command{ Flags: cmd.WrapFlags([]cli.Flag{ cmd.DataDirFlag, }), - Before: tos.VerifyTosAcceptedOrPrompt, Action: func(cliCtx *cli.Context) error { if err := validatordb.MigrateUp(cliCtx); err != nil { log.WithError(err).Fatal("Could not run database migrations") @@ -72,7 +69,6 @@ var Commands = &cli.Command{ Flags: cmd.WrapFlags([]cli.Flag{ cmd.DataDirFlag, }), - Before: tos.VerifyTosAcceptedOrPrompt, Action: func(cliCtx *cli.Context) error { if err := validatordb.MigrateDown(cliCtx); err != nil { log.WithError(err).Fatal("Could not run database migrations") diff --git a/cmd/validator/main.go b/cmd/validator/main.go index 5692f9ec6..469be41ba 100644 --- a/cmd/validator/main.go +++ b/cmd/validator/main.go @@ -25,7 +25,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/runtime/debug" prefixed "github.com/prysmaticlabs/prysm/v5/runtime/logging/logrus-prefixed-formatter" _ "github.com/prysmaticlabs/prysm/v5/runtime/maxprocs" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/prysmaticlabs/prysm/v5/runtime/version" "github.com/prysmaticlabs/prysm/v5/validator/node" "github.com/sirupsen/logrus" @@ -35,11 +34,6 @@ import ( var log = logrus.WithField("prefix", "main") func startNode(ctx *cli.Context) error { - // Verify if ToS is accepted. - if err := tos.VerifyTosAcceptedOrPrompt(ctx); err != nil { - return err - } - validatorClient, err := node.NewValidatorClient(ctx) if err != nil { return err @@ -113,7 +107,6 @@ var appFlags = []cli.Flag{ debug.TraceFlag, debug.BlockProfileRateFlag, debug.MutexProfileFractionFlag, - cmd.AcceptTosFlag, } func init() { diff --git a/cmd/validator/slashing-protection/BUILD.bazel b/cmd/validator/slashing-protection/BUILD.bazel index 66c24cbaa..97e414b87 100644 --- a/cmd/validator/slashing-protection/BUILD.bazel +++ b/cmd/validator/slashing-protection/BUILD.bazel @@ -15,7 +15,6 @@ go_library( "//cmd/validator/flags:go_default_library", "//config/features:go_default_library", "//io/file:go_default_library", - "//runtime/tos:go_default_library", "//validator/accounts/userprompt:go_default_library", "//validator/db/filesystem:go_default_library", "//validator/db/iface:go_default_library", diff --git a/cmd/validator/slashing-protection/slashing-protection.go b/cmd/validator/slashing-protection/slashing-protection.go index 7e60e3ede..78062c00a 100644 --- a/cmd/validator/slashing-protection/slashing-protection.go +++ b/cmd/validator/slashing-protection/slashing-protection.go @@ -4,7 +4,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/cmd" "github.com/prysmaticlabs/prysm/v5/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v5/config/features" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -28,13 +27,10 @@ var Commands = &cli.Command{ features.SepoliaTestnet, features.HoleskyTestnet, features.EnableMinimalSlashingProtection, - cmd.AcceptTosFlag, }), + // Before: tos.VerifyTosAcceptedOrPrompt, Before: func(cliCtx *cli.Context) error { - if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { - return err - } - return tos.VerifyTosAcceptedOrPrompt(cliCtx) + return cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags) }, Action: func(cliCtx *cli.Context) error { if err := features.ConfigureValidator(cliCtx); err != nil { @@ -59,13 +55,9 @@ var Commands = &cli.Command{ features.SepoliaTestnet, features.HoleskyTestnet, features.EnableMinimalSlashingProtection, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { - if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { - return err - } - return tos.VerifyTosAcceptedOrPrompt(cliCtx) + return cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags) }, Action: func(cliCtx *cli.Context) error { if err := features.ConfigureValidator(cliCtx); err != nil { diff --git a/cmd/validator/usage.go b/cmd/validator/usage.go index ccc76d261..d786459d7 100644 --- a/cmd/validator/usage.go +++ b/cmd/validator/usage.go @@ -72,7 +72,6 @@ var appHelpFlagGroups = []flagGroup{ cmd.ConfigFileFlag, cmd.ChainConfigFileFlag, cmd.GrpcMaxCallRecvMsgSizeFlag, - cmd.AcceptTosFlag, cmd.ApiTimeoutFlag, }, }, diff --git a/cmd/validator/wallet/BUILD.bazel b/cmd/validator/wallet/BUILD.bazel index f32e805a1..b5e6ad53f 100644 --- a/cmd/validator/wallet/BUILD.bazel +++ b/cmd/validator/wallet/BUILD.bazel @@ -14,7 +14,6 @@ go_library( "//cmd/validator/flags:go_default_library", "//config/features:go_default_library", "//io/prompt:go_default_library", - "//runtime/tos:go_default_library", "//validator/accounts:go_default_library", "//validator/accounts/userprompt:go_default_library", "//validator/accounts/wallet:go_default_library", diff --git a/cmd/validator/wallet/wallet.go b/cmd/validator/wallet/wallet.go index 6c99824b7..e17e8a8b2 100644 --- a/cmd/validator/wallet/wallet.go +++ b/cmd/validator/wallet/wallet.go @@ -4,7 +4,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/cmd" "github.com/prysmaticlabs/prysm/v5/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v5/config/features" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) @@ -36,15 +35,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureValidator(cliCtx) }, Action: func(cliCtx *cli.Context) error { @@ -70,15 +65,11 @@ var Commands = &cli.Command{ features.PulseChainTestnet, features.SepoliaTestnet, features.HoleskyTestnet, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { return err } - if err := tos.VerifyTosAcceptedOrPrompt(cliCtx); err != nil { - return err - } return features.ConfigureBeaconChain(cliCtx) }, Action: func(cliCtx *cli.Context) error { diff --git a/cmd/validator/web/BUILD.bazel b/cmd/validator/web/BUILD.bazel index bc99fe153..4e0c2df09 100644 --- a/cmd/validator/web/BUILD.bazel +++ b/cmd/validator/web/BUILD.bazel @@ -12,7 +12,6 @@ go_library( "//cmd:go_default_library", "//cmd/validator/flags:go_default_library", "//config/features:go_default_library", - "//runtime/tos:go_default_library", "//validator/rpc:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_urfave_cli_v2//:go_default_library", diff --git a/cmd/validator/web/web.go b/cmd/validator/web/web.go index f36544c82..4bd1da37d 100644 --- a/cmd/validator/web/web.go +++ b/cmd/validator/web/web.go @@ -6,7 +6,6 @@ import ( "github.com/prysmaticlabs/prysm/v5/cmd" "github.com/prysmaticlabs/prysm/v5/cmd/validator/flags" "github.com/prysmaticlabs/prysm/v5/config/features" - "github.com/prysmaticlabs/prysm/v5/runtime/tos" "github.com/prysmaticlabs/prysm/v5/validator/rpc" "github.com/urfave/cli/v2" ) @@ -24,13 +23,9 @@ var Commands = &cli.Command{ flags.WalletDirFlag, flags.GRPCGatewayHost, flags.GRPCGatewayPort, - cmd.AcceptTosFlag, }), Before: func(cliCtx *cli.Context) error { - if err := cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags); err != nil { - return err - } - return tos.VerifyTosAcceptedOrPrompt(cliCtx) + return cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags) }, Action: func(cliCtx *cli.Context) error { if err := features.ConfigureValidator(cliCtx); err != nil { diff --git a/runtime/tos/BUILD.bazel b/runtime/tos/BUILD.bazel deleted file mode 100644 index d8935ed02..000000000 --- a/runtime/tos/BUILD.bazel +++ /dev/null @@ -1,29 +0,0 @@ -load("@prysm//tools/go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["tos.go"], - importpath = "github.com/prysmaticlabs/prysm/v5/runtime/tos", - visibility = ["//visibility:public"], - deps = [ - "//cmd:go_default_library", - "//io/file:go_default_library", - "//io/prompt:go_default_library", - "@com_github_logrusorgru_aurora//:go_default_library", - "@com_github_pkg_errors//:go_default_library", - "@com_github_sirupsen_logrus//:go_default_library", - "@com_github_urfave_cli_v2//:go_default_library", - ], -) - -go_test( - name = "go_default_test", - size = "small", - srcs = ["tos_test.go"], - embed = [":go_default_library"], - deps = [ - "//cmd:go_default_library", - "//testing/require:go_default_library", - "@com_github_urfave_cli_v2//:go_default_library", - ], -) diff --git a/runtime/tos/tos.go b/runtime/tos/tos.go deleted file mode 100644 index f4727e667..000000000 --- a/runtime/tos/tos.go +++ /dev/null @@ -1,85 +0,0 @@ -package tos - -import ( - "path/filepath" - "strings" - - "github.com/pkg/errors" - - "github.com/logrusorgru/aurora" - "github.com/prysmaticlabs/prysm/v5/cmd" - "github.com/prysmaticlabs/prysm/v5/io/file" - "github.com/prysmaticlabs/prysm/v5/io/prompt" - "github.com/sirupsen/logrus" - "github.com/urfave/cli/v2" -) - -const ( - acceptTosFilename = "tosaccepted" - acceptTosPromptText = ` -Prysm Terms of Use - -By downloading, accessing or using the Prysm implementation (“Prysm”), you (referenced herein -as “you” or the “user”) certify that you have read and agreed to the terms and conditions below. - -TERMS AND CONDITIONS: https://github.com/prysmaticlabs/prysm/blob/develop/TERMS_OF_SERVICE.md - - -Type "accept" to accept this terms and conditions [accept/decline]:` - acceptTosPromptErrText = `could not scan text input, if you are trying to run in non-interactive environment, you -can use the --accept-terms-of-use flag after reading the terms and conditions here: -https://github.com/prysmaticlabs/prysm/blob/develop/TERMS_OF_SERVICE.md` -) - -var ( - au = aurora.NewAurora(true) - log = logrus.WithField("prefix", "tos") -) - -// VerifyTosAcceptedOrPrompt checks if Tos was accepted before or asks to accept. -func VerifyTosAcceptedOrPrompt(ctx *cli.Context) error { - acceptTosFilePath := filepath.Join(ctx.String(cmd.DataDirFlag.Name), acceptTosFilename) - exists, err := file.Exists(acceptTosFilePath, file.Regular) - if err != nil { - return errors.Wrapf(err, "could not check if file exists: %s", acceptTosFilePath) - } - - if exists { - return nil - } - - if ctx.Bool(cmd.AcceptTosFlag.Name) { - saveTosAccepted(ctx) - return nil - } - - input, err := prompt.DefaultPrompt(au.Bold(acceptTosPromptText).String(), "decline") - if err != nil { - return errors.New(acceptTosPromptErrText) - } - - if !strings.EqualFold(input, "accept") { - return errors.New("you have to accept Terms and Conditions in order to continue") - } - - saveTosAccepted(ctx) - return nil -} - -// saveTosAccepted creates a file when Tos accepted. -func saveTosAccepted(ctx *cli.Context) { - dataDir := ctx.String(cmd.DataDirFlag.Name) - dataDirExists, err := file.HasDir(dataDir) - if err != nil { - log.WithError(err).Warnf("error checking directory: %s", dataDir) - } - if !dataDirExists { - if err := file.MkdirAll(dataDir); err != nil { - log.WithError(err).Warnf("error creating directory: %s", dataDir) - } - } - if err := file.WriteFile(filepath.Join(dataDir, acceptTosFilename), []byte("")); err != nil { - log.WithError(err).Warnf("error writing %s to file: %s", cmd.AcceptTosFlag.Name, - filepath.Join(dataDir, acceptTosFilename)) - } -} diff --git a/runtime/tos/tos_test.go b/runtime/tos/tos_test.go deleted file mode 100644 index 3a564c7eb..000000000 --- a/runtime/tos/tos_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package tos - -import ( - "flag" - "os" - "path/filepath" - "testing" - - "github.com/prysmaticlabs/prysm/v5/cmd" - "github.com/prysmaticlabs/prysm/v5/testing/require" - "github.com/urfave/cli/v2" -) - -func TestVerifyTosAcceptedOrPrompt(t *testing.T) { - app := cli.App{} - set := flag.NewFlagSet("test", 0) - set.String(cmd.DataDirFlag.Name, "./tmpdir/", "") - context := cli.NewContext(&app, set, nil) - - // replacing stdin - tmpfile, err := os.CreateTemp("", "tmp") - require.NoError(t, err) - origStdin := os.Stdin - os.Stdin = tmpfile - defer func() { os.Stdin = origStdin }() - - // userprompt decline - _, err = tmpfile.Write([]byte("decline")) - require.NoError(t, err) - _, err = tmpfile.Seek(0, 0) - require.NoError(t, err) - require.ErrorContains(t, "you have to accept Terms and Conditions", VerifyTosAcceptedOrPrompt(context)) - - // userprompt accept - err = tmpfile.Truncate(0) - require.NoError(t, err) - _, err = tmpfile.Seek(0, 0) - require.NoError(t, err) - _, err = tmpfile.Write([]byte("accept")) - require.NoError(t, err) - _, err = tmpfile.Seek(0, 0) - require.NoError(t, err) - require.NoError(t, VerifyTosAcceptedOrPrompt(context)) - require.NoError(t, os.Remove(filepath.Join(context.String(cmd.DataDirFlag.Name), acceptTosFilename))) - - require.NoError(t, tmpfile.Close()) - require.NoError(t, os.Remove(tmpfile.Name())) - - // saved in file - require.NoError(t, os.WriteFile(filepath.Join(context.String(cmd.DataDirFlag.Name), acceptTosFilename), []byte(""), 0666)) - require.NoError(t, VerifyTosAcceptedOrPrompt(context)) - require.NoError(t, os.RemoveAll(context.String(cmd.DataDirFlag.Name))) - - // flag is set - set.Bool(cmd.AcceptTosFlag.Name, true, "") - require.NoError(t, VerifyTosAcceptedOrPrompt(context)) - require.NoError(t, os.RemoveAll(context.String(cmd.DataDirFlag.Name))) -} diff --git a/testing/endtoend/components/beacon_node.go b/testing/endtoend/components/beacon_node.go index 5eb927311..19eb98a13 100644 --- a/testing/endtoend/components/beacon_node.go +++ b/testing/endtoend/components/beacon_node.go @@ -273,7 +273,6 @@ func (node *BeaconNode) Start(ctx context.Context) error { "--" + cmdshared.ValidatorMonitorIndicesFlag.Name + "=1", "--" + cmdshared.ValidatorMonitorIndicesFlag.Name + "=2", "--" + cmdshared.ForceClearDB.Name, - "--" + cmdshared.AcceptTosFlag.Name, "--" + flags.EnableDebugRPCEndpoints.Name, } if config.UsePprof { diff --git a/testing/endtoend/components/validator.go b/testing/endtoend/components/validator.go index c57b18eb2..eee1288a0 100644 --- a/testing/endtoend/components/validator.go +++ b/testing/endtoend/components/validator.go @@ -234,7 +234,6 @@ func (v *ValidatorNode) Start(ctx context.Context) error { fmt.Sprintf("--%s=%s", flags.ProposerSettingsFlag.Name, proposerSettingsPathPath), fmt.Sprintf("--%s=%s", cmdshared.ChainConfigFileFlag.Name, cfgPath), "--" + cmdshared.ForceClearDB.Name, - "--" + cmdshared.AcceptTosFlag.Name, } if v.config.UseBeaconRestApi {