TL;DR
- Open Firmware는 AT Protocol을 통해 암호학적으로 서명된 소프트웨어를 배포하는 프로덕션 시스템으로, 배포 센터인 PDS에서 게시자가 릴리스 체인을 작성하고 엣지 에이전트와 Sidekar가 이를 가져와 감사하고 적용함.
- 제품군은 청크 처리와 감사용
@open-firmware/core, XRPC 클라이언트, 게시·클라이언트·서버 에이전트와 IoT 관리 도구, Rust CLI인 ofw로 구성됨. - 신뢰 모델은 작성자의 DID와 PDS 커밋 서명, 릴리스 및 청크의 SHA-256 다이제스트, 다운로드 전 전체 체인 검증, 적용 전 블롭 및 전체 이미지 해시 검증으로 구성됨.
- 안내형 빠른 시작은 예제 디렉터리에서 PDS 비밀 정보를 생성하고 Docker Compose 서비스를 실행한 뒤, 로컬 UI에서 상태를 확인하고 PDS에 릴리스를 게시하는 절차임.
- 프로덕션 게시, IoT 기기 관리, 명세·문서, 개발 및 Apache-2.0 라이선스 관련 안내를 제공함.
Open Firmware
- AT Protocol을 통해 암호학적으로 서명된 소프트웨어를 배포하는 프로덕션 시스템임.
- 배포 센터는 PDS이며, 게시자는 서명된 릴리스 체인(레코드와 블롭)을 작성하고 엣지 에이전트와 Sidekar는 이를 가져와 감사하고 적용함.
제품
@open-firmware/core: 청크 처리, Phase A 감사, 서비스 시간대 — Docker 사용 안 함.@open-firmware/atproto-lite: 기본 XRPC 클라이언트 — Docker 사용 안 함.@open-firmware/host: PDS에 릴리스 게시 — Docker 사용 안 함.@open-firmware/client: IoT·엣지 기기의 가져오기, 검증 및 적용 후크 — Docker 사용 안 함.@open-firmware/sidekar: 서버 에이전트, Docker 적용은 선택 사항 — Docker 선택 사항.@open-firmware/iot: 기기 식별, 공장 초기화, 봉인된 작업 — Docker 사용 안 함.@open-firmware/utility: 가입 승인, 비밀번호 설정, 작업 관리를 위한 관리자 도구 — Docker 사용 안 함.@open-firmware/server: 비공개 제어 플레인 API — Docker 사용 안 함.ofw(Rust CLI):release,publish,pipeline-ack,audit명령 — Docker 사용 안 함.
신뢰 모델
- 작성자의 DID와 PDS 커밋 서명이 레코드를 인증함.
- 릴리스와 청크에 SHA-256 콘텐츠 다이제스트를 적용함.
- Phase A에서 다운로드 전에 전체 체인을 검증함.
- Phase B에서 적용 전에 블롭과 전체 이미지 해시를 검증함.
- AppView와 대시보드는 신뢰의 루트가 아님.
빠른 시작(안내형 둘러보기)
examples/full-stack으로 이동해./scripts/gen-pds-secrets.sh를 실행한 다음docker compose up --build -d로 서비스를 시작함.- 자연어 안내와 실시간 상태를 제공하는 UI는 http://localhost:8099 이며, 전체 문서형 둘러보기는
examples/full-stack/WALKTHROUGH.md임. ./scripts/publish-to-pds.sh "Hello from Open Firmware"로 PDS에 게시함.- 워크로드 주소는 http://localhost:8080 이며, PDS 상태 확인 주소는 http://127.0.0.1:2583/xrpc/_health 임.
프로덕션 게시
cli디렉터리에서cargo install --path .를 실행해 CLI를 설치함.ofw publish에 PDS 주소, 식별자, 비밀번호, 제품명, 버전, 종류, 파일 경로를 지정해 게시하며, 예시 값은https://your-pds.example,your-handle,my-app,1.0.0,container,./image.tar임. 비밀번호는$OFW_PASSWORD환경 변수로 전달하고--yes옵션을 사용함.- GitHub Actions 예제 경로는
cli/examples/github-actions-publish.yml임.
IoT 관리(가입·비밀번호·공장 초기화)
pnpm --filter @open-firmware/iot build,pnpm --filter @open-firmware/utility build,pnpm --filter @open-firmware/server build로 각 패키지를 빌드함.pnpm --filter @open-firmware/iot-camera-emulator test:e2e로 종단 간 테스트를 실행함.- 관련 예제와 문서는
examples/iot-camera-emulator및docs/private-plane.md임.
명세 및 문서
docs/spec-release-chain.mddocs/architecture.mddocs/private-plane.mddocs/factory-provisioning.mddocs/sidekar.mdSECURITY.md
개발
pnpm install로 의존성을 설치함.pnpm --filter @open-firmware/core test와pnpm --filter @open-firmware/iot test로 테스트를 실행함.pnpm -r run build로 전체 빌드를 실행함.cli디렉터리에서cargo test와cargo build --release를 실행함.
라이선스
- Apache-2.0 라이선스임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요