Skip to content

Merge with Master#2

Open
jayhines91 wants to merge 484 commits into
VeriConomy:masterfrom
jayhines91:testnet
Open

Merge with Master#2
jayhines91 wants to merge 484 commits into
VeriConomy:masterfrom
jayhines91:testnet

Conversation

@jayhines91

Copy link
Copy Markdown

This is a codebase rollback to have a clean and working base to start from. This puts us back to bitcoin core 0.19 era, and remove veribase work due to incomplete work noted and bips incorrectly implemented.

hd4r and others added 30 commits July 6, 2020 21:53
Verium calculates the minimum fee slightly differently from Bitcoin. Instead of baseFee*size it uses baseFee*(1+size).
Fix minimum fee validation for Verium
Fix close with Minimize On Close Option
Remove FeeBump / AbandonTx / incrementalFee feature since it's not ne…
jayhines91 and others added 30 commits February 1, 2026 21:59
- Add build-linux-x86.sh and build-linux-arm.sh for cross-compilation
- Fix macOS window dragging issue (only drag on mouse button press)
- Fix macOS minimize button crash (add null pointer check)
- Add Linux build documentation and transfer guides
- Add verify-on-linux.sh script for transfer verification
- Update source files for compatibility (net.cpp, wallet files)
- Organize release binaries structure (linux/x86, linux/arm)
This commit enables testnet functionality and fixes critical issues preventing
mining on new testnet chains.

Testnet Enablement:
- Added CreateTestnetGenesisBlock() function for testnet genesis creation
- Implemented CTestNetParams class with testnet-specific configuration
- Configured testnet network parameters (port 36989, bech32 prefix "tvrm")
- Added VERIUM and VERICOIN chain name constants to chainparamsbase

Genesis Block Timestamp Fix:
- Updated testnet genesis timestamp from 1704067200 (Dec 31, 2023) to 1770070600 (Feb 2, 2026)
- Fixes IBD stale tip check that was preventing mining on new testnet chains
- Genesis blocks older than 24 hours trigger IsInitialBlockDownload() to stay true,
  which blocks mining. Fresh timestamp ensures IBD completes immediately.

Mining Fixes:
- Added null checks in miner.cpp to prevent segfaults when ChainActive().Tip() is nullptr
- Implemented logic to allow mining when genesis exists but chain tip is not yet activated
- Added null checks in getmininginfo RPC to prevent crashes with empty blockchain
- Fixed miner deadlock by allowing mining to proceed and activate genesis block
- Mining can now start on genesis block before it's activated as chain tip

Files modified:
- src/chainparams.cpp: Testnet parameters and genesis timestamp
- src/chainparamsbase.h: Chain name declarations
- src/chainparamsbase.cpp: Chain name implementations
- src/miner.cpp: Mining logic fixes for genesis activation
- src/rpc/mining.cpp: RPC null checks to prevent segfaults

These changes enable a new testnet chain to start mining immediately without
being blocked by IBD checks or segfaults.
Add mingw cross-friendly options to curl.mk patch.
Updated the Windows64Build workflow to include mingw cross-friendly options for curl.
Removed the patching step for Qt 5.9.8 numeric_limits include, which was previously included in the build workflow.
Modify curl.mk for mingw cross-compilation options
Add mingw cross-friendly options to curl package configuration.
Add mingw cross-friendly options to curl build.
Added inputs for target reference, dependency target, and verbose make output. Updated job configurations and added steps for installing dependencies and building the project.
This workflow builds Verium for Linux x86_64, allowing for optional dependencies and verbose output. It sets up the GCC 9 toolchain, manages dependencies, configures the build, and packages the output.
- Support both zip layouts: entries under 'bootstrap/' or top-level
  'blocks/' and 'chainstate/'. When the zip has top-level entries,
  extract into datadir/bootstrap/ so validate/apply logic works.
- Create parent directories before writing extracted files so extraction
  succeeds when the zip has no explicit directory entries.
- On mainnet redownload, remove existing datadir/bootstrap/ before
  extracting so the new zip fully overwrites (clean redownload).
- Add zip_get_first_entry_name() to detect zip structure; use
  dest_subdir only when not -testnet. Testnet bootstrapping is
  unchanged and still expects zip entries to start with 'bootstrap/'.
- Close zip handle after extraction (unzClose).

Co-authored-by: Cursor <[email protected]>
Updated Windows build workflow to use Ubuntu and removed unnecessary input parameters.
…ripts

CI/workflows:
- Linux64.yml: Build Linux tarball with daemon/, doc/, manpages/, desktop entry
- Windows64Build.yml: Cross-compile Windows build, zip + NSIS installer

Build infrastructure:
- Build-Scripts/: Local Docker build scripts (build-in-docker.sh, build-windows-docker.sh, do-configure-make.sh)
- contrib/release-tools/: gather-manpages.sh, INSTALL_LINUX.txt
- share/applications/verium-qt.desktop: Desktop entry for verium-qt
- Makefile.am: BITCOIN_WIN_INSTALLER runs gather-manpages before makensis

Fixes for Windows cross-compile:
- depends/packages/curl.mk: Win64 opts (--with-winssl, disable ldap/ssh/etc)
- src/util/time.cpp: gmtime_r shim for MinGW
- src/Makefile.qt.include: Init LIBBITCOINQT vars for Qt5
- share/setup.nsi.in: Verium branding, version 1.3.5.2

Branding/version:
- configure.ac: BITCOIN_GUI_NAME=verium-qt, PACKAGE_VERSION 1.3.5.2
- src/qt/splashscreen.cpp, guiconstants.h, bitcoingui.cpp: Verium naming
- doc/release-notes: Add release-notes-1.3.5.2.md, update index

Cleanup:
- .gitignore: out/, out-linux/, release/, share/man/
- doc/man/verium-testnet.1: New manpage

Co-authored-by: Cursor <[email protected]>
…ds, add new manpage, and improve cleanup. Adjust build scripts and workflows for better cross-compilation support and branding consistency.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants