Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c8197cd
Develop merge into Master for the v4.6.1 mainnet release (#1205)
hans-schmidt Aug 21, 2022
f760f3a
patch boost for ifdef pthread
Dec 5, 2022
dbb4b9f
update path with working url for qt
Dec 5, 2022
d2e39c0
revert libzmq 4.3.4 -> 4.3.1 (introduced on c8197cd)
Dec 5, 2022
9aa1b3e
patch qt with bitcoin pr#22186
Dec 5, 2022
9433d3d
add trial workflow for x86_64-w64-mingw32
Dec 5, 2022
eb7a25a
force posix
Dec 5, 2022
4c605b6
port veil changes using std::mutex instead of c-style pthread
Dec 24, 2022
a44372a
Merge pull request #1224 from barrystyle/depends-qt-boost
TronBlack Jan 1, 2023
e48d932
Remove problem pr1224 (#1226)
hans-schmidt Mar 12, 2023
bffd787
Update .github build scripts- cleanup, use Ubuntu-20.04, use Node-20
hans-schmidt Mar 20, 2024
6d48ae0
Merge pull request #1246 from hans-schmidt/master_update_build_system
TronBlack May 10, 2024
df0821f
RIP-25: Add ML-DSA-44 post-quantum hybrid signature proof-of-concept
ALENOC Apr 5, 2026
c1af025
RIP-25: Full implementation of post-quantum hybrid signature consensu…
ALENOC Apr 5, 2026
985b59c
Update README with RIP-25 fork description
ALENOC Apr 5, 2026
be82dd8
RIP-25: Replace ML-DSA-44 simulation with liboqs (FIPS 204)
ALENOC Apr 5, 2026
d07435c
RIP-25: Redesign to ML-DSA-44 only (remove ECDSA hybrid AND-composition)
ALENOC Apr 5, 2026
049d3e5
RIP-25: Add PQ key wallet persistence, encryption, and witness v2 sigops
ALENOC Apr 5, 2026
c304d3a
RIP-25: Update file table with wallet persistence, encryption, and si…
ALENOC Apr 6, 2026
6541899
RIP-25: Add WitnessV2PQDestination to all boost::variant visitors
ALENOC Apr 6, 2026
62280e7
RIP-25: Fix deterministic keygen and pre-existing gcc 13 build issues
ALENOC Apr 6, 2026
fe22222
RIP-25: Fix sighash mismatch in PQ signature verification
ALENOC Apr 6, 2026
bbb2653
RIP-25: Fix PQ fee policy — weight discount and wallet fee estimation
ALENOC Apr 6, 2026
48e3348
RIP-25: Document PQ weight discount and fee estimation in spec
ALENOC Apr 6, 2026
4b0e5c3
merge-probe: isolate RIP-25 validation delta on hardened tree
ALENOC Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 14 additions & 11 deletions .github/scripts/00-install-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ elif [[ ${OS} == "osx" ]]; then
s3curl \
sleuthkit \
bison \
libtinfo5
libtinfo5 \
python3-pip

pip3 install ds-store

elif [[ ${OS} == "linux" || ${OS} == "linux-disable-wallet" || ${OS} == "aarch64" || ${OS} == "aarch64-disable-wallet" ]]; then
apt -y install \
Expand All @@ -80,10 +83,10 @@ elif [[ ${OS} == "linux" || ${OS} == "linux-disable-wallet" || ${OS} == "aarch64
ca-certificates \
curl \
g++-aarch64-linux-gnu \
g++-8-aarch64-linux-gnu \
g++-8-multilib \
gcc-8-aarch64-linux-gnu \
gcc-8-multilib \
g++-9-aarch64-linux-gnu \
g++-9-multilib \
gcc-9-aarch64-linux-gnu \
gcc-9-multilib \
git \
gnupg \
libtool \
Expand All @@ -110,13 +113,13 @@ elif [[ ${OS} == "arm32v7" || ${OS} == "arm32v7-disable-wallet" ]]; then
ca-certificates \
curl \
g++-aarch64-linux-gnu \
g++-8-aarch64-linux-gnu \
gcc-8-aarch64-linux-gnu \
g++-9-aarch64-linux-gnu \
gcc-9-aarch64-linux-gnu \
g++-arm-linux-gnueabihf \
g++-8-arm-linux-gnueabihf \
gcc-8-arm-linux-gnueabihf \
g++-8-multilib \
gcc-8-multilib \
g++-9-arm-linux-gnueabihf \
gcc-9-arm-linux-gnueabihf \
g++-9-multilib \
gcc-9-multilib \
git \
libtool \
pkg-config \
Expand Down
69 changes: 21 additions & 48 deletions .github/scripts/02-copy-build-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
OS=${1}
GITHUB_WORKSPACE=${2}
GITHUB_REF=${3}
FORCEBUILDDEPS="1"

if [[ ! ${OS} || ! ${GITHUB_WORKSPACE} ]]; then
echo "Error: Invalid options"
Expand All @@ -18,51 +17,25 @@ if [[ ${OS} == "arm32v7-disable-wallet" || ${OS} == "linux-disable-wallet" || ${
OS=`echo ${OS} | cut -d"-" -f1`
fi

if [[ ${GITHUB_REF} =~ "release" || ${FORCEBUILDDEPS} = "1" ]]; then
echo "----------------------------------------"
echo "Building Dependencies for ${OS}"
echo "----------------------------------------"

cd depends
if [[ ${OS} == "windows" ]]; then
make HOST=x86_64-w64-mingw32 -j2
elif [[ ${OS} == "osx" ]]; then
cd ${GITHUB_WORKSPACE}
# curl -O <url>
echo "LEGAL issues with OSX SDK, need to get it yourself and extract the valuable stuff."
echo "See github -> contrib/macdeploy/README.md"
echo "Countdown from 3 sec. Make sure your SDK is at /tmp/SDKs and it is the only *.tar.gz file."
echo "3..."
sleep 1
echo "2..."
sleep 1
echo "1..."
sleep 1
echo "0.. continuing.."
mkdir -p ${GITHUB_WORKSPACE}/depends/SDKs
cd ${GITHUB_WORKSPACE}/depends/SDKs
tar -zxf /tmp/SDKs/*.tar.gz
cd ${GITHUB_WORKSPACE}/depends && make HOST=x86_64-apple-darwin14 -j2
elif [[ ${OS} == "linux" || ${OS} == "linux-disable-wallet" ]]; then
make HOST=x86_64-linux-gnu -j2
elif [[ ${OS} == "arm32v7" || ${OS} == "arm32v7-disable-wallet" ]]; then
make HOST=arm-linux-gnueabihf -j2
elif [[ ${OS} == "aarch64" || ${OS} == "aarch64-disable-wallet" ]]; then
make HOST=aarch64-linux-gnu -j2
fi
else
echo "----------------------------------------"
echo "Retrieving Dependencies for ${OS}"
echo "----------------------------------------"
echo "----------------------------------------"
echo "Building Dependencies for ${OS}"
echo "----------------------------------------"

cd /tmp
curl -O https://raven-build-resources.s3.amazonaws.com/${OS}/raven-${OS}-dependencies.tar.gz
curl -O https://raven-build-resources.s3.amazonaws.com/${OS}/SHASUM
if [[ $(sha256sum -c /tmp/SHASUM) ]]; then
cd ${GITHUB_WORKSPACE}/depends
tar zxvf /tmp/raven-${OS}-dependencies.tar.gz
else
echo "SHASUM doesn't match"
exit 1
fi
fi
cd depends
if [[ ${OS} == "windows" ]]; then
make HOST=x86_64-w64-mingw32 -j2
elif [[ ${OS} == "osx" ]]; then
mkdir SDKs
cd SDKs
curl -O https://bitcoincore.org/depends-sources/sdks/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
tar -zxf Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
rm -rf Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
cd ..
make HOST=x86_64-apple-darwin14 -j2
elif [[ ${OS} == "linux" || ${OS} == "linux-disable-wallet" ]]; then
make HOST=x86_64-linux-gnu -j2
elif [[ ${OS} == "arm32v7" || ${OS} == "arm32v7-disable-wallet" ]]; then
make HOST=arm-linux-gnueabihf -j2
elif [[ ${OS} == "aarch64" || ${OS} == "aarch64-disable-wallet" ]]; then
make HOST=aarch64-linux-gnu -j2
fi
183 changes: 148 additions & 35 deletions .github/workflows/build-raven.yml
Original file line number Diff line number Diff line change
@@ -1,75 +1,188 @@
name: Build Raven

on:
push:
branches:
- release*
pull_request:
branches:
- master
- develop
- release*
paths-ignore:
- 'binaries/**'
- 'community/**'
- 'contrib/**'
- 'doc/**'
- 'roadmap/**'
- 'share/**'
- 'static-builds/**'
- 'whitepaper/**'
- '*.md'
# push:
# branches:
# - release*
# pull_request:
# branches:
# - master
# - develop
# - release*
# paths-ignore:
# - 'binaries/**'
# - 'doc/**'
# - 'whitepaper/**'
# - '*.md'
workflow_dispatch:
# This creates a "Run workflow" button on the github repo webpage when the "Build Ravencoin"
# workflow is selected on the "Actions" tab. But only if this workflow is in
# the branch which is selected on github as the "default branch".
inputs:
target:
description: 'Target branch to run'
required: true

env:
SCRIPTS: ${{ GITHUB.WORKSPACE }}/.github/scripts

jobs:
build:
check-jobs:
# continue-on-error: true # Uncomment once integration is finished
runs-on: ubuntu-20.04
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
# All of these options are optional, so you can remove them if you are happy with the defaults
concurrent_skipping: 'never'
skip_after_successful_duplicate: 'true'
paths_ignore: '[
"binaries/**",
"community/**",
"contrib/**",
"doc/**",
"roadmap/**",
"share/**",
"static-builds/**",
"whitepaper/**",
"**/*.md"
]'
do_not_skip: '["workflow_dispatch", "schedule"]'

runs-on: ubuntu-18.04
build:
needs: check-jobs
runs-on: ubuntu-20.04

strategy:
matrix:
OS: [ 'windows', 'linux', 'linux-disable-wallet', 'arm32v7', 'arm32v7-disable-wallet', 'aarch64', 'aarch64-disable-wallet' ]
# OS: [ 'windows', 'linux', 'linux-disable-wallet', 'osx', 'arm32v7', 'arm32v7-disable-wallet' ]
OS: [ 'windows', 'linux', 'linux-disable-wallet', 'osx', 'arm32v7', 'arm32v7-disable-wallet', 'aarch64', 'aarch64-disable-wallet' ]

#&&&&&& Beginning- section to free up space on root for the builds and for 30GB of swap
steps:
- name: Checkout the Code
- name: Print Original Available Memory and Storage
shell: bash
run: |
echo "Original Available Memory and Storage:"
free -h
echo
swapon --show
echo
df -vh
echo

- name: Delete Unwanted Software
shell: bash
run: |
echo "Removing Unwanted Software"
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force

- name: Print Available Memory and Storage after Unwanted Software Removal
shell: bash
run: |
echo "Original Available Memory and Storage after Unwanted Software Removal:"
free -h
echo
swapon --show
echo
df -vh
echo

# We use a SWAP_FILE variable because some runner VMs allocate /swapfile and some use /mnt/swapfile
- name: Delete the existing swap
shell: bash
run: |
export SWAP_FILE=$(swapon --show=NAME | tail -n 1)
sudo swapoff "${SWAP_FILE}"
sudo rm "${SWAP_FILE}"

- name: Print Available Memory and Storage after Deleting Swap
shell: bash
run: |
echo "Available Memory and Storage after Deleting Swap:"
free -h
echo
swapon --show
echo
df -vh
echo

- name: Allocate swap on root
shell: bash
run: |
sudo fallocate -l 30G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

- name: Print Finnal Available Memory and Storage
shell: bash
run: |
echo "Final Available Memory and Storage:"
free -h
echo
swapon --show
echo
df -vh
echo
#&&&&&& End- section to free up space on root for the builds and for 30GB of swap

- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Checkout the Code
uses: actions/checkout@v1

- name: Install Build Tools
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Install Build Tools
run: sudo ${SCRIPTS}/00-install-deps.sh ${{ MATRIX.OS }}

- name: Cache dependencies.
uses: actions/cache@v2
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Cache dependencies.
uses: actions/cache@v4
with:
path: |
${{ GITHUB.WORKSPACE }}/depends/built
${{ GITHUB.WORKSPACE }}/depends/sources
${{ GITHUB.WORKSPACE }}/depends/work
key: ${{ MATRIX.OS }}

- name: Build dependencies.
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Build dependencies.
run: ${SCRIPTS}/02-copy-build-dependencies.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }} ${{ GITHUB.BASE_REF }} ${{ GITHUB.REF }}

- name: Add Dependencies to the System PATH
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Add Dependencies to the System PATH
run: ${SCRIPTS}/03-export-path.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }}

- name: Build Config
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Build Config
run: cd ${{ GITHUB.WORKSPACE }} && ./autogen.sh

- name: Configure Build
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Configure Build
run: ${SCRIPTS}/04-configure-build.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }}

- name: Build Raven
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Build Evrmore
run: make -j2

- name: Check Binary Security
run: ${SCRIPTS}/05-binary-checks.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }}
# Skip the binary checks for now.
# - if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
# name: Check Binary Security
# run: ${SCRIPTS}/05-binary-checks.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }}

- name: Package Up the Build
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Package Up the Build
run: ${SCRIPTS}/06-package.sh ${{ MATRIX.OS }} ${{ GITHUB.WORKSPACE }} ${{ GITHUB.BASE_REF }} ${{ GITHUB.REF }}

- name: Upload Artifacts to Job
- if: ${{ needs.check-jobs.outputs.should_skip != 'true' }}
name: Upload Artifacts to Job
uses: actions/upload-artifact@master
with:
name: ${{ MATRIX.OS }}
Expand Down
Loading