20 Commits

Author SHA1 Message Date
946376406f refactor(clientversion): simplify version string formatting
Replace direct CLIENT_BUILD usage with FormatVersion to consistently display semantic versioning. This omits trailing ".0" and git suffix when build number is zero, making version strings cleaner and more predictable.
2025-11-11 09:00:32 +01:00
a82c6c5fe0 build: bump version to 1.4.1
Update version number in configure.ac and documentation files to reflect new release version 1.4.1
2025-11-11 08:36:14 +01:00
NotRin7
6e1f7e7a61 Merge pull request #5 from palladium-coin/fix-sync-prob
fix(chainparams): allow node to sync from scratch
2025-11-07 16:22:30 +01:00
faefa9ba88 fix(chainparams): allow node to sync from scratch
The previous consensus parameters prevented the node from completing
initial sync without manually importing blocks. Updated chainparams so
a fresh node can fully synchronize on its own.
2025-11-07 13:11:07 +01:00
88fb8881e3 fix(chainparams): remove inactive seed node from mainnet list 2025-11-06 14:00:08 +01:00
6ccf7ead4b docs(docker-build): simplify and restructure docker build documentation
- Condensed lengthy documentation into more concise sections
- Removed redundant troubleshooting and implementation details
- Organized content by architecture with clear command/output sections
- Maintained all essential information while improving readability
2025-11-01 19:12:03 +01:00
dbaa10a848 build(docker): add armv7l cross-compilation support
- Add Dockerfile.linux-armv7l for ARMv7l cross-compilation environment
- Create build-linux-armv7l.sh script to automate the build process
- Update .dockerignore to exclude more build artifacts and temporary files
- Extend README.md with ARMv7l build instructions and target details
2025-11-01 15:05:29 +01:00
ffbaef8388 testnet update: rename testnet3 to testnet
Update all references to 'testnet3' to 'testnet' for consistency. This includes:
- Changing magic bytes in network messages
- Updating directory paths and configuration files
- Modifying documentation and test framework references
- Adjusting chain parameters and validation logic
2025-10-30 23:25:15 +01:00
e0a0becca9 feat(docker): add ARM64 cross-compilation support via Docker
Add Dockerfile and build script for Linux aarch64 cross-compilation targeting ARM64 devices like Raspberry Pi. Includes documentation updates explaining the build process and troubleshooting tips.

The changes enable building Palladium binaries for ARM64 architecture using cross-compilation in a Docker container, with output binaries placed in the build directory.
2025-10-29 16:23:21 +01:00
d738fe9f4f docs(readme): simplify build instructions by linking to platform-specific docs
The detailed build instructions were moved to separate platform-specific documents in the `/doc` folder to make the README more maintainable and easier to navigate. This change provides clearer guidance for users building on different operating systems.
2025-10-29 15:12:14 +01:00
6e29c7cd9d feat(docker): add Windows cross-compilation support via Docker
Add Dockerfile.windows and build-windows.sh for cross-compiling Windows executables
in a containerized environment. Includes documentation updates in README.md with
build instructions and troubleshooting tips for Windows builds.
2025-10-29 14:56:13 +01:00
9fc1062b9a docs: update README with new build instructions and repo URL
- Replace old releases page URL with new organization URL
- Add Docker build instructions as recommended method
- Expand manual build instructions with detailed steps and verification
- Include runtime dependencies for GUI
2025-10-29 12:11:54 +01:00
15f6512419 refactor(docker): restructure docker build system for linux-x86_64
- Replace generic Dockerfile with platform-specific Dockerfile.linux-x86_64
- Simplify .dockerignore to essential patterns
- Update build script with improved container build process and output handling
- Enhance README with detailed build process documentation
2025-10-29 12:04:27 +01:00
NotRin7
2a29186b3e Fix chainwork bug in chainparams.cpp 2025-10-28 14:03:59 +01:00
NotRin7
736c23753d Merge pull request #3 from palladium-coin/docker-build
build(docker): add docker build system for palladium core
2025-10-28 13:13:14 +01:00
a661b129af build(docker): add docker build system for palladium core
Add Dockerfile, build script, README and .dockerignore to create a reproducible build environment for Palladium Core binaries. The system builds x86_64 Linux binaries with all required dependencies and outputs them to the out/ directory.
2025-10-28 10:53:53 +01:00
NotRin7
707b60e075 Merge pull request #2 from NotRin7/master
enable testnet and regnet
2025-10-23 18:51:13 +02:00
NotRin7
8e6103221a Update chainparams.cpp 2025-10-23 18:49:41 +02:00
NotRin7
08f73f9769 testnet and regtest update 2025-10-23 16:56:36 +02:00
2bacfe0ba2 Update repository URL in README 2025-10-23 08:59:36 +02:00
29 changed files with 695 additions and 133 deletions

View File

