Skip to content

Releases: ainblockchain/ainize-node

Parallel teach lifecycle — source snapshot 2026-09-12

Choose a tag to compare

Source-only prerelease of matching core, node, and CLI changes. Core exposes an operator-configurable active-jobs-per-key limit; node enforces it with a 70-job concurrent admission regression test; CLI adds ainize teach parallel, using ain-js for finalized per-job status paths confirmed by an independent validator. The default per-key limit remains 2. GPU trainer slots are unchanged: 70 admitted/queued jobs do not prove 70 simultaneous GPU training processes. Real 70-job on-chain end-to-end evidence is not claimed by this source release. This is not an npm package publication. CLI usage: https://github.com/ainblockchain/ainize-cli/blob/teach-parallel-20260912/docs/parallel-teach.md

Public P2P body delivery and Live test evidence

Choose a tag to compare

공개 P2P 본문 및 Live test 재현 — 2026-09-12

원래 공개한 DART 지식2개를 보존된 파일에서 다시 전송했다. 공개 peer가
HTTP200으로 수신했고, 작성자 서명으로 다시 내려받은 전체SHA/바이트가 일치했다.
공개 Live compare도2건 HTTP200과 적용 전/후 답변을 반환했다.
원문 성능지표 전체 통과 수는0/6이며 이 결과는 공개 본문/추론 경로의 기능 실증이다.

항목 대표자명 소재지
knowledge ID taught-ainize-teach-first-20260-855df1 taught-ainize-lifecycle100-2026-cf9a6f
SHA256 f9f665f6fa1a6b37963a4845107c0c0a5d3b970bcd2af6e8f40938a0fbdf7acc fb1cd41e2f6a26f785d72460a2eac4a62688ee4c70e5bee43187d734eeca2e64
바이트 3,679,278 3,719,206
수신 POST / 인증 다운로드 200 / SHA 일치 200 / SHA 일치
익명 GET 402: 다운로드 권한 요구 402: 다운로드 권한 요구
Live compare 200, 적용 답변 조원국 200, 적용 답변 경기도 남양주시 별내3로 391
공개 검증 6/8, REJECTED 0/8, REJECTED

이 실험 폴더에서 재실행

/mnt/newdata/gov의 원래 publisher identity, 공개 anchor와 일치하는 NPZ,
아래에 고정된 로컬 Docker 이미지가 필요하다. 전송 도구는 공개 anchor의 작성자
서명·가격0·크기·SHA를 먼저 검사한다. 이미 공개된 동일 본문만 재전송한다.

cd /mnt/newdata/gov
run_id="relay-$(date -u +%Y%m%dT%H%M%SZ | tr '[:upper:]' '[:lower:]')"
output="$PWD/kpi/evidence/$run_id"
bash kpi/pr/an-relay/scripts/retry-preserved-public-blobs.sh "$output" "$run_id"

Docker CPU1/cpuset0–7/RAM·swap합계512MiB/read-only/no GPU, 현재 파일 소유자의
UID/GID를 쓴다. 키와 원본은 읽기 전용이다. 각 POST의 JSON ACK와 실제 파일
재다운로드 해시를 기록하며, 하나라도 실패하면 exit1이다. 중복 수신은
already_held:true일 수 있으며 동일SHA 재다운로드까지 확인한다.

공개 카탈로그·익명 GET·Live를 관측하는 명령이다. 두 번의 공개 Live quota를 쓴다.

docker run --name "ain-cert-observe-$run_id" --user "$(id -u):$(id -g)" \
  --runtime runc --cpus 1 --cpuset-cpus 0-7 --memory 512m --memory-swap 512m \
  --read-only --pids-limit 128 --cap-drop ALL --security-opt no-new-privileges \
  -e NVIDIA_VISIBLE_DEVICES=void \
  --mount "type=bind,src=$PWD/kpi/pr/an-relay/scripts/observe-public-relay.mjs,dst=/observe.mjs,readonly" \
  --mount "type=bind,src=$output,dst=/evidence" \
  sha256:f45a08b206bc56a4c97a004e1229e7c64aceac7a17c2b300bf5b14470cae53ea \
  /observe.mjs https://www.ainize.ai /evidence/live \
  taught-ainize-lifecycle100-2026-cf9a6f taught-ainize-teach-first-20260-855df1

