r1
2022-02-03 23:45:26 -08:00
2026-05-03 09:18:49 +00:00
2026-05-21 15:56:07 -07:00
2026-05-02 20:45:09 +00:00
r1
2022-02-03 23:45:26 -08:00
r1
2022-02-03 23:45:26 -08:00
r1
2022-02-03 23:45:47 -08:00
r1
2022-02-03 23:45:47 -08:00
r1
2022-02-03 23:45:47 -08:00
r1
2022-02-03 23:45:47 -08:00
2024-12-04 22:14:27 -08:00

Agrarian

Agrarian is a C++ cryptocurrency-style codebase with a deterministic depends/ build system for reproducible native and cross-compilation builds.


Repository Structure

  • depends/ deterministic third-party dependency build system
  • src/ core source code (includes subprojects like secp256k1/ and univalue/)
  • contrib/ helper scripts, tooling, packaging, and CI utilities
  • share/ auxiliary build and metadata scripts

System Requirements (Ubuntu)

Install the baseline build tools:

sudo apt update
sudo apt install -y \
  build-essential pkg-config autoconf automake libtool \
  bsdmainutils cmake ninja-build python3 curl git

For Windows cross-compilation support:

sudo apt install -y mingw-w64

Building Dependencies (Deterministic Depends System)

The preferred build path uses the deterministic depends/ system instead of mixing system libraries. The current native Ubuntu wallet path builds Qt 6.8.3, OpenSSL 3.5.6, Boost 1.91.0, Expat 2.8.0, FreeType 2.14.3, Berkeley DB 4.8.30, and supporting libraries inside depends/<host-triplet>/.

All dependency builds are executed from within the depends/ directory or via the helper scripts in contrib/.

Native Linux

cd depends
make HOST=x86_64-pc-linux-gnu NO_QT=0 -j"$(nproc)"

Windows Cross-Compile (64-bit)

JOBS=1 ./contrib/build-win64-wallet.sh

Windows Cross-Compile (32-bit)

cd depends
make HOST=i686-w64-mingw32 -j"$(nproc)"

Artifacts are placed under:

depends/<host-triplet>/

Temporary build directories:

depends/work/
depends/built/

These directories should not be committed to version control.


Building Agrarian

Recommended native Ubuntu daemon build:

./autogen.sh
JOBS=1 ./contrib/build-linux.sh

Recommended native Ubuntu desktop wallet build:

JOBS=1 ./contrib/build-linux-wallet.sh

Use a larger JOBS value only when the host has enough RAM. On an 8-core, 16 GB host, JOBS=8 is reasonable.

Manual autotools workflow:

./autogen.sh
CONFIG_SITE="$PWD/depends/x86_64-pc-linux-gnu/share/config.site" ./configure
make -j"$(nproc)"

To see configuration options:

./configure --help

For current build notes, see:

  • doc/modernization.md for the current 2.0 dependency and build baseline.
  • doc/build-menu.md for the interactive build menu.
  • doc/build-ubuntu-24.md for native Ubuntu daemon and wallet builds.
  • doc/build-windows.md for Windows cross-compilation.
  • doc/build-wallets.md for the repeatable desktop wallet quick start.

Running Tests

If enabled:

make check

Current smoke tests:

./contrib/smoke-test-daemon.sh
./contrib/smoke-test-wallet.sh
./contrib/smoke-test-qt.sh

Development Guidelines

  • Do not commit depends/work/, depends/built/, or host prefix directories.
  • Ensure executable permissions (100755) are intentional for shell scripts.
  • Keep diffs minimal in depends/ to maintain reproducibility.

License

See the COPYING file for license details.

S
Description
Agrarian project handoff and operations notes
Readme 262 MiB
Languages
C++ 91.9%
C 3.1%
Makefile 2%
Shell 1.8%
Python 0.8%
Other 0.2%