diff --git a/flake.lock b/flake.lock index 3349a883..9f74bf6c 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ ] }, "locked": { - "lastModified": 1710156081, - "narHash": "sha256-4PMY6aumJi5dLFjBzF5O4flKXmadMNq3AGUHKYfchh0=", + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", "owner": "numtide", "repo": "devshell", - "rev": "bc68b058dc7e6d4d6befc4ec6c60082b6e844b7d", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", "type": "github" }, "original": { @@ -41,11 +41,11 @@ }, "flake-compat": { "locked": { - "lastModified": 1688025799, - "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", "owner": "nix-community", "repo": "flake-compat", - "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", "type": "github" }, "original": { @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -119,11 +119,11 @@ ] }, "locked": { - "lastModified": 1709457044, - "narHash": "sha256-1SktmSjTjC1rhJwQ+kvqUeExKogNzserFGuoGwOerHw=", + "lastModified": 1717405880, + "narHash": "sha256-qcXXOnRSl0sGKm7JknntBU4su8/342YKZvjklHsIl+Q=", "owner": "shazow", "repo": "foundry.nix", - "rev": "592e8ca2e82a2c3a8d0d4dcc7f7c5b8c3842efcd", + "rev": "708c0df1e36b5185a727a3c517a5100e46392792", "type": "github" }, "original": { @@ -165,6 +165,22 @@ } }, "nixpkgs": { + "locked": { + "lastModified": 1717179513, + "narHash": "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "63dacb46bf939521bdc93981b4cbb7ecb58427a0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-2311": { "locked": { "lastModified": 1701282334, "narHash": "sha256-MxCVrXY6v4QmfTwIysjjaX0XUhqBbxTWWB4HXtDYsdk=", @@ -182,11 +198,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1710608262, - "narHash": "sha256-Tf2zqUWgU1iofcECQ+xj7HJVtoCz6yWG/oEIDmXxwXg=", + "lastModified": 1719317636, + "narHash": "sha256-bu0xbu2Z6DDzA9LGV81yJunIti6r7tjUImeR8orAL/I=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d211b80d2944a41899a6ab24009d9729cca05e49", + "rev": "9c513fc6fb75142f6aec6b7545cb8af2236b80f5", "type": "github" }, "original": { @@ -206,6 +222,7 @@ "foundry-nix": "foundry-nix", "lib-extras": "lib-extras", "nixpkgs": "nixpkgs", + "nixpkgs-2311": "nixpkgs-2311", "nixpkgs-unstable": "nixpkgs-unstable", "systems": "systems", "treefmt-nix": "treefmt-nix" @@ -233,11 +250,11 @@ ] }, "locked": { - "lastModified": 1710278050, - "narHash": "sha256-Oc6BP7soXqb8itlHI8UKkdf3V9GeJpa1S39SR5+HJys=", + "lastModified": 1719243788, + "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "35791f76524086ab4b785a33e4abbedfda64bd22", + "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index a5755afd..748a6cac 100644 --- a/flake.nix +++ b/flake.nix @@ -8,7 +8,8 @@ inputs = { # packages - nixpkgs.url = "github:nixos/nixpkgs/23.11"; + nixpkgs.url = "github:nixos/nixpkgs/24.05"; + nixpkgs-2311.url = "github:nixos/nixpkgs/23.11"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; foundry-nix = { @@ -80,6 +81,7 @@ config, pkgs, pkgsUnstable, + pkgs2311, system, self', ... @@ -94,6 +96,10 @@ inherit system; nixpkgs = inputs.nixpkgs-unstable; }; + pkgs2311 = lib.extras.nix.mkNixpkgs { + inherit system; + nixpkgs = inputs.nixpkgs-2311; + }; }; # devshell diff --git a/modules/backup/lib.nix b/modules/backup/lib.nix index 3f4b4868..d308ee00 100644 --- a/modules/backup/lib.nix +++ b/modules/backup/lib.nix @@ -1,20 +1,20 @@ lib: { options = with lib; { - enable = mkEnableOption (mdDoc "Enable backup"); + enable = mkEnableOption "Enable backup"; btrfs = { - enable = mkEnableOption (mdDoc "Enable btrfs snapshots for the state directory, if supported by the underlying filesystem"); + enable = mkEnableOption "Enable btrfs snapshots for the state directory, if supported by the underlying filesystem"; snapshotRetention = mkOption { type = types.int; - description = mdDoc "Number of days to retain snapshots"; + description = "Number of days to retain snapshots"; default = 7; example = "10"; }; snapshotDirectory = mkOption { type = types.path; - description = mdDoc '' + description = '' Directory in which to create the btrfs snapshots. Must be located on the same volume as the state directory ''; default = "/snapshots"; @@ -23,13 +23,13 @@ lib: { metadata.interval = mkOption { type = types.ints.between 1 60; - description = mdDoc "Time interval in seconds between capturing backup metadata"; + description = "Time interval in seconds between capturing backup metadata"; default = 10; }; schedule = mkOption { type = types.str; - description = mdDoc "Schedule for creating a backup. Format is the same as systemd.time"; + description = "Schedule for creating a backup. Format is the same as systemd.time"; default = "hourly"; example = "daily"; }; diff --git a/modules/backup/restic.nix b/modules/backup/restic.nix index 7582f783..43a00958 100644 --- a/modules/backup/restic.nix +++ b/modules/backup/restic.nix @@ -3,7 +3,7 @@ lib: with lib; { passwordFile = mkOption { type = types.str; - description = lib.mdDoc '' + description = '' Read the repository password from a file. ''; example = "/etc/nixos/restic-password"; @@ -12,7 +12,7 @@ with lib; { environmentFile = mkOption { type = with types; nullOr str; default = null; - description = lib.mdDoc '' + description = '' file containing the credentials to access the repository, in the format of an EnvironmentFile as described by systemd.exec(5) ''; @@ -21,7 +21,7 @@ with lib; { rcloneOptions = mkOption { type = with types; nullOr (attrsOf (oneOf [str bool])); default = null; - description = lib.mdDoc '' + description = '' Options to pass to rclone to control its behavior. See for available options. When specifying option names, strip the @@ -38,7 +38,7 @@ with lib; { rcloneConfig = mkOption { type = with types; nullOr (attrsOf (oneOf [str bool])); default = null; - description = lib.mdDoc '' + description = '' Configuration for the rclone remote being used for backup. See the remote's specific options under rclone's docs at . When specifying @@ -62,7 +62,7 @@ with lib; { rcloneConfigFile = mkOption { type = with types; nullOr path; default = null; - description = lib.mdDoc '' + description = '' Path to the file containing rclone configuration. This file must contain configuration for the remote specified in this backup set and also must be readable by root. Options set in @@ -74,7 +74,7 @@ with lib; { repository = mkOption { type = with types; nullOr str; default = null; - description = lib.mdDoc '' + description = '' repository to backup to. ''; example = "sftp:backup@192.168.1.100:/backups/my-bucket"; @@ -83,7 +83,7 @@ with lib; { repositoryFile = mkOption { type = with types; nullOr path; default = null; - description = lib.mdDoc '' + description = '' Path to the file containing the repository location to backup to. ''; }; @@ -95,7 +95,7 @@ with lib; { "keystore" "**/nodekey" ]; - description = lib.mdDoc '' + description = '' Patterns to exclude when backing up. See https://restic.readthedocs.io/en/latest/040_backup.html#excluding-files for details on syntax. @@ -110,7 +110,7 @@ with lib; { extraOptions = mkOption { type = types.listOf types.str; default = []; - description = lib.mdDoc '' + description = '' Extra extended options to be passed to the restic --option flag. ''; example = [ diff --git a/modules/erigon/args.nix b/modules/erigon/args.nix index 392a3373..c29198ae 100644 --- a/modules/erigon/args.nix +++ b/modules/erigon/args.nix @@ -3,24 +3,24 @@ with lib; { datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for Erigon. Defaults to '%S/erigon-\', which generally resolves to /var/lib/erigon-\."; + description = "Data directory for Erigon. Defaults to '%S/erigon-\', which generally resolves to /var/lib/erigon-\."; }; port = mkOption { type = types.port; default = 30303; - description = mdDoc "Network listening port."; + description = "Network listening port."; }; snapshots = mkOption { type = types.bool; default = true; - description = mdDoc '' + description = '' Default: use snapshots "true" for BSC, Mainnet and Goerli. use snapshots "false" in all other cases. ''; }; - externalcl = mkEnableOption (mdDoc "enables external consensus"); + externalcl = mkEnableOption "enables external consensus"; chain = mkOption { type = types.enum [ @@ -38,14 +38,14 @@ with lib; { "chiado" ]; default = "mainnet"; - description = mdDoc "Name of the network to join. If null the network is mainnet."; + description = "Name of the network to join. If null the network is mainnet."; }; torrent = { port = mkOption { type = types.port; default = 42069; - description = mdDoc "Port to listen and serve BitTorrent protocol ."; + description = "Port to listen and serve BitTorrent protocol ."; }; }; @@ -53,34 +53,34 @@ with lib; { enable = mkOption { type = types.bool; default = true; - description = mdDoc "Enable HTTP-RPC server"; + description = "Enable HTTP-RPC server"; }; addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "HTTP-RPC server listening interface."; + description = "HTTP-RPC server listening interface."; }; port = mkOption { type = types.port; default = 8545; - description = mdDoc "HTTP-RPC server listening port."; + description = "HTTP-RPC server listening port."; }; - compression = mkEnableOption (mdDoc "Enable compression over HTTP-RPC."); + compression = mkEnableOption "Enable compression over HTTP-RPC."; corsdomain = mkOption { type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "List of domains from which to accept cross origin requests."; + description = "List of domains from which to accept cross origin requests."; example = ["*"]; }; vhosts = mkOption { type = types.listOf types.str; default = ["localhost"]; - description = mdDoc '' + description = '' Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. ''; @@ -89,11 +89,11 @@ with lib; { api = mkOption { type = types.nullOr (types.listOf types.str); - description = mdDoc "API's offered over the HTTP-RPC interface."; + description = "API's offered over the HTTP-RPC interface."; example = ["net" "eth"]; }; - trace = mkEnableOption (mdDoc "Trace HTTP requests with INFO level"); + trace = mkEnableOption "Trace HTTP requests with INFO level"; timeouts = { idle = mkOption { @@ -124,27 +124,27 @@ with lib; { }; ws = { - enable = mkEnableOption (mdDoc "Erigon WebSocket API"); - compression = mkEnableOption (mdDoc "Enable compression over HTTP-RPC."); + enable = mkEnableOption "Erigon WebSocket API"; + compression = mkEnableOption "Enable compression over HTTP-RPC."; }; authrpc = { addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "HTTP-RPC server listening interface for the Engine API."; + description = "HTTP-RPC server listening interface for the Engine API."; }; port = mkOption { type = types.port; default = 8551; - description = mdDoc "HTTP-RPC server listening port for the Engine API"; + description = "HTTP-RPC server listening port for the Engine API"; }; vhosts = mkOption { type = types.listOf types.str; default = ["localhost"]; - description = mdDoc '' + description = '' Comma separated list of virtual hostnames from which to accept Engine API requests (server enforced). Accepts '*' wildcard." ''; @@ -154,7 +154,7 @@ with lib; { jwtsecret = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Path to the token that ensures safe connection between CL and EL."; + description = "Path to the token that ensures safe connection between CL and EL."; example = "/var/run/erigon/jwtsecret"; }; @@ -190,32 +190,32 @@ with lib; { addr = mkOption { type = types.str; default = "127.0.0.1:9090"; - description = mdDoc '' + description = '' Private api network address, for example: 127.0.0.1:9090, empty string means not to start the listener. Do not expose to public network. Serves remote database interface. ''; }; ratelimit = mkOption { type = types.int; default = 31872; - description = mdDoc '' + description = '' Amount of requests server handle simultaneously - requests over this limit will wait. Increase it - if clients see 'request timeout' while server load is low - it means your 'hot data' is small or have much RAM. ''; }; }; metrics = { - enable = mkEnableOption (mdDoc "Enable metrics collection and reporting."); + enable = mkEnableOption "Enable metrics collection and reporting."; addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Enable stand-alone metrics HTTP server listening interface."; + description = "Enable stand-alone metrics HTTP server listening interface."; }; port = mkOption { type = types.port; default = 6060; - description = mdDoc "Metrics HTTP server listening port"; + description = "Metrics HTTP server listening port"; }; }; } diff --git a/modules/erigon/options.nix b/modules/erigon/options.nix index ee5eb74d..d39db100 100644 --- a/modules/erigon/options.nix +++ b/modules/erigon/options.nix @@ -7,15 +7,15 @@ erigonOpts = with lib; { options = { - enable = mkEnableOption (mdDoc "Erigon Ethereum Node."); + enable = mkEnableOption "Erigon Ethereum Node."; - subVolume = mkEnableOption (mdDoc "Use a subvolume for the state directory if the underlying filesystem supports it e.g. btrfs"); + subVolume = mkEnableOption "Use a subvolume for the state directory if the underlying filesystem supports it e.g. btrfs"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Erigon."; + description = "Additional arguments to pass to Erigon."; default = []; }; @@ -23,21 +23,21 @@ type = types.package; default = pkgs.erigon; defaultText = literalExpression "pkgs.erigon"; - description = mdDoc "Package to use as Erigon node."; + description = "Package to use as Erigon node."; }; service = { supplementaryGroups = mkOption { default = []; type = types.listOf types.str; - description = mdDoc "Additional groups for the systemd service e.g. sops-nix group for secret access"; + description = "Additional groups for the systemd service e.g. sops-nix group for secret access"; }; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; }; }; @@ -46,6 +46,6 @@ in { mkOption { type = types.attrsOf (types.submodule erigonOpts); default = {}; - description = mdDoc "Specification of one or more erigon instances."; + description = "Specification of one or more erigon instances."; }; } diff --git a/modules/geth-bootnode/args.nix b/modules/geth-bootnode/args.nix index 26228663..60c9baca 100644 --- a/modules/geth-bootnode/args.nix +++ b/modules/geth-bootnode/args.nix @@ -4,62 +4,62 @@ with lib; { # todo use regex matching type = types.str; default = ":30301"; - description = mdDoc "Listen address"; + description = "Listen address"; }; genkey = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Generate a node key"; + description = "Generate a node key"; }; nat = mkOption { # todo use regex matching type = types.str; default = "none"; - description = mdDoc "Port mapping mechanism (any|none|upnp|pmp|pmp:IP|extip:IP)"; + description = "Port mapping mechanism (any|none|upnp|pmp|pmp:IP|extip:IP)"; }; netrestrict = mkOption { # todo use regex matching type = types.nullOr types.str; default = null; - description = mdDoc "Restrict network communication to the given IP networks (CIDR masks)"; + description = "Restrict network communication to the given IP networks (CIDR masks)"; }; nodekey = mkOption { type = types.nullOr types.path; default = null; - description = mdDoc "Private key filename"; + description = "Private key filename"; }; nodekeyhex = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Private key as hex (for testing)"; + description = "Private key as hex (for testing)"; }; v5 = mkOption { type = types.nullOr types.bool; default = null; - description = mdDoc "Run a V5 topic discovery bootnode"; + description = "Run a V5 topic discovery bootnode"; }; verbosity = mkOption { type = types.ints.between 0 5; default = 3; - description = mdDoc "log verbosity (0-5)"; + description = "log verbosity (0-5)"; }; vmodule = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Log verbosity pattern"; + description = "Log verbosity pattern"; }; writeaddress = mkOption { type = types.nullOr types.bool; default = null; - description = mdDoc "Write out the node's public key and quit"; + description = "Write out the node's public key and quit"; }; } diff --git a/modules/geth-bootnode/options.nix b/modules/geth-bootnode/options.nix index 867e83a8..2a8351ce 100644 --- a/modules/geth-bootnode/options.nix +++ b/modules/geth-bootnode/options.nix @@ -7,13 +7,13 @@ bootnodeOpts = with lib; { options = with lib; rec { - enable = mkEnableOption (mdDoc "Go Ethereum Boot Node"); + enable = mkEnableOption "Go Ethereum Boot Node"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to the Go Ethereum Bootnode."; + description = "Additional arguments to pass to the Go Ethereum Bootnode."; default = []; }; @@ -21,13 +21,13 @@ type = types.package; default = pkgs.geth; defaultText = literalExpression "pkgs.geth"; - description = mdDoc "Package to use as Go Ethereum Boot node."; + description = "Package to use as Go Ethereum Boot node."; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; }; }; @@ -36,6 +36,6 @@ in { mkOption { type = types.attrsOf (types.submodule bootnodeOpts); default = {}; - description = mdDoc "Specification of one or more geth bootnode instances."; + description = "Specification of one or more geth bootnode instances."; }; } diff --git a/modules/geth/args.nix b/modules/geth/args.nix index 4ec841a1..8a0afa81 100644 --- a/modules/geth/args.nix +++ b/modules/geth/args.nix @@ -3,49 +3,49 @@ with lib; { port = mkOption { type = types.port; default = 30303; - description = mdDoc "Port number Go Ethereum will be listening on, both TCP and UDP."; + description = "Port number Go Ethereum will be listening on, both TCP and UDP."; }; http = { - enable = mkEnableOption (mdDoc "Go Ethereum HTTP API"); + enable = mkEnableOption "Go Ethereum HTTP API"; addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "HTTP-RPC server listening interface"; + description = "HTTP-RPC server listening interface"; }; port = mkOption { type = types.port; default = 8545; - description = mdDoc "Port number of Go Ethereum HTTP API."; + description = "Port number of Go Ethereum HTTP API."; }; api = mkOption { type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "API's offered over the HTTP-RPC interface"; + description = "API's offered over the HTTP-RPC interface"; example = ["net" "eth"]; }; corsdomain = mkOption { type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "List of domains from which to accept cross origin requests"; + description = "List of domains from which to accept cross origin requests"; example = ["*"]; }; rpcprefix = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths."; + description = "HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths."; example = "/"; }; vhosts = mkOption { type = types.listOf types.str; default = ["localhost"]; - description = mdDoc '' + description = '' Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. ''; @@ -54,23 +54,23 @@ with lib; { }; ws = { - enable = mkEnableOption (mdDoc "Go Ethereum WebSocket API"); + enable = mkEnableOption "Go Ethereum WebSocket API"; addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Listen address of Go Ethereum WebSocket API."; + description = "Listen address of Go Ethereum WebSocket API."; }; port = mkOption { type = types.port; default = 8546; - description = mdDoc "Port number of Go Ethereum WebSocket API."; + description = "Port number of Go Ethereum WebSocket API."; }; api = mkOption { type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "APIs to enable over WebSocket"; + description = "APIs to enable over WebSocket"; example = ["net" "eth"]; }; }; @@ -79,68 +79,68 @@ with lib; { addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Listen address of Go Ethereum Auth RPC API."; + description = "Listen address of Go Ethereum Auth RPC API."; }; port = mkOption { type = types.port; default = 8551; - description = mdDoc "Port number of Go Ethereum Auth RPC API."; + description = "Port number of Go Ethereum Auth RPC API."; }; vhosts = mkOption { type = types.listOf types.str; default = ["localhost"]; - description = mdDoc "List of virtual hostnames from which to accept requests."; + description = "List of virtual hostnames from which to accept requests."; example = ["localhost" "geth.example.org"]; }; jwtsecret = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Path to a JWT secret for authenticated RPC endpoint."; + description = "Path to a JWT secret for authenticated RPC endpoint."; example = "/var/run/geth/jwtsecret"; }; }; metrics = { - enable = mkEnableOption (mdDoc "Go Ethereum prometheus metrics"); + enable = mkEnableOption "Go Ethereum prometheus metrics"; addr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Listen address of Go Ethereum metrics service."; + description = "Listen address of Go Ethereum metrics service."; }; port = mkOption { type = types.port; default = 6060; - description = mdDoc "Port number of Go Ethereum metrics service."; + description = "Port number of Go Ethereum metrics service."; }; }; network = mkOption { type = types.nullOr (types.enum ["goerli" "holesky" "kiln" "rinkeby" "ropsten" "sepolia"]); default = null; - description = mdDoc "The network to connect to. Mainnet (null) is the default ethereum network."; + description = "The network to connect to. Mainnet (null) is the default ethereum network."; }; networkid = mkOption { type = types.int; default = 1; - description = mdDoc "The network id used for peer to peer communication"; + description = "The network id used for peer to peer communication"; }; netrestrict = mkOption { # todo use regex matching type = types.nullOr types.str; default = null; - description = mdDoc "Restrict network communication to the given IP networks (CIDR masks)"; + description = "Restrict network communication to the given IP networks (CIDR masks)"; }; verbosity = mkOption { type = types.ints.between 0 5; default = 3; - description = mdDoc "log verbosity (0-5)"; + description = "log verbosity (0-5)"; }; nodiscover = mkOption { @@ -153,30 +153,30 @@ with lib; { # todo use regex matching type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "List of bootnodes to connect to"; + description = "List of bootnodes to connect to"; }; syncmode = mkOption { type = types.enum ["snap" "fast" "full" "light"]; default = "snap"; - description = mdDoc "Blockchain sync mode."; + description = "Blockchain sync mode."; }; gcmode = mkOption { type = types.enum ["full" "archive"]; default = "full"; - description = mdDoc "Blockchain garbage collection mode."; + description = "Blockchain garbage collection mode."; }; maxpeers = mkOption { type = types.int; default = 50; - description = mdDoc "Maximum peers to connect to."; + description = "Maximum peers to connect to."; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for Geth. Defaults to '%S/geth-\', which generally resolves to /var/lib/geth-\."; + description = "Data directory for Geth. Defaults to '%S/geth-\', which generally resolves to /var/lib/geth-\."; }; } diff --git a/modules/geth/options.nix b/modules/geth/options.nix index 802ed289..e1392ae0 100644 --- a/modules/geth/options.nix +++ b/modules/geth/options.nix @@ -7,13 +7,13 @@ gethOpts = with lib; { options = rec { - enable = mkEnableOption (mdDoc "Go Ethereum Node"); + enable = mkEnableOption "Go Ethereum Node"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Go Ethereum."; + description = "Additional arguments to pass to Go Ethereum."; default = []; }; @@ -21,13 +21,13 @@ type = types.package; default = pkgs.geth; defaultText = literalExpression "pkgs.geth"; - description = mdDoc "Package to use as Go Ethereum node."; + description = "Package to use as Go Ethereum node."; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -48,6 +48,6 @@ in { mkOption { type = types.attrsOf (types.submodule gethOpts); default = {}; - description = mdDoc "Specification of one or more geth instances."; + description = "Specification of one or more geth instances."; }; } diff --git a/modules/lighthouse-beacon/args.nix b/modules/lighthouse-beacon/args.nix index de47c9cb..151c8b80 100644 --- a/modules/lighthouse-beacon/args.nix +++ b/modules/lighthouse-beacon/args.nix @@ -9,13 +9,13 @@ with lib; { type = types.nullOr (types.enum ["mainnet" "prater" "goerli" "gnosis" "chiado" "sepolia" "holesky"]); default = name; defaultText = "name"; - description = mdDoc "The network to connect to. Mainnet is the default ethereum network."; + description = "The network to connect to. Mainnet is the default ethereum network."; }; execution-endpoint = mkOption { type = types.str; default = "http://127.0.0.1:8551"; - description = lib.mdDoc '' + description = '' Listen address for the execution layer. ''; }; @@ -23,7 +23,7 @@ with lib; { execution-jwt = mkOption { type = types.str; default = null; - description = mdDoc '' + description = '' Path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP ''; @@ -33,7 +33,7 @@ with lib; { checkpoint-sync-url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' + description = '' URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --wss-checkpoint flag ''; @@ -43,7 +43,7 @@ with lib; { disable-deposit-contract-sync = mkOption { type = types.bool; default = false; - description = lib.mdDoc '' + description = '' Explicitly disables syncing of deposit logs from the execution node. This overrides any previous option that depends on it. Useful if you intend to run a non-validating beacon node. @@ -53,7 +53,7 @@ with lib; { genesis-state-url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' + description = '' URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --wss-checkpoint flag ''; @@ -63,7 +63,7 @@ with lib; { disable-quic = mkOption { type = types.bool; default = false; - description = mdDoc '' + description = '' Disables the quic transport. The node will rely solely on the TCP transport for libp2p connections. ''; @@ -72,14 +72,14 @@ with lib; { discovery-port = mkOption { type = types.port; default = 9000; - description = mdDoc "The port used by discv5."; + description = "The port used by discv5."; }; quic-port = mkOption { type = types.port; default = config.args.discovery-port + 1; defaultText = literalExpression "args.discovery-port + 1"; - description = mdDoc '' + description = '' The port used by libp2p. Will use TCP if disable-quic is set ''; @@ -89,19 +89,19 @@ with lib; { enable = mkOption { type = types.bool; default = true; - description = mdDoc "Enable Prometheus metrics exporter."; + description = "Enable Prometheus metrics exporter."; }; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host used to listen and respond with metrics for prometheus."; + description = "Host used to listen and respond with metrics for prometheus."; }; port = mkOption { type = types.port; default = 5054; - description = mdDoc "Port used to listen and respond with metrics for prometheus."; + description = "Port used to listen and respond with metrics for prometheus."; }; }; @@ -109,37 +109,37 @@ with lib; { enable = mkOption { type = types.bool; default = true; - description = mdDoc "Enable the HTTP RPC server"; + description = "Enable the HTTP RPC server"; }; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host on which the RPC server should listen."; + description = "Host on which the RPC server should listen."; }; port = mkOption { type = types.port; default = 5052; - description = mdDoc "RPC port exposed by a beacon node."; + description = "RPC port exposed by a beacon node."; }; }; disable-upnp = mkOption { type = types.bool; default = true; - description = mdDoc "Disable the UPnP configuration"; + description = "Disable the UPnP configuration"; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for the databases."; + description = "Data directory for the databases."; }; user = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "User to run the systemd service."; + description = "User to run the systemd service."; }; } diff --git a/modules/lighthouse-beacon/options.nix b/modules/lighthouse-beacon/options.nix index d85efbd6..0cc6006b 100644 --- a/modules/lighthouse-beacon/options.nix +++ b/modules/lighthouse-beacon/options.nix @@ -10,13 +10,13 @@ ... }: { options = { - enable = mkEnableOption (mdDoc "Lighthouse Ethereum Beacon Chain Node written in Rust from Sigma Prime"); + enable = mkEnableOption "Lighthouse Ethereum Beacon Chain Node written in Rust from Sigma Prime"; args = import ./args.nix {inherit lib name config;}; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Lighthouse Beacon Chain."; + description = "Additional arguments to pass to Lighthouse Beacon Chain."; default = []; }; @@ -24,13 +24,13 @@ default = pkgs.lighthouse; defaultText = literalExpression "pkgs.lighthouse"; type = types.package; - description = mdDoc "Package to use for Lighthouse binary"; + description = "Package to use for Lighthouse binary"; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -51,6 +51,6 @@ in { mkOption { type = types.attrsOf (types.submodule beaconOpts); default = {}; - description = mdDoc "Specification of one or more lighthouse beacon chain instances."; + description = "Specification of one or more lighthouse beacon chain instances."; }; } diff --git a/modules/lighthouse-validator/args.nix b/modules/lighthouse-validator/args.nix index 15458a28..544f2a8a 100644 --- a/modules/lighthouse-validator/args.nix +++ b/modules/lighthouse-validator/args.nix @@ -8,55 +8,55 @@ with lib; { type = types.nullOr (types.enum ["mainnet" "prater" "goerli" "gnosis" "chiado" "sepolia" "holesky"]); default = name; defaultText = "name"; - description = mdDoc "The network to connect to. Mainnet is the default ethereum network."; + description = "The network to connect to. Mainnet is the default ethereum network."; }; metrics = { enable = mkOption { type = types.bool; default = true; - description = mdDoc "Enable Prometheus metrics exporter."; + description = "Enable Prometheus metrics exporter."; }; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host used to listen and respond with metrics for prometheus."; + description = "Host used to listen and respond with metrics for prometheus."; }; port = mkOption { type = types.port; default = 5064; - description = mdDoc "Port used to listen and respond with metrics for prometheus."; + description = "Port used to listen and respond with metrics for prometheus."; }; }; http = { - enable = mkEnableOption (mdDoc "the HTTP REST API server"); + enable = mkEnableOption "the HTTP REST API server"; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host on which the REST API server should listen."; + description = "Host on which the REST API server should listen."; }; port = mkOption { type = types.port; default = 5062; - description = mdDoc "REST API port exposed by a beacon node."; + description = "REST API port exposed by a beacon node."; }; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for the databases."; + description = "Data directory for the databases."; }; suggested-fee-recipient = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' + description = '' Sets ALL validators' mapping to a suggested eth address to receive gas fees when proposing a block. note that this is only a suggestion when integrating with a Builder API, @@ -68,7 +68,7 @@ with lib; { beacon-nodes = mkOption { type = with types; nullOr (listOf str); default = null; - description = mdDoc '' + description = '' List of Lighthouse Beacon node HTTP APIs to connect to. When null, looks up the http address+port from the lighthouse @@ -81,12 +81,12 @@ with lib; { graffiti = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "String to include in proposed blocks"; + description = "String to include in proposed blocks"; }; user = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "User to run the systemd service."; + description = "User to run the systemd service."; }; } diff --git a/modules/lighthouse-validator/options.nix b/modules/lighthouse-validator/options.nix index ea7a295d..e4812767 100644 --- a/modules/lighthouse-validator/options.nix +++ b/modules/lighthouse-validator/options.nix @@ -6,13 +6,13 @@ with lib; let validatorOpts = {name, ...}: { options = { - enable = mkEnableOption (mdDoc "Lighthouse Ethereum Validator Client written in Rust from Sigma Prime"); + enable = mkEnableOption "Lighthouse Ethereum Validator Client written in Rust from Sigma Prime"; args = import ./args.nix {inherit lib name;}; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Lighthouse Validator Client."; + description = "Additional arguments to pass to Lighthouse Validator Client."; default = []; }; @@ -20,13 +20,13 @@ with lib; let default = pkgs.lighthouse; defaultText = literalExpression "pkgs.lighthouse"; type = types.package; - description = mdDoc "Package to use for Lighthouse binary"; + description = "Package to use for Lighthouse binary"; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -46,7 +46,7 @@ in { options.services.ethereum.lighthouse-validator = mkOption { type = types.attrsOf (types.submodule validatorOpts); default = {}; - description = mdDoc '' + description = '' Specification of one or more Lighthouse validator instances. ''; }; diff --git a/modules/mev-boost/args.nix b/modules/mev-boost/args.nix index 7b6b92c7..68e6d6aa 100644 --- a/modules/mev-boost/args.nix +++ b/modules/mev-boost/args.nix @@ -3,83 +3,83 @@ with lib; { network = mkOption { type = types.nullOr (types.enum ["mainnet" "goerli" "sepolia" "zhejiang"]); default = null; - description = mdDoc "The network to connect to. Mainnet (null) is the default ethereum network."; + description = "The network to connect to. Mainnet (null) is the default ethereum network."; }; relays = mkOption { type = types.listOf types.str; - description = mdDoc "relay urls"; + description = "relay urls"; }; relay-monitors = mkOption { type = types.nullOr (types.listOf types.str); default = null; - description = mdDoc "relay urls"; + description = "relay urls"; }; relay-check = mkOption { type = types.bool; default = false; - description = mdDoc "check relay status on startup and on the status API call"; + description = "check relay status on startup and on the status API call"; }; request-max-retries = mkOption { type = types.int; default = 5; - description = mdDoc "maximum number of retries for a relay get payload request"; + description = "maximum number of retries for a relay get payload request"; }; request-timeout-getheader = mkOption { type = types.int; default = 950; - description = mdDoc "timeout for getHeader requests to the relay [ms]"; + description = "timeout for getHeader requests to the relay [ms]"; }; request-timeout-getpayload = mkOption { type = types.int; default = 4000; - description = mdDoc "timeout for getPayload requests to the relay [ms]"; + description = "timeout for getPayload requests to the relay [ms]"; }; request-timeout-regval = mkOption { type = types.int; default = 3000; - description = mdDoc "timeout for registerValidator requests [ms]"; + description = "timeout for registerValidator requests [ms]"; }; min-bid = mkOption { type = types.nullOr types.float; default = null; - description = mdDoc "minimum bid to accept from a relay [eth]"; + description = "minimum bid to accept from a relay [eth]"; }; loglevel = mkOption { type = types.nullOr (types.enum ["trace" "debug" "info" "warn" "error" "fatal" "panic"]); default = "info"; - description = mdDoc "minimum loglevel"; + description = "minimum loglevel"; }; json = mkOption { type = types.bool; default = false; - description = mdDoc "log in JSON format instead of text"; + description = "log in JSON format instead of text"; }; log-no-version = mkOption { type = types.bool; default = false; - description = mdDoc "disables adding the version to every log entry"; + description = "disables adding the version to every log entry"; }; log-service = mkOption { type = types.bool; default = false; - description = mdDoc "add a 'service=...' tag to all log messages"; + description = "add a 'service=...' tag to all log messages"; }; addr = mkOption { type = types.str; default = "localhost:18550"; - description = mdDoc "listen-address for mev-boost server (default 'localhost:18550')"; + description = "listen-address for mev-boost server (default 'localhost:18550')"; }; } diff --git a/modules/mev-boost/options.nix b/modules/mev-boost/options.nix index fff0f90e..e554204d 100644 --- a/modules/mev-boost/options.nix +++ b/modules/mev-boost/options.nix @@ -7,13 +7,13 @@ mevBoostOpts = with lib; { options = { - enable = mkEnableOption (mdDoc "MEV-Boost from Flashbots"); + enable = mkEnableOption "MEV-Boost from Flashbots"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to MEV-Boost."; + description = "Additional arguments to pass to MEV-Boost."; default = []; }; @@ -21,7 +21,7 @@ default = pkgs.mev-boost; defaultText = literalExpression "pkgs.mev-boost"; type = types.package; - description = mdDoc "Package to use for mev-boost binary"; + description = "Package to use for mev-boost binary"; }; # mixin backup options @@ -42,6 +42,6 @@ in { mkOption { type = types.attrsOf (types.submodule mevBoostOpts); default = {}; - description = mdDoc "Specification of one or more MEV-Boost chain instances."; + description = "Specification of one or more MEV-Boost chain instances."; }; } diff --git a/modules/nethermind/args.nix b/modules/nethermind/args.nix index 498d7c22..5b19fd54 100644 --- a/modules/nethermind/args.nix +++ b/modules/nethermind/args.nix @@ -3,26 +3,26 @@ with lib; { baseDbPath = mkOption { type = types.nullOr types.path; default = null; - description = mdDoc "Configures the path of the Nethermind's database folder."; + description = "Configures the path of the Nethermind's database folder."; }; config = mkOption { type = types.nullOr types.str; default = null; example = "mainnet"; - description = mdDoc "Determines the configuration file of the network on which Nethermind will be running."; + description = "Determines the configuration file of the network on which Nethermind will be running."; }; configsDirectory = mkOption { type = types.nullOr types.path; default = null; - description = mdDoc "Changes the source directory of your configuration files."; + description = "Changes the source directory of your configuration files."; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for Nethermind. Defaults to '%S/nethermind-\', which generally resolves to /var/lib/nethermind-\."; + description = "Data directory for Nethermind. Defaults to '%S/nethermind-\', which generally resolves to /var/lib/nethermind-\."; }; log = mkOption { @@ -35,13 +35,13 @@ with lib; { "ERROR" ]; default = "INFO"; - description = mdDoc "Changes the logging level."; + description = "Changes the logging level."; }; loggerConfigSource = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Changes the path of the NLog.config file."; + description = "Changes the path of the NLog.config file."; }; modules = { @@ -50,13 +50,13 @@ with lib; { DiscoveryPort = mkOption { type = types.port; default = 30303; - description = mdDoc "UDP port number for incoming discovery connections."; + description = "UDP port number for incoming discovery connections."; }; P2PPort = mkOption { type = types.port; default = 30303; - description = mdDoc "TPC/IP port number for incoming P2P connections."; + description = "TPC/IP port number for incoming P2P connections."; }; }; @@ -65,37 +65,37 @@ with lib; { Enabled = mkOption { type = types.bool; default = true; - description = mdDoc "Defines whether the JSON RPC service is enabled on node startup."; + description = "Defines whether the JSON RPC service is enabled on node startup."; }; Port = mkOption { type = types.port; default = 8545; - description = mdDoc "Port number for JSON RPC calls."; + description = "Port number for JSON RPC calls."; }; WebSocketsPort = mkOption { type = types.port; default = 8545; - description = mdDoc "Port number for JSON RPC web sockets calls."; + description = "Port number for JSON RPC web sockets calls."; }; EngineHost = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host for JSON RPC calls."; + description = "Host for JSON RPC calls."; }; EnginePort = mkOption { type = types.port; default = 8551; - description = mdDoc "Port for Execution Engine calls."; + description = "Port for Execution Engine calls."; }; JwtSecretFile = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Path to file with hex encoded secret for jwt authentication."; + description = "Path to file with hex encoded secret for jwt authentication."; example = "/var/run/geth/jwtsecret"; }; }; @@ -105,7 +105,7 @@ with lib; { Enabled = mkOption { type = types.bool; default = true; - description = mdDoc "If 'true' then Health Check endpoints is enabled at /health."; + description = "If 'true' then Health Check endpoints is enabled at /health."; }; }; @@ -114,13 +114,13 @@ with lib; { Enabled = mkOption { type = types.bool; default = true; - description = mdDoc "If 'true',the node publishes various metrics to Prometheus Pushgateway at given interval."; + description = "If 'true',the node publishes various metrics to Prometheus Pushgateway at given interval."; }; ExposePort = mkOption { type = types.nullOr types.port; default = null; - description = mdDoc "If 'true' then Health Check endpoints is enabled at /health"; + description = "If 'true' then Health Check endpoints is enabled at /health"; }; }; }; diff --git a/modules/nethermind/options.nix b/modules/nethermind/options.nix index 78fa8a69..98bdfada 100644 --- a/modules/nethermind/options.nix +++ b/modules/nethermind/options.nix @@ -7,27 +7,27 @@ nethermindOpts = with lib; { options = { - enable = mkEnableOption (mdDoc "Nethermind Ethereum Node."); + enable = mkEnableOption "Nethermind Ethereum Node."; package = mkOption { type = types.package; default = pkgs.nethermind; defaultText = literalExpression "pkgs.nethermind"; - description = mdDoc "Package to use as Nethermind."; + description = "Package to use as Nethermind."; }; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Nethermind."; + description = "Additional arguments to pass to Nethermind."; default = []; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -48,6 +48,6 @@ in { mkOption { type = types.attrsOf (types.submodule nethermindOpts); default = {}; - description = mdDoc "Specification of one or more Nethermind instances."; + description = "Specification of one or more Nethermind instances."; }; } diff --git a/modules/nimbus-beacon/args.nix b/modules/nimbus-beacon/args.nix index df14bb1c..ab95dae7 100644 --- a/modules/nimbus-beacon/args.nix +++ b/modules/nimbus-beacon/args.nix @@ -8,13 +8,13 @@ with lib; { type = types.enum ["mainnet" "prater" "sepolia" "holesky"]; default = name; defaultText = "name"; - description = mdDoc "The Eth2 network to join"; + description = "The Eth2 network to join"; }; el = mkOption { type = types.listOf types.str; default = ["http://127.0.0.1:8551"]; - description = lib.mdDoc '' + description = '' One or more Execution Layer Engine API URLs. ''; }; @@ -22,7 +22,7 @@ with lib; { listen-address = mkOption { type = types.str; default = "0.0.0.0"; - description = lib.mdDoc '' + description = '' Listening address for the Ethereum LibP2P and Discovery v5 traffic ''; }; @@ -30,31 +30,31 @@ with lib; { tcp-port = mkOption { type = types.port; default = 9000; - description = mdDoc "The port used for LibP2P traffic."; + description = "The port used for LibP2P traffic."; }; udp-port = mkOption { type = types.port; default = 9000; - description = mdDoc "The port used for node discovery."; + description = "The port used for node discovery."; }; nat = mkOption { type = types.str; default = "any"; - description = mdDoc "Specify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip:"; + description = "Specify method to use for determining public address. Must be one of: any, none, upnp, pmp, extip:"; }; enr-auto-update = mkOption { type = types.bool; default = false; - description = mdDoc "Discovery can automatically update its ENR with the IP address and UDP port as seen by other nodes it communicates with. This option allows to enable/disable this functionality."; + description = "Discovery can automatically update its ENR with the IP address and UDP port as seen by other nodes it communicates with. This option allows to enable/disable this functionality."; }; jwt-secret = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' + description = '' A file containing the hex-encoded 256 bit secret key to be used for verifying/generating JWT tokens. ''; example = "/var/run/nimbus/jwtsecret"; @@ -63,7 +63,7 @@ with lib; { trusted-node-url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' + description = '' URL of a synced beacon node to trust in obtaining checkpoint sync data. ''; example = "https://checkpoint-sync.goerli.ethpandaops.io"; @@ -72,44 +72,44 @@ with lib; { max-peers = mkOption { type = types.str; default = "160"; - description = mdDoc "The target number of peers to connect to"; + description = "The target number of peers to connect to"; }; doppelganger-detection = mkOption { type = types.bool; default = true; - description = mdDoc "If enabled, the beacon node prudently listens for 2 epochs for attestations from a validator with the same index (a doppelganger), before sending an attestation itself. This protects against slashing (due to double-voting) but means you will miss two attestations when restarting."; + description = "If enabled, the beacon node prudently listens for 2 epochs for attestations from a validator with the same index (a doppelganger), before sending an attestation itself. This protects against slashing (due to double-voting) but means you will miss two attestations when restarting."; }; history = mkOption { type = types.nullOr (types.enum ["archive" "prune"]); default = "prune"; - description = mdDoc "Retention strategy for historical data"; + description = "Retention strategy for historical data"; }; graffiti = mkOption { type = types.str; default = ""; - description = mdDoc "The graffiti value that will appear in proposed blocks. You can use a 0x-prefixed hex encoded string to specify raw bytes."; + description = "The graffiti value that will appear in proposed blocks. You can use a 0x-prefixed hex encoded string to specify raw bytes."; }; metrics = { enable = mkOption { type = types.bool; default = true; - description = mdDoc "Enable Prometheus metrics exporter."; + description = "Enable Prometheus metrics exporter."; }; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host used to listen and respond with metrics for prometheus."; + description = "Host used to listen and respond with metrics for prometheus."; }; port = mkOption { type = types.port; default = 5054; - description = mdDoc "Port used to listen and respond with metrics for prometheus."; + description = "Port used to listen and respond with metrics for prometheus."; }; }; @@ -117,25 +117,25 @@ with lib; { enable = mkOption { type = types.bool; default = false; - description = mdDoc "Enable the REST server"; + description = "Enable the REST server"; }; address = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Listening address of the REST server"; + description = "Listening address of the REST server"; }; port = mkOption { type = types.port; default = 5052; - description = mdDoc "Port for the REST server"; + description = "Port for the REST server"; }; allow-origin = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Limit the access to the REST API to a particular hostname (for CORS-enabled clients such as browsers)."; + description = "Limit the access to the REST API to a particular hostname (for CORS-enabled clients such as browsers)."; }; }; @@ -143,41 +143,41 @@ with lib; { enable = mkOption { type = types.bool; default = false; - description = mdDoc "Enable external payload builder "; + description = "Enable external payload builder "; }; url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Payload builder URL."; + description = "Payload builder URL."; }; }; light-client-data = { serve = mkOption { type = types.bool; default = true; - description = mdDoc "Whether to serve data for enabling light clients to stay in sync with the network."; + description = "Whether to serve data for enabling light clients to stay in sync with the network."; }; import-mode = mkOption { type = types.enum ["none" "only-new" "full" "on-demand"]; default = "only-new"; - description = mdDoc "Which classes of light client data to import. Must be one of: none, only-new, full (slow startup), on-demand (may miss validator duties)."; + description = "Which classes of light client data to import. Must be one of: none, only-new, full (slow startup), on-demand (may miss validator duties)."; }; max-periods = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Maximum number of sync committee periods to retain light client data."; + description = "Maximum number of sync committee periods to retain light client data."; }; }; data-dir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for the Nimbus databases. Defaults to '%S/nimbus-beacon-\', which generally resolves to /var/lib/nimbus-beacon-\."; + description = "Data directory for the Nimbus databases. Defaults to '%S/nimbus-beacon-\', which generally resolves to /var/lib/nimbus-beacon-\."; }; user = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "User to run the systemd service."; + description = "User to run the systemd service."; }; } diff --git a/modules/nimbus-beacon/options.nix b/modules/nimbus-beacon/options.nix index 59ff3a2a..bb2256d4 100644 --- a/modules/nimbus-beacon/options.nix +++ b/modules/nimbus-beacon/options.nix @@ -10,13 +10,13 @@ ... }: { options = { - enable = mkEnableOption (mdDoc "Nimbus, Nim implementation of the Ethereum Beacon Chain"); + enable = mkEnableOption "Nimbus, Nim implementation of the Ethereum Beacon Chain"; args = import ./args.nix {inherit lib name config;}; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Nimbus Beacon Chain."; + description = "Additional arguments to pass to Nimbus Beacon Chain."; default = []; }; @@ -24,13 +24,13 @@ default = pkgs.nimbus; defaultText = literalExpression "pkgs.nimbus"; type = types.package; - description = mdDoc "Package to use for Nimbus binary"; + description = "Package to use for Nimbus binary"; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -51,6 +51,6 @@ in { mkOption { type = types.attrsOf (types.submodule beaconOpts); default = {}; - description = mdDoc "Specification of one or more Nimbus beacon chain instances."; + description = "Specification of one or more Nimbus beacon chain instances."; }; } diff --git a/modules/prysm-beacon/args.nix b/modules/prysm-beacon/args.nix index 3584597f..df97d013 100644 --- a/modules/prysm-beacon/args.nix +++ b/modules/prysm-beacon/args.nix @@ -3,117 +3,117 @@ with lib; { network = mkOption { type = types.nullOr (types.enum ["goerli" "holesky" "prater" "ropsten" "sepolia"]); default = null; - description = mdDoc "The network to connect to. Mainnet (null) is the default ethereum network."; + description = "The network to connect to. Mainnet (null) is the default ethereum network."; }; jwt-secret = mkOption { type = types.str; default = null; - description = mdDoc "Path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP"; + description = "Path to a file containing a hex-encoded string representing a 32 byte secret used for authentication with an execution node via HTTP"; example = "/var/run/prysm/jwtsecret"; }; checkpoint-sync-url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag"; + description = "URL of a synced beacon node to trust in obtaining checkpoint sync data. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag"; example = "https://goerli.checkpoint-sync.ethpandaops.io"; }; genesis-beacon-api-url = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag"; + description = "URL of a synced beacon node to trust for obtaining genesis state. As an additional safety measure, it is strongly recommended to only use this option in conjunction with --weak-subjectivity-checkpoint flag"; example = "https://goerli.checkpoint-sync.ethpandaops.io"; }; p2p-udp-port = mkOption { type = types.port; default = 12000; - description = mdDoc "The port used by discv5."; + description = "The port used by discv5."; }; p2p-tcp-port = mkOption { type = types.port; default = 13000; - description = mdDoc "The port used by libp2p."; + description = "The port used by libp2p."; }; disable-monitoring = mkOption { type = types.bool; default = false; - description = mdDoc "Disable monitoring service."; + description = "Disable monitoring service."; }; monitoring-host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host used to listen and respond with metrics for prometheus."; + description = "Host used to listen and respond with metrics for prometheus."; }; monitoring-port = mkOption { type = types.port; default = 8080; - description = mdDoc "Port used to listen and respond with metrics for prometheus."; + description = "Port used to listen and respond with metrics for prometheus."; }; disable-grpc-gateway = mkOption { type = types.bool; default = false; - description = mdDoc "Disable the gRPC gateway for JSON-HTTP requests "; + description = "Disable the gRPC gateway for JSON-HTTP requests "; }; grpc-gateway-host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "The host on which the gateway server runs on."; + description = "The host on which the gateway server runs on."; }; grpc-gateway-port = mkOption { type = types.port; default = 3500; - description = mdDoc "The port on which the gateway server runs."; + description = "The port on which the gateway server runs."; }; rpc-host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host on which the RPC server should listen."; + description = "Host on which the RPC server should listen."; }; rpc-port = mkOption { type = types.port; default = 4000; - description = mdDoc "RPC port exposed by a beacon node."; + description = "RPC port exposed by a beacon node."; }; pprof = mkOption { type = types.bool; default = false; - description = mdDoc "Enable the pprof HTTP server."; + description = "Enable the pprof HTTP server."; }; pprofaddr = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "pprof HTTP server listening interface."; + description = "pprof HTTP server listening interface."; }; pprofport = mkOption { type = types.port; default = 6060; - description = mdDoc "pprof HTTP server listening port."; + description = "pprof HTTP server listening port."; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for the databases."; + description = "Data directory for the databases."; }; user = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "User to run the systemd service."; + description = "User to run the systemd service."; }; } diff --git a/modules/prysm-beacon/options.nix b/modules/prysm-beacon/options.nix index 06f10ac7..6c875ef6 100644 --- a/modules/prysm-beacon/options.nix +++ b/modules/prysm-beacon/options.nix @@ -7,13 +7,13 @@ beaconOpts = with lib; { options = { - enable = mkEnableOption (mdDoc "Ethereum Beacon Chain Node from Prysmatic Labs"); + enable = mkEnableOption "Ethereum Beacon Chain Node from Prysmatic Labs"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Prysm Beacon Chain."; + description = "Additional arguments to pass to Prysm Beacon Chain."; default = []; }; @@ -21,13 +21,13 @@ default = pkgs.prysm; defaultText = literalExpression "pkgs.prysm"; type = types.package; - description = mdDoc "Package to use for Prysm binary"; + description = "Package to use for Prysm binary"; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -48,6 +48,6 @@ in { mkOption { type = types.attrsOf (types.submodule beaconOpts); default = {}; - description = mdDoc "Specification of one or more prysm beacon chain instances."; + description = "Specification of one or more prysm beacon chain instances."; }; } diff --git a/modules/prysm-validator/args.nix b/modules/prysm-validator/args.nix index 6bdb0164..aad8c719 100644 --- a/modules/prysm-validator/args.nix +++ b/modules/prysm-validator/args.nix @@ -3,81 +3,81 @@ with lib; { network = mkOption { type = types.nullOr (types.enum ["goerli" "holesky" "prater" "ropsten" "sepolia"]); default = null; - description = mdDoc "The network to connect to. Mainnet (null) is the default ethereum network."; + description = "The network to connect to. Mainnet (null) is the default ethereum network."; }; disable-monitoring = mkOption { type = types.bool; default = false; - description = mdDoc "Disable monitoring service."; + description = "Disable monitoring service."; }; monitoring-host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host used to listen and respond with metrics for prometheus."; + description = "Host used to listen and respond with metrics for prometheus."; }; monitoring-port = mkOption { type = types.port; default = 8081; - description = mdDoc "Port used to listen and respond with metrics for prometheus."; + description = "Port used to listen and respond with metrics for prometheus."; }; grpc-gateway-host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "The host on which the gateway server runs on."; + description = "The host on which the gateway server runs on."; }; grpc-gateway-port = mkOption { type = types.port; default = 7500; - description = mdDoc "The port on which the gateway server runs."; + description = "The port on which the gateway server runs."; }; rpc = { enable = mkOption { type = types.bool; default = false; - description = mdDoc "Enable the Enables the RPC server for the validator."; + description = "Enable the Enables the RPC server for the validator."; }; host = mkOption { type = types.str; default = "127.0.0.1"; - description = mdDoc "Host on which the RPC server should listen."; + description = "Host on which the RPC server should listen."; }; port = mkOption { type = types.port; default = 7000; - description = mdDoc "RPC port exposed by a validator client."; + description = "RPC port exposed by a validator client."; }; }; wallet-dir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Path to a wallet directory on-disk for Prysm validator accounts"; + description = "Path to a wallet directory on-disk for Prysm validator accounts"; }; datadir = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Data directory for the databases. Defaults to the default datadir for Prysm Beacon"; + description = "Data directory for the databases. Defaults to the default datadir for Prysm Beacon"; }; wallet-password-file = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "Path to a plain-text, .txt file containing your wallet password"; + description = "Path to a plain-text, .txt file containing your wallet password"; }; suggested-fee-recipient = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc '' Sets ALL validators' mapping to a suggested eth\ + description = '' Sets ALL validators' mapping to a suggested eth\ address to receive gas fees when proposing a block. note\ that this is only a suggestion when integrating with a Builder API,\ which may choose to specify a different fee recipient as payment\ @@ -87,12 +87,12 @@ with lib; { graffiti = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "String to include in proposed blocks"; + description = "String to include in proposed blocks"; }; user = mkOption { type = types.nullOr types.str; default = null; - description = mdDoc "User to run the systemd service."; + description = "User to run the systemd service."; }; } diff --git a/modules/prysm-validator/options.nix b/modules/prysm-validator/options.nix index 4aa637d1..61620b3a 100644 --- a/modules/prysm-validator/options.nix +++ b/modules/prysm-validator/options.nix @@ -7,13 +7,13 @@ validatorOpts = with lib; { options = { - enable = mkEnableOption (mdDoc "Ethereum Prysm validator client"); + enable = mkEnableOption "Ethereum Prysm validator client"; inherit args; extraArgs = mkOption { type = types.listOf types.str; - description = mdDoc "Additional arguments to pass to Prysm validator."; + description = "Additional arguments to pass to Prysm validator."; default = []; }; @@ -21,13 +21,13 @@ default = pkgs.prysm; defaultText = literalExpression "pkgs.prysm"; type = types.package; - description = mdDoc "Package to use for Prysm binary"; + description = "Package to use for Prysm binary"; }; openFirewall = mkOption { type = types.bool; default = false; - description = lib.mdDoc "Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; # mixin backup options @@ -48,6 +48,6 @@ in { mkOption { type = types.attrsOf (types.submodule validatorOpts); default = {}; - description = mdDoc "Specification of one or more prysm validator instances."; + description = "Specification of one or more prysm validator instances."; }; } diff --git a/modules/restore/lib.nix b/modules/restore/lib.nix index 36a612b3..cd2cb6c4 100644 --- a/modules/restore/lib.nix +++ b/modules/restore/lib.nix @@ -1,15 +1,15 @@ lib: { options = with lib; { - enable = mkEnableOption (mdDoc "Enable restore from snapshot"); + enable = mkEnableOption "Enable restore from snapshot"; snapshot = mkOption { type = types.str; - description = mdDoc "The id of the snapshot to restore from"; + description = "The id of the snapshot to restore from"; }; timeout = mkOption { type = types.int; - description = mdDoc "The max time to wait before timing out on startup. This value is used for TimeoutStartSec in the systemd service config."; + description = "The max time to wait before timing out on startup. This value is used for TimeoutStartSec in the systemd service config."; default = 600; example = "900"; }; diff --git a/modules/reth/options.nix b/modules/reth/options.nix index f086526d..97bc44e6 100644 --- a/modules/reth/options.nix +++ b/modules/reth/options.nix @@ -29,7 +29,7 @@ openFirewall = mkOption { type = types.bool; default = false; - description = lib."Open ports in the firewall for any enabled networking services"; + description = "Open ports in the firewall for any enabled networking services"; }; }; }; diff --git a/pkgs/default.nix b/pkgs/default.nix index 8409533a..98e07531 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -8,18 +8,22 @@ flake.overlays.default = _final: prev: let inherit (prev.stdenv.hostPlatform) system; in - self.packages.${system}; + if builtins.hasAttr system self.packages + then self.packages.${system} + else {}; perSystem = { self', pkgs, pkgsUnstable, + pkgs2311, system, ... }: let inherit (pkgs) callPackage; inherit (lib.extras.flakes) platformPkgs platformApps; callPackageUnstable = pkgsUnstable.callPackage; + callPackage2311 = pkgs2311.callPackage; in { packages = platformPkgs system rec { besu = callPackageUnstable ./besu {}; @@ -33,7 +37,7 @@ erigon = callPackage ./erigon {}; eth2-testnet-genesis = callPackage ./eth2-testnet-genesis {inherit bls;}; eth2-val-tools = callPackage ./eth2-val-tools {inherit bls mcl;}; - eth-validator-watcher = callPackage ./eth-validator-watcher {}; + eth-validator-watcher = callPackage2311 ./eth-validator-watcher {}; ethdo = callPackage ./ethdo {inherit bls mcl;}; ethereal = callPackage ./ethereal {inherit bls mcl;}; evmc = callPackage ./evmc {}; @@ -50,7 +54,6 @@ mcl = callPackage ./mcl {}; mev-boost = callPackage ./mev-boost {inherit blst;}; mev-boost-builder = callPackage ./mev-boost-builder {inherit blst;}; - mev-boost-prysm = callPackage ./mev-boost-prysm {inherit bls blst;}; mev-boost-relay = callPackage ./mev-boost-relay {inherit blst;}; mev-rs = callPackage ./mev-rs {}; nethermind = callPackageUnstable ./nethermind {}; @@ -58,11 +61,18 @@ prysm = callPackage ./prysm {inherit bls blst;}; reth = callPackageUnstable ./reth {}; rocketpool = callPackage ./rocketpool {}; - rotki-bin = callPackage ./rotki-bin {}; - sedge = callPackage ./sedge {inherit bls mcl;}; + rotki-bin = callPackage2311 ./rotki-bin {}; + sedge = callPackage2311 ./sedge { + bls = callPackage2311 ./bls {}; + mcl = callPackage2311 ./mcl {}; + }; + slither = callPackage ./slither {}; snarkjs = callPackage ./snarkjs {}; - ssvnode = callPackage ./ssvnode {inherit bls mcl;}; + ssvnode = callPackage2311 ./ssvnode { + bls = callPackage2311 ./bls {}; + mcl = callPackage2311 ./mcl {}; + }; staking-deposit-cli = callPackage ./staking-deposit-cli {}; teku = callPackage ./teku {}; tx-fuzz = callPackage ./tx-fuzz {}; @@ -105,7 +115,6 @@ geth-sealer.bin = "geth"; lighthouse.bin = "lighthouse"; mev-boost-builder.bin = "geth"; - mev-boost-prysm.bin = "beacon-chain"; mev-boost-relay.bin = "mev-boost-relay"; mev-boost.bin = "mev-boost"; mev-rs.bin = "mev"; diff --git a/pkgs/geth/default.nix b/pkgs/geth/default.nix index 631f9fce..fc3d4022 100644 --- a/pkgs/geth/default.nix +++ b/pkgs/geth/default.nix @@ -32,7 +32,7 @@ in }; proxyVendor = true; - vendorHash = "sha256-WN+3TN7opyS9mYSGbxZsDNNAAulaGqVjXNXW4JDRvvQ="; + vendorHash = "sha256-OnVHsJUDezTH1NFvDRO7lAtouSaBDRvhTbFdhloQLAs="; ldflags = ["-s" "-w"]; diff --git a/pkgs/mev-boost-prysm/default.nix b/pkgs/mev-boost-prysm/default.nix deleted file mode 100644 index b68e8a5a..00000000 --- a/pkgs/mev-boost-prysm/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - bls, - blst, - buildGo120Module, - fetchFromGitHub, - libelf, -}: -buildGo120Module rec { - pname = "prysm"; - version = "4.0.0-boost0.2.0"; - - src = fetchFromGitHub { - owner = "flashbots"; - repo = pname; - rev = "v${version}"; - hash = "sha256-HIYfFMRvfZoceeWGzkJFY1TeVT9QRbDxdtnx6HpEorc="; - }; - - vendorHash = "sha256-U9PrDKTuQ46qZqUN8Wlh34sF7Uh2WsjouHIQfPw0Ypo="; - - buildInputs = [bls blst libelf]; - - subPackages = [ - "cmd/beacon-chain" - ]; - - doCheck = false; - - meta = { - description = "Our custom Prysm fork for boost relay and builder CL. Sends payload attributes for block building on every slot to trigger building"; - homepage = "https://github.com/flashbots/prysm"; - mainProgram = "beacon-chain"; - platforms = ["x86_64-linux"]; - }; -}