관측 도구의 exit0은 응답 기록 완료다. summary.json의 HTTP 상태 및
*-chat-response.jsonbase/patched 실제 답변, 카탈로그의 검증 판정을 함께 본다.
모델이 반환한 기업 정보는 시험 응답이며 사실 확인 자료로 사용하지 않는다.

설치·검증 상태

npm 조회에서 CLI ainize@0.1.3@ainize/node@0.1.4 게시를 확인했다.
이번 본문 복구는 이전에 시험한 서명 전송 도구로 실행했다. 실행 중인 로컬
API는 node0.1.2 수정본, CLI0.1.1이며 버전 업그레이드 완료로 보고하지 않는다.
새 노드를 구성할 때는 관리자 안내의 CLI 설치·relay 설정·기동 후 publish 흐름을
사용하되 실제 설치 버전과 ACK를 기록해야 한다.

공개 검증은 파일 수신 직후 실제로 실행됐다. 공개 attestation의 잘린 답변과
src/runtime.ts의 verify 생성한도8토큰을 확인했다. 소재지의 첫 정답은 공개
Live의128토큰 한도에서14토큰으로 완성됐으므로 생성한도 차이가 실패에 기여할
수 있다. 전체8문항 재평가나 검증정책 변경을 실행한 결과는 아니다. 공개
benchmark_hit:false 등 원래 판정 필드도 보존하며 성공 값으로 덮지 않는다.

최초 실측: kpi/evidence/ainize_public_relay_20260912T1140/.
11:38:46/51 UTC signed POST와 read-back, live/의 공개 compare/카탈로그가 원문이다.
첫 관측용 컨테이너는 잘못 고정한UID1000 때문에 실행 전 EACCES로 종료했고,
파일 소유자의UID/GID로 수정해 재실행했다. 기존 학습·모델·체인을 재시작하지 않았다.

Year3 DART100 HF integration and P2P marketplace diagnostics (experimental)

Choose a tag to compare

DART100 native HF integration and honest marketplace diagnostics

Experimental source release from the existing year3/m6-eval-incentive branch and public PR3. It is not a deployment of the production Ainize website, a new node npm package or a Docker registry image.

  • Imports 100 existing DART dataset files using the native HF URL CLI and verifies original/canonical hashes, immutable revision and existing Ainize dataset IDs. The observed run completed100/100 datasets,780 rows, with no new training jobs. A new Hugging Face dataset publication is not a prerequisite.
  • Records the verified integration manifest through ain-js on the independent ten-node AIN experiment chain. Transaction 0xd53cdbd69b2e256234fff2d776a4b3be1613ac7c6c5467d60a168ee1870c5aa9, block12297: FINALIZED receipt, independent node5 readback and node9 block inclusion were checked. This is evidence anchoring, not a payment or incentive settlement.
  • Includes resumable sequential teach/inference observers with dataset binding, submission-intent checkpoints, duplicate-job protection, raw-response hashes and explicit accuracy denominators. No automatic publish, consent, PII waiver or fabricated all-answer pass.
  • Adds a resource-limited metadata/P2P/download proxy and guarded one-off idle ledger transition. The existing Ainize node now matches the public marketplace's local ledger, without restarting the ten-node AIN chain or GPU model/trainer. Local CREDIT is not AIN settlement.
  • Separates public catalog presence from LISTED verification. At08:04–08:06 UTC both catalogs were empty, and all four READY jobs had publish_status: none and no published patch ID. After the publisher explicitly confirmed rights/permanence and required native P2P, two READY jobs were actually published. The public API and a fresh explore browser show2 ANNOUNCED cards,0/2 independent verifiers. Complete matching signed anchors on both nodes passed core LocalLedger validation. The telephone dataset's publication was refused by the PII gate, without a private fallback.
  • Live test is still incomplete: the public model is available but the node has no NPZ body. /api/chat/patches reports not_held, and an actual public POST /api/chat returns HTTP409. Existing P2P pushes records but pulls bodies; the sender's localhost endpoint cannot serve another host. Outbound P2P receive/relay deployment details were requested from the administrator. Funnel/proxy activation is no longer a prerequisite, and no tunnel was opened. These sources do not implement automatic NAT traversal or blob push.
  • Three independent inference audits completed:19/24 primary and4/24 alternate correct; none passed every question. The fourth observer stopped at cleanup because the legitimate watchdog held the runtime lock. Its16 recorded responses were preserved. After checking the exact owned patch and an idle runtime, the same RUN_ID and immutable source resumed without duplicate training or cancelling GPU work. Do not infer100 completed jobs from100 imported datasets.

