TransactionAttempt

시도된 거래 제출의 상태입니다.

JSON 표현
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
필드
status

enum (TransactionStatus)

출력 전용입니다. 거래 시도의 현재 상태입니다.

proofOfInclusion

object (ProofOfInclusion)

출력 전용입니다. 트랜잭션 효과가 월드 상태에 포함되었음을 나타내는 인증서입니다. 상태가 FINALIZED인 경우에만 제공됩니다.

statusEvents[]

object (StatusEvent)

출력 전용입니다. 거래 시도에 대해 기록된 순서가 지정된 상태 이벤트입니다.

TransactionStatus

거래 시도의 상태입니다.

열거형
TRANSACTION_STATUS_UNSPECIFIED 알 수 없거나 초기화되지 않은 상태입니다.
PENDING 이 트랜잭션은 이 유효성 검사기에 알려져 있지만 아직 완료되지 않았습니다.
FINALIZED 거래가 완료되었습니다. 이러한 효과는 블록체인에 유지되며 되돌릴 수 없습니다.

ProofOfInclusion

트랜잭션의 효과가 월드 상태에 포함되었음을 증명하는 인증서입니다.

JSON 표현
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
필드
transactionCertificate

object (TransactionCertificate)

출력 전용입니다. 특정 라운드에 트랜잭션 효과가 포함되었음을 증명하는 인증서입니다.

roundCertificate

object (RoundCertificate)

출력 전용입니다. 라운드 실행 인증서입니다.

pathToRoundRoot[]

object (MerkleTreeNode)

출력 전용입니다. 실행 라운드에 트랜잭션 효과가 포함되었음을 나타내는 암호화 증명입니다.

주어진 리프 (트랜잭션 다이제스트)에서 실행 라운드의 루트까지의 경로로 제공됩니다. 경로는 (왼쪽 하위 요소, 오른쪽 하위 요소) 쌍의 목록으로 표현되며 첫 번째 쌍은 지정된 리프의 상위 노드의 왼쪽 및 오른쪽 하위 요소입니다. 예를 들어 Merkle 트리가 8개의 리프 다이제스트 [t0, t1, t2, t3, t4, t5, t6, t7]로 빌드되었고 구조가 다음과 같다고 가정해 보겠습니다.

       _____root_digest____
      |                    |
   __ h20__             __h21__
  |        |           |       |
 h10     h11          h12     h13
 | |     | |          | |     | |
t0 t1   t2 t3        t4 t5   t6 t7

여기에서 t0pathToRoundRoot에는 [(t0, t1), (h10, h11), (h20, h21)]이 포함됩니다.

각 경로 노드의 SHA-256 다이제스트를 연속으로 계산하여 경로의 다이제스트가 roundCertificate.merkle_tree.root_digest_hex와 동일한 값을 생성하는지 확인할 수 있습니다. 따라서 리프가 라운드의 Merkle 트리에 포함되었는지 확인합니다.

TransactionCertificate

라운드에서 특정 거래의 실행 증명서입니다.

JSON 표현
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
필드
transactionDigestHex

string

출력 전용입니다. 이 인증서가 적용되는 거래의 ID입니다.

roundId

string (int64 format)

출력 전용입니다. 이 트랜잭션이 실행된 실행 라운드의 ID입니다.

transactionEffects

object (TransactionEffects)

출력 전용입니다. 트랜잭션 실행의 효과입니다.

events[]

object (TransactionEvent)

출력 전용입니다. 트랜잭션에서 생성된 이벤트입니다.

transactionEffectsStateChecksumHex

string

출력 전용입니다. 효과의 동형 체크섬입니다. 16진수 문자열로 인코딩된 2048바이트 값입니다.

certificationResultsDigestHex

string

출력 전용입니다. 이전 필드의 모든 암호화 다이제스트입니다. 포함 증명의 Merkle 트리를 빌드하는 데 사용됩니다.

TransactionEffects

트랜잭션 실행의 효과입니다.

JSON 표현
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
필드
status

object (TransactionStatus)

출력 전용입니다. 트랜잭션 실행의 결과 상태입니다.

effects[]
(deprecated)

object (TransactionEffect)

