about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/blockchains
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
commite0794be8a0d11e90461e5a9c85012a36b93ec976 (patch)
treeefd9cbc55ea3322867bf601c4d536758a3dd5fcc /nixpkgs/pkgs/applications/blockchains
parent3538874082ded7647b1ccec0343c7c1e882cfef3 (diff)
parent1a57d96edd156958b12782e8c8b6a374142a7248 (diff)
downloadnixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.gz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.bz2
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.lz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.xz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.zst
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.zip
Merge commit '1a57d96edd156958b12782e8c8b6a374142a7248'
Diffstat (limited to 'nixpkgs/pkgs/applications/blockchains')
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix8
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btc1.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix29
-rw-r--r--nixpkgs/pkgs/applications/blockchains/clightning.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dashpay.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dogecoin.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/exodus/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/blockchains/freicoin.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/litecoin.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch69
-rw-r--r--nixpkgs/pkgs/applications/blockchains/namecoin.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix37
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch20
-rw-r--r--nixpkgs/pkgs/applications/blockchains/pivx.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/blockchains/quorum.nix8
-rw-r--r--nixpkgs/pkgs/applications/blockchains/sumokoin.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/turbo-geth.nix29
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/zcash/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix33
33 files changed, 341 insertions, 316 deletions
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
index 1596ed2d3572..81825d3d5b02 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -1,5 +1,5 @@
 { stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, openssl, db53, boost
-, zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent
+, zlib, miniupnpc, qtbase ? null , qttools ? null, util-linux, protobuf, qrencode, libevent
 , withGui, python3, jemalloc, zeromq4 }:
 
 with stdenv.lib;
@@ -20,7 +20,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [ openssl db53 boost zlib python3 jemalloc zeromq4
-                  miniupnpc utillinux protobuf libevent ]
+                  miniupnpc util-linux protobuf libevent ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
   cmakeFlags = optionals (!withGui) [
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
index 01c1264567ce..417262f6f4d0 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-classic.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
-, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, qrencode, libevent
+, zlib, miniupnpc, qtbase ? null, qttools ? null, util-linux, protobuf, qrencode, libevent
 , withGui }:
 
 with stdenv.lib;
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ openssl db48 boost zlib
-                  miniupnpc utillinux protobuf libevent ]
+                  miniupnpc util-linux protobuf libevent ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
index 384ac880fe14..dd0132df4d94 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
@@ -9,7 +9,7 @@
 , miniupnpc
 , libevent
 , protobuf
