DragonX compatibility: crash fixes, reorg detection, server failover, sync perf

- Fix Rust FFI panics with catch_unwind wrappers and safe CString handling
- Handle poisoned mutex/RwLock from prior panics instead of crashing
- Add stuck sync detection (10s stall threshold) and chain reorg user prompt
- Add "Skip Verification" button to seed phrase wizard
- Update payment URIs from hush: to drgx:
- Update branding strings throughout UI
- Add all 6 lite servers (lite, lite1-5.dragonx.is) with random selection
- Add server connectivity probing to skip unreachable servers
- Reuse Tokio runtime across block fetch batches to reduce sync overhead
- Update Cargo.lock dependencies
This commit is contained in:
2026-03-21 03:43:23 -05:00
parent b0d7319182
commit cd5a9f3736
283 changed files with 124331 additions and 124080 deletions

View File

@@ -1,9 +1,9 @@
[Desktop Entry]
Version=1.0
Name=SilentDragonXLite
Comment=Lite wallet for DragonX cryptocurrency
Exec=/home/user/SilentDragonXLite/SilentDragonXLite
Icon=/home/user/SilentDragonXLite/res/SDLogo.png
Terminal=false
Type=Application
Categories=Network;
[Desktop Entry]
Version=1.0
Name=SilentDragonXLite
Comment=Lite wallet for DragonX cryptocurrency
Exec=/home/user/SilentDragonXLite/SilentDragonXLite
Icon=/home/user/SilentDragonXLite/res/SDLogo.png
Terminal=false
Type=Application
Categories=Network;

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# Copyright 2019-2024 The Hush Developers
username=$(id -un)
sed -i "s|\/home\/.*\/SilentDragonXLite\/|\/home\/$username\/SilentDragonXLite\/|g" SilentDragonXLite.desktop
cp SilentDragonXLite.desktop ~/.local/share/applications
#!/bin/bash
# Copyright 2019-2024 The Hush Developers
username=$(id -un)
sed -i "s|\/home\/.*\/SilentDragonXLite\/|\/home\/$username\/SilentDragonXLite\/|g" SilentDragonXLite.desktop
cp SilentDragonXLite.desktop ~/.local/share/applications

View File

@@ -1,10 +1,10 @@
#!/bin/bash
# Copyright 2019-2024 The Hush Developers
cd ../ && ./build.sh linguist && ./build.sh
username=$(id -un)
cd util/ && sed -i "s|\/home\/.*\/SilentDragonXLite\/|\/home\/$username\/SilentDragonXLite\/|g" SilentDragonXLite.desktop
cp SilentDragonXLite.desktop ~/.local/share/applications
#!/bin/bash
# Copyright 2019-2024 The Hush Developers
cd ../ && ./build.sh linguist && ./build.sh
username=$(id -un)
cd util/ && sed -i "s|\/home\/.*\/SilentDragonXLite\/|\/home\/$username\/SilentDragonXLite\/|g" SilentDragonXLite.desktop
cp SilentDragonXLite.desktop ~/.local/share/applications

View File

@@ -1,42 +1,42 @@
#!/usr/bin/perl
# Copyright (c) 2016-2024 The Hush developers
# Distributed under the GPLv3 software license, see the accompanying
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
use strict;
use warnings;
use autodie;
use Data::Dumper;
my ($find,$replace,@files) = @ARGV;
usage() unless $find && defined $replace;
unless( @files ) {
printf "No files to replace stuff!";
exit 0;
}
my $fh;
print "Going to replace $find with $replace in " . scalar(@files) . " files\n";
for my $file (@files) {
if (-d $file) {
printf "Skipping directory $file\n";
next;
}
unless ( -e $file ) {
printf "$file does not exist!\n";
next;
}
open $fh, '<', $file;
my $content = join('',<$fh>);
$content =~ s/\Q$find\E/$replace/g;
close $fh;
open $fh, '>', $file;
print $fh $content;
close $fh;
}
sub usage {
die "$0 stringtofind stringtoreplace file [more files...]\n";
}
#!/usr/bin/perl
# Copyright (c) 2016-2024 The Hush developers
# Distributed under the GPLv3 software license, see the accompanying
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
use strict;
use warnings;
use autodie;
use Data::Dumper;
my ($find,$replace,@files) = @ARGV;
usage() unless $find && defined $replace;
unless( @files ) {
printf "No files to replace stuff!";
exit 0;
}
my $fh;
print "Going to replace $find with $replace in " . scalar(@files) . " files\n";
for my $file (@files) {
if (-d $file) {
printf "Skipping directory $file\n";
next;
}
unless ( -e $file ) {
printf "$file does not exist!\n";
next;
}
open $fh, '<', $file;
my $content = join('',<$fh>);
$content =~ s/\Q$find\E/$replace/g;
close $fh;
open $fh, '>', $file;
print $fh $content;
close $fh;
}
sub usage {
die "$0 stringtofind stringtoreplace file [more files...]\n";
}

View File

@@ -1,26 +1,26 @@
#!/usr/bin/env bash
# Copyright (c) 2016-2024 The Hush developers
# Released under the GPLv3
# Usage: update-copyrights.sh 2024 2025
# TODO: verify $1 and $2 exist
if ! command -v ack &> /dev/null
then
echo "ack could not be found. Please install it and try again."
exit 1
fi
if ! command -v xargs &> /dev/null
then
echo "xargs could not be found. Please install it and try again."
exit 1
fi
# This update comments in source code
ack -l -i "20..-20..*Hush dev" | xargs ./util/replace.pl -$1 -$2
# This updates the define which is used by C++ help output
./util/replace.pl "COPYRIGHT_YEAR $1" "COPYRIGHT_YEAR $2" src/clientversion.h
./util/replace.pl "COPYRIGHT_YEAR, $1" "COPYRIGHT_YEAR, $2" configure.ac
#!/usr/bin/env bash
# Copyright (c) 2016-2024 The Hush developers
# Released under the GPLv3
# Usage: update-copyrights.sh 2024 2025
# TODO: verify $1 and $2 exist
if ! command -v ack &> /dev/null
then
echo "ack could not be found. Please install it and try again."
exit 1
fi
if ! command -v xargs &> /dev/null
then
echo "xargs could not be found. Please install it and try again."
exit 1
fi
# This update comments in source code
ack -l -i "20..-20..*Hush dev" | xargs ./util/replace.pl -$1 -$2
# This updates the define which is used by C++ help output
./util/replace.pl "COPYRIGHT_YEAR $1" "COPYRIGHT_YEAR $2" src/clientversion.h
./util/replace.pl "COPYRIGHT_YEAR, $1" "COPYRIGHT_YEAR, $2" configure.ac