TransactionAttempt

המצב של ניסיון לשלוח עסקה.

ייצוג ב-JSON
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
שדות
status

enum (TransactionStatus)

פלט בלבד. הסטטוס הנוכחי של ניסיון העסקה.

proofOfInclusion

object (ProofOfInclusion)

פלט בלבד. אישור על הכללת ההשפעות של העסקה במצב העולמי. השדה הזה מופיע רק אם הסטטוס הוא FINALIZED.

statusEvents[]

object (StatusEvent)

פלט בלבד. אירועי הסטטוס של ההזמנה שתועדו בניסיון העסקה.

TransactionStatus

הסטטוס של ניסיון העסקה.

טיפוסים בני מנייה (enum)
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 נבנה עם שמונה תמציות עלים [t0, t1, t2, t3, t4, t5, t6, t7], במבנה הבא:

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

כאן, pathToRoundRoot עבור t0 יכיל: [(t0, t1), (h10, h11), (h20, h21)].

אפשר לחשב ברצף את תקצירי SHA-256 של כל צומת בנתיב כדי לוודא שתקציר הנתיב מפיק את אותו ערך כמו roundCertificate.merkle_tree.root_digest_hex. כך מאמתים שהעלה נכלל בעץ מרקל של הסבב.

TransactionCertificate

אישור על ביצוע עסקה ספציפית בסבב.

ייצוג ב-JSON
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
שדות
transactionDigestHex

string

פלט בלבד. מזהה העסקה שהאישור הזה מיועד לה.

roundId

string (int64 format)

פלט בלבד. המזהה של סבב הביצוע שבו העסקה הזו בוצעה.

transactionEffects

object (TransactionEffects)

פלט בלבד. ההשפעות של ביצוע העסקה.

events[]

object (TransactionEvent)

פלט בלבד. אירועים שנוצרו בעקבות העסקה.

transactionEffectsStateChecksumHex

string

פלט בלבד. סיכום ביקורת (checksum) הומומורפי של האפקטים. ערך של 2,048 בייטים שמקודד כמחרוזת הקסדצימלית.

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, ההנחה היא שמדובר בדלתא (היסט של מספר שלם) שחלה על הערך שנשמר קודם במפתח נתון. במקרה כזה, העמודות newVal ו-oldVal צריכות להיות ריקות.

אחרת, ההנחה היא שיש לו לפחות אחד מהערכים 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 מכיל את הפלט שנוצר על ידי הטרנזקציה, למשל מזהה החשבון של חשבון חדש שנוצר.

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)

פלט בלבד. מזהה הסבב שהאישור מיועד לו.

validatorId

string

פלט בלבד. מזהה המאמת שקריא לאנשים. הוא משמש לחיפוש המפתח הציבורי שבאמצעותו מאמתים את ה-validatorSignatures.

roundStateChecksumHex

string

פלט בלבד. הייצוג ההקסדצימלי של התקציר ההומומורפי של מצב העולם אחרי שההשפעות של הסבב הזה מיושמות.

roundDeltaChecksumHex

string

פלט בלבד. הייצוג ההקסדצימלי של התקציר ההומומורפי של השפעות העסקאות המצטברות בסבב הזה.

merkleTree

object (MerkleTree)

פלט בלבד. עץ מרקל שבו הסבב הזה הוא צומת השורש, וקבוצות העסקאות (שבוצעו בסבב) הן העלים.

validatorSignatures[]

string (bytes format)

זה שינוי אופציונלי. החתימה של המאמת. החתימה הזו היא על תקציר המידע של המטען הייעודי (payload) הקודם של הרשומה הזו.

מחרוזת בקידוד Base64.

isFinalized

boolean

פלט בלבד. ערך בוליאני שמציין אם הסבב הסתיים, כלומר אם קוורום מספיק של מאמתים אישר את הסבב הזה עם אותו אישור.

MerkleTree

עץ מרקל עם תקציר קריפטוגרפי של צומת השורש.

ייצוג ב-JSON
{
  "rootDigestHex": string,
  "numTransactions": string
}
שדות
rootDigestHex

string

פלט בלבד. הייצוג ההקסדצימלי של התקציר של צומת הרמה הבסיסית. פורמט: מחרוזת הקסדצימלית באורך 64 תווים.

numTransactions

string (int64 format)

פלט בלבד. מספר העסקאות בעץ.

MerkleTreeNode

מייצג צומת בנתיב של עץ מרקל.

ייצוג ב-JSON
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
שדות
leftChildDigestHex

string

פלט בלבד. הייצוג ההקסדצימלי של התקציר של הצאצא השמאלי של צומת. פורמט: מחרוזת הקסדצימלית באורך 64 תווים.

rightChildDigestHex

string

פלט בלבד. הייצוג ההקסדצימלי של התקציר של הצאצא הימני של צומת. פורמט: מחרוזת הקסדצימלית באורך 64 תווים.

StatusEvent

מייצג אירוע בעיבוד של עסקה כפי שנצפה על ידי מאמת יחיד.

כל הערכים שמופיעים בדוח הם מנקודת המבט של הכלי לאימות שמטפל בבקשה, ויכול להיות שהם יהיו שונים מנקודת המבט של כלים אחרים לאימות.

ייצוג ב-JSON
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
שדות
eventTime

string (Timestamp format)

פלט בלבד. השעה שבה האירוע תועד על ידי הכלי הזה לאימות.

הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות אחרי הנקודה העשרונית. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-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

מייצג את סוג האירוע בעיבוד של עסקה, כפי שנצפה על ידי המאמת שאליו נותבה הבקשה.

טיפוסים בני מנייה (enum)
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
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "executionDetails": {
    object (ExecutionDetails)
  }
  // End of mutually exclusive fields.
}
שדות
פרטי האירוע. ברשימה הבאה מופיעים שדות שמוציאים זה את זה. בתשובה יוגדר לכל היותר אחד מהשדות הבאים:
executionDetails

object (ExecutionDetails)

פלט בלבד. פרטים נוספים על אירוע הרצה.

סוף השדות שמוציאים זה את זה.

ExecutionDetails

פרטים נוספים על אירוע הרצה.

ייצוג ב-JSON
{
  "roundId": string
}
שדות
roundId

string (int64 format)

פלט בלבד. מזהה הסבב שבו התרחש אירוע ההפעלה.