실행 모델
이 페이지는 카이아 스마트 컨트랙트의 실행 모델, 데이터 구조, 생명주기에 대해 설명합니다.
실행 모델
Transactions can be generated by platform APIs as described in Platform API Specification. 이러한 트랜잭션은 컨센서스 노드(CN) 로 전송되어 블록에 저장됩니다. CN은 수신된 각 트랜잭션이 유효한지 확인합니다. 유효한 트랜잭션은 트랜잭션 풀에 저장되며, 그렇지 않은 트랜잭션은 폐기됩니다. CN은 트랜잭션 풀에서 현재 블록에 있는 실행 가능한 트랜잭션을 선택하고 하나씩 실행합니다.
트랜잭션을 실행하려면 발신자는 트랜잭션 수수료로 일정 금액의 KAIA를 지불해야 합니다. KAIA의 트랜잭션 수수료는 가스와 승수, 즉 단가를 기준으로 계산됩니다. 가스는 계산의 기본 단위입니다. Kaia 노드에서 실행되는 모든 작업은 미리 정의된 양의 가스를 소비합니다. The exact amount of KAIA required for the transaction is calculated by the formula illustrated in Transaction Fees. 발신자가 가스 부족과 함께 트랜잭션을 제출하면 트랜잭션이 실패할 수 있습니다. 또한 발신자 계정의 잔액이 부족한 경우에도 트랜잭션이 실패할 수 있습니다.
트랜잭션이 성공적으로 실행되면 해당 트랜잭션은 현재 블록에 포함됩니다. CN은 블록 가스 한도 또는 블록 시간 제한에 도달할 때까지 트랜잭션을 수집합니다. 그런 다음 CN은 트랜잭션으로 블록을 생성합니다. 이 단계에서는 블록의 여러 필드를 채워야 합니다. 예를 들어 트랜잭션, 영수증, 상태 등의 해시값을 계산해야 합니다. 모든 필수 필드가 완료되면 CN은 블록 해시를 생성합니다.
블록 생성이 완료되면 블록은 다른 모든 CN에 전파됩니다. 다른 CN들은 모두 전파된 블록을 검증하고 BFT 합의 알고리즘을 사용하여 검증 결과에 대한 합의에 도달합니다. 대다수의 CN에 의해 검증 프로세스가 성공적으로 완료되면 블록이 블록체인에 저장됩니다. BFT 합의 알고리즘은 즉각적인 완결성 속성을 만족하기 때문에 블록은 최종적이며 절대 제거되지 않습니다. 블록이 확정된 후에는 해당 블록에 포함된 모든 트랜잭션의 실행이 비가역적으로 보장되며, 요청 시 발신자에게 트랜잭션 실행 결과를 반환할 수 있습니다.