Validation and deployment limits

The unchanged JavaScript implementation at59d6634 passed21 tests in Docker with2 CPUs,2 GiB memory, no additional swap, no network and a read-only filesystem. Subsequent changes only add this marketplace diagnosis/documentation. The attached log is that observed test run, not a new GPU training or public-sale test.

The deployment templates assume the existing /mnt/newdata/gov/kpi layout, configured Ainize container, private operator/teaching credentials, registered datasets, local images, model/trainer and AIN helpers. They are not a clean-machine bootstrap. Private homes, tokens, keys, raw proprietary inputs and backups are excluded.

Native HF CLI source and separately tested installation artifact: https://github.com/ainblockchain/ainize-cli/releases/tag/year3-hf-dataset-import-20260911 . CLI package distribution does not create marketplace knowledge listings. Full100-job training/inference,100-model support, independent purchases and the other year3 performance requirements remain incomplete.

DART Ainize ↔ lm-eval: first live evaluation and resumable evidence

Choose a tag to compare

Existing DART datasets: live Ainize ↔ lm-evaluation-harness integration

Source commit ccdfaf3cf78a9a9b9fe979afb5f9a388f3b6a2e2 merges current node main and adds a CPU-only lm-eval0.4.13 adapter, bounded authenticated client, immutable request/response journals, dataset/job/patch/model bindings, safe owned-patch cleanup and a Docker runner. VERIFIED catalog status is recognized alongside legacy LISTED without treating ANNOUNCED as verification.

Validation: node TypeScript build passes;22 existing/updated JavaScript regressions and15 Python/real-lm-eval fixture tests pass in resource-limited, offline Docker containers. Actual preflight failures (wrong signature-only enumeration route401, then correctly refused ongoing CHECKING work) are preserved, not counted as successful GPU evaluations.

Actual first dataset (ainize_lmeval_first_20260911,2026-09-11 11:06UTC): existing DART representative-name dataset, original checked job/patch,16 new compare HTTP responses with8 primary and8 heldout questions. Exact match: base0/8 and0/8; patched5/8 and0/8. Invalid/truncated generations remain in the denominator (base3,patched5). A second run with the same frozen source reuses32 column responses, performs zero new compare requests, returns identical metrics and verifies all16 original response file hashes.

The evaluation client is CPU1/cpuset0–7/RAM+swap2GiB/noGPU/read-only rootfs, with only the private0600 operator session file mounted read-only. Existing resource-limited Qwen/Ainize servers perform actual GPU computation. No model/trainer container or GPU7 task restarts. The original100-dataset lifecycle run resumes with its existing IDs and frozen source after the maintenance/evaluation window.

This is one live evaluated dataset, not100 completed evaluations,100 distinct base models, a new HF dataset publication, public P2P delivery, independent marketplace verification, or incentive settlement. HF URL integration already reused100 existing dataset IDs/780 rows; that remains a separate observation. Root reproduction documentation and checklist are release artifacts, not a claim that the non-Git workspace root was committed. Credentials, home/trainer backups and model weights are excluded.

