From b0ed2ce585d2a6fd7c6d8d4db7422734aedccb58 Mon Sep 17 00:00:00 2001 From: Nsable-sh Date: Wed, 12 Aug 2026 11:58:03 -0300 Subject: site: document public deployment contract --- scripts/build-explorer.py | 128 ++++++++++++++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 44 deletions(-) (limited to 'scripts') diff --git a/scripts/build-explorer.py b/scripts/build-explorer.py index 97a7f4e..dbb8e17 100755 --- a/scripts/build-explorer.py +++ b/scripts/build-explorer.py @@ -4,6 +4,7 @@ import argparse import hashlib import json +import shutil import sys from pathlib import Path @@ -148,6 +149,11 @@ def build_explorer(raw_blocks, out_dir): encoding="ascii", ) (out / "index.html").write_text(INDEX_HTML, encoding="utf-8") + (out / "style.css").write_text(STYLE_CSS, encoding="utf-8") + (out / "explorer.js").write_text(EXPLORER_JS, encoding="utf-8") + logo = Path(__file__).resolve().parents[1] / "docs" / "logo.png" + if logo.exists(): + shutil.copyfile(logo, out / "logo.png") return len(blocks), len(blocks) - 1 @@ -167,43 +173,26 @@ INDEX_HTML = r""" Bitflash Block Explorer - + + + + -
-

Bitflash Block Explorer

- - - +
+ Bitflash + +
+

Block explorer

Read-only view of the main chain: blocks, their transactions, and the coinbase payout. There is no mempool and no per-address history here.

@@ -213,9 +202,63 @@ INDEX_HTML = r"""