-, utillinux
+, util-linux
 }:
 
 stdenv.mkDerivation rec {
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ openssl db5 openssl utillinux
+  buildInputs = [ openssl db5 openssl util-linux
                   protobuf boost zlib miniupnpc libevent ];
 
   configureFlags = [ "--with-incompatible-bdb"
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
index fe39b955a281..8a2b9e370f51 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
-, zlib, miniupnpc, utillinux, protobuf, qrencode, libevent, python3
+, zlib, miniupnpc, util-linux, protobuf, qrencode, libevent, python3
 , withGui, wrapQtAppsHook ? null, qtbase ? null, qttools ? null
 , Foundation, ApplicationServices, AppKit }:
 
@@ -7,19 +7,19 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
-  version = "1.8.0.0";
+  version = "1.9.0.1";
 
   src = fetchFromGitHub {
     owner = "bitcoinunlimited";
     repo = "bitcoinunlimited";
     rev = "BCHunlimited${version}";
-    sha256 = "01qi15li5x9fvhsmvx7ai5fz6yzqqd3r9yv7081h75jn0nxai49q";
+    sha256 = "018a22zbvjqky0whizmgxzscmna0sh2xqgyw02yjk8qj4yi0zp8c";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
     ++ optionals withGui [ wrapQtAppsHook qttools ];
   buildInputs = [ openssl db48 boost zlib
-                  miniupnpc utillinux protobuf libevent ]
+                  miniupnpc util-linux protobuf libevent ]
                   ++ optionals withGui [ qtbase qttools qrencode ]
                   ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
 
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
index 09dc59a051ad..80e935f2b1a8 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
@@ -11,7 +11,7 @@
 , qtbase ? null
 , qttools ? null
 , wrapQtAppsHook ? null
-, utillinux
+, util-linux
 , python3
 , qrencode
 , libevent
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     ++ optional stdenv.isDarwin hexdump
     ++ optional withGui wrapQtAppsHook;
   buildInputs = [ db48 boost zlib zeromq miniupnpc libevent ]
-    ++ optionals stdenv.isLinux [ utillinux ]
+    ++ optionals stdenv.isLinux [ util-linux ]
     ++ optionals withGui [ qtbase qttools qrencode ];
 
   postInstall = optional withGui ''
diff --git a/nixpkgs/pkgs/applications/blockchains/btc1.nix b/nixpkgs/pkgs/applications/blockchains/btc1.nix
deleted file mode 100644
index 3442c9ba807f..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/btc1.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48
-, boost, zlib, miniupnpc, qt4, protobuf, qrencode, libevent
-, AppKit
-, withGui ? !stdenv.isDarwin
-}:
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
-  name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "1.15.1";
-
-  src = fetchurl {
-    url = "https://github.com/btc1/bitcoin/archive/v${version}.tar.gz";
-    sha256 = "0v0g2wb4nsnhddxzb63vj2bc1mgyj05vqm5imicjfz8prvgc0si8";
-  };
-
-  nativeBuildInputs = [ pkgconfig autoreconfHook hexdump ];
-  buildInputs = [ openssl db48 boost zlib miniupnpc protobuf libevent ]
-    ++ optionals withGui [ qt4 qrencode ]
-    ++ optional stdenv.isDarwin AppKit;
-
-  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
-                     ++ optionals withGui [ "--with-gui=qt4" ];
-
-  meta = {
-    description = "Peer-to-peer electronic cash system (btc1 client)";
-    longDescription= ''
-      Bitcoin is a free open source peer-to-peer electronic cash system that is
-      completely decentralized, without the need for a central server or trusted
-      parties. Users hold the crypto keys to their own money and transact directly
-      with each other, with the help of a P2P network to check for double-spending.
-
-      btc1 is an implementation of a Bitcoin full node with segwit2x hard fork
-      support.
-    '';
-    homepage = "https://github.com/btc1/bitcoin";
-    license = licenses.mit;
-    maintainers = with maintainers; [ sorpaas ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
index eec39e691a88..3958a44cdafe 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -15,19 +15,17 @@ in
 
 stdenv.mkDerivation rec {
   pname = "btcpayserver";
-  version = "1.0.5.5";
+  version = "1.0.5.9";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "11h1nrmb7f44msbhhiz9ddqh5ss2kz6d8ysnvd070x3xj5krgnxz";
+    sha256 = "011pp94i49fx587ng16m6ml63vwiysjvpkijihrk6xamz78zddgx";
   };
 
-  nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget ];
+  nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
 
-  # Due to a bug in btcpayserver, we can't just `dotnet publish` to create a binary.
-  # Build with `dotnet build` instead and add a custom `dotnet run` script.
   buildPhase = ''
     export HOME=$TMP/home
     export DOTNET_CLI_TELEMETRY_OPTOUT=1
@@ -37,21 +35,15 @@ stdenv.mkDerivation rec {
     nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
 
     dotnet restore --source $TMP/nuget BTCPayServer/BTCPayServer.csproj
-    dotnet build -c Release BTCPayServer/BTCPayServer.csproj
-  '';
-
-  runScript =  ''
-    #!${bash}/bin/bash
-    DOTNET_CLI_TELEMETRY_OPTOUT=1 exec ${dotnetSdk}/bin/dotnet run --no-launch-profile --no-build \
-      -c Release -p @@SHARE@@/BTCPayServer/BTCPayServer.csproj -- "$@"
+    dotnet publish --no-restore --output $out/share/$pname -c Release BTCPayServer/BTCPayServer.csproj
   '';
 
+  # btcpayserver requires the publish directory as its working dir
+  # https://github.com/btcpayserver/btcpayserver/issues/1894
   installPhase = ''
-    cd ..
-    share=$out/share/$pname
-    mkdir -p $share
-    mv -T source $share
-    install -D -m500 <(echo "$runScript" | sed "s|@@SHARE@@|$share|") $out/bin/$pname
+    makeWrapper $out/share/$pname/BTCPayServer $out/bin/$pname \
+      --set DOTNET_ROOT "${dotnetSdk}" \
+      --run "cd $out/share/$pname"
   '';
 
   dontStrip = true;
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
index cb0641b8c852..5ee5e2612115 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -21,8 +21,8 @@
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.All";
-    version = "1.2.3";
-    sha256 = "1vx47rb505904pz30n5jzc9x42pcfln695l31q4dv5p4fbf10g4q";
+    version = "1.2.4";
+    sha256 = "1f4wgs8ijk1wmppz5lmas7l6m83szz57jyk6ak0dxhccdld9rdaj";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Charge";
@@ -31,8 +31,8 @@
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.CLightning";
-    version = "1.2.0";
-    sha256 = "0a47fz20ngcz90h2y01isi2h940jljcmnfy6wyknj029sii7i1zs";
+    version = "1.2.1";
+    sha256 = "14km69jzmnyqg19w27g6znml4z0xkm8l4j7rj0x36bw67cjmgahv";
   })
   (fetchNuGet {
     name = "BTCPayServer.Lightning.Common";
@@ -706,8 +706,8 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.16";
-    sha256 = "0fsdb96k5lwyq4d7h7yg91qghima08yk0bsw5cvr4h2jsfphk423";
+    version = "2.0.21";
+    sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
   })
   (fetchNuGet {
     name = "NBitcoin";
@@ -726,13 +726,8 @@
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.45";
-    sha256 = "102vwxwkg367yxv26hycnc7hjxlv2zvsgr8g6adw8dmzsxck5fwk";
-  })
-  (fetchNuGet {
-    name = "NBitcoin";
-    version = "5.0.51";
-    sha256 = "0rg014sl7rqscnranwyfk41xfr5ccjqyx7aidfl5mh0znz44db2g";
+    version = "5.0.60";
+    sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
   })
   (fetchNuGet {
     name = "NBitpayClient";
@@ -741,8 +736,8 @@
   })
   (fetchNuGet {
     name = "NBXplorer.Client";
-    version = "3.0.17";
-    sha256 = "0xx2xshgpci9l9883zpqnmgchpizygy0hcq2wp2ch6yf3hbrj9qq";
+    version = "3.0.19";
+    sha256 = "0nahfxdsryf5snjy87770m51v2jcry02lmb10ilsg4h2ig4pjdk4";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -956,8 +951,8 @@
   })
   (fetchNuGet {
     name = "Selenium.WebDriver.ChromeDriver";
-    version = "83.0.4103.3900";
-    sha256 = "17j9b637209nm5cs5sgr3vflphkhaxpm8bcjizhgj65r52gn17as";
+    version = "85.0.4183.8700";
+    sha256 = "0klyqmwa6yc0ibbmci51mzb2vl6n13qlk06chc9w78i0a43fs382";
   })
   (fetchNuGet {
     name = "Selenium.WebDriver";
diff --git a/nixpkgs/pkgs/applications/blockchains/clightning.nix b/nixpkgs/pkgs/applications/blockchains/clightning.nix
index 2467d3099220..b17876325d5e 100644
--- a/nixpkgs/pkgs/applications/blockchains/clightning.nix
+++ b/nixpkgs/pkgs/applications/blockchains/clightning.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "4923e2fa001cfc2403d1bed368710499d5def322e6384b8eea2bd39d3351a417";
+    sha256 = "022fw6rbn0chg0432h9q05w8qnys0hd9hf1qm2qlnnmamxw4dyfy";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/blockchains/dashpay.nix b/nixpkgs/pkgs/applications/blockchains/dashpay.nix
index 7bdf93b2dacc..b55dd3b5b78d 100644
--- a/nixpkgs/pkgs/applications/blockchains/dashpay.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dashpay.nix
@@ -1,7 +1,7 @@
 { fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
 , openssl, db48, boost, zlib, miniupnpc
 , qrencode, glib, protobuf, yasm, libevent
-, utillinux
+, util-linux
 , enable_Upnp ? false
 , disable_Wallet ? false
 , disable_Daemon ? false }:
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ glib openssl db48 yasm boost zlib libevent
-                  miniupnpc protobuf qrencode utillinux ];
+                  miniupnpc protobuf qrencode util-linux ];
 
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib --with-gui=no" ]
diff --git a/nixpkgs/pkgs/applications/blockchains/dogecoin.nix b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
index 27a1f6132f05..527b307042c3 100644
--- a/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
@@ -1,7 +1,7 @@
 { stdenv , fetchFromGitHub
 , pkgconfig, autoreconfHook
 , db5, openssl, boost, zlib, miniupnpc, libevent
-, protobuf, utillinux, qt4, qrencode
+, protobuf, util-linux, qt4, qrencode
 , withGui }:
 
 with stdenv.lib;
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ openssl db5 openssl utillinux
+  buildInputs = [ openssl db5 openssl util-linux
                   protobuf boost zlib miniupnpc libevent ]
                   ++ optionals withGui [ qt4 qrencode ];
 
diff --git a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
index a61df3e91bd1..6b686d0b2d6c 100644
--- a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "3.3.3";
+  version = "3.3.6";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1lsqshpbc5p5qm8kic8a90xmvd2zx2s7jf613j9ng4h3hh75wbff";
+    sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index af49bb9121f6..3992c7824851 100644
--- a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, gnome2,
-atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, utillinux, alsaLib, dbus, at-spi2-atk,
+{ stdenv, lib, fetchurl, unzip, glib, systemd, nss, nspr, gtk3-x11, pango,
+atk, cairo, gdk-pixbuf, xorg, xorg_sys_opengl, util-linux, alsaLib, dbus, at-spi2-atk,
 cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core }:
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "20.8.28";
+  version = "20.12.4";
 
   src = fetchurl {
     url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
-    sha256 = "fde9165f71f0d641f6892ddce3ec26d200e8095a383f2b4c8f924de4041d65ef";
+    sha256 = "1j1iqmcbwfj72l7g83ah701bipas9cqwazyhh0af5hp2ckj9nmmf";
   };
 
   sourceRoot = ".";
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       nss
       nspr
       gtk3-x11
-      gnome2.pango
+      pango
       atk
       cairo
       gdk-pixbuf
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
       xorg.libXrender
       xorg.libXtst
       xorg_sys_opengl
-      utillinux
+      util-linux
       xorg.libXrandr
       xorg.libXScrnSaver
       alsaLib
