크라우니게이트웨이 관리 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/5xx | X-Health-Warning 권고(관찰) |
| 타 | A(-1) | 무응답(연결실패) | 503 차단권고 + 능동 복구 탐색(5초 프로브) |
| 음 | U(구분자) | 연속 타 ≥ 임계(3) | 재기동 트리거(게이트웨이재기동.sh) |
- 관측:
/api/healthGET → 무응답 시 루트/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
- 크라우니게이트웨이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.한선
잔여 이슈 / 메인세션 인수인계
- 동시작업 충돌 발견: 다른 세션이 같은
크라우니게이트웨이AI이름으로 병렬 구현(AI API :9158,
크라우니게이트웨이AI.한선 은 본 세션이 작성한 버전이 현재 디스크 상태. 두 설계 통합 여부 결정 필요.
- 관측 대상 8081(그림자 통합 게이트웨이)이 미가동이면 항상 타로 관측됨 — 정상(정직 관측). 그림자 가동 시 티.
- plist 는 초안 — 자동 bootstrap 하지 않음. 데몬 toau 는 data/gateway-chain/daemon.toau 에 영속 컴파일됨.
- 포트는 점유하지 않음(루프 데몬). 9158 은 다른 세션 미등록 포트라 충돌 회피.