← 목록
AI 2026-06-10 5KB 읽기 5분

크라우니게이트웨이 관리 AI — 블록체인식 무중단 자율관리

개요

게이트웨이를 사람이 아니라 AI 에이전트가 자율 관리한다. "블록체인식 무중단" = 무중단 · 자가치유 · 합의(머클해시 검증) · 불변 이력. 4상균형3진(티/옴/타/음) 의사결정으로 관측→결정→조치→체인기록 사이클을 돌린다.

라이브 게이트웨이(gwlive.toau :8443/:8080/:9100)와 gateway.yaml 은 절대 손대지 않는다(메인세션 담당). 본 작업은 라이브 위에 ADDITIVE 로 얹은 관리/자가치유 AI 계층이다.

무엇을 했는지

산출 파일 (절대경로)

  • /Users/ef/crowny-gateway/한선게이트웨이/크라우니게이트웨이AI.한선 — 자율관리 AI 본체 + 단위검증
  • /Users/ef/crowny-gateway/한선게이트웨이/크라우니게이트웨이AI데몬.한선 — 자가치유 무한루프 데몬 진입점
  • /Users/ef/crowny-gateway/한선게이트웨이/크라우니게이트웨이AI기동.sh — 설치/구동 (verify/start/start-act/stop/status/chain)
  • /Users/ef/crowny-gateway/한선게이트웨이/com.crowny.gateway-ai.plist — launchd 무중단 LaunchAgent 초안

4상균형3진 의사결정 로직

부호트리거조치
T(+1)모든 업스트림 200정상유지(무행동)
O(0)일부 4xx/5xxX-Health-Warning 권고(관찰)
A(-1)무응답(연결실패)503 차단권고 + 능동 복구 탐색(5초 프로브)
U(구분자)연속 타 ≥ 임계(3)재기동 트리거(게이트웨이재기동.sh)
  • 관측: /api/health GET → 무응답 시 루트 / GET 폴백. 대상=9878/9907/8081.
  • 음(재기동)은 GWAI_ACT=1 일 때만 실제 실행. 기본 드라이런(권고만 체인 기록) = 라이브 보호.

블록체인식 불변 이력 구조

data/gateway-chain/chain.dat  : 블록 1줄 = pipe 직렬화 (append-only 불변)
  필드: 번호|이전해시|타임|관측|결정|조치|머클루트|블록해시
  머클루트 = SHA256(관측#결정#조치#타임)        ← 페이로드 변조 감지
  블록해시 = SHA256(번호+이전해시+머클루트+타임) ← 체인 연결
data/gateway-chain/head.txt   : "번호|블록해시" (체인 헤드)
data/gateway-chain/state.jrnl : 마지막 상태 저널 (에이전트 사후 복원)
  • 체인검증(): 블록해시 재계산 + 머클루트 재계산 + 이전해시 연결 3중 검증 → 변조 시 음수 반환.
  • 에이전트가 죽어도 state.jrnl(마지막 결정) + chain.dat(전체 이력)로 복원.

컴파일 & 검증 결과 (모두 PASS)

  • 크라우니게이트웨이AI.한선 → 컴파일 OK, 단위검증 전 항목 PASS
(코드3진 T/O/A, 결정 티/옴/타/음, 체인검증 3블록 PASS, 변조후검증 -3 PASS, 상태복원 타 PASS)
  • 크라우니게이트웨이AI데몬.한선 → 컴파일 OK, start/status/stop 라이브 실동작 확인(체인 genesis→block1 정상 연결)

설치법

bashGW=/Users/ef/crowny-gateway/한선게이트웨이
bash $GW/크라우니게이트웨이AI기동.sh verify      # 단위검증(비파괴)
bash $GW/크라우니게이트웨이AI기동.sh start       # 데몬 기동(드라이런)
bash $GW/크라우니게이트웨이AI기동.sh start-act   # 재기동 실제실행 활성
bash $GW/크라우니게이트웨이AI기동.sh status      # 체인높이+마지막결정
bash $GW/크라우니게이트웨이AI기동.sh stop

# 무중단 LaunchAgent (사용자 명시 설치)
cp $GW/com.crowny.gateway-ai.plist ~/Library/LaunchAgents/
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.crowny.gateway-ai.plist

한선씨 함정 회피

  • 맵(맵꺼내) = VM이 값 대신 인덱스 반환 → 블록을 pipe 문자열 직렬화로 우회
  • "\r" 리터럴 미보장 → curl/HTTP 캡처는 임시파일 redirect 후 읽기()
  • 파일존재() 항상 -1 → 읽기() 글자수로 존재 판정
  • 글로벌 배열 [i]=값 금지 → 덧쓰기() append-only
  • 줄분리/찾기 = 라이브러리 함수 → 내장 포함()/부분()/글자() 로 자체 구현(라이브러리 의존 0)

관련 파일

  • 라이브 본체(읽기만): /Users/ef/crowny-gateway/한선게이트웨이/게이트웨이통합.한선
  • 헬스/워치독: 헬스.한선, 워치독제어.한선
  • 재기동: 게이트웨이재기동.sh
  • 블록체인 패턴 참조: /Users/ef/CrownyOS/apps/메신저/v3/블록체인v3.한선

잔여 이슈 / 메인세션 인수인계

  1. 동시작업 충돌 발견: 다른 세션이 같은 크라우니게이트웨이AI 이름으로 병렬 구현(AI API :9158,
chain.ndjson/state.dat, Ti/Om/Ta/Eu 명명, 22 업스트림)을 진행한 흔적이 data/gateway-chain/ 에 남아있음 (ai.log, ai.pid, chain.ndjson, state.dat, 크라우니게이트웨이AI.toau). 데이터 파일명이 달라(.dat vs .ndjson) 공존하나, 소스 크라우니게이트웨이AI.한선 은 본 세션이 작성한 버전이 현재 디스크 상태. 두 설계 통합 여부 결정 필요.
  1. 관측 대상 8081(그림자 통합 게이트웨이)이 미가동이면 항상 타로 관측됨 — 정상(정직 관측). 그림자 가동 시 티.
  2. plist 는 초안 — 자동 bootstrap 하지 않음. 데몬 toau 는 data/gateway-chain/daemon.toau 에 영속 컴파일됨.
  3. 포트는 점유하지 않음(루프 데몬). 9158 은 다른 세션 미등록 포트라 충돌 회피.