- + - - - """ -- cgit v1.2.3 From 44fbf6895bd3acd11f552514e746a2e3876cad2d Mon Sep 17 00:00:00 2001 From: Nsable-sh Date: Thu, 13 Aug 2026 14:29:14 -0300 Subject: release: package Windows builds with managed Tor --- Makefile | 6 +- README.md | 13 ++++ docs/release-verification.md | 6 ++ docs/tor.md | 16 +++++ scripts/make-release-checksums.sh | 2 + scripts/package-windows-tor.sh | 132 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 174 insertions(+), 1 deletion(-) create mode 100755 scripts/package-windows-tor.sh (limited to 'scripts') diff --git a/Makefile b/Makefile index b4d0cf7..d1277a4 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ # # make linux build Bitflash-*-x86_64.AppImage # make windows build Bitflash-*-windows.zip (from MSYS2 UCRT64) +# make windows-tor build Bitflash-*-windows-with-tor.zip # make tests build and run standalone unit tests # make checksums create SHA256SUMS for release assets # make verify-release TAG=v1.2.13 @@ -180,6 +181,9 @@ windows: deps-windows @zip -r Bitflash-$(VERSION)-windows.zip Bitflash-$(VERSION)-windows/ @echo "Built: Bitflash-$(VERSION)-windows.zip" +windows-tor: windows + ./scripts/package-windows-tor.sh + # ---- Clean ---------------------------------------------------------------- clean: @@ -206,6 +210,6 @@ sign-checksums: verify-release: ./scripts/verify-release.sh $(if $(TAG),$(TAG),latest) -.PHONY: linux windows clean appimage \ +.PHONY: linux windows windows-tor clean appimage \ tests fuzz-net-message-smoke fuzz-script-smoke checksums sign-checksums verify-release \ deps-linux deps-windows deps-apt deps-secp256k1 deps-randomx diff --git a/README.md b/README.md index a7ce2b2..c30f171 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ configuration — it connects automatically and starts syncing. **Linux:** make the `.AppImage` executable and run it. **Windows:** extract the `-windows.zip` and run `Bitflash.exe`. +If you want managed Tor without a separate Tor install, use the +`-windows-with-tor.zip` package and start Bitflash with `-managedtor`. Every release ships a `SHA256SUMS` covering the assets. Verifying takes a second and is worth doing: @@ -452,6 +454,17 @@ make windows ``` Installs deps via pacman, produces `Bitflash-*-windows.zip`. +To build the Windows package that also carries the Tor Expert Bundle: + +```bash +make windows-tor +``` + +That produces `Bitflash-*-windows-with-tor.zip`. The release script downloads +the Tor Expert Bundle from the official Tor archive, verifies its pinned SHA256, +and places `tor/tor.exe` beside `Bitflash.exe` so `-managedtor` works without a +separate Tor install. + --- ## At a glance diff --git a/docs/release-verification.md b/docs/release-verification.md index 408bab9..04d18a3 100644 --- a/docs/release-verification.md +++ b/docs/release-verification.md @@ -81,6 +81,12 @@ Publish, alongside the assets, `SHA256SUMS` and `SHA256SUMS.asc`, and update is ever rotated, announce the new fingerprint clearly and update the embedded key in `verify-release.sh`. +For Windows releases with managed Tor built in, run `make windows-tor`. It +creates `Bitflash-*-windows-with-tor.zip` by downloading the Tor Expert Bundle, +checking the pinned SHA256 in `scripts/package-windows-tor.sh`, and placing +`tor/tor.exe` next to `Bitflash.exe`. Include that zip in `SHA256SUMS` like any +other release asset. + ## Why this matters `SHA256SUMS` alone protects against a broken download, but not against someone diff --git a/docs/tor.md b/docs/tor.md index 1c0f589..be6a145 100644 --- a/docs/tor.md +++ b/docs/tor.md @@ -53,6 +53,22 @@ Without a value, Bitflash looks for Tor in this order: 2. `tor.exe` or `tor` beside the Bitflash binary; 3. `tor.exe` or `tor` on `PATH`. +Windows releases can also be built as `Bitflash-*-windows-with-tor.zip`. That +package includes the official Tor Expert Bundle under `tor/`, so the first path +above exists immediately after extraction and `bitflash -managedtor` needs no +separate Tor install. + +The bundled-Tor package is created by: + +```bash +make windows-tor +``` + +The packaging script verifies a pinned SHA256 for the downloaded Tor Expert +Bundle before copying it into the release directory. The Tor binary is bundled; +the runtime data directory, hidden-service key, and control cookie are still +created under the user's Bitflash data directory. + To point at a specific Tor executable: ```bash diff --git a/scripts/make-release-checksums.sh b/scripts/make-release-checksums.sh index 5b29e2d..9c4f45a 100755 --- a/scripts/make-release-checksums.sh +++ b/scripts/make-release-checksums.sh @@ -10,6 +10,7 @@ Usage: scripts/make-release-checksums.sh [--sign] [--local-user KEYID] Creates SHA256SUMS for release assets in the current directory: Bitflash-*-windows.zip + Bitflash-*-windows-with-tor.zip Bitflash-*-x86_64.AppImage bitflash-node-*-x86_64 @@ -44,6 +45,7 @@ fi assets=() for pattern in \ "Bitflash-*-windows.zip" \ + "Bitflash-*-windows-with-tor.zip" \ "Bitflash-*-x86_64.AppImage" \ "bitflash-node-*-x86_64" do diff --git a/scripts/package-windows-tor.sh b/scripts/package-windows-tor.sh new file mode 100755 index 0000000..084fd1a --- /dev/null +++ b/scripts/package-windows-tor.sh @@ -0,0 +1,132 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +VERSION="${VERSION:-$(sed -n 's/^VERSION[[:space:]]*:= *//p' "$ROOT/Makefile" | head -1)}" + +TOR_VERSION="${TOR_VERSION:-15.0.19}" +TOR_ARCHIVE_NAME="tor-expert-bundle-windows-x86_64-${TOR_VERSION}.tar.gz" +TOR_URL="${TOR_URL:-https://archive.torproject.org/tor-package-archive/torbrowser/${TOR_VERSION}/${TOR_ARCHIVE_NAME}}" +TOR_SHA256="${TOR_SHA256:-6AC067402C7B4A3DC37887ED3754B3914B67FDC220C966190683E9CCF91ABF0F}" + +BUNDLE_DIR="${BUNDLE_DIR:-$ROOT/Bitflash-${VERSION}-windows}" +OUT_ZIP="${OUT_ZIP:-$ROOT/Bitflash-${VERSION}-windows-with-tor.zip}" +CACHE_DIR="${CACHE_DIR:-$ROOT/.cache}" +ARCHIVE="${TOR_ARCHIVE:-$CACHE_DIR/$TOR_ARCHIVE_NAME}" + +usage() { + cat </dev/null 2>&1 || { + echo "missing required command: $1" >&2 + exit 1 + } +} + +need sha256sum +need tar +need zip + +if [ ! -d "$BUNDLE_DIR" ]; then + echo "missing Windows release directory: $BUNDLE_DIR" >&2 + echo "run 'make windows' first, or set BUNDLE_DIR" >&2 + exit 1 +fi +if [ ! -f "$BUNDLE_DIR/Bitflash.exe" ]; then + echo "missing Bitflash.exe in $BUNDLE_DIR" >&2 + exit 1 +fi +BUNDLE_PARENT="$(cd "$(dirname "$BUNDLE_DIR")" && pwd)" +BUNDLE_NAME="$(basename "$BUNDLE_DIR")" +OUT_PARENT="$(mkdir -p "$(dirname "$OUT_ZIP")" && cd "$(dirname "$OUT_ZIP")" && pwd)" +OUT_NAME="$(basename "$OUT_ZIP")" +OUT_ZIP_ABS="$OUT_PARENT/$OUT_NAME" + +mkdir -p "$CACHE_DIR" +if [ ! -f "$ARCHIVE" ]; then + if command -v curl >/dev/null 2>&1; then + curl -L --fail --output "$ARCHIVE" "$TOR_URL" + elif command -v wget >/dev/null 2>&1; then + wget -O "$ARCHIVE" "$TOR_URL" + else + echo "missing required command: curl or wget" >&2 + exit 1 + fi +fi + +got="$(sha256sum "$ARCHIVE" | awk '{print tolower($1)}')" +want="$(printf '%s' "$TOR_SHA256" | tr 'A-F' 'a-f')" +if [ "$got" != "$want" ]; then + echo "Tor archive SHA256 mismatch" >&2 + echo " expected: $want" >&2 + echo " got: $got" >&2 + exit 1 +fi + +tmp="$(mktemp -d "${TMPDIR:-/tmp}/bitflash-tor-package.XXXXXX")" +trap 'rm -rf "$tmp"' EXIT + +mkdir -p "$tmp/extract" +tar -xzf "$ARCHIVE" -C "$tmp/extract" + +if [ ! -f "$tmp/extract/tor/tor.exe" ]; then + echo "Tor archive did not contain tor/tor.exe" >&2 + exit 1 +fi + +rm -rf "$BUNDLE_DIR/tor" +mkdir -p "$BUNDLE_DIR/tor" +cp -R "$tmp/extract/tor/." "$BUNDLE_DIR/tor/" +if [ -d "$tmp/extract/docs" ]; then + mkdir -p "$BUNDLE_DIR/tor/docs" + cp -R "$tmp/extract/docs/." "$BUNDLE_DIR/tor/docs/" +fi +if [ -d "$tmp/extract/data" ]; then + mkdir -p "$BUNDLE_DIR/tor/data-defaults" + cp -R "$tmp/extract/data/." "$BUNDLE_DIR/tor/data-defaults/" +fi + +cat > "$BUNDLE_DIR/TOR-EXPERT-BUNDLE.txt" < Date: Thu, 13 Aug 2026 14:35:49 -0300 Subject: release: verify bundled Tor signatures --- README.md | 6 ++-- docs/release-verification.md | 8 +++-- docs/tor.md | 9 ++++-- scripts/package-windows-tor.sh | 71 +++++++++++++++++++++++++++++++++++++----- 4 files changed, 78 insertions(+), 16 deletions(-) (limited to 'scripts') diff --git a/README.md b/README.md index c30f171..bb6a4d4 100644 --- a/README.md +++ b/README.md @@ -462,8 +462,10 @@ make windows-tor That produces `Bitflash-*-windows-with-tor.zip`. The release script downloads the Tor Expert Bundle from the official Tor archive, verifies its pinned SHA256, -and places `tor/tor.exe` beside `Bitflash.exe` so `-managedtor` works without a -separate Tor install. +optionally verifies the Tor Project GPG signature when `gpg` is available, and +places `tor/tor.exe` beside `Bitflash.exe` so `-managedtor` works without a +separate Tor install. For release builds, use `TOR_VERIFY_GPG=required make +windows-tor` to require the extra signature check. --- diff --git a/docs/release-verification.md b/docs/release-verification.md index 04d18a3..b8eaf5e 100644 --- a/docs/release-verification.md +++ b/docs/release-verification.md @@ -83,9 +83,11 @@ key in `verify-release.sh`. For Windows releases with managed Tor built in, run `make windows-tor`. It creates `Bitflash-*-windows-with-tor.zip` by downloading the Tor Expert Bundle, -checking the pinned SHA256 in `scripts/package-windows-tor.sh`, and placing -`tor/tor.exe` next to `Bitflash.exe`. Include that zip in `SHA256SUMS` like any -other release asset. +checking the pinned SHA256 in `scripts/package-windows-tor.sh`, optionally +verifying the Tor Project `.asc` signature, and placing `tor/tor.exe` next to +`Bitflash.exe`. For release builds, run `TOR_VERIFY_GPG=required make +windows-tor` so the signature check is mandatory. Include that zip in +`SHA256SUMS` like any other release asset. ## Why this matters diff --git a/docs/tor.md b/docs/tor.md index be6a145..a408704 100644 --- a/docs/tor.md +++ b/docs/tor.md @@ -65,9 +65,12 @@ make windows-tor ``` The packaging script verifies a pinned SHA256 for the downloaded Tor Expert -Bundle before copying it into the release directory. The Tor binary is bundled; -the runtime data directory, hidden-service key, and control cookie are still -created under the user's Bitflash data directory. +Bundle before copying it into the release directory. When `gpg` is available it +also verifies the matching `.asc` signature against the pinned Tor Browser +Developers signing-key fingerprint. Release builds should use +`TOR_VERIFY_GPG=required make windows-tor` to make that second check mandatory. +The Tor binary is bundled; the runtime data directory, hidden-service key, and +control cookie are still created under the user's Bitflash data directory. To point at a specific Tor executable: diff --git a/scripts/package-windows-tor.sh b/scripts/package-windows-tor.sh index 084fd1a..c8cca3b 100755 --- a/scripts/package-windows-tor.sh +++ b/scripts/package-windows-tor.sh @@ -8,11 +8,15 @@ TOR_VERSION="${TOR_VERSION:-15.0.19}" TOR_ARCHIVE_NAME="tor-expert-bundle-windows-x86_64-${TOR_VERSION}.tar.gz" TOR_URL="${TOR_URL:-https://archive.torproject.org/tor-package-archive/torbrowser/${TOR_VERSION}/${TOR_ARCHIVE_NAME}}" TOR_SHA256="${TOR_SHA256:-6AC067402C7B4A3DC37887ED3754B3914B67FDC220C966190683E9CCF91ABF0F}" +TOR_ASC_URL="${TOR_ASC_URL:-${TOR_URL}.asc}" +TOR_SIGNING_KEY_FINGERPRINT="${TOR_SIGNING_KEY_FINGERPRINT:-EF6E286DDA85EA2A4BA7DE684E2C6E8793298290}" +TOR_VERIFY_GPG="${TOR_VERIFY_GPG:-auto}" BUNDLE_DIR="${BUNDLE_DIR:-$ROOT/Bitflash-${VERSION}-windows}" OUT_ZIP="${OUT_ZIP:-$ROOT/Bitflash-${VERSION}-windows-with-tor.zip}" CACHE_DIR="${CACHE_DIR:-$ROOT/.cache}" ARCHIVE="${TOR_ARCHIVE:-$CACHE_DIR/$TOR_ARCHIVE_NAME}" +ASC_FILE="${TOR_ASC:-$ARCHIVE.asc}" usage() { cat </dev/null 2>&1; then + curl -L --fail --output "$out" "$url" + elif command -v wget >/dev/null 2>&1; then + wget -O "$out" "$url" + else + echo "missing required command: curl or wget" >&2 + exit 1 + fi +} + if [ ! -d "$BUNDLE_DIR" ]; then echo "missing Windows release directory: $BUNDLE_DIR" >&2 echo "run 'make windows' first, or set BUNDLE_DIR" >&2 @@ -65,14 +85,7 @@ OUT_ZIP_ABS="$OUT_PARENT/$OUT_NAME" mkdir -p "$CACHE_DIR" if [ ! -f "$ARCHIVE" ]; then - if command -v curl >/dev/null 2>&1; then - curl -L --fail --output "$ARCHIVE" "$TOR_URL" - elif command -v wget >/dev/null 2>&1; then - wget -O "$ARCHIVE" "$TOR_URL" - else - echo "missing required command: curl or wget" >&2 - exit 1 - fi + download "$TOR_URL" "$ARCHIVE" fi got="$(sha256sum "$ARCHIVE" | awk '{print tolower($1)}')" @@ -87,6 +100,48 @@ fi tmp="$(mktemp -d "${TMPDIR:-/tmp}/bitflash-tor-package.XXXXXX")" trap 'rm -rf "$tmp"' EXIT +case "$TOR_VERIFY_GPG" in + auto|required|off) ;; + *) echo "TOR_VERIFY_GPG must be auto, required, or off" >&2; exit 2 ;; +esac + +if [ "$TOR_VERIFY_GPG" != "off" ]; then + if command -v gpg >/dev/null 2>&1; then + if [ ! -f "$ASC_FILE" ]; then + download "$TOR_ASC_URL" "$ASC_FILE" + fi + gnupg_home="$tmp/gnupg" + mkdir -p "$gnupg_home" + chmod 0700 "$gnupg_home" + gpg --homedir "$gnupg_home" --batch --auto-key-locate nodefault,wkd,keyserver \ + --locate-keys torbrowser@torproject.org >/dev/null 2>&1 || { + if [ "$TOR_VERIFY_GPG" = "required" ]; then + echo "could not import Tor Browser Developers signing key" >&2 + exit 1 + fi + echo "WARNING: skipped Tor GPG signature verification; signing key import failed" >&2 + } + if gpg --homedir "$gnupg_home" --batch --with-colons --fingerprint "$TOR_SIGNING_KEY_FINGERPRINT" \ + 2>/dev/null | grep -q "^fpr:::::::::${TOR_SIGNING_KEY_FINGERPRINT}:"; then + gpg --homedir "$gnupg_home" --batch --verify "$ASC_FILE" "$ARCHIVE" >/dev/null 2>&1 || { + echo "Tor archive GPG signature verification failed" >&2 + exit 1 + } + echo "Tor archive GPG signature verified against ${TOR_SIGNING_KEY_FINGERPRINT}" + elif [ "$TOR_VERIFY_GPG" = "required" ]; then + echo "Tor signing key fingerprint mismatch" >&2 + exit 1 + else + echo "WARNING: skipped Tor GPG signature verification; signing key fingerprint was not available" >&2 + fi + elif [ "$TOR_VERIFY_GPG" = "required" ]; then + echo "missing required command for TOR_VERIFY_GPG=required: gpg" >&2 + exit 1 + else + echo "WARNING: gpg not found; relying on pinned SHA256 only" >&2 + fi +fi + mkdir -p "$tmp/extract" tar -xzf "$ARCHIVE" -C "$tmp/extract" -- cgit v1.2.3 From 5309170e567f4a8655b3b622e7b26b6d8b382942 Mon Sep 17 00:00:00 2001 From: Nsable-sh Date: Thu, 13 Aug 2026 15:24:10 -0300 Subject: net: add onion-only btf dial mode --- docs/tor.md | 28 ++++++ scripts/smoke-managed-tor-onion.ps1 | 174 ++++++++++++++++++++++++++++++++++++ src/main_gui.cpp | 4 + src/net.cpp | 25 +++++- src/net.h | 1 + src/nostr.cpp | 11 +-- src/proxy.cpp | 51 ++++++++++- 7 files changed, 283 insertions(+), 11 deletions(-) create mode 100644 scripts/smoke-managed-tor-onion.ps1 (limited to 'scripts') diff --git a/docs/tor.md b/docs/tor.md index a408704..0016f8b 100644 --- a/docs/tor.md +++ b/docs/tor.md @@ -201,3 +201,31 @@ but an already-discovered onion-capable peer can be reached directly over Tor. Tor owns the private key under `HiddenServiceDir`; back it up if you want the onion name to stay stable. + +## Release smoke test + +After building a Windows binary with managed Tor support, run the two-node smoke +test before cutting a release: + +```powershell +powershell -ExecutionPolicy Bypass -File scripts\smoke-managed-tor-onion.ps1 ` + -Bitflash .\src\bitflash.exe ` + -Tor C:\path\to\tor.exe +``` + +The script creates two temporary datadirs, starts node A with `-managedtor`, +waits for it to publish its `.btf` identity and generated `.onion` endpoint, +then starts node B with its own `-managedtor`, `-oniononly`, and +`-connectbtf=`. It passes only when node B logs that it connected to +node A `via direct onion`; rendezvous fallback cannot satisfy the test. + +By default the script waits 120 seconds after node A's descriptor self-resolves +before it starts node B. Tor can create the local `hostname` before the hidden +service descriptor is visible enough for client circuits, and early dials often +fail with SOCKS5 reply `0x01`. Override this with `-OnionWarmupSec N` when +testing a slow or already-warmed Tor environment. + +This test still uses Nostr for descriptor discovery, because that is how nodes +learn each other's signed `.btf` descriptors. It does not require a Bitflash +rendezvous relay to carry the P2P connection: once the descriptor includes the +signed onion endpoint, the actual node connection goes directly through Tor. diff --git a/scripts/smoke-managed-tor-onion.ps1 b/scripts/smoke-managed-tor-onion.ps1 new file mode 100644 index 0000000..70658c7 --- /dev/null +++ b/scripts/smoke-managed-tor-onion.ps1 @@ -0,0 +1,174 @@ +param( + [string]$Bitflash, + [string]$Tor, + [string]$WorkDir, + [int]$TimeoutSec = 600, + [int]$OnionWarmupSec = 120 +) + +$ErrorActionPreference = "Stop" + +function Resolve-RepoRoot { + $scriptDir = Split-Path -Parent $PSCommandPath + return (Resolve-Path (Join-Path $scriptDir "..")).Path +} + +function Get-FreeTcpPort { + $listener = [Net.Sockets.TcpListener]::new([Net.IPAddress]::Loopback, 0) + $listener.Start() + try { + return ([Net.IPEndPoint]$listener.LocalEndpoint).Port + } + finally { + $listener.Stop() + } +} + +function Wait-RegexInFile { + param( + [string]$Path, + [string]$Pattern, + [datetime]$Deadline, + [string]$Label + ) + + while ((Get-Date) -lt $Deadline) { + if (Test-Path $Path) { + $text = Get-Content -Raw -ErrorAction SilentlyContinue $Path + if ($null -ne $text) { + $m = [regex]::Match($text, $Pattern) + if ($m.Success) { + return $m + } + } + } + Start-Sleep -Milliseconds 500 + } + throw "timed out waiting for $Label" +} + +function Stop-TestProcesses { + param( + [System.Diagnostics.Process[]]$Processes, + [string[]]$DataDirKeys + ) + + foreach ($p in $Processes) { + try { + $p.Refresh() + if (!$p.HasExited) { + Stop-Process -Id $p.Id -Force + } + } + catch {} + } + + foreach ($key in $DataDirKeys) { + if ([string]::IsNullOrWhiteSpace($key)) { + continue + } + try { + Get-CimInstance Win32_Process -Filter "name = 'tor.exe'" | + Where-Object { $_.CommandLine -like "*$key*" } | + ForEach-Object { Stop-Process -Id $_.ProcessId -Force } + } + catch {} + } +} + +$repo = Resolve-RepoRoot +if ([string]::IsNullOrWhiteSpace($Bitflash)) { + $Bitflash = Join-Path $repo "src\bitflash.exe" +} +if ([string]::IsNullOrWhiteSpace($Tor)) { + $candidates = @( + (Join-Path $repo "src\tor\tor.exe"), + (Join-Path $repo "Bitflash-$(Select-String -Path (Join-Path $repo 'Makefile') -Pattern '^VERSION[ ]*:=' | ForEach-Object { ($_.Line -split ':=')[1].Trim() })-windows\tor\tor.exe") + ) + foreach ($candidate in $candidates) { + if (Test-Path $candidate) { + $Tor = $candidate + break + } + } +} +if ([string]::IsNullOrWhiteSpace($WorkDir)) { + $WorkDir = Join-Path $env:TEMP ("bitflash-managed-tor-two-node-" + (Get-Date -Format "yyyyMMddHHmmss")) +} + +if (!(Test-Path $Bitflash)) { + throw "Bitflash binary not found: $Bitflash" +} +if (!(Test-Path $Tor)) { + throw "Tor binary not found. Pass -Tor or build the Windows-with-Tor package." +} + +New-Item -ItemType Directory -Force -Path $WorkDir | Out-Null +$dataA = Join-Path $WorkDir "node-a" +$dataB = Join-Path $WorkDir "node-b" +New-Item -ItemType Directory -Force -Path $dataA | Out-Null +New-Item -ItemType Directory -Force -Path $dataB | Out-Null + +$portA = Get-FreeTcpPort +$portB = Get-FreeTcpPort +$deadline = (Get-Date).AddSeconds($TimeoutSec) +$oldPath = $env:PATH +$env:PATH = "C:\msys64\ucrt64\bin;C:\msys64\usr\bin;" + $env:PATH + +$procA = $null +$procB = $null +$dataKeys = @((Split-Path $WorkDir -Leaf)) + +try { + $argsA = @( + "-datadir=$dataA", + "-port=$portA", + "-managedtor=$Tor", + "-nogui", + "-debug", + "-checkblocks=0" + ) + $procA = Start-Process -FilePath $Bitflash -ArgumentList $argsA -WorkingDirectory (Split-Path $Bitflash -Parent) -PassThru -WindowStyle Hidden + $logA = Join-Path $dataA "debug.log" + + $btfMatch = Wait-RegexInFile -Path $logA -Pattern "Nostr: node \.btf address = ([a-z2-7]+\.btf)" -Deadline $deadline -Label "node A .btf address" + $btfA = $btfMatch.Groups[1].Value + + $onionMatch = Wait-RegexInFile -Path $logA -Pattern "Managed Tor hidden service ready: ([a-z2-7]{56}\.onion:\d+)" -Deadline $deadline -Label "node A managed onion" + $onionA = $onionMatch.Groups[1].Value + + Wait-RegexInFile -Path $logA -Pattern "Nostr: \.btf self-resolve OK via .*" -Deadline $deadline -Label "node A descriptor self-resolve" | Out-Null + if ($OnionWarmupSec -gt 0) { + Write-Host "Waiting $OnionWarmupSec second(s) for Tor hidden-service descriptor propagation" + Start-Sleep -Seconds $OnionWarmupSec + } + + $argsB = @( + "-datadir=$dataB", + "-port=$portB", + "-managedtor=$Tor", + "-oniononly", + "-connectbtf=$btfA", + "-nogui", + "-debug", + "-checkblocks=0" + ) + $procB = Start-Process -FilePath $Bitflash -ArgumentList $argsB -WorkingDirectory (Split-Path $Bitflash -Parent) -PassThru -WindowStyle Hidden + $logB = Join-Path $dataB "debug.log" + + Wait-RegexInFile -Path $logB -Pattern ("connected " + [regex]::Escape($btfA) + " via direct onion ") -Deadline $deadline -Label "node B direct onion connection to node A" | Out-Null + + Write-Host "Managed Tor two-node onion smoke test passed" + Write-Host " node A .btf: $btfA" + Write-Host " node A onion: $onionA" + Write-Host " node A port: $portA" + Write-Host " node B port: $portB" + Write-Host " work dir: $WorkDir" +} +finally { + $env:PATH = $oldPath + $procs = @() + if ($null -ne $procA) { $procs += $procA } + if ($null -ne $procB) { $procs += $procB } + Stop-TestProcesses -Processes $procs -DataDirKeys $dataKeys +} diff --git a/src/main_gui.cpp b/src/main_gui.cpp index deed471..f0fe903 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -143,6 +143,7 @@ static void PrintUsage() printf(" /socks=HOST:PORT (SOCKS5 proxy for Nostr, .btf relay, and onion dials)\n"); printf(" /tor[=HOST:PORT] (Tor mode; default SOCKS5 proxy is 127.0.0.1:9050)\n"); printf(" /managedtor[=PATH] (start Tor, create a hidden service, advertise its onion)\n"); + printf(" /oniononly (do not fall back to rendezvous when a .btf onion dial fails)\n"); printf(" /btfseed=ADDRESS:ENCHEX (extra bootstrap peer, repeatable)\n"); printf("\n"); printf("Wallet:\n"); @@ -278,6 +279,7 @@ static void ParseStartupArguments(int argc, char* argv[]) string btfConnect = argval2(argc, argv, "/connectbtf", "-connectbtf"); if (!btfConnect.empty()) strBtfConnect = btfConnect; + fBtfOnionOnly = arg(argc, argv, "/oniononly") || arg(argc, argv, "-oniononly"); string rvRelay = argval2(argc, argv, "/rvrelay", "-rvrelay"); if (!rvRelay.empty()) @@ -360,6 +362,8 @@ static void ParseStartupArguments(int argc, char* argv[]) BtfSocks5ProxyName().c_str()); } } + if (fBtfOnionOnly && !BtfSocks5ProxyEnabled()) + fprintf(stderr, "Warning: /oniononly without /tor, /managedtor, or /socks cannot dial .onion peers\n"); // /btfseed=ADDRESS:ENCHEX -- extra bootstrap peers, repeatable. Useful for // testing the seed path and for private networks that ship no compiled list. diff --git a/src/net.cpp b/src/net.cpp index 6bc3c1c..997a2bd 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -65,6 +65,8 @@ deque > vRelayExpiration; CCriticalSection cs_mapRelay; map mapAlreadyAskedFor; string strBtfConnect; // .btf peer to keep connected to (from /connectbtf) +bool fBtfOnionOnly = false; // require direct onion transport for .btf peers +static const int BTF_ONION_CONNECT_TIMEOUT_SECS = 120; int nPeersWatched = 0; int64 nBlocksReceived = 0; @@ -1022,7 +1024,8 @@ static CNode* ConnectNodeBtfTail(const string& strBtfAddr, const unsigned char p if (SplitHostPort(strOnionNorm, strOnionHost, nOnionPort)) { BtfChurnNoteDialAttempt(strBtfAddr, strOnionNorm); - SOCKET hOnionSocket = BtfConnectSocket(strOnionHost, nOnionPort, SOCK_ONION_PEER, 20); + SOCKET hOnionSocket = BtfConnectSocket(strOnionHost, nOnionPort, SOCK_ONION_PEER, + BTF_ONION_CONNECT_TIMEOUT_SECS); if (hOnionSocket != INVALID_SOCKET) { if (fDebug) @@ -1040,12 +1043,23 @@ static CNode* ConnectNodeBtfTail(const string& strBtfAddr, const unsigned char p return pnode; } if (fDebug) - LogPrint("net", "ConnectNodeBtf: direct onion to %s at %s failed, falling back to rendezvous\n", - strBtfAddr.c_str(), strOnionNorm.c_str()); + LogPrint("net", "ConnectNodeBtf: direct onion to %s at %s failed%s\n", + strBtfAddr.c_str(), strOnionNorm.c_str(), + fBtfOnionOnly ? "" : ", falling back to rendezvous"); BtfChurnNoteDialResult(strBtfAddr, strOnionNorm, false); + if (fBtfOnionOnly) + return NULL; } } + if (fBtfOnionOnly) + { + if (fDebug) + LogPrint("net", "ConnectNodeBtf: onion-only mode refused rendezvous fallback for %s\n", + strBtfAddr.c_str()); + return NULL; + } + BtfChurnNoteDialAttempt(strBtfAddr, strMeeting); string strHost; unsigned short nPort = 0; @@ -2012,6 +2026,11 @@ bool StartNode(string& strError) // IP address, and port for the socket that is being bound int nRetryLimit = 15; struct sockaddr_in sockaddr = addrLocalHost.GetSockAddr(); + // Keep addrLocalHost as this node's advertised address, but listen on all + // local interfaces. Managed Tor forwards hidden-service traffic to + // 127.0.0.1:, and binding only to the LAN address made that onion + // endpoint unreachable even though the P2P listener was running. + sockaddr.sin_addr.s_addr = INADDR_ANY; if (bind(hListenSocket, (struct sockaddr*)&sockaddr, sizeof(sockaddr)) == SOCKET_ERROR) { int nErr = WSAGetLastError(); diff --git a/src/net.h b/src/net.h index 9300169..984588b 100644 --- a/src/net.h +++ b/src/net.h @@ -33,6 +33,7 @@ CNode* ConnectNodeBtfResolved(const string& strBtfAddr, const string& strMeeting void ThreadBtfAccept(void* parg); void ThreadBtfConnect(void* parg); extern string strBtfConnect; +extern bool fBtfOnionOnly; // Bootstrap seeds added at runtime with /btfseed=ADDRESS:ENCHEX (repeatable). // The compiled-in list lives in net.cpp; these are appended to it. extern std::vector > vBtfExtraSeeds; diff --git a/src/nostr.cpp b/src/nostr.cpp index 0c1b4b6..35fde43 100644 --- a/src/nostr.cpp +++ b/src/nostr.cpp @@ -1764,11 +1764,12 @@ void ThreadNostrSeed(void* parg) LogPrint("nostr", "Nostr: node pubkey = %s\n", key.PubKeyHex().c_str()); LogPrint("nostr", "Nostr: node .btf address = %s\n", key.BtfAddress().c_str()); - // The self-test below publishes a real descriptor, and PublishDescriptor now - // refuses to publish before ThreadBtfAccept has registered a rendezvous. Give - // registration a bounded head start so the test measures the publish/resolve - // chain instead of losing the race against it. - for (int i = 0; i < 60 && !fShutdown && BtfActiveRelay().empty(); i++) + // The self-test below publishes a real descriptor. Rendezvous-only nodes + // need ThreadBtfAccept to register first; Tor nodes can publish as soon as + // their signed onion endpoint exists, with rendezvous marked pending. + for (int i = 0; i < 60 && !fShutdown && + BtfActiveRelay().empty() && + BtfLocalOnionEndpoint().empty(); i++) Sleep(1000); // One-time self-test of the rendezvous: publish our descriptor to a relay, diff --git a/src/proxy.cpp b/src/proxy.cpp index 7d30911..eed054c 100644 --- a/src/proxy.cpp +++ b/src/proxy.cpp @@ -13,6 +13,7 @@ static bool g_fTorProxy = false; static std::string g_socks5Host; static unsigned short g_socks5Port = 0; static const char* DEFAULT_TOR_SOCKS5_PROXY = "127.0.0.1:9050"; +static const int TOR_CONNECT_TIMEOUT_SECS = 120; static void SetSocketTimeout(SOCKET s, int nTimeoutSecs) { @@ -297,10 +298,25 @@ static bool Socks5Connect(SOCKET s, const std::string& destHost, unsigned char hello[3] = { 0x05, 0x01, 0x00 }; // SOCKS5, one method, no auth if (!WriteN(s, hello, sizeof(hello))) + { + error("SOCKS5 hello write failed for %s:%u\n", + destHost.c_str(), (unsigned)destPort); return false; + } unsigned char choice[2] = { 0, 0 }; - if (!ReadN(s, choice, sizeof(choice)) || choice[0] != 0x05 || choice[1] != 0x00) + if (!ReadN(s, choice, sizeof(choice))) + { + error("SOCKS5 method selection read failed for %s:%u\n", + destHost.c_str(), (unsigned)destPort); + return false; + } + if (choice[0] != 0x05 || choice[1] != 0x00) + { + error("SOCKS5 proxy rejected no-auth method for %s:%u (version=0x%02x method=0x%02x)\n", + destHost.c_str(), (unsigned)destPort, + (unsigned)choice[0], (unsigned)choice[1]); return false; + } std::vector req; req.reserve(7 + destHost.size()); @@ -313,11 +329,25 @@ static bool Socks5Connect(SOCKET s, const std::string& destHost, req.push_back((unsigned char)(destPort >> 8)); req.push_back((unsigned char)(destPort & 0xff)); if (!WriteN(s, &req[0], (int)req.size())) + { + error("SOCKS5 CONNECT request write failed for %s:%u\n", + destHost.c_str(), (unsigned)destPort); return false; + } unsigned char rep[4] = {0,0,0,0}; - if (!ReadN(s, rep, sizeof(rep)) || rep[0] != 0x05) + if (!ReadN(s, rep, sizeof(rep))) + { + error("SOCKS5 CONNECT reply read failed for %s:%u\n", + destHost.c_str(), (unsigned)destPort); return false; + } + if (rep[0] != 0x05) + { + error("SOCKS5 CONNECT reply has invalid version 0x%02x for %s:%u\n", + (unsigned)rep[0], destHost.c_str(), (unsigned)destPort); + return false; + } if (rep[1] != 0x00) { error("SOCKS5 CONNECT to %s:%u failed with reply 0x%02x\n", @@ -335,10 +365,20 @@ static bool Socks5Connect(SOCKET s, const std::string& destHost, nAddr = len; } else + { + error("SOCKS5 CONNECT reply has invalid address type 0x%02x for %s:%u\n", + (unsigned)rep[3], destHost.c_str(), (unsigned)destPort); return false; + } std::vector discard(nAddr + 2); - return ReadN(s, &discard[0], (int)discard.size()); + if (!ReadN(s, &discard[0], (int)discard.size())) + { + error("SOCKS5 CONNECT bind address read failed for %s:%u\n", + destHost.c_str(), (unsigned)destPort); + return false; + } + return true; } SOCKET BtfConnectSocket(const std::string& destHost, unsigned short destPort, @@ -347,9 +387,11 @@ SOCKET BtfConnectSocket(const std::string& destHost, unsigned short destPort, std::string proxyHost; unsigned short proxyPort = 0; bool fProxy = false; + bool fTorProxy = false; CRITICAL_BLOCK(cs_socks5) { fProxy = g_fSocks5Proxy; + fTorProxy = g_fTorProxy; proxyHost = g_socks5Host; proxyPort = g_socks5Port; } @@ -365,6 +407,9 @@ SOCKET BtfConnectSocket(const std::string& destHost, unsigned short destPort, return ConnectDirect(destHost, destPort, nSockSite, nTimeoutSecs); } + if (fTorProxy && nTimeoutSecs > 0 && nTimeoutSecs < TOR_CONNECT_TIMEOUT_SECS) + nTimeoutSecs = TOR_CONNECT_TIMEOUT_SECS; + SOCKET s = ConnectDirect(proxyHost, proxyPort, nSockSite, nTimeoutSecs); if (s == INVALID_SOCKET) return INVALID_SOCKET; -- cgit v1.2.3 From 9e39a50d1f110020b0841d31e4b931aa877cc448 Mon Sep 17 00:00:00 2001 From: bitflash Date: Thu, 13 Aug 2026 16:56:01 -0300 Subject: release: v1.2.19 (nHDNext restore fix, Tor onion transport: managed Tor, direct onion peers, onion-only mode) --- Makefile | 2 +- README.md | 2 +- build-1219.log | 381 ++++++++++++++++++++ build-17.log | 78 +++++ build-appimage.log | 5 + build-node.log | 387 +++++++++++++++++++++ docs/site.md | 4 +- scripts/__pycache__/bitflash_chain.cpython-313.pyc | Bin 0 -> 22668 bytes 8 files changed, 855 insertions(+), 4 deletions(-) create mode 100644 build-1219.log create mode 100644 build-17.log create mode 100644 build-appimage.log create mode 100644 build-node.log create mode 100644 scripts/__pycache__/bitflash_chain.cpython-313.pyc (limited to 'scripts') diff --git a/Makefile b/Makefile index d1277a4..60d1227 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ ROOT := $(shell pwd) NPROC := $(shell nproc 2>/dev/null || echo 2) SUDO := $(shell [ "$$(id -u)" = "0" ] && echo "" || echo "sudo") -VERSION := 1.2.18 +VERSION := 1.2.19 SECP256K1_REPO := https://github.com/bitcoin-core/secp256k1 SECP256K1_COMMIT := 7fecac74aed8e1fd9078380d67dd04663705c989 diff --git a/README.md b/README.md index bb6a4d4..1782bc3 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Public mirrors should make the latest checksum files available both under the versioned release directory and at the release root: ```text -https://releases.bitflash.network/v1.2.18/SHA256SUMS +https://releases.bitflash.network/v1.2.19/SHA256SUMS https://releases.bitflash.network/SHA256SUMS # alias to latest ``` diff --git a/build-1219.log b/build-1219.log new file mode 100644 index 0000000..9aa1b25 --- /dev/null +++ b/build-1219.log @@ -0,0 +1,381 @@ +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 44 não atualizados. +==> building libsecp256k1 +==> libsecp256k1 pinned at 7fecac74aed8e1fd9078380d67dd04663705c989 +libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autotools-aux'. +libtoolize: copying file 'autotools-aux/ltmain.sh' +libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'autotools-aux/m4'. +libtoolize: copying file 'autotools-aux/m4/libtool.m4' +libtoolize: copying file 'autotools-aux/m4/ltoptions.m4' +libtoolize: copying file 'autotools-aux/m4/ltsugar.m4' +libtoolize: copying file 'autotools-aux/m4/ltversion.m4' +libtoolize: copying file 'autotools-aux/m4/lt~obsolete.m4' +configure.ac:39: installing 'autotools-aux/ar-lib' +configure.ac:37: installing 'autotools-aux/compile' +configure.ac:24: installing 'autotools-aux/config.guess' +configure.ac:24: installing 'autotools-aux/config.sub' +configure.ac:27: installing 'autotools-aux/install-sh' +configure.ac:27: installing 'autotools-aux/missing' +Makefile.am: installing 'autotools-aux/depcomp' +parallel-tests: installing 'autotools-aux/test-driver' +checking build system type... x86_64-pc-linux-gnu +checking host system type... x86_64-pc-linux-gnu +checking for a BSD-compatible install... /usr/bin/install -c +checking whether sleep supports fractional seconds... yes +checking filesystem timestamp resolution... 0.01 +checking whether build environment is sane... yes +checking for a race-free mkdir -p... /usr/bin/mkdir -p +checking for gawk... no +checking for mawk... mawk +checking whether make sets $(MAKE)... yes +checking whether make supports nested variables... yes +checking xargs -n works... yes +checking for gcc... gcc +checking whether the C compiler works... yes +checking for C compiler default output file name... a.out +checking for suffix of executables... +checking whether we are cross compiling... no +checking for suffix of object files... o +checking whether the compiler supports GNU C... yes +checking whether gcc accepts -g... yes +checking for gcc option to enable C11 features... none needed +checking whether gcc understands -c and -o together... yes +checking whether make supports the include directive... yes (GNU style) +checking dependency style of gcc... gcc3 +checking dependency style of gcc... gcc3 +checking for ar... ar +checking the archiver (ar) interface... ar +checking how to print strings... printf +checking for a sed that does not truncate output... /usr/bin/sed +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E +checking for fgrep... /usr/bin/grep -F +checking for ld used by gcc... /usr/bin/ld +checking if the linker (/usr/bin/ld) is GNU ld... yes +checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B +checking the name lister (/usr/bin/nm -B) interface... BSD nm +checking whether ln -s works... yes +checking the maximum length of command line arguments... 1572864 +checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop +checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop +checking for /usr/bin/ld option to reload object files... -r +checking for file... file +checking for objdump... objdump +checking how to recognize dependent libraries... pass_all +checking for dlltool... no +checking how to associate runtime and link libraries... printf %s\n +checking for ranlib... ranlib +checking for archiver @FILE support... @ +checking for strip... strip +checking command to parse /usr/bin/nm -B output from gcc object... ok +checking for sysroot... no +checking for a working dd... /usr/bin/dd +checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 +checking for mt... mt +checking if mt is a manifest tool... no +checking for stdio.h... yes +checking for stdlib.h... yes +checking for string.h... yes +checking for inttypes.h... yes +checking for stdint.h... yes +checking for strings.h... yes +checking for sys/stat.h... yes +checking for sys/types.h... yes +checking for unistd.h... yes +checking for dlfcn.h... yes +checking for objdir... .libs +checking if gcc supports -fno-rtti -fno-exceptions... no +checking for gcc option to produce PIC... -fPIC -DPIC +checking if gcc PIC flag -fPIC -DPIC works... yes +checking if gcc static flag -static works... yes +checking if gcc supports -c -o file.o... yes +checking if gcc supports -c -o file.o... (cached) yes +checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes +checking dynamic linker characteristics... GNU/Linux ld.so +checking how to hardcode library paths into programs... immediate +checking whether stripping libraries is possible... yes +checking if libtool supports shared libraries... yes +checking whether to build shared libraries... no +checking whether to build static libraries... yes +checking if gcc supports -Werror... yes +checking if gcc supports -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef... yes +checking if gcc supports -Wno-overlength-strings... yes +checking if gcc supports -Wall... yes +checking if gcc supports -Wno-unused-function... yes +checking if gcc supports -Wextra... yes +checking if gcc supports -Wcast-align... yes +checking if gcc supports -Wcast-align=strict... yes +checking if gcc supports -Wconditional-uninitialized... no +checking if gcc supports -Wreserved-identifier... no +checking if gcc supports -Wtrailing-whitespace=any... no +checking if gcc supports -Wleading-whitespace=spaces... no +checking for valgrind support... +checking for x86_64 assembly availability... yes +checking that generated files are newer than configure... done +configure: creating ./config.status +config.status: creating Makefile +config.status: creating libsecp256k1.pc +config.status: executing depfiles commands +config.status: executing libtool commands + +Build Options: + with external callbacks = no + with benchmarks = no + with tests = no + with exhaustive tests = yes + with ctime tests = no + with coverage = no + with examples = no + module ecdh = yes + module recovery = no + module extrakeys = yes + module schnorrsig = yes + module musig = yes + module ellswift = yes + module silentpayments = yes + + asm = x86_64 + ecmult window size = 15 + ecmult gen table size = 86 KiB + + valgrind = no + CC = gcc + CPPFLAGS = + SECP_CFLAGS = -O2 -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-overlength-strings -Wall -Wno-unused-function -Wextra -Wcast-align -Wcast-align=strict + CFLAGS = -g -O2 + LDFLAGS = +make[1]: Entrando no diretório '/root/rel16/secp256k1-build' + +make all-am +make[2]: Entrando no diretório '/root/rel16/secp256k1-build' + + CC src/exhaustive_tests-tests_exhaustive.o + CCLD exhaustive_tests + CC src/libsecp256k1_la-secp256k1.lo + CC src/libsecp256k1_precomputed_la-precomputed_ecmult.lo + CC src/libsecp256k1_precomputed_la-precomputed_ecmult_gen.lo + CCLD libsecp256k1_precomputed.la + CCLD libsecp256k1.la +make[2]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Entrando no diretório '/root/rel16/secp256k1-build' + +make install-am +make[2]: Entrando no diretório '/root/rel16/secp256k1-build' + +make[3]: Entrando no diretório '/root/rel16/secp256k1-build' + + /usr/bin/mkdir -p '/usr/local/lib' + /bin/bash ./libtool --mode=install /usr/bin/install -c libsecp256k1.la '/usr/local/lib' +libtool: install: /usr/bin/install -c .libs/libsecp256k1.lai /usr/local/lib/libsecp256k1.la +libtool: install: /usr/bin/install -c .libs/libsecp256k1.a /usr/local/lib/libsecp256k1.a +libtool: install: chmod 644 /usr/local/lib/libsecp256k1.a +libtool: install: ranlib /usr/local/lib/libsecp256k1.a +libtool: finish: PATH="/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib +---------------------------------------------------------------------- +Libraries have been installed in: + /usr/local/lib + +If you ever happen to want to link against installed libraries +in a given directory, LIBDIR, you must either use libtool, and +specify the full pathname of the library, or use the '-LLIBDIR' +flag during linking and do at least one of the following: + - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable + during execution + - add LIBDIR to the 'LD_RUN_PATH' environment variable + during linking + - use the '-Wl,-rpath -Wl,LIBDIR' linker flag + - have your system administrator add LIBDIR to '/etc/ld.so.conf' + +See any operating system documentation about shared libraries for +more information, such as the ld(1) and ld.so(8) manual pages. +---------------------------------------------------------------------- + /usr/bin/mkdir -p '/usr/local/include' + /usr/bin/install -c -m 644 include/secp256k1.h include/secp256k1_preallocated.h include/secp256k1_ecdh.h include/secp256k1_extrakeys.h include/secp256k1_schnorrsig.h include/secp256k1_musig.h include/secp256k1_ellswift.h include/secp256k1_silentpayments.h '/usr/local/include' + /usr/bin/mkdir -p '/usr/local/lib/pkgconfig' + /usr/bin/install -c -m 644 libsecp256k1.pc '/usr/local/lib/pkgconfig' +make[3]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[2]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Saindo do diretório '/root/rel16/secp256k1-build' + +==> libsecp256k1 done +==> building RandomX +==> RandomX pinned at 1e9d4b2df63fa6edf46b06789486e23c0fcaa55a +-- The C compiler identification is GNU 14.2.0 +-- The CXX compiler identification is GNU 14.2.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/c++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Performing Test _maes_cxx +-- Performing Test _maes_cxx - Success +-- Setting CXX flag -maes +-- Performing Test _maes_c +-- Performing Test _maes_c - Success +-- Setting C flag -maes +-- Performing Test HAVE_SSSE3 +-- Performing Test HAVE_SSSE3 - Success +-- Performing Test HAVE_AVX2 +-- Performing Test HAVE_AVX2 - Success +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Performing Test HAVE_CXX_ATOMICS +-- Performing Test HAVE_CXX_ATOMICS - Success +-- Performing Test HAVE_POSIX_MEMALIGN +-- Performing Test HAVE_POSIX_MEMALIGN - Success +-- Configuring done (0.9s) +-- Generating done (0.0s) +-- Build files have been written to: /root/RandomX/build +make[1]: Entrando no diretório '/root/RandomX/build' + +[ 3%] Building CXX object CMakeFiles/randomx.dir/src/aes_hash.cpp.o +[ 7%] Building C object CMakeFiles/randomx.dir/src/argon2_ref.c.o +[ 11%] Building C object CMakeFiles/randomx.dir/src/argon2_ssse3.c.o +[ 14%] Building C object CMakeFiles/randomx.dir/src/argon2_avx2.c.o +[ 18%] Building CXX object CMakeFiles/randomx.dir/src/bytecode_machine.cpp.o +[ 22%] Building CXX object CMakeFiles/randomx.dir/src/cpu.cpp.o +[ 25%] Building CXX object CMakeFiles/randomx.dir/src/dataset.cpp.o +[ 29%] Building CXX object CMakeFiles/randomx.dir/src/soft_aes.cpp.o +[ 33%] Building C object CMakeFiles/randomx.dir/src/virtual_memory.c.o +[ 37%] Building CXX object CMakeFiles/randomx.dir/src/vm_interpreted.cpp.o +[ 40%] Building CXX object CMakeFiles/randomx.dir/src/allocator.cpp.o +[ 44%] Building CXX object CMakeFiles/randomx.dir/src/assembly_generator_x86.cpp.o +[ 48%] Building CXX object CMakeFiles/randomx.dir/src/instruction.cpp.o +[ 51%] Building CXX object CMakeFiles/randomx.dir/src/randomx.cpp.o +[ 55%] Building CXX object CMakeFiles/randomx.dir/src/superscalar.cpp.o +[ 59%] Building CXX object CMakeFiles/randomx.dir/src/vm_compiled.cpp.o +[ 62%] Building CXX object CMakeFiles/randomx.dir/src/vm_interpreted_light.cpp.o +[ 66%] Building C object CMakeFiles/randomx.dir/src/argon2_core.c.o +[ 70%] Building CXX object CMakeFiles/randomx.dir/src/blake2_generator.cpp.o +[ 74%] Building CXX object CMakeFiles/randomx.dir/src/instructions_portable.cpp.o +[ 77%] Building C object CMakeFiles/randomx.dir/src/reciprocal.c.o +[ 81%] Building CXX object CMakeFiles/randomx.dir/src/virtual_machine.cpp.o +[ 85%] Building CXX object CMakeFiles/randomx.dir/src/vm_compiled_light.cpp.o +[ 88%] Building C object CMakeFiles/randomx.dir/src/blake2/blake2b.c.o +[ 92%] Building CXX object CMakeFiles/randomx.dir/src/jit_compiler_x86.cpp.o +[ 96%] Building C object CMakeFiles/randomx.dir/src/jit_compiler_x86_static.S.o +[100%] Linking CXX static library librandomx.a +[100%] Built target randomx +make[1]: Saindo do diretório '/root/RandomX/build' + +==> RandomX done +make -C src -f Makefile -j1 +make[1]: Entrando no diretório '/root/rel16/src' + +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/util.o util.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/script.o script.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/db.o db.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/net.o net.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/main.o main.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/market.o market.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/nostr.o nostr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/randomx_pow.o randomx_pow.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfaddr.o btfaddr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfchan.o btfchan.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfrv.o btfrv.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btftunnel.o btftunnel.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/rpc.o rpc.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/selftest.o selftest.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/bip32.o bip32.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/walletcmd.o walletcmd.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/proxy.o proxy.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/gui.o gui.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/main_gui.o main_gui.cpp +g++ -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o bitflash obj/imgui.o obj/imgui_draw.o obj/imgui_tables.o obj/imgui_widgets.o obj/imgui_impl_glfw.o obj/imgui_impl_opengl3.o obj/util.o obj/script.o obj/db.o obj/net.o obj/main.o obj/market.o obj/sha.o obj/nostr.o obj/randomx_pow.o obj/btfaddr.o obj/btfchan.o obj/btfrv.o obj/btftunnel.o obj/rpc.o obj/selftest.o obj/bip32.o obj/walletcmd.o obj/proxy.o obj/gui.o obj/main_gui.o -L/usr/local/lib -lsecp256k1 -L/root/RandomX/build -lrandomx -lsodium -lssl -lcrypto -ldb_cxx -lpthread -lglfw -lGL +Built: bitflash +make[1]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash +make -f Makefile appimage +make[1]: Entrando no diretório '/root/rel16' + +==> building AppImage + bundled libsodium.so.23 + bundled libdb_cxx-5.3.so + bundled libglfw.so.3 +Built: Bitflash-1.2.19-x86_64.AppImage +make[1]: Saindo do diretório '/root/rel16' + +make -f Makefile linux-node +make[1]: Entrando no diretório '/root/rel16' + +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 44 não atualizados. +==> libsecp256k1 already installed +==> RandomX already built +make -C src -f Makefile bitflash-node -j1 +make[2]: Entrando no diretório '/root/rel16/src' + +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/util.o util.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/script.o script.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/db.o db.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/net.o net.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/main.o main.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/market.o market.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/nostr.o nostr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/randomx_pow.o randomx_pow.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfaddr.o btfaddr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfchan.o btfchan.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfrv.o btfrv.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btftunnel.o btftunnel.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/rpc.o rpc.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/selftest.o selftest.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/bip32.o bip32.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/walletcmd.o walletcmd.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/proxy.o proxy.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/main_gui.o main_gui.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/headless.o headless.cpp +g++ -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -DBITFLASH_NODE_BUILD -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o bitflash-node obj-node/util.o obj-node/script.o obj-node/db.o obj-node/net.o obj-node/main.o obj-node/market.o obj-node/sha.o obj-node/nostr.o obj-node/randomx_pow.o obj-node/btfaddr.o obj-node/btfchan.o obj-node/btfrv.o obj-node/btftunnel.o obj-node/rpc.o obj-node/selftest.o obj-node/bip32.o obj-node/walletcmd.o obj-node/proxy.o obj-node/main_gui.o obj-node/headless.o -L/usr/local/lib -lsecp256k1 -L/root/RandomX/build -lrandomx -lsodium -lssl -lcrypto -ldb_cxx -lpthread +Built: bitflash-node (headless, no libGL needed) +make[2]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash-node +cp src/bitflash-node bitflash-node-1.2.19-x86_64 +Built: bitflash-node-1.2.19-x86_64 +make[1]: Saindo do diretório '/root/rel16' + diff --git a/build-17.log b/build-17.log new file mode 100644 index 0000000..6c8c841 --- /dev/null +++ b/build-17.log @@ -0,0 +1,78 @@ +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 49 não atualizados. +==> libsecp256k1 already installed +==> RandomX already built +make -C src -f Makefile -j1 +make[1]: Entrando no diretório '/root/rel16/src' + +make[1]: Nada a ser feito para 'all'. +make[1]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash +make -f Makefile appimage +make[1]: Entrando no diretório '/root/rel16' + +==> building AppImage + bundled libsodium.so.23 + bundled libdb_cxx-5.3.so + bundled libglfw.so.3 +Built: Bitflash-1.2.17-x86_64.AppImage +make[1]: Saindo do diretório '/root/rel16' + +make -f Makefile linux-node +make[1]: Entrando no diretório '/root/rel16' + +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 49 não atualizados. +==> libsecp256k1 already installed +==> RandomX already built +make -C src -f Makefile bitflash-node -j1 +make[2]: Entrando no diretório '/root/rel16/src' + +make[2]: 'bitflash-node' está atualizado. +make[2]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash-node +cp src/bitflash-node bitflash-node-1.2.17-x86_64 +Built: bitflash-node-1.2.17-x86_64 +make[1]: Saindo do diretório '/root/rel16' + +==> building AppImage + bundled libsodium.so.23 + bundled libdb_cxx-5.3.so + bundled libglfw.so.3 +Built: Bitflash-1.2.17-x86_64.AppImage diff --git a/build-appimage.log b/build-appimage.log new file mode 100644 index 0000000..d6b95ed --- /dev/null +++ b/build-appimage.log @@ -0,0 +1,5 @@ +==> building AppImage + bundled libsodium.so.23 + bundled libdb_cxx-5.3.so + bundled libglfw.so.3 +Built: Bitflash-1.2.16-x86_64.AppImage diff --git a/build-node.log b/build-node.log new file mode 100644 index 0000000..951c2a0 --- /dev/null +++ b/build-node.log @@ -0,0 +1,387 @@ +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 49 não atualizados. +==> building libsecp256k1 +==> libsecp256k1 pinned at 7fecac74aed8e1fd9078380d67dd04663705c989 +libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autotools-aux'. +libtoolize: copying file 'autotools-aux/ltmain.sh' +libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'autotools-aux/m4'. +libtoolize: copying file 'autotools-aux/m4/libtool.m4' +libtoolize: copying file 'autotools-aux/m4/ltoptions.m4' +libtoolize: copying file 'autotools-aux/m4/ltsugar.m4' +libtoolize: copying file 'autotools-aux/m4/ltversion.m4' +libtoolize: copying file 'autotools-aux/m4/lt~obsolete.m4' +configure.ac:39: installing 'autotools-aux/ar-lib' +configure.ac:37: installing 'autotools-aux/compile' +configure.ac:24: installing 'autotools-aux/config.guess' +configure.ac:24: installing 'autotools-aux/config.sub' +configure.ac:27: installing 'autotools-aux/install-sh' +configure.ac:27: installing 'autotools-aux/missing' +Makefile.am: installing 'autotools-aux/depcomp' +parallel-tests: installing 'autotools-aux/test-driver' +checking build system type... x86_64-pc-linux-gnu +checking host system type... x86_64-pc-linux-gnu +checking for a BSD-compatible install... /usr/bin/install -c +checking whether sleep supports fractional seconds... yes +checking filesystem timestamp resolution... 0.01 +checking whether build environment is sane... yes +checking for a race-free mkdir -p... /usr/bin/mkdir -p +checking for gawk... no +checking for mawk... mawk +checking whether make sets $(MAKE)... yes +checking whether make supports nested variables... yes +checking xargs -n works... yes +checking for gcc... gcc +checking whether the C compiler works... yes +checking for C compiler default output file name... a.out +checking for suffix of executables... +checking whether we are cross compiling... no +checking for suffix of object files... o +checking whether the compiler supports GNU C... yes +checking whether gcc accepts -g... yes +checking for gcc option to enable C11 features... none needed +checking whether gcc understands -c and -o together... yes +checking whether make supports the include directive... yes (GNU style) +checking dependency style of gcc... gcc3 +checking dependency style of gcc... gcc3 +checking for ar... ar +checking the archiver (ar) interface... ar +checking how to print strings... printf +checking for a sed that does not truncate output... /usr/bin/sed +checking for grep that handles long lines and -e... /usr/bin/grep +checking for egrep... /usr/bin/grep -E +checking for fgrep... /usr/bin/grep -F +checking for ld used by gcc... /usr/bin/ld +checking if the linker (/usr/bin/ld) is GNU ld... yes +checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B +checking the name lister (/usr/bin/nm -B) interface... BSD nm +checking whether ln -s works... yes +checking the maximum length of command line arguments... 1572864 +checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop +checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop +checking for /usr/bin/ld option to reload object files... -r +checking for file... file +checking for objdump... objdump +checking how to recognize dependent libraries... pass_all +checking for dlltool... no +checking how to associate runtime and link libraries... printf %s\n +checking for ranlib... ranlib +checking for archiver @FILE support... @ +checking for strip... strip +checking command to parse /usr/bin/nm -B output from gcc object... ok +checking for sysroot... no +checking for a working dd... /usr/bin/dd +checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1 +checking for mt... mt +checking if mt is a manifest tool... no +checking for stdio.h... yes +checking for stdlib.h... yes +checking for string.h... yes +checking for inttypes.h... yes +checking for stdint.h... yes +checking for strings.h... yes +checking for sys/stat.h... yes +checking for sys/types.h... yes +checking for unistd.h... yes +checking for dlfcn.h... yes +checking for objdir... .libs +checking if gcc supports -fno-rtti -fno-exceptions... no +checking for gcc option to produce PIC... -fPIC -DPIC +checking if gcc PIC flag -fPIC -DPIC works... yes +checking if gcc static flag -static works... yes +checking if gcc supports -c -o file.o... yes +checking if gcc supports -c -o file.o... (cached) yes +checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes +checking dynamic linker characteristics... GNU/Linux ld.so +checking how to hardcode library paths into programs... immediate +checking whether stripping libraries is possible... yes +checking if libtool supports shared libraries... yes +checking whether to build shared libraries... no +checking whether to build static libraries... yes +checking if gcc supports -Werror... yes +checking if gcc supports -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef... yes +checking if gcc supports -Wno-overlength-strings... yes +checking if gcc supports -Wall... yes +checking if gcc supports -Wno-unused-function... yes +checking if gcc supports -Wextra... yes +checking if gcc supports -Wcast-align... yes +checking if gcc supports -Wcast-align=strict... yes +checking if gcc supports -Wconditional-uninitialized... no +checking if gcc supports -Wreserved-identifier... no +checking if gcc supports -Wtrailing-whitespace=any... no +checking if gcc supports -Wleading-whitespace=spaces... no +checking for valgrind support... +checking for x86_64 assembly availability... yes +checking that generated files are newer than configure... done +configure: creating ./config.status +config.status: creating Makefile +config.status: creating libsecp256k1.pc +config.status: executing depfiles commands +config.status: executing libtool commands + +Build Options: + with external callbacks = no + with benchmarks = no + with tests = no + with exhaustive tests = yes + with ctime tests = no + with coverage = no + with examples = no + module ecdh = yes + module recovery = no + module extrakeys = yes + module schnorrsig = yes + module musig = yes + module ellswift = yes + module silentpayments = yes + + asm = x86_64 + ecmult window size = 15 + ecmult gen table size = 86 KiB + + valgrind = no + CC = gcc + CPPFLAGS = + SECP_CFLAGS = -O2 -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-overlength-strings -Wall -Wno-unused-function -Wextra -Wcast-align -Wcast-align=strict + CFLAGS = -g -O2 + LDFLAGS = +make[1]: Entrando no diretório '/root/rel16/secp256k1-build' + +make all-am +make[2]: Entrando no diretório '/root/rel16/secp256k1-build' + + CC src/exhaustive_tests-tests_exhaustive.o + CCLD exhaustive_tests + CC src/libsecp256k1_la-secp256k1.lo + CC src/libsecp256k1_precomputed_la-precomputed_ecmult.lo + CC src/libsecp256k1_precomputed_la-precomputed_ecmult_gen.lo + CCLD libsecp256k1_precomputed.la + CCLD libsecp256k1.la +make[2]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Entrando no diretório '/root/rel16/secp256k1-build' + +make install-am +make[2]: Entrando no diretório '/root/rel16/secp256k1-build' + +make[3]: Entrando no diretório '/root/rel16/secp256k1-build' + + /usr/bin/mkdir -p '/usr/local/lib' + /bin/bash ./libtool --mode=install /usr/bin/install -c libsecp256k1.la '/usr/local/lib' +libtool: install: /usr/bin/install -c .libs/libsecp256k1.lai /usr/local/lib/libsecp256k1.la +libtool: install: /usr/bin/install -c .libs/libsecp256k1.a /usr/local/lib/libsecp256k1.a +libtool: install: chmod 644 /usr/local/lib/libsecp256k1.a +libtool: install: ranlib /usr/local/lib/libsecp256k1.a +libtool: finish: PATH="/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib +---------------------------------------------------------------------- +Libraries have been installed in: + /usr/local/lib + +If you ever happen to want to link against installed libraries +in a given directory, LIBDIR, you must either use libtool, and +specify the full pathname of the library, or use the '-LLIBDIR' +flag during linking and do at least one of the following: + - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable + during execution + - add LIBDIR to the 'LD_RUN_PATH' environment variable + during linking + - use the '-Wl,-rpath -Wl,LIBDIR' linker flag + - have your system administrator add LIBDIR to '/etc/ld.so.conf' + +See any operating system documentation about shared libraries for +more information, such as the ld(1) and ld.so(8) manual pages. +---------------------------------------------------------------------- + /usr/bin/mkdir -p '/usr/local/include' + /usr/bin/install -c -m 644 include/secp256k1.h include/secp256k1_preallocated.h include/secp256k1_ecdh.h include/secp256k1_extrakeys.h include/secp256k1_schnorrsig.h include/secp256k1_musig.h include/secp256k1_ellswift.h include/secp256k1_silentpayments.h '/usr/local/include' + /usr/bin/mkdir -p '/usr/local/lib/pkgconfig' + /usr/bin/install -c -m 644 libsecp256k1.pc '/usr/local/lib/pkgconfig' +make[3]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[2]: Saindo do diretório '/root/rel16/secp256k1-build' + +make[1]: Saindo do diretório '/root/rel16/secp256k1-build' + +==> libsecp256k1 done +==> building RandomX +==> RandomX pinned at 1e9d4b2df63fa6edf46b06789486e23c0fcaa55a +-- The C compiler identification is GNU 14.2.0 +-- The CXX compiler identification is GNU 14.2.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/c++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Performing Test _maes_cxx +-- Performing Test _maes_cxx - Success +-- Setting CXX flag -maes +-- Performing Test _maes_c +-- Performing Test _maes_c - Success +-- Setting C flag -maes +-- Performing Test HAVE_SSSE3 +-- Performing Test HAVE_SSSE3 - Success +-- Performing Test HAVE_AVX2 +-- Performing Test HAVE_AVX2 - Success +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Performing Test HAVE_CXX_ATOMICS +-- Performing Test HAVE_CXX_ATOMICS - Success +-- Performing Test HAVE_POSIX_MEMALIGN +-- Performing Test HAVE_POSIX_MEMALIGN - Success +-- Configuring done (1.0s) +-- Generating done (0.0s) +-- Build files have been written to: /root/RandomX/build +make[1]: Entrando no diretório '/root/RandomX/build' + +[ 3%] Building CXX object CMakeFiles/randomx.dir/src/aes_hash.cpp.o +[ 7%] Building C object CMakeFiles/randomx.dir/src/argon2_ref.c.o +[ 11%] Building C object CMakeFiles/randomx.dir/src/argon2_ssse3.c.o +[ 14%] Building C object CMakeFiles/randomx.dir/src/argon2_avx2.c.o +[ 18%] Building CXX object CMakeFiles/randomx.dir/src/bytecode_machine.cpp.o +[ 22%] Building CXX object CMakeFiles/randomx.dir/src/cpu.cpp.o +[ 25%] Building CXX object CMakeFiles/randomx.dir/src/dataset.cpp.o +[ 29%] Building CXX object CMakeFiles/randomx.dir/src/soft_aes.cpp.o +[ 33%] Building C object CMakeFiles/randomx.dir/src/virtual_memory.c.o +[ 37%] Building CXX object CMakeFiles/randomx.dir/src/vm_interpreted.cpp.o +[ 40%] Building CXX object CMakeFiles/randomx.dir/src/allocator.cpp.o +[ 44%] Building CXX object CMakeFiles/randomx.dir/src/assembly_generator_x86.cpp.o +[ 48%] Building CXX object CMakeFiles/randomx.dir/src/instruction.cpp.o +[ 51%] Building CXX object CMakeFiles/randomx.dir/src/randomx.cpp.o +[ 55%] Building CXX object CMakeFiles/randomx.dir/src/superscalar.cpp.o +[ 59%] Building CXX object CMakeFiles/randomx.dir/src/vm_compiled.cpp.o +[ 62%] Building CXX object CMakeFiles/randomx.dir/src/vm_interpreted_light.cpp.o +[ 66%] Building C object CMakeFiles/randomx.dir/src/argon2_core.c.o +[ 70%] Building CXX object CMakeFiles/randomx.dir/src/blake2_generator.cpp.o +[ 74%] Building CXX object CMakeFiles/randomx.dir/src/instructions_portable.cpp.o +[ 77%] Building C object CMakeFiles/randomx.dir/src/reciprocal.c.o +[ 81%] Building CXX object CMakeFiles/randomx.dir/src/virtual_machine.cpp.o +[ 85%] Building CXX object CMakeFiles/randomx.dir/src/vm_compiled_light.cpp.o +[ 88%] Building C object CMakeFiles/randomx.dir/src/blake2/blake2b.c.o +[ 92%] Building CXX object CMakeFiles/randomx.dir/src/jit_compiler_x86.cpp.o +[ 96%] Building C object CMakeFiles/randomx.dir/src/jit_compiler_x86_static.S.o +[100%] Linking CXX static library librandomx.a +[100%] Built target randomx +make[1]: Saindo do diretório '/root/RandomX/build' + +==> RandomX done +make -C src -f Makefile -j1 +make[1]: Entrando no diretório '/root/rel16/src' + +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui.o imgui/imgui.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui_draw.o imgui/imgui_draw.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui_tables.o imgui/imgui_tables.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui_widgets.o imgui/imgui_widgets.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui_impl_glfw.o imgui/imgui_impl_glfw.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/imgui_impl_opengl3.o imgui/imgui_impl_opengl3.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/util.o util.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/script.o script.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/db.o db.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/net.o net.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/main.o main.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/market.o market.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -O3 -o obj/sha.o sha.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/nostr.o nostr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/randomx_pow.o randomx_pow.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfaddr.o btfaddr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfchan.o btfchan.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btfrv.o btfrv.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/btftunnel.o btftunnel.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/rpc.o rpc.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/selftest.o selftest.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/bip32.o bip32.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/walletcmd.o walletcmd.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/gui.o gui.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o obj/main_gui.o main_gui.cpp +g++ -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o bitflash obj/imgui.o obj/imgui_draw.o obj/imgui_tables.o obj/imgui_widgets.o obj/imgui_impl_glfw.o obj/imgui_impl_opengl3.o obj/util.o obj/script.o obj/db.o obj/net.o obj/main.o obj/market.o obj/sha.o obj/nostr.o obj/randomx_pow.o obj/btfaddr.o obj/btfchan.o obj/btfrv.o obj/btftunnel.o obj/rpc.o obj/selftest.o obj/bip32.o obj/walletcmd.o obj/gui.o obj/main_gui.o -L/usr/local/lib -lsecp256k1 -L/root/RandomX/build -lrandomx -lsodium -lssl -lcrypto -ldb_cxx -lpthread -lglfw -lGL +Built: bitflash +make[1]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash +make -f Makefile appimage +make[1]: Entrando no diretório '/root/rel16' + +==> building AppImage + bundled libsodium.so.23 + bundled libdb_cxx-5.3.so + bundled libglfw.so.3 +Built: Bitflash-1.2.16-x86_64.AppImage +make[1]: Saindo do diretório '/root/rel16' + +make -f Makefile linux-node +make[1]: Entrando no diretório '/root/rel16' + +Lendo listas de pacotes... +Construindo árvore de dependências... +Lendo informação de estado... +build-essential já é a versão mais nova (12.12). +cmake já é a versão mais nova (3.31.6-2). +git já é a versão mais nova (1:2.47.3-0+deb13u1). +pkg-config já é a versão mais nova (1.8.1-4). +autoconf já é a versão mais nova (2.72-3.1). +libtool já é a versão mais nova (2.5.4-4). +libssl-dev já é a versão mais nova (3.5.6-1~deb13u2). +libdb5.3++-dev já é a versão mais nova (5.3.28+dfsg2-9). +libsodium-dev já é a versão mais nova (1.0.18-1+deb13u1). +nlohmann-json3-dev já é a versão mais nova (3.11.3-2.1). +libboost-system-dev já é a versão mais nova (1.83.0.2+b2). +libglfw3-dev já é a versão mais nova (3.4-3). +libgl-dev já é a versão mais nova (1.7.0-1+b2). +python3-pil já é a versão mais nova (11.1.0-5+deb13u4). +clang já é a versão mais nova (1:19.0-63). +0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 49 não atualizados. +==> libsecp256k1 already installed +==> RandomX already built +make -C src -f Makefile bitflash-node -j1 +make[2]: Entrando no diretório '/root/rel16/src' + +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/util.o util.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/script.o script.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/db.o db.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/net.o net.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/main.o main.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/market.o market.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -O3 -o obj-node/sha.o sha.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/nostr.o nostr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/randomx_pow.o randomx_pow.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfaddr.o btfaddr.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfchan.o btfchan.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btfrv.o btfrv.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/btftunnel.o btftunnel.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/rpc.o rpc.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/selftest.o selftest.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/bip32.o bip32.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/walletcmd.o walletcmd.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/main_gui.o main_gui.cpp +g++ -c -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -DBITFLASH_NO_GUI -o obj-node/headless.o headless.cpp +g++ -std=gnu++14 -O2 -Wformat -Werror=format -Wno-deprecated-declarations -Wno-write-strings -Wno-narrowing -Wno-unused-result -fpermissive -pthread -DSECP256K1_STATIC -I/usr/local/include -I/root/RandomX/src -I/usr/include/nlohmann -Iimgui -o bitflash-node obj-node/util.o obj-node/script.o obj-node/db.o obj-node/net.o obj-node/main.o obj-node/market.o obj-node/sha.o obj-node/nostr.o obj-node/randomx_pow.o obj-node/btfaddr.o obj-node/btfchan.o obj-node/btfrv.o obj-node/btftunnel.o obj-node/rpc.o obj-node/selftest.o obj-node/bip32.o obj-node/walletcmd.o obj-node/main_gui.o obj-node/headless.o -L/usr/local/lib -lsecp256k1 -L/root/RandomX/build -lrandomx -lsodium -lssl -lcrypto -ldb_cxx -lpthread +Built: bitflash-node (headless, no libGL needed) +make[2]: Saindo do diretório '/root/rel16/src' + +strip src/bitflash-node +cp src/bitflash-node bitflash-node-1.2.16-x86_64 +Built: bitflash-node-1.2.16-x86_64 +make[1]: Saindo do diretório '/root/rel16' + diff --git a/docs/site.md b/docs/site.md index 522da10..9526a61 100644 --- a/docs/site.md +++ b/docs/site.md @@ -42,8 +42,8 @@ The docs index should expose these source files: Each release remains under its versioned directory: ```text -https://releases.bitflash.network/v1.2.18/SHA256SUMS -https://releases.bitflash.network/v1.2.18/SHA256SUMS.asc +https://releases.bitflash.network/v1.2.19/SHA256SUMS +https://releases.bitflash.network/v1.2.19/SHA256SUMS.asc ``` The release root should also alias the latest files: diff --git a/scripts/__pycache__/bitflash_chain.cpython-313.pyc b/scripts/__pycache__/bitflash_chain.cpython-313.pyc new file mode 100644 index 0000000..47a7995 Binary files /dev/null and b/scripts/__pycache__/bitflash_chain.cpython-313.pyc differ -- cgit v1.2.3