Relay main compatibility, retained bodies and watchdog lock regression

Choose a tag to compare

Source/evidence release for257bfe8. Incorporates main20e599a6 (node0.1.2) and merged core695a8ad6 (core0.1.3), preserving VERIFIED terminology and the bounded/authenticated/retained relay implementation. Resolves the PR merge conflicts. Fixes a modeled watchdog race by reading the current stack and rebuild plan inside the runtime lock:3 deterministic tests fail before the fix and pass after it; all52 selected Docker tests pass. Includes source hashes, failure/success logs and CPU2/RAM4GiB/no-GPU execution metadata. Public www/apex POST still returns HTML404 Cannot POST at10:12:59UTC. This is NOT a public-server deployment, npm publication or successful public Live test. Active DART8 training and model containers were not restarted.

P2P relay: locally deployed runtime and preservation evidence

Choose a tag to compare

P2P relay: verified local runtime refresh, not public delivery

  • Incorporates upstream core0.1.3/node0.1.2 and preserves bounded authenticated relay, persistent body retention and locked watchdog snapshots.
  • Adds a reproducible core/node/CLI source-refresh image build and API-only maintenance. Exact rebuilt image: sha256:da23af1a5c75cfee61bdad8403f39cad31b6bd2860e7af590a6ffbf03f31c4b0.
  • Offline Docker tests:56/56 (31 relay/client/watchdog/maintenance +25 cluster/chat guards). CPU2/RAM4GiB/noGPU/network-none; retained previous build and wrapper failures.
  • Actual local replacement on2026-09-11 11:02:46UTC: nine existing job bindings and846 existing file hashes preserved, same two model/trainer containers and PIDs. Private home/trainer archives remain local and are excluded from release assets.
  • The local unsigned empty POST answers JSON403 relay_disabled, not HTML404. The author node is not automatically opened as a public replica.
  • Actual author-signed original-body offers to www/apex at10:43UTC both returned HTML404 Cannot POST; public catalog still has two ANNOUNCED entries with no held blobs. No public relay delivery, independent verification or Live inference success is claimed.
  • API version=0.1.0 comes from a core constant, not npm package versions. Both the new local node and public node report it; route response, build and image/commit identity must be checked independently.

This release publishes source and sanitized evidence, not an npm package, public-server deployment, Docker registry image, new HF dataset or completed100-dataset evaluation. Original plan gates remain open where their actual experiments are incomplete.

Preserved originals: isolated P2P replay and early-response upload fix

Choose a tag to compare

Original-body P2P replay and early-response upload fix

Source: b0160c7a96a4e7f3be8eea505f86cd77f5e7988c, pushed to existing feat/blob-relay (PR5). This is a source/evidence prerelease, not an npm release, registry image, production API upgrade or public-node deployment.

  • Original public DART knowledge bodies are still present on the publisher machine. Both full SHA256 hashes, anchored sizes and original author signatures match. Public nodes holding zero blobs do not prove these originals were lost.
  • An actual empty, independent Ainize receiver accepted both original bodies over native signed P2P, then duplicate offers; authenticated downloads matched all bytes. The same receiver survived stop/start and returned both bodies again. Original anchor hashes/counts remained unchanged; actual GC retained both copies.
  • Actual counts:0→2 held bodies,4 successful body POSTs (2 initial+2 duplicate),4 pre-restart and2 post-restart hash-verified downloads. Neither the receiver nor the post-restart checker had source-body mounts. Receiver had no publisher private key.
  • Each experiment container: internal Docker network, no published ports, runc/noGPU, CPU1/cpuset0–7, RAM and totalRAM+swap1GiB, PID128, read-only root,64MiB tmpfs, dropped capabilities. Production publisher/model/trainer container IDs, PIDs and start times remained unchanged.
  • The initial original-file run exposed an uncaught file-backed-Blob/ReadableStream error on a large early duplicate acknowledgment. The shared sender now streams multipart bytes with an async-generator-backed Readable;256MiB file,4KiB response,60s whole-operation bounds and no redirect following remain. Intermediate native-http EPIPE failures are preserved. Final source passed62 regressions plus40 repeated transport tests (400 large early responses), and the real-original replay.
  • Image used for the successful isolated run: sha256:f45a08b206bc56a4c97a004e1229e7c64aceac7a17c2b300bf5b14470cae53ea. It is a local build, not a registry publication or replacement of the running publisher API.
  • Public offers with that fixed client at11:54:44UTC (www) and11:54:47UTC (apex) still returned HTML404 Cannot POST, accepted=false. GET missing-body JSON404, signed POST unknown-anchor JSON404, and HTML Cannot POST are distinct observations. Backend3400 response and actual running commit are still needed to locate the deployment boundary.