출력 전용입니다. 지원 중단됨: 대신 네트워크 상태를 쿼리하여 세계 상태의 변경사항을 확인하세요. 월드 상태에서 트랜잭션의 효과입니다.

TransactionStatus

트랜잭션 실행 상태를 나타냅니다.

JSON 표현
{
  "code": integer,
  "message": string
}
필드
code

integer

출력 전용입니다. 상태 코드입니다. 의미는 해당하는 gRPC 상태 코드에 의해 정의되는 숫자 값입니다.

message

string (bytes format)

출력 전용입니다. 오류 메시지(있는 경우) 코드가 OK이 아닌 경우에만 설정됩니다. utf-8 바이트로 인코딩된 문자열입니다. 인코딩의 결정성과 관련된 문제를 방지하기 위해 바이트로 저장됩니다.

base64 인코딩 문자열입니다.

TransactionEffect

일부 트랜잭션에 의한 월드 상태 업데이트를 나타냅니다.

deltaVal이 있으면 지정된 키에 이전에 저장된 값에 적용된 델타 (정수 오프셋)로 간주됩니다. 이 경우 newValoldVal은 비어 있어야 합니다.

그렇지 않으면 oldVal 또는 newVal (또는 둘 다)이 하나 이상 있는 것으로 간주됩니다. 빈 oldVal은 값이 삽입되었음을 나타냅니다. 빈 newVal은 값이 삭제되었음을 나타냅니다.

JSON 표현
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
필드
key

string (bytes format)

출력 전용입니다. 업데이트된 세계 상태의 키입니다.

base64 인코딩 문자열입니다.

oldVal

string (bytes format)

출력 전용입니다. 거래가 실행되기 전의 키 값입니다.

base64 인코딩 문자열입니다.

newVal

string (bytes format)

출력 전용입니다. 거래가 실행된 후의 키 값입니다.

base64 인코딩 문자열입니다.

deltaVal

string (int64 format)

출력 전용입니다. 이전에 저장된 값에 적용된 정수 오프셋입니다.

TransactionEvent

거래에 의해 생성된 이벤트입니다.

JSON 표현
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
필드
type

string

출력 전용입니다. 이벤트 유형입니다. transaction_output 유형의 특수 이벤트에는 트랜잭션에서 생성된 출력이 포함됩니다(예: 새로 생성된 계정의 계정 ID).

attributes[]

object (EventAttribute)

출력 전용입니다. 임의의 키-값 쌍인 이벤트 속성입니다.

EventAttribute

개별 속성(키-값 쌍)

JSON 표현
{
  "key": string,
  "value": string
}
필드
key

string

출력 전용입니다. 속성의 키입니다.

value

string

출력 전용입니다. 속성의 값입니다.

RoundCertificate

특정 검사자가 라운드를 실행했음을 증명하는 인증서입니다.

JSON 표현
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
필드
roundId

string (int64 format)

출력 전용입니다. 인증서가 적용되는 라운드의 ID입니다.

validatorId

string

출력 전용입니다. 사람이 읽을 수 있는 유효성 검사기 식별자입니다. 이는 validatorSignatures이 확인되는 공개 키를 조회하는 데 사용됩니다.

roundStateChecksumHex

string

출력 전용입니다. 이 라운드의 효과가 적용된 후의 세계 상태에 대한 동형 다이제스트의 16진수 표현입니다.

roundDeltaChecksumHex

string

출력 전용입니다. 이 라운드의 집계된 트랜잭션 효과에 대한 동형 다이제스트의 16진수 표현입니다.

merkleTree

object (MerkleTree)

출력 전용입니다. 이 라운드를 루트 노드로 하고 트랜잭션 배치 (라운드에서 실행됨)를 리프로 하는 머클 트리

validatorSignatures[]

string (bytes format)

선택사항입니다. 검사기의 서명입니다. 이는 이 레코드의 이전 페이로드의 다이제스트를 통해 서명됩니다.

base64 인코딩 문자열입니다.

isFinalized

boolean

출력 전용입니다. 라운드가 완료되었는지, 즉 충분한 수의 검사자가 동일한 인증서로 이 라운드를 인증했는지 나타내는 불리언입니다.

