메인 콘텐츠로 건너뛰기
이 장에서는 Kona가 지원하는 커스텀 FPVM 타깃 위에서 결함 증명 프로그램(Fault Proof Program)을 개발하는 방법을 개괄적으로 설명합니다. 상위 수준에서 보면, 결함 증명 프로그램은 일반적인 no_std Rust 프로그램과 크게 다르지 않습니다. 커스텀 엔트리포인트가 제공되며, 프로그램은 커스텀 타깃으로 컴파일된 후 FPVM에서 실행됩니다. 결함 증명 프로그램은 3단계로 구성됩니다.
  1. 프롤로그(Prologue): 프로그램이 메모리에 로드되고 초기 상태가 설정되는 부트스트래핑 단계입니다. 이 단계에서 프로그램의 초기 상태가 FPVM의 메모리에 기록되고, 프로그램의 엔트리포인트가 설정됩니다.
  2. 실행(Execution): 프로그램이 FPVM에서 실행되는 주요 실행 단계입니다. 이 단계에서 프로그램의 엔트리포인트가 호출되고, 프로그램은 종료될 때까지 실행됩니다.
  3. 에필로그(Epilogue): 프로그램의 최종 상태를 FPVM의 메모리에서 읽어 오는 마무리 단계입니다. 이 단계에서 프로그램의 최종 상태를 검사하고 상태 전이의 속성을 검증합니다.
이어지는 섹션에서는 각 단계에 대한 보다 자세한 개요와 함께, 자체 결함 증명 프로그램을 개발하기 위해 Kona가 제공하는 도구와 추상화를 설명합니다.