From 59e3addfebc751fa3f9843dda1a831591bb86c3f Mon Sep 17 00:00:00 2001 From: Alex Wied Date: Mon, 29 Aug 2022 17:34:33 -0400 Subject: lighthouse: init at 3.1.2 --- .../blockchains/lighthouse/default.nix | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 pkgs/applications/blockchains/lighthouse/default.nix (limited to 'pkgs/applications/blockchains') diff --git a/pkgs/applications/blockchains/lighthouse/default.nix b/pkgs/applications/blockchains/lighthouse/default.nix new file mode 100644 index 0000000000000..fc95295d3d9e6 --- /dev/null +++ b/pkgs/applications/blockchains/lighthouse/default.nix @@ -0,0 +1,103 @@ +{ clang +, cmake +, fetchFromGitHub +, fetchurl +, lib +, lighthouse +, llvmPackages +, nodePackages +, perl +, protobuf +, rustPlatform +, Security +, stdenv +, testers +, unzip +}: + +rustPlatform.buildRustPackage rec { + pname = "lighthouse"; + version = "3.1.2"; + + # lighthouse/common/deposit_contract/build.rs + depositContractSpecVersion = "0.12.1"; + testnetDepositContractSpecVersion = "0.9.2.1"; + + src = fetchFromGitHub { + owner = "sigp"; + repo = "lighthouse"; + rev = "v${version}"; + hash = "sha256-EJFg6ZjxxijxJNMwKRh0cYeqwujUV3OJgXBvBRsnbVI="; + }; + + cargoHash = "sha256-iXqRtBqvM9URQsL8qGmpr3CNX2fpbtDOaluibAX/lWo="; + + buildFeatures = [ "modern" "gnosis" ]; + + nativeBuildInputs = [ clang cmake perl protobuf ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + Security + ]; + + LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + + depositContractSpec = fetchurl { + url = "https://raw.githubusercontent.com/ethereum/eth2.0-specs/v${depositContractSpecVersion}/deposit_contract/contracts/validator_registration.json"; + hash = "sha256-ZslAe1wkmkg8Tua/AmmEfBmjqMVcGIiYHwi+WssEwa8="; + }; + + testnetDepositContractSpec = fetchurl { + url = "https://raw.githubusercontent.com/sigp/unsafe-eth2-deposit-contract/v${testnetDepositContractSpecVersion}/unsafe_validator_registration.json"; + hash = "sha256-aeTeHRT3QtxBRSNMCITIWmx89vGtox2OzSff8vZ+RYY="; + }; + + LIGHTHOUSE_DEPOSIT_CONTRACT_SPEC_URL = "file://${depositContractSpec}"; + LIGHTHOUSE_DEPOSIT_CONTRACT_TESTNET_URL = "file://${testnetDepositContractSpec}"; + + cargoBuildFlags = [ + "--package lighthouse" + ]; + + __darwinAllowLocalNetworking = true; + + checkFeatures = [ ]; + + # All of these tests require network access + cargoTestFlags = [ + "--workspace" + "--exclude beacon_node" + "--exclude http_api" + "--exclude beacon_chain" + "--exclude lighthouse" + "--exclude lighthouse_network" + "--exclude slashing_protection" + "--exclude web3signer_tests" + ]; + + # All of these tests require network access + checkFlags = [ + "--skip service::tests::tests::test_dht_persistence" + "--skip time::test::test_reinsertion_updates_timeout" + ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ + "--skip subnet_service::tests::sync_committee_service::same_subscription_with_lower_until_epoch" + "--skip subnet_service::tests::sync_committee_service::subscribe_and_unsubscribe" + ]; + + checkInputs = [ + nodePackages.ganache + ]; + + passthru.tests.version = testers.testVersion { + package = lighthouse; + command = "lighthouse --version"; + version = "v${lighthouse.version}"; + }; + + meta = with lib; { + description = "Ethereum consensus client in Rust"; + homepage = "https://lighthouse.sigmaprime.io/"; + license = licenses.asl20; + maintainers = with maintainers; [ centromere pmw ]; + }; +} -- cgit 1.4.1