MerkleTree

루트 노드의 암호화 다이제스트가 있는 Merkle 트리입니다.

JSON 표현
{
  "rootHashHex": string,
  "rootDigestHex": string,
  "numTransactions": string
}
필드
rootHashHex
(deprecated)

string

출력 전용입니다. 루트 노드의 암호화 다이제스트입니다. 지원 중단됨: 대신 rootDigestHex을 사용하세요.

rootDigestHex

string

출력 전용입니다. 루트 노드의 다이제스트의 16진수 표현입니다. 형식: 64자리 16진수 문자열

numTransactions

string (int64 format)

출력 전용입니다. 트리의 트랜잭션 수입니다.

MerkleTreeNode

Merkle 트리 경로의 노드를 나타냅니다.

JSON 표현
{
  "leftChildHashHex": string,
  "rightChildHashHex": string,
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
필드
leftChildHashHex
(deprecated)

string

출력 전용입니다. 노드의 왼쪽 하위 요소의 다이제스트를 16진수로 표현한 값입니다. 지원 중단됨: 대신 leftChildDigestHex을 사용하세요.

rightChildHashHex
(deprecated)

string

출력 전용입니다. 노드의 오른쪽 하위 요소의 다이제스트를 16진수로 표현한 것입니다. 지원 중단됨: 대신 rightChildDigestHex을 사용하세요.

leftChildDigestHex

string

출력 전용입니다. 노드의 왼쪽 하위 요소의 다이제스트를 16진수로 표현한 값입니다. 형식: 64자리 16진수 문자열

rightChildDigestHex

string

출력 전용입니다. 노드의 오른쪽 하위 요소의 다이제스트를 16진수로 표현한 것입니다. 형식: 64자리 16진수 문자열

StatusEvent

단일 유효성 검사기에서 관찰한 트랜잭션 처리의 이벤트를 나타냅니다.

보고된 모든 값은 요청을 처리하는 검증 도구의 관점에서 나온 것이며 다른 검증 도구의 관점과 다를 수 있습니다.

JSON 표현
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
필드
eventTime

string (Timestamp format)

출력 전용입니다. 이 유효성 검사기에 의해 이벤트가 기록된 시간입니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

eventType

enum (EventType)

출력 전용입니다. 이벤트 유형입니다.

eventDetails

object (EventDetails)

출력 전용입니다. 이벤트와 관련된 추가 세부정보입니다.

EventType

요청이 라우팅된 유효성 검사기에서 관찰한 거래 처리의 이벤트 유형을 나타냅니다.

열거형
EVENT_TYPE_UNSPECIFIED 알 수 없거나 지정되지 않은 이벤트입니다.
EVENT_TYPE_RECEIVED 이 유효성 검사기가 클라이언트로부터 직접 수신한 트랜잭션입니다.
EVENT_TYPE_BROADCASTED 이 트랜잭션은 다른 유효성 검사기에 의해 브로드캐스트되었습니다.
EVENT_TYPE_ORDERED 이 검사기에 의해 거래가 주문되고 실행이 예약되었습니다.
EVENT_TYPE_EXECUTION_STARTED 트랜잭션 실행이 시작되었습니다.
EVENT_TYPE_EXECUTION_COMPLETED 트랜잭션 실행이 완료되었습니다.
EVENT_TYPE_FINALIZED 이 유효성 검사기에 의해 거래가 완료되었습니다.

EventDetails

상태 이벤트의 추가 세부정보를 나타냅니다.

JSON 표현
{

  // Union field event_details can be only one of the following:
  "executionDetails": {
    object (ExecutionDetails)
  }
  // End of list of possible types for union field event_details.
}
필드
통합 필드 event_details. 이벤트 세부정보입니다. event_details은 다음 중 하나여야 합니다.
executionDetails

object (ExecutionDetails)

출력 전용입니다. 실행 이벤트의 추가 세부정보입니다.

ExecutionDetails

실행 이벤트의 추가 세부정보입니다.

JSON 표현
{
  "roundId": string
}
필드
roundId

string (int64 format)

출력 전용입니다. 실행 이벤트가 발생한 라운드 ID입니다.