diff --git a/nixpkgs/pkgs/applications/blockchains/freicoin.nix b/nixpkgs/pkgs/applications/blockchains/freicoin.nix
deleted file mode 100644
index cc28fff96c47..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/freicoin.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }:
-
-stdenv.mkDerivation rec {
-  version = "0.8.6-2";
-  pname = "freicoin";
-
-  src = fetchFromGitHub {
-    owner = "freicoin";
-    repo = "freicoin";
-    rev = "v${version}";
-    sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
-  };
-
-  enableParallelBuilding = false;
-
-  qmakeFlags = ["USE_UPNP=-"];
-
-  # I think that openssl and zlib are required, but come through other
-  # packages
-
-  preBuild = "unset AR";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp freicoin-qt $out/bin
-  '';
-
-  nativeBuildInputs = [ qmake4Hook ];
-  buildInputs = [ db boost gmp mpfr qt4 ];
-
-  meta = with stdenv.lib; {
-    description = "Peer-to-peer currency with demurrage fee";
-    homepage = "http://freicoi.in/";
-    license = licenses.mit;
-    maintainers = [ maintainers.viric ];
-    platforms = platforms.linux;
-
-    # upstream doesn't support newer openssl versions, use 1.0.1 for testing
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
index 6952d469adbd..24f58a6c2c34 100644
--- a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.9.21";
+  version = "1.9.25";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mr5pw08jka11lzgl28555nb90cqxx9vlqd1plfmyic6rb5z11df";
+    sha256 = "0cbgqs17agwdap4g37sb2g6mhyn7qkqbjk7kwb5jvj8nbi5n3kbd";
   };
 
   runVend = true;
-  vendorSha256 = "155hmny3543h02ryn1nnlpmvs0qvhd0lb66vmkhw5351m6gkbx7x";
+  vendorSha256 = "08wgah8gxb5bscm5ca6zkfgssnmw2y2l6k9gfw7gbxyflsx74lya";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 323b9936af56..bb2fc8933993 100644
--- a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.9.0";
+  version = "2.19.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "1ajpmsq4h37w3jzcxijg3myp3mvgbrjis6jrz1cl79m78ripb6cy";
+    sha256 = "13z4v64z58b8fxph3rgjqy1z1y2agmarfr8cihlkf0ndssicasdl";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -30,7 +30,7 @@ in appimageTools.wrapType2 rec {
     description = "Wallet app for Ledger Nano S and Ledger Blue";
     homepage = "https://www.ledger.com/live";
     license = licenses.mit;
-    maintainers = with maintainers; [ thedavidmeister nyanloutre ];
+    maintainers = with maintainers; [ thedavidmeister nyanloutre RaghavSood th0rgal ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/litecoin.nix b/nixpkgs/pkgs/applications/blockchains/litecoin.nix
index fa352652dbf9..85adbec718f3 100644
--- a/nixpkgs/pkgs/applications/blockchains/litecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/litecoin.nix
@@ -1,7 +1,7 @@
 { stdenv, mkDerivation, fetchFromGitHub
 , pkgconfig, autoreconfHook
 , openssl, db48, boost, zlib, miniupnpc
-, glib, protobuf, utillinux, qrencode
+, glib, protobuf, util-linux, qrencode
 , AppKit
 , withGui ? true, libevent
 , qtbase, qttools
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ openssl db48 boost zlib zeromq
-                  miniupnpc glib protobuf utillinux libevent ]
+                  miniupnpc glib protobuf util-linux libevent ]
                   ++ optionals stdenv.isDarwin [ AppKit ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index 6ea075e2a369..cffbdde8f003 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -1,63 +1,84 @@
 { stdenv, wrapQtAppsHook, makeDesktopItem
-, fetchFromGitHub, qmake, qttools, pkgconfig
+, fetchFromGitHub
+, cmake, qttools, pkgconfig
 , qtbase, qtdeclarative, qtgraphicaleffects
 , qtmultimedia, qtxmlpatterns
 , qtquickcontrols, qtquickcontrols2
-, monero, unbound, readline, boost, libunwind
-, libsodium, pcsclite, zeromq, libgcrypt, libgpgerror
-, hidapi, libusb-compat-0_1, protobuf, randomx
+, qtmacextras
+, monero, miniupnpc, unbound, readline
+, boost, libunwind, libsodium, pcsclite
+, randomx, zeromq, libgcrypt, libgpgerror
+, hidapi, rapidjson
+, trezorSupport ? true
+,   libusb1  ? null
+,   protobuf ? null
+,   python3  ? null
 }:
 
 with stdenv.lib;
 
+assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
+
+let
+  arch = if stdenv.isx86_64  then "x86-64"
+    else if stdenv.isi686    then "i686"
+    else if stdenv.isAarch64 then "armv8-a"
+    else throw "unsupported architecture";
+in
+
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.16.0.3";
+  version = "0.17.1.8";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "0iwjp8x5swy8i8pzrlm5v55awhm54cf48pm1vz98lcq361lhfzk6";
+    sha256 = "13cjrfdkr7c2ff8j2rg8hvhlc00af38vcs67wlx2109i2baq4pp3";
   };
 
-  nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
+  nativeBuildInputs = [
+    cmake pkgconfig wrapQtAppsHook
+    (getDev qttools)
+  ];
 
   buildInputs = [
     qtbase qtdeclarative qtgraphicaleffects
     qtmultimedia qtquickcontrols qtquickcontrols2
     qtxmlpatterns
-    monero unbound readline libgcrypt libgpgerror
-    boost libunwind libsodium pcsclite zeromq
-    hidapi libusb-compat-0_1 protobuf randomx
-  ];
+    monero miniupnpc unbound readline
+    randomx libgcrypt libgpgerror
+    boost libunwind libsodium pcsclite
+    zeromq hidapi rapidjson
+  ] ++ optionals trezorSupport [ libusb1 protobuf python3 ]
+    ++ optionals stdenv.isDarwin [ qtmacextras ];
 
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=format-security" ];
+  postUnpack = ''
+    # copy monero sources here
+    # (needs to be writable)
+    cp -r ${monero.source}/* source/monero
+    chmod -R +w source/monero
+  '';
 
   patches = [ ./move-log-file.patch ];
 
   postPatch = ''
-    echo '
-      var GUI_VERSION = "${version}";
-      var GUI_MONERO_VERSION = "${getVersion monero}";
-    ' > version.js
-    substituteInPlace monero-wallet-gui.pro \
-      --replace '$$[QT_INSTALL_BINS]/lrelease' '${getDev qttools}/bin/lrelease'
+    # set monero-gui version
+    substituteInPlace src/version.js.in \
+       --replace '@VERSION_TAG_GUI@' '${version}'
+
+    # use monerod from the monero package
     substituteInPlace src/daemon/DaemonManager.cpp \
       --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
-  '';
-
-  makeFlags = [ "INSTALL_ROOT=$(out)" ];
 
-  preBuild = ''
-    sed -i s#/opt/monero-wallet-gui##g Makefile
-    make -C src/zxcvbn-c
-
-    # use nixpkgs monero sources
-    rmdir monero
-    ln -s "${monero.src}" monero
+    # only build external deps, *not* the full monero
+    substituteInPlace CMakeLists.txt \
+      --replace 'add_subdirectory(monero)' \
+                'add_subdirectory(monero EXCLUDE_FROM_ALL)'
   '';
 
+  cmakeFlags = [ "-DARCH=${arch}" ];
+
   desktopItem = makeDesktopItem {
     name = "monero-wallet-gui";
     exec = "monero-wallet-gui";
@@ -69,15 +90,15 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # install desktop entry
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
+    install -Dm644 -t $out/share/applications \
+      ${desktopItem}/share/applications/*
 
     # install icons
     for n in 16 24 32 48 64 96 128 256; do
       size=$n"x"$n
-      mkdir -p $out/share/icons/hicolor/$size/apps
-      cp $src/images/appicons/$size.png \
-         $out/share/icons/hicolor/$size/apps/monero.png
+      install -Dm644 \
+        -t $out/share/icons/hicolor/$size/apps/monero.png \
+        $src/images/appicons/$size.png
     done;
   '';
 
@@ -86,7 +107,6 @@ stdenv.mkDerivation rec {
     homepage     = "https://getmonero.org/";
     license      = licenses.bsd3;
     platforms    = platforms.all;
-    badPlatforms = platforms.darwin;
     maintainers  = with maintainers; [ rnhmjoj ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
index f1186564119f..d45f5a2e5ca6 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -1,40 +1,62 @@
-{ stdenv, fetchFromGitHub
+{ stdenv, fetchFromGitHub, fetchpatch
 , cmake, pkgconfig
 , boost, miniupnpc, openssl, unbound
 , zeromq, pcsclite, readline, libsodium, hidapi
-, protobuf, randomx, rapidjson, libusb-compat-0_1
+, randomx, rapidjson
 , CoreData, IOKit, PCSC
+, trezorSupport ? true
+,   libusb1  ? null
+,   protobuf ? null
+,   python3  ? null
 }:
 
+with stdenv.lib;
+
 assert stdenv.isDarwin -> IOKit != null;
+assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ];
 
 stdenv.mkDerivation rec {
   pname = "monero";
-  version = "0.16.0.3";
+  version = "0.17.1.8";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33";
+    sha256 = "10blazbk1602slx3wrmw4jfgkdry55iclrhm5drdficc5v3h735g";
     fetchSubmodules = true;
   };
 
+  patches = [
+    ./use-system-libraries.patch
+  ];
+
+  postPatch = ''
+    # remove vendored libraries
+    rm -r external/{miniupnp,randomx,rapidjson,unbound}
+    # export patched source for monero-gui
+    cp -r . $source
+  '';
+
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [
     boost miniupnpc openssl unbound
     zeromq pcsclite readline
     libsodium hidapi randomx rapidjson
-    protobuf libusb-compat-0_1
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+    protobuf
+  ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ]
+    ++ optionals trezorSupport [ libusb1 protobuf python3 ];
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
     "-DUSE_DEVICE_TREZOR=ON"
     "-DBUILD_GUI_DEPS=ON"
     "-DReadline_ROOT_DIR=${readline.dev}"
-  ] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+    "-DRandomX_ROOT_DIR=${randomx}"
+  ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  outputs = [ "out" "source" ];
 
   meta = with stdenv.lib; {
     description = "Private, secure, untraceable currency";
diff --git a/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch b/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch
new file mode 100644
index 000000000000..57e2a2e9a696
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/monero/use-system-libraries.patch
@@ -0,0 +1,69 @@
+diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
+index a8916a7d0..39ec7747b 100644
+--- a/external/CMakeLists.txt
++++ b/external/CMakeLists.txt
+@@ -37,34 +37,16 @@
+ 
+ find_package(Miniupnpc REQUIRED)
+ 
+-message(STATUS "Using in-tree miniupnpc")
+-add_subdirectory(miniupnp/miniupnpc)
+-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+-if(MSVC)
+-  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
+-elseif(NOT MSVC)
+-  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
+-endif()
+-if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
+-	set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
+-endif()
+-
+-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
++set(UPNP_STATIC false PARENT_SCOPE)
++set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
++set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+ 
+ find_package(Unbound)
+ 
+ if(NOT UNBOUND_INCLUDE_DIR OR STATIC)
+-  # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered.
+-  # unbound has config tests which used OpenSSL libraries, so -ldl may need to
+-  # be set in this case.
+-  # The unbound CMakeLists.txt can set it, since it's also needed for the
+-  # static OpenSSL libraries set up there after with target_link_libraries.
+-  add_subdirectory(unbound)
+-
+-  set(UNBOUND_STATIC true PARENT_SCOPE)
+-  set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE)
+-  set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE)
+-  set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE)
++  set(UNBOUND_STATIC false PARENT_SCOPE)
++  set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
++  set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+ else()
+   message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}")
+   if(UNBOUND_LIBRARIES)
+@@ -81,4 +63,5 @@ endif()
+ add_subdirectory(db_drivers)
+ add_subdirectory(easylogging++)
+ add_subdirectory(qrcodegen)
+-add_subdirectory(randomx EXCLUDE_FROM_ALL)
++
++find_library(RANDOMX_LIBRARIES NAMES RandomX)
+diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
+index 175741146..088b582f7 100644
+--- a/src/p2p/net_node.inl
++++ b/src/p2p/net_node.inl
+@@ -60,9 +60,9 @@
+ #include "cryptonote_core/cryptonote_core.h"
+ #include "net/parse.h"
+ 
+-#include <miniupnp/miniupnpc/miniupnpc.h>
+-#include <miniupnp/miniupnpc/upnpcommands.h>
+-#include <miniupnp/miniupnpc/upnperrors.h>
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
++#include <miniupnpc/upnperrors.h>
+ 
+ #undef MONERO_DEFAULT_LOG_CATEGORY
+ #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
diff --git a/nixpkgs/pkgs/applications/blockchains/namecoin.nix b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
index 936eaa2505e1..cbce17731043 100644
--- a/nixpkgs/pkgs/applications/blockchains/namecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
     homepage = "https://namecoin.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ doublec infinisil ];
+    maintainers = with maintainers; [ infinisil ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
index 76ca21ef9aaf..45143a797e5b 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "nbxplorer";
-  version = "2.1.42";
+  version = "2.1.46";
 
   src = fetchFromGitHub {
     owner = "dgarage";
     repo = "NBXplorer";
     rev = "v${version}";
-    sha256 = "01q6n7095rrha00xs3l7igzfb9rd743z8crxa2dcz4q5srapfzpi";
+    sha256 = "1aph7yiwmch7s7x1qkzqv1shs3v6kg8i2s7266la0yp9ksf3w35p";
   };
 
   nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
index 65afa6b72c48..85d395089de1 100644
--- a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -31,8 +31,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.CodeCoverage";
-    version = "16.6.1";
-    sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+    version = "16.7.1";
+    sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
   })
   (fetchNuGet {
     name = "Microsoft.CSharp";
@@ -126,8 +126,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.NET.Test.Sdk";
-    version = "16.6.1";
-    sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+    version = "16.7.1";
+    sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
@@ -156,13 +156,13 @@
   })
   (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
-    version = "16.6.1";
-    sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+    version = "16.7.1";
+    sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
   })
   (fetchNuGet {
     name = "Microsoft.TestPlatform.TestHost";
-    version = "16.6.1";
-    sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+    version = "16.7.1";
+    sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
   })
   (fetchNuGet {
     name = "Microsoft.Win32.Primitives";
@@ -181,18 +181,23 @@
   })
   (fetchNuGet {
     name = "NBitcoin.Altcoins";
-    version = "2.0.19";
-    sha256 = "12a3bf1pi6sq78z6h3clyczvycx7cjry8fby4fyi748wjwljjizz";
+    version = "2.0.21";
+    sha256 = "0xmygiwjlia7fbxy63893jb15g6fxggxxr9bbm8znd9bs3jzp2g1";
   })
   (fetchNuGet {
     name = "NBitcoin.TestFramework";
-    version = "2.0.11";
-    sha256 = "09jrbq9p5k67kdic2038s7q299y2nc8ij6m55m3m8hys7jdrrv05";
+    version = "2.0.12";
+    sha256 = "1d6lmymc9x3p74c8hc2x3m61ncnkqqgrddw9cw2m0zkvilkncsns";
   })
   (fetchNuGet {
     name = "NBitcoin";
-    version = "5.0.54";
-    sha256 = "0mx2gr8j8bc4mf1vi1fvqj3672qalxvzvincc61if79p46cik24b";
+    version = "5.0.58";
+    sha256 = "0qim9xbbj380254iyi1jsh2gnr90ddwd2593jw9a8bjwnlk7qr2c";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.60";
+    sha256 = "0pin4ldfz5lfxyd47mj1ypyp8lmj0v5nq5zvygdjna956vphd39v";
   })
   (fetchNuGet {
     name = "NETStandard.Library";
@@ -1061,8 +1066,8 @@
   })
   (fetchNuGet {
     name = "xunit.runner.visualstudio";
-    version = "2.4.2";
-    sha256 = "0fi85h43nyrhfc5jzg07znh01r7cpb7bpjdc6mzb9z1pm14ppfm6";
+    version = "2.4.3";
+    sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3";
   })
   (fetchNuGet {
     name = "xunit";
diff --git a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
index 7d5acc62050d..563b2378f845 100644
--- a/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -5,23 +5,23 @@
 , llvmPackages
 , openssl
 , pkg-config
+, stdenv
 , systemd
+, darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "08dkcrga1x18csh6pw6f54x5xwijppyjhg46cf4p452xc1l3a6ir";
+    sha256 = "cs84Zz0nhagGDu5sDFTaFZF3SPEgJU8F4vGX7KLihOM=";
   };
 
-  cargoSha256 = "1xliragihwjfc5qmfm0ng519bw8a28m1w1yqcl9mpk8zywiybaah";
-
-  cargoPatches = [ ./lock.patch ];
+  cargoSha256 = "6suNkHw1BbISb0MkYkUaD+mpUal+kn3y1SFVqzJFqJc=";
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
@@ -31,7 +31,9 @@ rustPlatform.buildRustPackage rec {
     pkg-config
   ];
 
-  buildInputs = [ openssl systemd ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ systemd ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
 
   cargoBuildFlags = [ "--features final" ];
 
@@ -43,6 +45,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "http://parity.io/ethereum";
     license = licenses.gpl3;
     maintainers = with maintainers; [ akru xrelkd ];
-    platforms = platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch b/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch
deleted file mode 100644
index 66709480bb72..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- /nix/store/hv764a65zmfzw5scjhz5839agv10da6x-source/Cargo.lock	1969-12-31 16:00:01.000000000 -0800
-+++ ./Cargo.lock	2020-07-31 21:30:31.146750066 -0700
-@@ -3113,7 +3113,7 @@
- 
- [[package]]
- name = "openethereum"
--version = "3.0.0"
-+version = "3.0.1"
- dependencies = [
-  "ansi_term",
-  "atty",
-@@ -3562,7 +3562,7 @@
- 
- [[package]]
- name = "parity-version"
--version = "3.0.0"
-+version = "3.0.1"
- dependencies = [
-  "parity-bytes",
-  "rlp",
diff --git a/nixpkgs/pkgs/applications/blockchains/pivx.nix b/nixpkgs/pkgs/applications/blockchains/pivx.nix
index 16ea2dc43e74..6d6f881ae65f 100644
--- a/nixpkgs/pkgs/applications/blockchains/pivx.nix
+++ b/nixpkgs/pkgs/applications/blockchains/pivx.nix
@@ -1,7 +1,7 @@
 { fetchFromGitHub, stdenv, pkgconfig, autoreconfHook, wrapQtAppsHook ? null
 , openssl, db48, boost, zlib, miniupnpc, gmp
 , qrencode, glib, protobuf, yasm, libevent
-, utillinux, qtbase ? null, qttools ? null
+, util-linux, qtbase ? null, qttools ? null
 , enableUpnp ? false
 , disableWallet ? false
 , disableDaemon ? false 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
-  buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
+  buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf util-linux ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
       Zero Knowledge cryptography proofs for industry-leading transaction anonymity.
     '';
     license = licenses.mit;
-    homepage = "https://www.dash.org";
+    homepage = "https://pivx.org";
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
index a919a3054196..866adeea2780 100644
--- a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -1,37 +1,41 @@
-{ stdenv
+{ clang
 , fetchFromGitHub
+, lib
+, llvmPackages
+, protobuf
 , rustPlatform
-, pkgconfig
-, openssl
 }:
-
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.2.17";
+  version = "0.8.26-1";
 
   src = fetchFromGitHub {
     owner = "paritytech";
-    # N.B. In 2018, the thing that was "polkadot" was split off into its own
-    # repo, so if this package is ever updated it should be changed to
-    # paritytech/polkadot, as per comment here:
-    # https://github.com/paritytech/polkadot#note
-    repo = "substrate";
-    rev = "19f4f4d4df3bb266086b4e488739f73d3d5e588c";
-    sha256 = "0v7g03rbml2afw0splmyjh9nqpjg0ldjw09hyc0jqd3qlhgxiiyj";
+    repo = "polkadot";
+    rev = "v${version}";
+    sha256 = "17ji1gjrx3gzw4msaz9kgvm132y14wgh8z183l3mfw1cj44a6kqk";
   };
 
-  cargoSha256 = "1h5v7c7xi2r2wzh1pj6xidrg7dx23w3rjm88mggpq7574arijk4i";
+  cargoSha256 = "07zwlwx02xw1y20br2c4grwv7bprhynqy7gav4qh3vw117ijpiqk";
+
+  nativeBuildInputs = [ clang ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  PROTOC = "${protobuf}/bin/protoc";
+
+  # NOTE: We don't build the WASM runtimes since this would require a more
+  # complicated rust environment setup. The resulting binary is still useful for
+  # live networks since those just use the WASM blob from the network chainspec.
+  BUILD_DUMMY_WASM_BINARY = 1;
 
-  buildInputs = [ pkgconfig openssl openssl.dev ];
+  # We can't run the test suite since we didn't compile the WASM runtimes.
+  doCheck = false;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Polkadot Node Implementation";
     homepage = "https://polkadot.network";
     license = licenses.gpl3;
-    maintainers = [ maintainers.akru ];
+    maintainers = with maintainers; [ akru andresilva RaghavSood ];
     platforms = platforms.linux;
-    # Last attempt at building this was on v0.7.22
-    # https://github.com/paritytech/polkadot/releases
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/quorum.nix b/nixpkgs/pkgs/applications/blockchains/quorum.nix
index 5a525dec9995..eb98777c587d 100644
--- a/nixpkgs/pkgs/applications/blockchains/quorum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/quorum.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, buildGoPackage, git, which }:
+{ stdenv, fetchFromGitHub, buildGoPackage, git, which, removeReferencesTo, go }:
 
 buildGoPackage rec {
   pname = "quorum";
@@ -25,6 +25,12 @@ buildGoPackage rec {
     cp -v build/bin/geth build/bin/bootnode build/bin/swarm $out/bin
   '';
 
+  # fails with `GOFLAGS=-trimpath`
+  allowGoReference = true;
+  preFixup = ''
+    find $out -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${go} '{}' +
+  '';
+
   meta = with stdenv.lib; {
     description = "A permissioned implementation of Ethereum supporting data privacy";
     homepage = "https://www.goquorum.com/";
diff --git a/nixpkgs/pkgs/applications/blockchains/sumokoin.nix b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
index ad65da057aec..beb294d2dfe0 100644
--- a/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/sumokoin.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "Sumokoin is a fork of Monero and a truely fungible cryptocurrency";
+    description = "A fork of Monero and a truely fungible cryptocurrency";
     homepage = "https://www.sumokoin.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fpletz ];
diff --git a/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix b/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
new file mode 100644
index 000000000000..cf0b60ab9856
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/turbo-geth.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "turbo-geth";
+  version = "2020.12.02";
+
+  src = fetchFromGitHub {
+    owner = "ledgerwatch";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ynnpvpd84qncvzmk4hmq8mn6m14a9p3zg4svijqwlsrr39amp3q";
+  };
+
+  vendorSha256 = "0sk064iyaxq9ig9xv3h1p1c4994hna9bky16g3hblbnh3v7mmqar";
+  runVend = true;
+
+  subPackages = [
+    "cmd/tg"
+    "cmd/restapi"
+    "cmd/rpcdaemon"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ledgerwatch/turbo-geth/";
+    description = "Ethereum node and geth fork focused on scalability and modularity";
+    license = with licenses; [ lgpl3 gpl3 ];
+    maintainers = with maintainers; [ xwvvvvwx ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
index 3b4ec1c49c4c..4a0dbe83716a 100644
--- a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.12";
+  version = "1.1.12.3";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
-    sha256 = "0nfd0pwsgrkaxcxfs8wb3i8kslfcqnc91iahw3rmlcxdzb81kjs4";
+    sha256 = "1x4gqmiwdp5bjq7c5hjch3srsvf73d92lswnp355l7l7cxh2hcsx";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
index e2c57d514cda..6a8bebf6178e 100644
--- a/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/zcash/default.nix
@@ -1,39 +1,55 @@
-{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost17x
-, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent }:
-
-let librustzcash = callPackage ./librustzcash {};
-in
-with stdenv.lib;
-stdenv.mkDerivation rec {
+{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
+, cargo, pkg-config
+, bash, curl, coreutils, boost17x, db62, libsodium, libevent, utf8cpp, util-linux
+}:
 
+rustPlatform.buildRustPackage rec {
   pname = "zcash";
-  version = "2.1.1-1";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "1g5zlfzfp31my8w8nlg5fncpr2y95iv9fm04x57sjb93rgmjdh5n";
+    sha256 = "185zrw276g545np0niw5hlhlppkjbf5a1r4rwhnbaimdjdii2dil";
   };
 
-  patchPhase = ''
-    sed -i"" 's,-fvisibility=hidden,,g'            src/Makefile.am
-  '';
+  cargoSha256 = "0qxr6asf8zsya0f1ri39z2cnfpjk96hgwjchz2c7j87vibbvg6dc";
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ gtest gmock gmp openssl wget db62 boost17x zlib
-                  protobuf libevent libsodium librustzcash ]
-                  ++ optionals stdenv.isLinux [ utillinux ];
+  nativeBuildInputs = [ autoreconfHook cargo makeWrapper pkg-config ];
+  buildInputs = [ bash boost17x db62 libevent libsodium utf8cpp ];
 
-  configureFlags = [ "--with-boost-libdir=${boost17x.out}/lib" ];
+  # Use the stdenv default phases (./configure; make) instead of the
+  # ones from buildRustPackage.
+  configurePhase = "configurePhase";
+  buildPhase = "buildPhase";
+  checkPhase = "checkPhase";
+  installPhase = "installPhase";
 
-  postInstall = ''
-    cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params
+  postPatch = ''
+    # Have to do this here instead of in preConfigure because
+    # cargoDepsCopy gets unset after postPatch.
+    configureFlagsArray+=("RUST_VENDORED_SOURCES=$NIX_BUILD_TOP/$cargoDepsCopy")
   '';
 
+  configureFlags = [
+    "--disable-tests"
+    "--with-boost-libdir=${lib.getLib boost17x}/lib"
+    "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
+    "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
+  ];
+
   enableParallelBuilding = true;
 
-  meta = {
+  # Requires hundreds of megabytes of zkSNARK parameters.
+  doCheck = false;
+
+  postInstall = ''
+    wrapProgram $out/bin/zcash-fetch-params \
+        --set PATH ${lib.makeBinPath [ coreutils curl util-linux ]}
+  '';
+
+  meta = with lib; {
     description = "Peer-to-peer, anonymous electronic cash system";
     homepage = "https://z.cash/";
     maintainers = with maintainers; [ rht tkerber ];
diff --git a/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix
deleted file mode 100644
index 526adc715d45..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/zcash/librustzcash/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "librustzcash";
-  version = "0.1.0";
-
-  src = fetchFromGitHub {
-    owner = "zcash";
-    repo = "librustzcash";
-    rev = version;
-    sha256 = "0d28k29sgzrg9clynz29kpw50kbkp0a4dfdayqhmpjmsh05y6261";
-  };
-
-  cargoSha256 = "1wzyrcmcbrna6rjzw19c4lq30didzk4w6fs6wmvxp0xfg4qqdlax";
-
-  installPhase = ''
-    mkdir -p $out/lib
-    cp $releaseDir/librustzcash.a $out/lib/
-    mkdir -p $out/include
-    cp librustzcash/include/librustzcash.h $out/include/
-  '';
-
-  # The tests do pass, but they take an extremely long time to run.
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "Rust-language assets for Zcash";
-    homepage = "https://github.com/zcash/librustzcash";
-    maintainers = with maintainers; [ rht tkerber ];
-    license = with licenses; [ mit asl20 ];
-    platforms = platforms.unix;
-  };
-}