@@ -17,7 +17,7 @@ Palladium Core is a decentralized digital currency forked from Bitcoin, specific
### Installation
1. **Download and Install**: Get the latest Palladium Core wallet from our [releases page](https://github.com/davide3011/palladiumcore/releases/tag/v1.3.0)
1. **Download and Install**: Get the latest Palladium Core wallet from our [releases page](https://github.com/palladium-coin/palladiumcore/releases)
2. **Configure**: Create the `palladium.conf` configuration file (see [Configuration](#advanced-configuration) section below)
3. **Launch the Core**: Start the Palladium Core application (includes automatic network synchronization)
@@ -82,31 +82,45 @@ zmqpubhashblock=tcp://0.0.0.0:28332
## Building from Source
### Dependencies
### Docker Build (Recommended)
- **C++ Compiler**: GCC 7+ or Clang 5+
- **Build Tools**: Make, Autotools
- **Libraries**: Boost, OpenSSL, libevent, ZeroMQ
For a simpler and more reproducible build process, you can use our Docker-based build system. This method provides a consistent build environment and eliminates dependency management issues.
### Build Instructions
**Requirements:**
- Linux AMD x86_64 system with Ubuntu 20.04 or newer
- Docker installed and running
```bash
# Clone repository
git clone https://github.com/davide3011/palladiumcore.git
cd palladiumcore
For detailed instructions and configuration options, see the [docker-build](docker-build/) directory.
# Generate build files
./autogen.sh
### Manual Build Instructions
# Configure build
./configure
## Manual Build Instructions
# Compile
make -j$(nproc)
For detailed manual build instructions specific to your operating system, please refer to the comprehensive documentation available in the `/doc` folder:
# Install (optional)
sudo make install
```
### Platform-Specific Build Guides
- **Unix/Linux Systems**: [`doc/build-unix.md`](doc/build-unix.md)
- **Windows**: [`doc/build-windows.md`](doc/build-windows.md)
- **macOS**: [`doc/build-osx.md`](doc/build-osx.md)
- **FreeBSD**: [`doc/build-freebsd.md`](doc/build-freebsd.md)
- **NetBSD**: [`doc/build-netbsd.md`](doc/build-netbsd.md)
- **OpenBSD**: [`doc/build-openbsd.md`](doc/build-openbsd.md)
### Additional Resources
- **Dependencies Overview**: [`doc/dependencies.md`](doc/dependencies.md) - Complete list of build dependencies
- **Developer Notes**: [`doc/developer-notes.md`](doc/developer-notes.md) - Advanced build configurations and development setup
- **Gitian Building**: [`doc/gitian-building.md`](doc/gitian-building.md) - Deterministic builds for release binaries
Each platform-specific guide includes:
- Required dependencies and installation commands
- Step-by-step build process
- Configuration options and optimizations
- Troubleshooting common build issues
- Platform-specific considerations and best practices
Choose the appropriate guide for your operating system to ensure a successful build process.
## Contributing

View File

@@ -265,7 +265,7 @@
#define PACKAGE_NAME "Palladium Core"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "Palladium Core 1.4.0"
#define PACKAGE_STRING "Palladium Core 1.4.1"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "palladium"
@@ -274,7 +274,7 @@
#define PACKAGE_URL "https://palladiumblockchain.net/"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.4.0"
#define PACKAGE_VERSION "1.4.1"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */

View File

@@ -1,7 +1,7 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MINOR, 4)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_REVISION, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)

View File

@@ -26,7 +26,7 @@ input=/home/example/.palladium/blocks
# testnet
#netmagic=0b110907
#genesis=000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943
#input=/home/example/.palladium/testnet3/blocks
#input=/home/example/.palladium/testnet/blocks
# regtest
#netmagic=fabfb5da

View File

@@ -33,7 +33,7 @@ Windows | `%APPDATA%\Palladium\` <sup>[\[1\]](#note1)</sup>
Chain option | Data directory path
--------------------|--------------------
no option (mainnet) | *path_to_datadir*`/`
`-testnet` | *path_to_datadir*`/testnet3/`
`-testnet` | *path_to_datadir*`/testnet/`
`-regtest` | *path_to_datadir*`/regtest/`
## Data directory layout

View File

@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-CLI "1" "April 2024" "palladium-cli v1.4.0.0" "User Commands"
.TH PALLADIUM-CLI "1" "April 2024" "palladium-cli v1.4.1" "User Commands"
.SH NAME
palladium-cli \- manual page for palladium-cli v1.4.0.0
palladium-cli \- manual page for palladium-cli v1.4.1
.SH SYNOPSIS
.B palladium-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Palladium Core\/\fR
@@ -15,7 +15,7 @@ palladium-cli \- manual page for palladium-cli v1.4.0.0
.B palladium-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION
Palladium Core RPC client version v1.4.0.0
Palladium Core RPC client version v1.4.1
.SH OPTIONS
.HP
\-?

View File

@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-QT "1" "April 2024" "palladium-qt v1.4.0.0" "User Commands"
.TH PALLADIUM-QT "1" "April 2024" "palladium-qt v1.4.1" "User Commands"
.SH NAME
palladium-qt \- manual page for palladium-qt v1.4.0.0
palladium-qt \- manual page for palladium-qt v1.4.1
.SH SYNOPSIS
.B palladium-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Palladium Core version v1.4.0.0
Palladium Core version v1.4.1
.SH OPTIONS
.HP
\-?

View File

@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-TX "1" "April 2024" "palladium-tx v1.4.0.0" "User Commands"
.TH PALLADIUM-TX "1" "April 2024" "palladium-tx v1.4.1" "User Commands"
.SH NAME
palladium-tx \- manual page for palladium-tx v1.4.0.0
palladium-tx \- manual page for palladium-tx v1.4.1
.SH SYNOPSIS
.B palladium-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded palladium transaction\/\fR
@@ -9,7 +9,7 @@ palladium-tx \- manual page for palladium-tx v1.4.0.0
.B palladium-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded palladium transaction\/\fR
.SH DESCRIPTION
Palladium Core palladium\-tx utility version v1.4.0.0
Palladium Core palladium\-tx utility version v1.4.1
.SH OPTIONS
.HP
\-?

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUM-WALLET "1" "April 2024" "palladium-wallet v1.4.0.0" "User Commands"
.TH PALLADIUM-WALLET "1" "April 2024" "palladium-wallet v1.4.1" "User Commands"
.SH NAME
palladium-wallet \- manual page for palladium-wallet v1.4.0.0
palladium-wallet \- manual page for palladium-wallet v1.4.1
.SH DESCRIPTION
Palladium Core palladium\-wallet version v1.4.0.0
Palladium Core palladium\-wallet version v1.4.1
.PP
palladium\-wallet is an offline tool for creating and interacting with Palladium Core wallet files.
By default palladium\-wallet will act on wallets in the default mainnet wallet directory in the datadir.

View File

@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
.TH PALLADIUMD "1" "April 2024" "palladiumd v1.4.0.0" "User Commands"
.TH PALLADIUMD "1" "April 2024" "palladiumd v1.4.1" "User Commands"
.SH NAME
palladiumd \- manual page for palladiumd v1.4.0.0
palladiumd \- manual page for palladiumd v1.4.1
.SH SYNOPSIS
.B palladiumd
[\fI\,options\/\fR] \fI\,Start Palladium Core\/\fR
.SH DESCRIPTION
Palladium Core version v1.4.0.0
Palladium Core version v1.4.1
.SH OPTIONS
.HP
\-?

View File

@@ -377,13 +377,13 @@ Both variables are used as a guideline for how much space the user needs on thei
Note that all values should be taken from a **fully synced** node and have an overhead of 5-10% added on top of its base value.
To calculate `m_assumed_blockchain_size`:
- For `mainnet` -> Take the size of the data directory, excluding `/regtest` and `/testnet3` directories.
- For `testnet` -> Take the size of the `/testnet3` directory.
- For `mainnet` -> Take the size of the data directory, excluding `/regtest` and `/testnet` directories.
- For `testnet` -> Take the size of the `/testnet` directory.
To calculate `m_assumed_chain_state_size`:
- For `mainnet` -> Take the size of the `/chainstate` directory.
- For `testnet` -> Take the size of the `/testnet3/chainstate` directory.
- For `testnet` -> Take the size of the `/testnet/chainstate` directory.
Notes:
- When taking the size for `m_assumed_blockchain_size`, there's no need to exclude the `/chainstate` directory since it's a guideline value and an overhead will be added anyway.

153
docker-build/.dockerignore Normal file
View File

@@ -0,0 +1,153 @@
# Version Control
.git
.gitignore
.gitattributes
# Build directories and artifacts
build
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/missing
build-aux/compile
build-aux/test-driver
build-aux/m4/libtool.m4
build-aux/m4/lt~obsolete.m4
build-aux/m4/ltoptions.m4
build-aux/m4/ltsugar.m4
build-aux/m4/ltversion.m4
dist*
out
releases
db4/
linux-coverage-build
linux-build
win32-build
# Docker build system (avoid recursion)
docker-build
# Compiled binaries and libraries
*.o
*.a
*.so
*.dylib
*.exe
*.app
*.pdb
*.lo
*.la
# Build configuration and cache
config.cache
config.log
config.status
configure
libtool
autom4te.cache/
Makefile
Makefile.in
aclocal.m4
.deps
.dirstamp
.libs
src/config/
src/obj
src/univalue/gen
# Qt specific
src/qt/*.moc
src/qt/moc_*.cpp
src/qt/forms/ui_*.h
src/qt/test/moc*.cpp
src/qt/palladium-qt.config
src/qt/palladium-qt.creator
src/qt/palladium-qt.creator.user
src/qt/palladium-qt.files
src/qt/palladium-qt.includes
*.qm
qrc_*.cpp
Palladium-Qt.app
# Test files and coverage
test/config.ini
test/cache/
*.trs
test_palladium.coverage/
total.coverage/
coverage_percent.txt
*.gcno
*.gcda
*.info
Makefile.test
palladium-qt_test
# Logs and temporary files
*.log
*.tmp
*.temp
*.bak
*.swp
*.swo
*.orig
*.rej
*.patch
!depends/patches/**/*.patch
*.*~*
*~
# Python
__pycache__
*.pyc
.python-version
# Archives and packages
*.tar*
*.zip
*.gz
*.dmg
# IDE and editor files
.vscode/
.idea/
*.sublime-*
.DS_Store
Thumbs.db
desktop.ini
# CI/CD and development tools
.travis.yml
.appveyor.yml
.cirrus.yml
.github/
ci/
.tx/
.style.yapf
# Documentation generation
doc/doxygen/
/doc/doxygen/
# macOS specific
*.background.tiff
background.tiff*
osx_volname
# Windows specific build
build_msvc/
# Clang tools
*.plist
# Generated files
*.json.h
*.raw.h
*.pb.cc
*.pb.h
*.dat
share/setup.nsi
share/qt/Info.plist
libpalladiumconsensus.pc
contrib/devtools/split-debug.sh

View File

@@ -0,0 +1,16 @@
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential libtool autotools-dev automake autoconf pkg-config \
bsdmainutils python3 curl ca-certificates git unzip zip file rsync \
make cmake patch \
g++-aarch64-linux-gnu binutils-aarch64-linux-gnu \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . /src
CMD ["/bin/bash"]

View File

@@ -0,0 +1,16 @@
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential libtool autotools-dev automake autoconf pkg-config \
bsdmainutils python3 curl ca-certificates git unzip zip file rsync \
make cmake patch \
g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . /src
CMD ["/bin/bash"]

View File

@@ -0,0 +1,14 @@
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential libtool autotools-dev automake autoconf pkg-config \
bsdmainutils python3 curl ca-certificates git unzip zip file rsync \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . /src
CMD ["/bin/bash"]

View File

@@ -0,0 +1,18 @@
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive TZ=UTC
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential libtool autotools-dev automake autoconf pkg-config \
bsdmainutils python3 curl ca-certificates git unzip zip file rsync \
g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 nsis \
&& rm -rf /var/lib/apt/lists/*
RUN update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix || true && \
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix || true
WORKDIR /src
COPY . /src
CMD ["/bin/bash"]

91
docker-build/README.md Normal file
View File

@@ -0,0 +1,91 @@
# Docker Build System for Palladium Core
## System Requirements
- **Host System**: Ubuntu 20.04+ on x86_64 architecture
- **Docker**: Installed and running ([installation guide](https://docs.docker.com/get-docker/))
- **Disk Space**: At least 15 GB free
## Linux x86_64
Creates native Linux 64-bit binaries using a Docker container based on Ubuntu 20.04.
### Commands
```bash
cd docker-build # Navigate to the docker-build directory
chmod +x build-linux-x86_64.sh # Make the build script executable
./build-linux-x86_64.sh # Run the build script
```
### Output
Binaries will be available in `../build/linux-x86_64/`:
- `palladiumd` - Main daemon
- `palladium-cli` - Command-line client
- `palladium-tx` - Transaction utility
- `palladium-wallet` - Wallet utility
- `palladium-qt` - GUI application
## Linux aarch64 (ARM64)
Creates ARM64 binaries for devices like Raspberry Pi 4+ through cross-compilation.
### Commands
```bash
cd docker-build # Navigate to the docker-build directory
chmod +x build-linux-aarch64.sh # Make the build script executable
./build-linux-aarch64.sh # Run the cross-compilation build script
```
### Output
Binaries will be available in `../build/linux-aarch64/`:
- `palladiumd` - Main daemon
- `palladium-cli` - Command-line client
- `palladium-tx` - Transaction utility
- `palladium-wallet` - Wallet utility
- `palladium-qt` - GUI application
## Linux ARMv7l (ARM 32-bit)
Creates ARM 32-bit binaries for older devices like Raspberry Pi 2/3 and Pi Zero.
### Commands
```bash
cd docker-build # Navigate to the docker-build directory
chmod +x build-linux-armv7l.sh # Make the build script executable
./build-linux-armv7l.sh # Run the ARMv7l cross-compilation build script
```
### Output
Binaries will be available in `../build/armv7l/`:
- `palladiumd` - Main daemon
- `palladium-cli` - Command-line client
- `palladium-tx` - Transaction utility
- `palladium-wallet` - Wallet utility
- `palladium-qt` - GUI application
## Windows x86_64
Creates Windows executables through cross-compilation with MinGW-w64.
### Commands
```bash
cd docker-build # Navigate to the docker-build directory
chmod +x build-windows.sh # Make the build script executable
./build-windows.sh # Run the Windows cross-compilation build script
```
### Output
Executables will be available in `../build/windows/`:
- `palladiumd.exe` - Main daemon
- `palladium-cli.exe` - Command-line client
- `palladium-tx.exe` - Transaction utility
- `palladium-wallet.exe` - Wallet utility
- `palladium-qt.exe` - GUI application

View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="palladium-builder:linux-aarch64-ubuntu20.04"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
OUT_DIR="${REPO_DIR}/build/aarch64"
HOST_TRIPLE="aarch64-linux-gnu"
HOST_UID="$(id -u)"
HOST_GID="$(id -g)"
echo "[*] Build image including ALL repository files (COPY . /src)..."
docker build --platform=linux/amd64 \
-t "$IMAGE_NAME" \
-f "${SCRIPT_DIR}/Dockerfile.linux-aarch64" \
"${REPO_DIR}"
mkdir -p "${OUT_DIR}"
echo "[*] Start container: build COMPLETED in container; mount ONLY output..."
docker run --rm --platform=linux/amd64 \
-e HOST_UID="${HOST_UID}" -e HOST_GID="${HOST_GID}" \
-v "${OUT_DIR}":/out \
"$IMAGE_NAME" \
bash -c "
set -euo pipefail
cd /src
echo '[*] depends (HOST=${HOST_TRIPLE})...'
cd depends && make HOST=${HOST_TRIPLE} -j\$(nproc) && cd ..
echo '[*] autogen/configure...'
[[ -x ./autogen.sh ]] && ./autogen.sh
[[ -f ./configure ]] || { echo 'configure not found: autogen failed'; exit 1; }
./configure --prefix=\$PWD/depends/${HOST_TRIPLE} \
--host=${HOST_TRIPLE} \
--enable-glibc-back-compat \
--enable-reduce-exports \
CC=${HOST_TRIPLE}-gcc CXX=${HOST_TRIPLE}-g++ \
AR=${HOST_TRIPLE}-ar RANLIB=${HOST_TRIPLE}-ranlib STRIP=${HOST_TRIPLE}-strip \
LDFLAGS='-static-libstdc++'
echo '[*] make...'
make -j\$(nproc)
echo '[*] copy binaries to /out...'
mkdir -p /out
for b in src/palladiumd src/palladium-cli src/palladium-tx src/palladium-wallet src/qt/palladium-qt; do
[[ -f \"\$b\" ]] && install -m 0755 \"\$b\" /out/
done
# Add permissions to host user
chown -R \${HOST_UID:-0}:\${HOST_GID:-0} /out
echo '[*] build COMPLETED (all binaries in container) → /out'
"
echo "[*] Binaries aarch64 available in: ${OUT_DIR}"

View File

@@ -0,0 +1,60 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="palladium-builder:linux-armv7l-ubuntu20.04"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
OUT_DIR="${REPO_DIR}/build/armv7l"
HOST_TRIPLE="arm-linux-gnueabihf"
HOST_UID="$(id -u)"
HOST_GID="$(id -g)"
echo "[*] Building Docker image including the ENTIRE repository (COPY . /src)..."
docker build --platform=linux/amd64 \
-t "$IMAGE_NAME" \
-f "${SCRIPT_DIR}/Dockerfile.linux-armv7l" \
"${REPO_DIR}"
mkdir -p "${OUT_DIR}"
echo "[*] Starting container: build COMPLETED in container; mounting ONLY the output..."
docker run --rm --platform=linux/amd64 \
-e HOST_UID="${HOST_UID}" -e HOST_GID="${HOST_GID}" \
-v "${OUT_DIR}":/out \
"$IMAGE_NAME" \
bash -c "
set -euo pipefail
cd /src
echo '[*] depends (HOST=${HOST_TRIPLE})...'
cd depends && make HOST=${HOST_TRIPLE} -j\$(nproc) && cd ..
echo '[*] autogen/configure...'
[[ -x ./autogen.sh ]] && ./autogen.sh
[[ -f ./configure ]] || { echo 'configure not found: autogen failed'; exit 1; }
./configure --prefix=\$PWD/depends/${HOST_TRIPLE} \
--host=${HOST_TRIPLE} \
--enable-glibc-back-compat \
--enable-reduce-exports \
CC=${HOST_TRIPLE}-gcc CXX=${HOST_TRIPLE}-g++ \
AR=${HOST_TRIPLE}-ar RANLIB=${HOST_TRIPLE}-ranlib STRIP=${HOST_TRIPLE}-strip \
LDFLAGS='-static-libstdc++'
echo '[*] make...'
make -j\$(nproc)
echo '[*] copy binaries to /out...'
mkdir -p /out
for b in src/palladiumd src/palladium-cli src/palladium-tx src/palladium-wallet src/qt/palladium-qt; do
[[ -f \"\$b\" ]] && install -m 0755 \"\$b\" /out/
done
# Add permissions to host user
chown -R \${HOST_UID:-0}:\${HOST_GID:-0} /out
echo '[*] build COMPLETED (all binaries in container) → /out'
"
echo "[*] ARMv7l binaries available in: ${OUT_DIR}"

View File

@@ -0,0 +1,58 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="palladium-builder:linux-x86_64-ubuntu20.04"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
OUT_DIR="${REPO_DIR}/build/linux-x86_64"
HOST_TRIPLE="x86_64-pc-linux-gnu"
HOST_UID="$(id -u)"
HOST_GID="$(id -g)"
echo "[*] Building image including the ENTIRE repository (COPY . /src)..."
docker build --platform=linux/amd64 \
-t "$IMAGE_NAME" \
-f "${SCRIPT_DIR}/Dockerfile.linux-x86_64" \
"${REPO_DIR}"
mkdir -p "${OUT_DIR}"
echo "[*] Starting container: build entirely inside the container; mounting ONLY the output..."
docker run --rm --platform=linux/amd64 \
-e HOST_UID="${HOST_UID}" -e HOST_GID="${HOST_GID}" \
-v "${OUT_DIR}":/out \
"$IMAGE_NAME" \
bash -c "
set -euo pipefail
cd /src
echo '[*] depends...'
cd depends && make HOST=${HOST_TRIPLE} -j\$(nproc) && cd ..
echo '[*] autogen/configure...'
[[ -x ./autogen.sh ]] && ./autogen.sh
[[ -f ./configure ]] || { echo 'configure not found: autogen failed'; exit 1; }
./configure --prefix=\$PWD/depends/${HOST_TRIPLE} \
--enable-glibc-back-compat \
--enable-reduce-exports \
LDFLAGS='-static-libstdc++'
echo '[*] make...'
make -j\$(nproc)
echo '[*] copying binaries to /out volume...'
mkdir -p /out
for b in src/palladiumd src/palladium-cli src/palladium-tx src/palladium-wallet src/qt/palladium-qt; do
[[ -f \"\$b\" ]] && install -m 0755 \"\$b\" /out/
done
# Align permissions to host user
chown -R \${HOST_UID:-0}:\${HOST_GID:-0} /out
echo '[*] build COMPLETED (everything in container) → /out'
"
echo "[*] Binaries available in: ${OUT_DIR}"

View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME="palladium-builder:windows-ubuntu20.04"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
OUT_DIR="${REPO_DIR}/build/windows"
HOST_TRIPLE="x86_64-w64-mingw32"
HOST_UID="$(id -u)"
HOST_GID="$(id -g)"
echo "[*] Building Docker image including the ENTIRE repository (COPY . /src)..."
docker build --platform=linux/amd64 \
-t "$IMAGE_NAME" \
-f "${SCRIPT_DIR}/Dockerfile.windows" \
"${REPO_DIR}"
mkdir -p "${OUT_DIR}"
echo "[*] Starting container: build COMPLETELY in container; mount ONLY the output..."
docker run --rm --platform=linux/amd64 \
-e HOST_UID="${HOST_UID}" -e HOST_GID="${HOST_GID}" \
-v "${OUT_DIR}":/out \
"$IMAGE_NAME" \
bash -c "
set -euo pipefail
cd /src
echo '[*] depends (Windows cross, HOST=${HOST_TRIPLE})...'
cd depends && make HOST=${HOST_TRIPLE} -j\$(nproc) && cd ..
echo '[*] autogen/configure...'
[[ -x ./autogen.sh ]] && ./autogen.sh
[[ -f ./configure ]] || { echo 'configure not found: autogen failed'; exit 1; }
# For Windows with depends: use CONFIG_SITE and prefix=/
CONFIG_SITE=\$PWD/depends/${HOST_TRIPLE}/share/config.site \
./configure --prefix=/
echo '[*] make...'
make -j\$(nproc)
echo '[*] copying .exe files to /out...'
mkdir -p /out
# Typical executables (update the names if your project produces different ones)
for b in \
src/palladiumd.exe \
src/palladium-cli.exe \
src/palladium-tx.exe \
src/palladium-wallet.exe \
src/qt/palladium-qt.exe; do
[[ -f \"\$b\" ]] && install -m 0755 \"\$b\" /out/
done
# Align permissions to host user
chown -R \${HOST_UID:-0}:\${HOST_GID:-0} /out
echo '[*] build COMPLETED (everything in container) → /out'
"
echo "[*] Windows executables available in: ${OUT_DIR}"

View File

@@ -74,20 +74,17 @@ public:
consensus.CSVHeight = 29000;
consensus.SegwitHeight = 29000;
consensus.MinBIP9WarningHeight = 29540; // segwit activation height + miner confirmation window
consensus.MinBIP9WarningHeight = 29720; // segwit activation height + miner confirmation window
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 24 * 60 * 60; // 86400 seconds
consensus.nPowTargetSpacing = 10 * 60; // old (before block 29000/LWMA)
consensus.nPowTargetSpacingV2 = 2 * 60; //120 seconds
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // Must remain 14 days for historical block validation
consensus.nPowTargetSpacing = 10 * 60;
consensus.nPowTargetSpacingV2 = 2 * 60;
consensus.fPowAllowMinDifficultyBlocks = false;
consensus.fPowNoRetargeting = false;
//24h Timespan / 2 Min Spacing = 720 blocks
consensus.nRuleChangeActivationThreshold = 720;
consensus.nMinerConfirmationWindow = 540; // 720 * 0.75
consensus.nRuleChangeActivationThreshold = 540;
consensus.nMinerConfirmationWindow = 720;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
@@ -95,13 +92,11 @@ public:
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999;
// Chainwork Block 308000
// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000009a5fd670f7a9ae6f2e");
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000001578157d557d557aa0");
// Blockhash Block 308000
// By default assume that the signatures in ancestors of this block are valid.
consensus.defaultAssumeValid = uint256S("0x000000000000174621a036477c7edff5648052fa268133658561e9ca840831be");
consensus.defaultAssumeValid = uint256S("0x0000000000000014351dee34029945d5a4dea299ec8843626695c88b084b4d10");
/**
* The message start string is designed to be unlikely to occur in normal data.
@@ -127,13 +122,13 @@ public:
// This is fine at runtime as we'll fall back to using them as a oneshot if they don't support the
// service bits we want, but we should get them updated to support all service bits wanted by any
// release ASAP to avoid it where possible.
vSeeds.emplace_back("dnsseed.palladium-coin.store");
vSeeds.emplace_back("dnsseed.palladium-coin.com");
vSeeds.emplace_back("dnsseed.palladium-coin.net");
vSeeds.emplace_back("dnsseed.palladium-coin.org");
vSeeds.emplace_back("dnsseed.palladium-coin.xyz");
vSeeds.emplace_back("dnsseed.palladium-coin.de");
vSeeds.emplace_back("dnsseed.palladiumblockchain.net");
vSeeds.emplace_back("dnsseed.palladium-coin.store");
vSeeds.emplace_back("dnsseed.palladium-coin.com");
vSeeds.emplace_back("dnsseed.palladium-coin.net");
vSeeds.emplace_back("dnsseed.palladium-coin.org");
vSeeds.emplace_back("dnsseed.palladium-coin.xyz");
vSeeds.emplace_back("dnsseed.palladium-coin.de");
vSeeds.emplace_back("dnsseed.palladiumblockchain.net");
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,55);
@@ -145,7 +140,7 @@ public:
bech32_hrp = "plm";
vFixedSeeds = std::vector<SeedSpec6>(pnSeed6_main, pnSeed6_main + ARRAYLEN(pnSeed6_main));
//vFixedSeeds.clear();
//vFixedSeeds.clear();
fDefaultConsistencyChecks = false;
fRequireStandard = true;
@@ -160,16 +155,15 @@ public:
{69, uint256S("0x00000000ae75d0169080e9f0ddbcd80827eda623cfe1f4a2b1be6dcd49b916e6")},
{22170, uint256S("0x000000000000086425f826a2eb60c588aefd3e0783ddeccf0f4f0c985d348e69")},
{26619, uint256S("0x00000000000000d66df607146de7d9b423cf97150beb804d22439d199e868ca9")},
{28879, uint256S("0x0000000000000017e9e74b9b403b775098905418b1333e9612f510af66746aa7")},
{28879, uint256S("0x0000000000000017e9e74b9b403b775098905418b1333e9612f510af66746aa7")},
{28925, uint256S("0x0000000000000014351dee34029945d5a4dea299ec8843626695c88b084b4d10")},
{50000, uint256S("0x000000000000041fddecba51204a679b15ae47fc8aa658ef4ea7b953445d95e5")},
{100000, uint256S("0x0000000000000850eba93bbc491f085e2c79c0c30c497292858c72e90cae69a5")},
{142892, uint256S("0x000000000000829a0a4cab2f040151766df64edfe8817c565d101ae12b51411a")},
{50000, uint256S("0x000000000000041fddecba51204a679b15ae47fc8aa658ef4ea7b953445d95e5")},
{100000, uint256S("0x0000000000000850eba93bbc491f085e2c79c0c30c497292858c72e90cae69a5")},
{142892, uint256S("0x000000000000829a0a4cab2f040151766df64edfe8817c565d101ae12b51411a")},
{150000, uint256S("0x00000000000003212d753a62f2dec5b696ab22524cc49ba7cdc0d80c45d0eb18")},
{200000, uint256S("0x000000000000221a9e16556453fc86308b260d95d80c14bafaf053a09374e7eb")},
{250000, uint256S("0x0000000000012553b0303deaf5f2883deb66c901b6848dd03bb4a34f1774e0d0")},
{300000, uint256S("0x0000000000013acdf07a4fb988bbe9824c36eb421478a71c8196cf524dcba143")},
{308500, uint256S("0x000000000000693c6a323a828918f994abae9473373285aa22f0ec71fb5d0f39")},
}
};
@@ -190,39 +184,45 @@ public:
CTestNetParams() {
strNetworkID = CBaseChainParams::TESTNET;
consensus.nSubsidyHalvingInterval = 210000;
consensus.BIP16Exception = uint256S("0x00000000dd30457c001f4095d208cc1296b0eed002427aa599874af7a432b105");
consensus.BIP34Height = 21111;
consensus.BIP34Hash = uint256S("0x0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8");
consensus.BIP65Height = 581885; // 00000000007f6655f22f98e72ed80d8b06dc761d5da09df0fa1dc4be4f861eb6
consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182
consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb
consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca
consensus.MinBIP9WarningHeight = 836640; // segwit activation height + miner confirmation window
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
consensus.fPowAllowMinDifficultyBlocks = true;
consensus.fPowNoRetargeting = false;
consensus.nRuleChangeActivationThreshold = 1512; // 75% for testchains
consensus.nMinerConfirmationWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
consensus.BIP34Height = 0;
consensus.BIP65Height = 0;
consensus.BIP66Height = 0;
consensus.CSVHeight = 0;
consensus.SegwitHeight = 0;
consensus.MinBIP9WarningHeight = 0;
// The best chain should have at least this much work.
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000001495c1d5a01e2af8a23");
consensus.nMinimumChainWork = uint256S("0x00");
// By default assume that the signatures in ancestors of this block are valid.
consensus.defaultAssumeValid = uint256S("0x000000000000056c49030c174179b52a928c870e6e8a822c75973b7970cfbd01"); // 1692000
consensus.defaultAssumeValid = uint256S("0x00");
pchMessageStart[0] = 0x0b;
pchMessageStart[1] = 0x11;
pchMessageStart[2] = 0x09;
pchMessageStart[3] = 0x07;
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 24 * 60 * 60;
consensus.nPowTargetSpacing = 2 * 60;
consensus.fPowAllowMinDifficultyBlocks = true;
consensus.fPowNoRetargeting = false;
consensus.nRuleChangeActivationThreshold = 720;
consensus.nMinerConfirmationWindow = 540;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 0;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
pchMessageStart[0] = 0x0c;
pchMessageStart[1] = 0x12;
pchMessageStart[2] = 0x0a;
pchMessageStart[3] = 0x08;
nDefaultPort = 12333;
nPruneAfterHeight = 1000;
m_assumed_blockchain_size = 40;
m_assumed_chain_state_size = 2;
m_assumed_blockchain_size = 1;
m_assumed_chain_state_size = 1;
genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN);
consensus.hashGenesisBlock = genesis.GetHash();
@@ -231,19 +231,15 @@ public:
vFixedSeeds.clear();
vSeeds.clear();
// nodes with support for servicebits filtering should be at the top
vSeeds.emplace_back("testnet-seed.palladium.jonasschnelli.ch");
vSeeds.emplace_back("seed.tbtc.petertodd.org");
vSeeds.emplace_back("seed.testnet.palladium.sprovoost.nl");
vSeeds.emplace_back("testnet-seed.bluematt.me"); // Just a static list of stable node(s), only supports x9
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,111);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,196);
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,239);
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,127);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,115);
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,255);
base58Prefixes[EXT_PUBLIC_KEY] = {0x04, 0x35, 0x87, 0xCF};
base58Prefixes[EXT_SECRET_KEY] = {0x04, 0x35, 0x83, 0x94};
bech32_hrp = "tb";
bech32_hrp = "tplm";
vFixedSeeds = std::vector<SeedSpec6>(pnSeed6_test, pnSeed6_test + ARRAYLEN(pnSeed6_test));
@@ -254,15 +250,14 @@ public:
checkpointData = {
{
{546, uint256S("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")},
{0, uint256S("000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943")},
}
};
chainTxData = ChainTxData{
// Data from RPC: getchaintxstats 4096 000000000000056c49030c174179b52a928c870e6e8a822c75973b7970cfbd01
/* nTime */ 1585561140,
/* nTxCount */ 13483,
/* dTxRate */ 0.08523187013249722,
/* nTime */ 1296688602,
/* nTxCount */ 0,
/* dTxRate */ 0.0,
};
}
};
@@ -276,20 +271,20 @@ public:
strNetworkID = CBaseChainParams::REGTEST;
consensus.nSubsidyHalvingInterval = 150;
consensus.BIP16Exception = uint256();
consensus.BIP34Height = 500; // BIP34 activated on regtest (Used in functional tests)
consensus.BIP34Height = 0;
consensus.BIP34Hash = uint256();
consensus.BIP65Height = 1351; // BIP65 activated on regtest (Used in functional tests)
consensus.BIP66Height = 1251; // BIP66 activated on regtest (Used in functional tests)
consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests)
consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden
consensus.BIP65Height = 0;
consensus.BIP66Height = 0;
consensus.CSVHeight = 0;
consensus.SegwitHeight = 0;
consensus.MinBIP9WarningHeight = 0;
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
consensus.nPowTargetSpacing = 10 * 60;
consensus.nPowTargetTimespan = 24 * 60 * 60;
consensus.nPowTargetSpacing = 2 * 60;
consensus.fPowAllowMinDifficultyBlocks = true;
consensus.fPowNoRetargeting = true;
consensus.nRuleChangeActivationThreshold = 108; // 75% for testchains
consensus.nMinerConfirmationWindow = 144; // Faster than normal for regtest (144 instead of 2016)
consensus.nRuleChangeActivationThreshold = 108;
consensus.nMinerConfirmationWindow = 144;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 0;
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
@@ -304,7 +299,7 @@ public:
pchMessageStart[1] = 0xbf;
pchMessageStart[2] = 0xb5;
pchMessageStart[3] = 0xda;
nDefaultPort = 18444;
nDefaultPort = 28444;
nPruneAfterHeight = 1000;
m_assumed_blockchain_size = 0;
m_assumed_chain_state_size = 0;
@@ -316,8 +311,8 @@ public:
assert(consensus.hashGenesisBlock == uint256S("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"));
assert(genesis.hashMerkleRoot == uint256S("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
vFixedSeeds.clear(); //!< Regtest mode doesn't have any fixed seeds.
vSeeds.clear(); //!< Regtest mode doesn't have any DNS seeds.
vFixedSeeds.clear();
vSeeds.clear();
fDefaultConsistencyChecks = true;
fRequireStandard = true;
@@ -336,13 +331,13 @@ public:
0
};
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,111);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,196);
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,239);
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,127);
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,115);
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,255);
base58Prefixes[EXT_PUBLIC_KEY] = {0x04, 0x35, 0x87, 0xCF};
base58Prefixes[EXT_SECRET_KEY] = {0x04, 0x35, 0x83, 0x94};
bech32_hrp = "bcrt";
bech32_hrp = "rplm";
}
/**

View File

@@ -38,7 +38,7 @@ std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const std::string& chain
if (chain == CBaseChainParams::MAIN)
return MakeUnique<CBaseChainParams>("", 2332);
else if (chain == CBaseChainParams::TESTNET)
return MakeUnique<CBaseChainParams>("testnet3", 12332);
return MakeUnique<CBaseChainParams>("testnet", 12332);
else if (chain == CBaseChainParams::REGTEST)
return MakeUnique<CBaseChainParams>("regtest", 12443);
else

View File

@@ -13,7 +13,6 @@ static SeedSpec6 pnSeed6_main[] = {
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x59,0x75,0x95,0x82}, 2333},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x5e,0x73,0x50}, 2333},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0xcf,0x6c}, 2333},
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xbc,0xda,0xda,0xd9}, 2333}
};
static SeedSpec6 pnSeed6_test[] = {

View File

@@ -79,7 +79,11 @@ static std::string FormatVersion(int nVersion)
std::string FormatFullVersion()
{
return CLIENT_BUILD;
// Display a simplified semantic version: omit trailing ".0" and git suffix
// by reusing FormatVersion on the aggregated CLIENT_VERSION.
// This yields e.g. "v1.4.1" when CLIENT_VERSION_BUILD == 0,
// or "v1.4.1.1" if a non-zero build number is used.
return std::string("v") + FormatVersion(CLIENT_VERSION);
}
/**

View File

@@ -2039,7 +2039,7 @@ bool CChainState::ConnectBlock(const CBlock& block, BlockValidationState& state,
// edge case when manipulating the UTXO and it would be simpler not to have
// another edge case to deal with.
// testnet3 has no blocks before the BIP34 height with indicated heights
// testnet has no blocks before the BIP34 height with indicated heights
// post BIP34 before approximately height 486,000,000 and presumably will
// be reset before it reaches block 1,983,702 and starts doing unnecessary
// BIP30 checking again.

View File

@@ -20,13 +20,13 @@ import os
class RejectLowDifficultyHeadersTest(PalladiumTestFramework):
def set_test_params(self):
self.setup_clean_chain = True
self.chain = 'testnet3' # Use testnet chain because it has an early checkpoint
self.chain = 'testnet'
self.num_nodes = 2
def add_options(self, parser):
parser.add_argument(
'--datafile',
default='data/blockheader_testnet3.hex',
default='data/blockheader_testnet.hex',
help='Test data file (default: %(default)s)',
)
@@ -36,7 +36,7 @@ class RejectLowDifficultyHeadersTest(PalladiumTestFramework):
with open(self.headers_file_path, encoding='utf-8') as headers_data:
h_lines = [l.strip() for l in headers_data.readlines()]
# The headers data is taken from testnet3 for early blocks from genesis until the first checkpoint. There are
# The headers data is taken from testnet for early blocks from genesis until the first checkpoint. There are
# two headers with valid POW at height 1 and 2, forking off from genesis. They are indicated by the FORK_PREFIX.
FORK_PREFIX = 'fork:'
self.headers = [l for l in h_lines if not l.startswith(FORK_PREFIX)]

View File

@@ -90,7 +90,7 @@ MESSAGEMAP = {
MAGIC_BYTES = {
"mainnet": b"\xf9\xbe\xb4\xd9", # mainnet
"testnet3": b"\x0b\x11\x09\x07", # testnet3
"testnet": b"\x0c\x12\x0a\x08", # testnet
"regtest": b"\xfa\xbf\xb5\xda", # regtest
}

View File

@@ -302,7 +302,7 @@ def initialize_datadir(dirname, n, chain):
if not os.path.isdir(datadir):
os.makedirs(datadir)
# Translate chain name to config name
if chain == 'testnet3':
if chain == 'testnet':
chain_name_conf_arg = 'testnet'
chain_name_conf_section = 'test'
else: