74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
|
|
{
|
|||
|
|
lib,
|
|||
|
|
buildGoModule,
|
|||
|
|
fetchFromGitHub,
|
|||
|
|
nix-update-script,
|
|||
|
|
}:
|
|||
|
|
|
|||
|
|
let
|
|||
|
|
pname = "erigon";
|
|||
|
|
version = "3.0.4";
|
|||
|
|
in
|
|||
|
|
buildGoModule {
|
|||
|
|
inherit pname version;
|
|||
|
|
|
|||
|
|
src = fetchFromGitHub {
|
|||
|
|
owner = "ledgerwatch";
|
|||
|
|
repo = "erigon";
|
|||
|
|
tag = "v${version}";
|
|||
|
|
hash = "sha256-MQpHRlKxWCBD2Tj9isxMKwvYBy9HtDkQPyKPse8uB3g=";
|
|||
|
|
fetchSubmodules = true;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
vendorHash = "sha256-ocnq97cMsiMgDTZhwZ/fiGzaHiSAiJckPwWZu2q3f58=";
|
|||
|
|
proxyVendor = true;
|
|||
|
|
|
|||
|
|
# Build errors in mdbx when format hardening is enabled:
|
|||
|
|
# cc1: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]
|
|||
|
|
hardeningDisable = [ "format" ];
|
|||
|
|
|
|||
|
|
# Fix error: 'Caught SIGILL in blst_cgo_init'
|
|||
|
|
# https://github.com/bnb-chain/bsc/issues/1521
|
|||
|
|
CGO_CFLAGS = "-O -D__BLST_PORTABLE__";
|
|||
|
|
CGO_CFLAGS_ALLOW = "-O -D__BLST_PORTABLE__";
|
|||
|
|
|
|||
|
|
subPackages = [
|
|||
|
|
"cmd/erigon"
|
|||
|
|
"cmd/evm"
|
|||
|
|
"cmd/rpcdaemon"
|
|||
|
|
"cmd/rlpdump"
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
# Matches the tags to upstream's release build configuration
|
|||
|
|
# https://github.com/ledgerwatch/erigon/blob/0c0dbe5f3a81cf8f16da8e4838312ab80ebe5302/.goreleaser.yml
|
|||
|
|
#
|
|||
|
|
# Enabling silkworm also breaks the build as it requires dynamically linked libraries.
|
|||
|
|
# If we need it in the future, we should consider packaging silkworm and silkworm-go
|
|||
|
|
# as depenedencies explicitly.
|
|||
|
|
tags = [
|
|||
|
|
"nosqlite"
|
|||
|
|
"noboltdb"
|
|||
|
|
"nosilkworm"
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
passthru.updateScript = nix-update-script {
|
|||
|
|
extraArgs = [
|
|||
|
|
# avoid testing‐releases
|
|||
|
|
"--version-regex"
|
|||
|
|
"^(\\d+\\.\\d+\\.\\d+)$"
|
|||
|
|
];
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
meta = with lib; {
|
|||
|
|
homepage = "https://github.com/ledgerwatch/erigon/";
|
|||
|
|
description = "Ethereum node implementation focused on scalability and modularity";
|
|||
|
|
license = with licenses; [
|
|||
|
|
lgpl3Plus
|
|||
|
|
gpl3Plus
|
|||
|
|
];
|
|||
|
|
maintainers = with maintainers; [
|
|||
|
|
happysalada
|
|||
|
|
];
|
|||
|
|
};
|
|||
|
|
}
|