Skip to content
Open

Bump #48

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
34c51ce
nockchain: fix save interval to 120s
tacryt-socryp Oct 25, 2025
240c0e9
Add Linux memory overcommit setup instructions (#67)
sigilante Oct 27, 2025
87f7e5f
nockchain: add --fast-sync option
tacryt-socryp Oct 27, 2025
23c1725
nockchain-libp2p: properly handle liar effect noun decoding
tacryt-socryp Oct 27, 2025
ea4afc9
nockvm: explicitly assert that we only support little-endian
tacryt-socryp Oct 28, 2025
0f1a127
wallet: smoother tx building
tacryt-socryp Oct 28, 2025
8cf1c79
nockchain: remove deprecated mining-pubkey command-line arguments
tacryt-socryp Oct 29, 2025
8983615
nockchain: stubbed out deprecated mining pubkey argument and added ne…
tacryt-socryp Oct 30, 2025
6fb652e
nockchain: update fakenet default args for simpler fakenet setup
tacryt-socryp Oct 31, 2025
da65e41
nockchain-peek: add utility for peeking out data from a running nockc…
tacryt-socryp Oct 31, 2025
a4d0fdd
Makefile: nockchain-peek added to hoon_targets
tacryt-socryp Oct 31, 2025
cd13983
nockchain-wallet: watch-only addresses work for v1
tacryt-socryp Nov 3, 2025
15d525e
cargo fmt
tacryt-socryp Nov 3, 2025
9298da1
nockchain-libp2p config: bump timeout for network pokes to 180s
tacryt-socryp Nov 4, 2025
3ab0fdd
nockchain-wallet: support m-to-n spends and add --include-data option…
tacryt-socryp Nov 4, 2025
eec69f4
tx-engine-1: band-aid lukechampine's issue where axis is used instead…
tacryt-socryp Nov 7, 2025
e6e3b65
tx-engine-1: remove extraneous jet hints
tacryt-socryp Nov 7, 2025
28fed72
nockchain-libp2p: reduce request fanout to 8 at max regardless of fas…
tacryt-socryp Nov 9, 2025
dd5d4e5
raw-tx-checker: add ability to save raw-txs from wallet, add a crate …
tacryt-socryp Nov 9, 2025
ebbaf23
nockchain-wallet: use tiny stack size
tacryt-socryp Nov 9, 2025
c5b13b6
nockchain-api: release gRPC API for reading block and transaction dat…
tacryt-socryp Nov 17, 2025
50c9ed3
nockchain-wallet: add support for multisig creation
tacryt-socryp Nov 20, 2025
aa345da
Sync from Nockup development repo. (#73)
sigilante Nov 26, 2025
07f58f2
nockchain-wallet: note rendering standardization and support spending…
tacryt-socryp Nov 26, 2025
a7dc643
Update README to remove status and development notes (#74)
sigilante Nov 26, 2025
fe4f587
README.md update
tacryt-socryp Nov 28, 2025
a9a973f
Update build artifacts and Nockup retrieval format. (#75)
sigilante Dec 1, 2025
5539271
Fix install script path. (#77)
sigilante Dec 1, 2025
237c5ee
excluded txs peek (#76)
nallux-dozryl Dec 1, 2025
d1e6fb1
Fix cleanup logic. (#78)
sigilante Dec 2, 2025
dcb1de9
Change to new templates directory location. (#80)
sigilante Dec 2, 2025
1722a98
nockchain-api: add grpc support for v1 to grpc, lock details and metr…
tacryt-socryp Dec 4, 2025
a19ad4d
Post hotfix (#81)
sigilante Dec 5, 2025
c413814
bridge launched, nockchain-wallet supports bridge
tacryt-socryp Dec 19, 2025
ede35f2
bridge, nockchain-wallet: correctly enforce 100k nock minimum bridge …
tacryt-socryp Dec 21, 2025
6e6d6bc
nockup release
tacryt-socryp Dec 22, 2025
5039878
cargo.lock updated for nockup
tacryt-socryp Dec 22, 2025
cd91acc
sync: Bridge crate, kernel refactor, zoon jets, and hash improvements…
github-actions[bot] Feb 13, 2026
a01d1c9
Bythos Protocol Upgrade: Versioned Lock Proofs and Height-Gated Fee/V…
github-actions[bot] Feb 18, 2026
5fc17ff
fix(consensus,wallet): gate Bythos fee accounting by page height#26
github-actions[bot] Feb 19, 2026
fc44f15
docs: canonical spine + CI checks; fee and math fixes
github-actions[bot] Feb 27, 2026
4ffd37e
bridge: planner/runtime decomposition, Nous draft spec, and CBOR vectors
github-actions[bot] Mar 5, 2026
18533e5
ci: add manual and scheduled recovery path for nockchain sync (#29)
ryjm Mar 5, 2026
3bae4d9
bridge: add docs and make recipes for operators
github-actions[bot] Mar 5, 2026
505c3ea
wallet: add state migration %5 -> %6 (#105)
ryjm Mar 10, 2026
c499836
docs: add tx-engine architectural analysis with Bitcoin/Cardano desig…
tacryt-socryp Mar 11, 2026
b2f5112
sync: add bridge metrics and docs, add wallet version bump for bytho…
github-actions[bot] Mar 16, 2026
06ec9f5
Merge remote-tracking branch 'upstream-nockchain/master' into sync-up…
litlep-nibbyt Mar 16, 2026
8dbbcea
rust-first transaction planning, expand v1 tx-engine hashing and lock…
github-actions[bot] Mar 19, 2026
a19f801
Allow peeking block range without PoW (#108)
h33p Mar 19, 2026
d274cb6
wallet: support v0 note migration and chkjam bootstrap tooling
github-actions[bot] Apr 7, 2026
9a62802
sync: update from upstream (#35)
github-actions[bot] Apr 7, 2026
e6e1d0e
Merge remote-tracking branch 'upstream-nockchain/master' into fix-noc…
litlep-nibbyt Apr 7, 2026
1be898b
wallet: batch v0 migration tx creation across active signers
github-actions[bot] Apr 15, 2026
44fecff
Nockchain Phase 2 consensus upgrade going into effect at block 65500.
bitemyapp May 1, 2026
1a23ccd
nockapp: harden chkjam/state-jam decode Add checked artifact decoding…
bitemyapp May 7, 2026
ecbb87f
aletheia finalization: fix the find-min-timestamp slowdown
tacryt-socryp May 14, 2026
334b8fc
Persistent memory arena first public release, READ THE DOCS. BIG CHAN…
github-actions[bot] May 15, 2026
1cbd470
h-zoon digest-keyed containers, kernel-state-9 migration, gRPC IP blo…
bitemyapp May 18, 2026
0787a54
PMA dynamic growth, libp2p IP-level exclusion, bridge operator tooling
bitemyapp May 22, 2026
2601509
Nous Protocol Upgrade (#40)
github-actions[bot] Jun 1, 2026
5d022ce
libp2p: suppress all outgoing gossip while catching up (behind tip)
bitemyapp Jun 2, 2026
33ba97b
bridge: add end-to-end withdrawal execution (#127)
litlep-nibbyt Jun 5, 2026
3d541da
consensus: enforce canonical encodings and Rust/Hoon decode parity (#42)
github-actions[bot] Jun 8, 2026
b409c83
build: enforce workspace-wide lints and bump which to 8.0.3 (#43)
github-actions[bot] Jun 8, 2026
3b7b66d
feat: add Roswell harness, zkVM verifier, bridge approval tooling, a…
litlep-nibbyt Jun 10, 2026
f30f8b8
bridge: harden withdrawal handling and validation (#45)
litlep-nibbyt Jun 11, 2026
95dfaee
build: add Bazel workspace and libp2p catch-up guardrails (#46)
litlep-nibbyt Jun 12, 2026
e4d89aa
bridge: block commit ACKs and cover stub proofs (#47)
litlep-nibbyt Jun 12, 2026
3c70ec6
bridge: recover stranded withdrawal proposals (#48)
litlep-nibbyt Jun 13, 2026
70274f4
build: add cargo-zigbuild cross-compilation and reorganize Docker files
bitemyapp Jun 13, 2026
95add0e
zig_cc_linker only uses dynamic linker flag during linking steps
tacryt-socryp Jun 13, 2026
b9f7836
nockchain-libp2p-io: cleaned up excessive info logging to debug
tacryt-socryp Jun 14, 2026
83cea2d
nockchain-libp2p-io: raise REQUEST_HIGH_THRESHOLD from 60 to 256
bitemyapp Jun 14, 2026
6501c2b
libp2p: redial seed peers forever; dumbnet: add jet hints
bitemyapp Jun 14, 2026
e8ddd6f
Persist libp2p peer ID across restarts by default
tacryt-socryp Jun 14, 2026
af5c601
Probe balance map directly in inputs-in-heaviest-balance
tacryt-socryp Jun 14, 2026
f5b7f3c
zkvm: expose open prover jets and math helpers (#50)
litlep-nibbyt Jun 16, 2026
f014b77
Round-robin dialing for backbone peers
tacryt-socryp Jun 16, 2026
590e768
Add multisig CSV listing and balance commands
tacryt-socryp Jun 20, 2026
9f9e41b
Add pre-commit hook and clippy-fix
tacryt-socryp Jun 20, 2026
a3e7e84
Update README links to nockchain org
tacryt-socryp Jun 22, 2026
39ad67c
Add create-multisig-tx and multisig planning
tacryt-socryp Jun 22, 2026
6d29078
consensus: handle protocol-fund coinbase notes and tests
tacryt-socryp Jun 23, 2026
0757712
http driver: add HTTP_PORT env var for local port override (#134)
sigilante Jun 24, 2026
57f26a4
Add --notes-csv flag to create-tx commands
tacryt-socryp Jun 26, 2026
66f6afd
Support fund-note first names in lock matcher
tacryt-socryp Jun 26, 2026
094324d
Reject oversize tx plans without tx output
tacryt-socryp Jun 29, 2026
df8086b
Distribute v1 fees across input notes
tacryt-socryp Jun 30, 2026
e670b4f
Add Cheetah Schnorr affine sign jet
tacryt-socryp Jun 30, 2026
e52c1ba
Optimize tx display with cord concatenation
tacryt-socryp Jun 30, 2026
dcd49d3
Add batch multisig create/sign scripts
tacryt-socryp Jun 30, 2026
1d73d6c
Update brand references
tacryt-socryp Jun 30, 2026
ee605df
Add script to generate bridge multisig address
tacryt-socryp Jun 30, 2026
8299948
Add ergonomic CLI flags for create-tx commands
tacryt-socryp Jul 2, 2026
6444e5c
Add tx-status command and fee visibility
tacryt-socryp Jul 3, 2026
17af696
Fix huge large tx behavior (#138)
tacryt-socryp Jul 10, 2026
da48f6d
Fix block-size test call syntax
tacryt-socryp Jul 11, 2026
db50a30
modify rust blockchain constants for fakenet with a corresponding def…
tacryt-socryp Jul 11, 2026
22b613f
Gate tx re-gossip by submission wire (#140)
tacryt-socryp Jul 14, 2026
31b8a01
native compiler, parity with hoon 138 and all of the kernels (#136)
bitemyapp Jul 14, 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
  •  
  •  
  •  
22 changes: 22 additions & 0 deletions .bazelignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Cargo build artifacts
target/
.cargo/

# Bazel output bases
bazel-bin
bazel-out
bazel-testlogs
bazel-nockchain

# Runtime data directories
.data.nockchain
.data.hoonc

# Development environments
.direnv/
.devenv/
.vscode/
.idea/

# Node.js outputs
node_modules/
81 changes: 81 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Bazel configuration for the nockchain workspace.
#
# Takes effect when this directory is the workspace root.

# Optional, untracked local overrides.
try-import %workspace%/.bazelrc.local

common --enable_platform_specific_config

# The workspace dependency graph can exceed rules_rust crate_universe's default
# 600s cargo-bazel splice timeout during analysis on cold caches.
common --repo_env=CARGO_BAZEL_TIMEOUT=1800

# Pinned nightly toolchain (see MODULE.bazel and rust-toolchain.toml).
common --@rules_rust//rust/toolchain/channel=nightly
common --@rules_rust//rust/settings:toolchain_generated_sysroot=True
common --@rules_rust//rust/settings:rustfmt.toml=//:rustfmt.toml

common --compilation_mode=opt
common --test_output=errors

# Suppress unused function warnings from vendored C code (secp256k1-sys).
common --copt=-Wno-unused-function

# Forward toolchain-related environment from the dev shell (see flake.nix).
# Unset variables are simply not forwarded.
common --action_env=LIBCLANG_PATH
common --host_action_env=LIBCLANG_PATH
common --action_env=CC
common --host_action_env=CC
common --action_env=CXX
common --host_action_env=CXX
common --repo_env=CC
common --repo_env=CXX
common --repo_env=AR
common --repo_env=RANLIB
common --action_env=CPLUS_INCLUDE_PATH
common --host_action_env=CPLUS_INCLUDE_PATH
common --action_env=LIBRARY_PATH
common --host_action_env=LIBRARY_PATH
common --action_env=LD_LIBRARY_PATH
common --host_action_env=LD_LIBRARY_PATH
test --test_env=LD_LIBRARY_PATH

# On macOS, rustc may invoke xcrun unless SDKROOT is set.
common:macos --action_env=SDKROOT
common:macos --host_action_env=SDKROOT
common:macos --action_env=DEVELOPER_DIR
common:macos --host_action_env=DEVELOPER_DIR
common:macos --action_env=MACOSX_DEPLOYMENT_TARGET
common:macos --host_action_env=MACOSX_DEPLOYMENT_TARGET

# Prefer Bazel-managed prebuilt protoc from the protobuf module.
common --@protobuf//bazel/toolchains:prefer_prebuilt_protoc
# Bazel <9 needs explicit proto toolchain resolution.
common --incompatible_enable_proto_toolchain_resolution

# Opt-in lint configuration:
# bazel build --config=clippy //...
build:clippy --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build:clippy --output_groups=+clippy_checks
common:clippy --@rules_rust//rust/settings:extra_rustc_flag=-Dwarnings
common:clippy --@rules_rust//rust/settings:clippy_flag=-Dclippy::unwrap_used
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::missing_safety_doc
# Allowed for the nightly-2026-04-03 toolchain bump: lints the newer clippy newly
# flags on pre-existing code (deferred to a dedicated cleanup; mirrors the root
# .bazelrc and [workspace.lints.clippy] in the generated Cargo.toml).
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::result_large_err
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::unnecessary_cast
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::unnecessary_sort_by
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::collapsible_match
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::manual_checked_ops
common:clippy --@rules_rust//rust/settings:clippy_flag=-Aclippy::while_let_loop

# Miri configuration for the *_miri test targets (tagged manual):
# bazel test --config=miri //crates/...:<name>_miri
test:miri --test_env=MIRIFLAGS="-Zmiri-ignore-leaks"
test:miri --test_env=RUST_BACKTRACE=1
test:miri --@rules_rust//rust/toolchain/channel=nightly
test:miri --test_timeout=3600
test:miri --test_size_filters=small,medium
1 change: 1 addition & 0 deletions .bazelversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.4.2
1 change: 0 additions & 1 deletion .env_example
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
RUST_LOG=info,nockchain=debug,nockchain_libp2p_io=info,libp2p=info,libp2p_quic=info
MINIMAL_LOG_FORMAT=true
MINING_PUBKEY=EHmKL2U3vXfS5GYAY5aVnGdukfDWwvkQPCZXnjvZVShsSQi3UAuA4tQQpVwGJMzc9FfpTY8pLDkqhBGfWutiF4prrCktUH9oAWJxkXQBzAavKDc95NR3DjmYwnnw8GuugnK
MINING_PKH=9yPePjfWAdUnzaQKyxcRXKRa5PpUzKKEwtpECBZsUYt9Jd7egSDEWoV
42 changes: 42 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env bash
#
# Pre-commit hook: auto-format and clippy-fix staged Rust code before a commit.
#
# Installed via `make install-hooks` (sets core.hooksPath to .githooks).
# Skip a single commit with `git commit --no-verify`.
# Skip just clippy (e.g. for a docs-only commit) with: SKIP_CLIPPY=1 git commit ...
#
# `make fmt` / `make clippy-fix` reformat/fix the WHOLE workspace, and this hook
# stages every file they changed so the fixes land in the commit.

set -euo pipefail

repo_root="$(git rev-parse --show-toplevel)"
cd "$repo_root"

# Files staged for this commit that are Rust sources or Cargo/rustfmt manifests
# (newline-delimited; kept portable for macOS's stock bash 3.2 — no mapfile).
staged_rust="$(
git diff --cached --name-only --diff-filter=ACMR \
| grep -E '\.rs$|(^|/)Cargo\.(toml|lock)$|(^|/)rustfmt\.toml$' || true
)"

if [ -z "$staged_rust" ]; then
echo "pre-commit: no Rust changes staged, skipping fmt/clippy."
exit 0
fi

echo "pre-commit: formatting Rust code (cargo fmt)..."
make fmt

if [ "${SKIP_CLIPPY:-0}" = "1" ]; then
echo "pre-commit: SKIP_CLIPPY=1 set, skipping clippy."
else
echo "pre-commit: applying clippy autofixes (cargo clippy --fix)..."
make clippy-fix
fi

# Stage every tracked file the fmt/clippy fixes modified so they land in the
# commit itself.
git add -u
echo "pre-commit: staged all formatted/fixed files."
34 changes: 34 additions & 0 deletions .github/workflows/create-sync-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Create sync PR

on:
push:
branches:
- staging

permissions:
contents: read
pull-requests: write

jobs:
create-pr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Create or update PR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
EXISTING_PR=$(gh pr list --repo nockchain/nockchain-staging --head staging --base master --json number --jq '.[0].number')
if [ -n "$EXISTING_PR" ]; then
echo "PR #$EXISTING_PR already exists"
else
gh pr create \
--repo nockchain/nockchain-staging \
--head staging \
--base master \
--title "sync: update from upstream" \
--body "Automated sync from upstream via Copybara."
fi
43 changes: 43 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Docs checks

on:
push:
branches: ["master", "nightly"]
paths:
- "**/*.md"
- "scripts/docs/**"
- "Makefile"
- ".github/workflows/docs.yml"
pull_request:
branches: ["master", "nightly"]
paths:
- "**/*.md"
- "scripts/docs/**"
- "Makefile"
- ".github/workflows/docs.yml"

permissions:
contents: read

concurrency:
group: docs-check-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
docs-check:
name: make docs-check
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Ensure ripgrep is available
run: |
if ! command -v rg >/dev/null 2>&1; then
sudo apt-get update
sudo apt-get install -y ripgrep
fi

- name: Run docs checks
run: make docs-check
109 changes: 109 additions & 0 deletions .github/workflows/parity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Compiler parity

# Byte-for-byte artifact parity between hoonc (reference) and honk (native
# compiler): each kernel plus the hoon-138 arbitrary self-mint, one job per
# artifact pairing so they run in parallel. Every test is a strict `cmp` of
# two Bazel-built jams (see assets/native/BUILD.bazel and
# crates/honk/test-assets/BUILD.bazel) — no dir-hash waiver: both compilers
# run sandboxed over identical dependency trees, so the artifacts must agree
# on every byte, including the directory-hash leaf.
#
# No remote/disk caching is configured yet: every job cold-builds hoonc, honk,
# and its jam pair (roughly 1-2h per job). The jam actions declare their
# memory footprint (rules_hoon/hoon.bzl resource_set) so Bazel does not
# co-schedule both compiles of a pair on a 16GB runner.

on:
push:
branches: ["master", "nightly"]
paths:
- "hoon/**"
- "crates/**"
- "assets/**"
- "rules_hoon/**"
- "Cargo.lock"
- "Cargo.toml"
- "MODULE.bazel"
- "MODULE.bazel.lock"
- ".bazelrc"
- ".bazelversion"
- ".github/workflows/parity.yml"
pull_request:
branches: ["master", "nightly"]
paths:
- "hoon/**"
- "crates/**"
- "assets/**"
- "rules_hoon/**"
- "Cargo.lock"
- "Cargo.toml"
- "MODULE.bazel"
- "MODULE.bazel.lock"
- ".bazelrc"
- ".bazelversion"
- ".github/workflows/parity.yml"

permissions:
contents: read

concurrency:
group: parity-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
kernel-parity:
name: ${{ matrix.kernel }} kernel parity
runs-on: ubuntu-latest
timeout-minutes: 180
strategy:
fail-fast: false
matrix:
kernel: [dumb, wal, miner, peek, bridge, roswell]
steps:
- name: Checkout code
uses: actions/checkout@v4

# Build the hoonc reference before the test so the two ~10GB kernel
# compiles (hoonc + honk) never run concurrently on a 16GB runner; the
# test step reuses this action result from the job's local cache.
- name: Build hoonc ${{ matrix.kernel }} reference
run: bazel build //assets:${{ matrix.kernel }}

- name: Test ${{ matrix.kernel }} parity (hoonc vs honk, strict cmp)
run: bazel test //assets/native:${{ matrix.kernel }}_parity_test

type-probe-parity:
# Small probe pairings: curated type probes + compiler fixtures (strict
# cmp of hoonc-vs-honk --arbitrary builds with an empty deps dir) plus
# the rejection-parity corpus (ill-typed probes both compilers must
# reject; verdict = artifact absence). Every probe is ~1-4s and under
# 1GB per side, so one job runs the whole suite; the wall clock is
# dominated by the cold compiler builds.
name: type probe parity
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Test type-checking parity probes (hoonc vs honk, strict cmp)
run: bazel test //crates/honk/test-assets/type-probes:all_parity_test

hoon-138-parity:
# The honk native self-mint peaks ~14GB RSS; ubuntu-latest (16GB) is
# tight but the resource_set declaration serializes it against the hoonc
# reference build. Move to a larger runner class if it OOMs.
name: hoon-138 arbitrary parity
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Checkout code
uses: actions/checkout@v4

# Serialize the two heavy compiles (see the kernel job note); the honk
# self-mint alone peaks ~14GB RSS.
- name: Build hoonc hoon-138 reference
run: bazel build //crates/honk/test-assets:hoon_138_ref

- name: Test hoon-138 self-mint parity (hoonc vs honk native, strict cmp)
run: bazel test //crates/honk/test-assets:hoon_138_arbitrary_parity_test
Loading
Loading