No public replication, VERIFIED status, Live inference success, complete100-dataset evaluation or full year3 performance-goal completion is claimed. No new anchor, retraining, new HF dataset publication, PII bypass, Funnel or substitute HTTPS file server was used. Secrets, private receiver homes/backups and NPZ bodies are excluded from diagnostic assets. Root reproduction documents are separately published artifacts: the workspace root is not a Git repository.

P2P relay recovery: keep original bodies available after verification

Choose a tag to compare

Preserve and recover existing P2P knowledge bodies

Source commit: a4753e0142f27d5c2ff0412d6a3d81ea3ef3dccd, pushed to the existing feat/blob-relay / node PR #5.
Core test source: 85cbef76da935b6ad8b9b1daf3fe6bc14701ea5a (core PR #3).

This is a source prerelease with diagnostic evidence, not npm publication,
public-server deployment, or a successful public Live test.

Direct evidence, not a missing-file assumption

The original publisher ain-cert-ainize-node-1 is running and healthy on the
experiment machine (PID 3616107, started 2026-09-11T07:39:04.930747533Z).
Its /p2p/blobs had six bodies at 09:10 UTC. Both already-published DART bodies
exist there and match the public author-signed anchors exactly:

  • f9f665f6fa1a6b37963a4845107c0c0a5d3b970bcd2af6e8f40938a0fbdf7acc: 3,679,278 bytes, 2,856 rows × 160.
  • fb1cd41e2f6a26f785d72460a2eac4a62688ee4c70e5bee43187d734eeca2e64: 3,719,206 bytes, 2,887 rows × 160.

At 09:11:52 and 09:12:53 UTC, actual author-signed multipart body offers to www
and apex respectively both returned HTML 404 Cannot POST, not JSON success.
The attached signed-offer-status.json includes exact endpoints and responses.
An empty remote inventory does not mean the original files were deleted. Remote
localhost:3410 also cannot identify a process on another machine. No retraining
or additional anchor/dataset publication was performed.

Changes

  • Standalone scripts/retry-public-blob.mjs offers an existing free public body
    while the old author node/trainer keeps running. It verifies the anchor signature,
    author/hash/size and bounded receipts, then checks a full authenticated read-back.
    It never logs identity secrets or auth headers, or reports HTML 200/404 as success.
  • A persistent blob retention flag prevents verifier cleanup and GC from deleting
    an accepted relay body immediately after attestation. Retention survives reopening
    the database, is rechecked after asynchronous catalog access, and is cleared by
    explicit removal. Ordinary verifier copies still follow their original policy.
  • Retention is not a paid license, an attestation, or permission to apply knowledge.
  • Korean evidence/runbook: docs/blob-relay-evidence-ko.md.

Validation

49/49 tests pass: 18 relay/retention regressions, six recovery-client transport
fixtures, and 25 existing cluster/chat-guard regressions. Both source trees compile.
Docker CPU quota 2, CPU set 0–7, memory and memory+swap ceiling 4 GiB, network none,
read-only source/root, executable 2 GiB tmpfs, no GPU. Test finish:
2026-09-11T09:19:59.05798069Z. Immutable test source hashes are attached and match
the released source/tests/recovery client. The earlier 45/48-pass intermediate
runs and the initial recovery client's old-core import failure remain local evidence.

The actual signed offers used separate Docker containers with CPU quota 1,
CPU set 0–7, memory and memory+swap ceiling 1 GiB, selected config/body read-only,
and no GPU. They failed and are not counted as successful transfers or inference.

The deployment still needs node PR #5 plus the core relay configuration fields.
Core's version string 0.1.2 alone does not identify those fields. Diagnose the
internal POST http://127.0.0.1:3400/p2p/blob/<sha> response and actual deployed
commit before attributing the public 404 to a particular backend/proxy layer.

Outbound P2P blob relay: bounded ingress and publication retry

Choose a tag to compare

Native outbound P2P relay hardening

Source: d156d36253e7ec877ff21680ba0f44e31fde3771, existing node PR #5 / feat/blob-relay.
Companion core source used for validation: 85cbef76da935b6ad8b9b1daf3fe6bc14701ea5a (core PR #3).

This is a source prerelease and validation evidence, not an npm publication,
public-server deployment, verified marketplace status, or a successful public Live test.

  • Admission/authentication before file parsing; positive cumulative storage budget and concurrent reservations.
  • Exact signed size/hash/dimensions, bounded NPZ inflation, corruption checks, cleanup on failure/disconnection.
  • Streamed outbound offers, checked JSON receipts, bounded responses, no redirect forwarding, configured peers only.
  • Operator-only POST /api/patches/:id/relay retries already-announced bodies without retraining or another anchor.
  • Wire-compatible with the original POST /p2p/blob/:sha feature; no Funnel or public seller URL prerequisite.

Validation: 39/39 Docker tests pass (14 relay tests + 25 existing cluster/chat-guard regressions).
Both source trees compile. Docker CPU quota 2, CPU set 0–7, RAM/swap ceiling 4 GiB,
network none, read-only root/source, executable 2 GiB tmpfs, no GPU.
Test finish: 2026-09-11T09:01:04.148513822Z. Image digest:
sha256:563e96f6725136939bd6bac5cf6a6480fcc535f71fb51c0ab02ab19d7d8891d7.
Attached source checksums identify the immutable test inputs; the commit contains those same source files.

Failures retained locally: r1 executable-tmpfs setup, r2 incomplete test verifier config,
r3 multipart part-limit regression (7 pass / 5 fail), then r4 37/37 and final r5 39/39.
Synthetic test fixtures are not DART100 performance evidence.

Deployment caveat: at 08:58:53 UTC both https://ainize.ai and https://www.ainize.ai
still answered 404 Cannot POST for the new route. The actual public endpoint must
deploy/forward this route and enable p2p.relayBlobs with a positive p2p.maxRelayBytes.
Only then can the existing two DART bodies be pushed and the real public Live test repeated.
Core npm 0.1.2 alone is insufficient: current main's 0.1.2 and the feature branch use
the same version string but different config fields. Merge/build core PR #3 as well;
do not silently roll back the main branch's VERIFIED status rename.

No verification quorum, payment entitlement, dataset visibility or PII checks are waived.

@ainize/node 0.1.0

Choose a tag to compare

@kimminhyun-ai kimminhyun-ai released this 10 Sep 20:19
2f59702

First public release of @ainize/node.

npm install -g @ainize/node
  • Window-resident teach trainer (trainer/resident/): the base model is loaded once and lessons are served from a queue; teach_client.py is a drop-in for teach.trainer.script with a one-shot teach.py fallback. Adds exact-length batched probes, pinpoint protection of the locality-prompt rows and a contrast-probe cache. This is the trainer behind the 108-lesson certification run.
  • Package is now public on npm (MIT), depends on @ainize/core ^0.1.0 from the registry; engines.node >= 24.