שאילתה לגבי מצב העסקה. אפשר להפעיל את השיטה הזו לכל עסקה שנשלחת לרשת. פרטי העסקה שמוחזרים עשויים להיות שונים בין שיחות, כי נקודת קצה עשויה להפנות בקשות למאמתים שונים ברשת ובאזור, והמאמתים לא בהכרח נמצאים באותו מזהה סבב בכל זמן נתון.
בקשת HTTP
GET https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryTransactionState כתובות ה-URL כתובות בתחביר של gRPC Transcoding.
פרמטרים של נתיב
| פרמטרים | |
|---|---|
endpoint |
חובה. נקודת הקצה למילוי הבקשה. פורמט: |
פרמטרים של שאילתה
| פרמטרים | |
|---|---|
transactionDigestHex |
חובה. מזהה העסקה שרוצים לקבל את הסטטוס שלה. |
גוף הבקשה
גוף הבקשה צריך להיות ריק.
גוף התשובה
הודעת תגובה לנקודות הקצה (endpoints) של queryTransactionState.
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:
| ייצוג JSON |
|---|
{
"transactionAttempts": [
{
object ( |
| שדות | |
|---|---|
transactionAttempts[] |
רשומה אחת לכל שליחה ידועה של העסקה לכלי האימות שמטפל בבקשה. |
היקפי הרשאות
נדרש היקף ההרשאות הבא של OAuth:
https://www.googleapis.com/auth/cloud-platform
ניתן למצוא מידע נוסף כאן: Authentication Overview.
TransactionAttempt
המצב של ניסיון לשליחת עסקה.
| ייצוג JSON |
|---|
{ "status": enum ( |
| שדות | |
|---|---|
status |
פלט בלבד. הסטטוס הנוכחי של ניסיון העסקה. |
proofOfInclusion |
פלט בלבד. אישור על הכללת ההשפעות של העסקה במצב העולמי. הערך הזה מסופק רק אם הסטטוס הוא |
statusEvents[] |
פלט בלבד. אירועי הסטטוס של ההזמנה שנרשמו לניסיון העסקה. |
TransactionStatus
הסטטוס של ניסיון העסקה.
| טיפוסים בני מנייה (enum) | |
|---|---|
TRANSACTION_STATUS_UNSPECIFIED |
מצב לא ידוע או לא מאותחל. |
PENDING |
העסקה מוכרת לכלי האימות הזה, אבל היא עדיין לא סופית. |
FINALIZED |
העסקה הושלמה. ההשפעות שלה נשמרו בבלוקצ'יין ואי אפשר לבטל אותן. |
ProofOfInclusion
אישור על הכללת ההשפעות של טרנזקציה במצב העולמי.
| ייצוג JSON |
|---|
{ "transactionCertificate": { object ( |
| שדות | |
|---|---|
transactionCertificate |
פלט בלבד. אישור על הכללת ההשפעות של העסקה בסבב ספציפי. |
roundCertificate |
פלט בלבד. אישור על ביצוע הסבב. |
pathToRoundRoot[] |
פלט בלבד. הוכחה קריפטוגרפית להכללה של השפעות הטרנזקציה בסבב הביצוע. הוא מוצג כנתיב מעלה מנקודת עלה נתונה (תקציר טרנזקציה) אל שורש סבב הביצוע. הנתיב מיוצג כרשימה של זוגות (צאצא שמאלי, צאצא ימני), והזוג הראשון הוא הצאצא השמאלי והצאצא הימני של צומת האב של העלה הנתון. לדוגמה, נניח שעץ מרקל נבנה עם שמונה תמציות של עלים בקטע הזה, אפשר לחשב ברצף את הגיבובים של SHA-256 של כל צומת בנתיב כדי לוודא שהגיבוב של הנתיב יוצר את אותו ערך כמו |
TransactionCertificate
אישור על ביצוע עסקה ספציפית בסבב.
| ייצוג JSON |
|---|
{ "transactionDigestHex": string, "roundId": string, "transactionEffects": { object ( |
| שדות | |
|---|---|
transactionDigestHex |
פלט בלבד. המזהה של העסקה שאליה מתייחס האישור הזה. |
roundId |
פלט בלבד. המזהה של סבב הביצוע שבו בוצעה העסקה הזו. |
transactionEffects |
פלט בלבד. ההשפעות של העסקה על מצב העולם. |
events[] |
פלט בלבד. אירועים שנוצרו על ידי העסקה. |
transactionEffectsStateChecksumHex |
פלט בלבד. סכום ביקורת הומומורפי של ההשפעות. ערך בגודל 2048 בתים (bytes) שמקודד כמחרוזת הקסדצימלית. |
certificationResultsDigestHex |
פלט בלבד. תמצית קריפטוגרפית של כל השדות הקודמים ברצף. הוא משמש לבניית עץ מרקל להוכחת הכללה. |
TransactionEffects
ההשפעות של ביצוע טרנזקציה במצב העולמי.
| ייצוג JSON |
|---|
{ "status": { object ( |
| שדות | |
|---|---|
status |
פלט בלבד. הסטטוס שמתקבל של ביצוע העסקה. |
effects[] |
פלט בלבד. ההשפעות של העסקה על מצב העולם. |
TransactionStatus
מייצג את הסטטוס של ביצוע עסקה.
| ייצוג JSON |
|---|
{ "code": integer, "message": string } |
| שדות | |
|---|---|
code |
פלט בלבד. קוד הסטטוס, ערך מספרי שהמשמעות שלו מוגדרת על ידי קוד הסטטוס התואם של gRPC. |
message |
פלט בלבד. הודעת השגיאה, אם יש כזו. הגדרה רק אם הקוד הוא לא מחרוזת בקידוד Base64. |
TransactionEffect
מייצג עדכון של מצב העולם על ידי טרנזקציה מסוימת.
אם יש לו deltaVal, מניחים שמדובר בדלתא (היסט של מספר שלם) שמוחלת על הערך שאוחסן קודם במפתח נתון. במקרה כזה, הערכים של newVal ו-oldVal צריכים להיות ריקים.
אחרת, המערכת מניחה שהיא כוללת לפחות את oldVal או newVal (או את שניהם). אם התג oldVal ריק, המשמעות היא שהערך הוכנס. אם הערך newVal ריק, המשמעות היא שהערך נמחק.
| ייצוג JSON |
|---|
{ "key": string, "oldVal": string, "newVal": string, "deltaVal": string } |
| שדות | |
|---|---|
key |
פלט בלבד. המפתח במצב העולמי שעודכן. מחרוזת בקידוד Base64. |
oldVal |
פלט בלבד. הערך של המפתח לפני ביצוע העסקה. מחרוזת בקידוד Base64. |
newVal |
פלט בלבד. הערך של המפתח אחרי ביצוע העסקה. מחרוזת בקידוד Base64. |
deltaVal |
פלט בלבד. היסטוריית שינויים של מספר שלם שהוחל על הערך הקודם ששמור. |
TransactionEvent
אירוע שנוצר על ידי עסקה.
| ייצוג JSON |
|---|
{
"type": string,
"attributes": [
{
object ( |
| שדות | |
|---|---|
type |
פלט בלבד. סוג האירוע. אירוע מיוחד מסוג |
attributes[] |
פלט בלבד. מאפייני האירוע כצמדי מפתח/ערך שרירותיים. |
EventAttribute
מאפיין בודד כצמד מפתח/ערך.
| ייצוג JSON |
|---|
{ "key": string, "value": string } |
| שדות | |
|---|---|
key |
פלט בלבד. המפתח של המאפיין. |
value |
פלט בלבד. הערך של המאפיין. |
RoundCertificate
אישור על ביצוע סבב על ידי מאמת ספציפי.
| ייצוג JSON |
|---|
{
"roundId": string,
"validatorId": string,
"roundStateChecksumHex": string,
"roundDeltaChecksumHex": string,
"merkleTree": {
object ( |
| שדות | |
|---|---|
roundId |
פלט בלבד. המזהה של הסבב שאליו משויך האישור. |
validatorId |
פלט בלבד. מזהה המאמת בפורמט שקריא לבני אדם. הערך הזה משמש לחיפוש המפתח הציבורי שבאמצעותו מאומת |
roundStateChecksumHex |
פלט בלבד. ייצוג הקסדצימלי של ה-digest ההומומורפי של מצב העולם אחרי שההשפעות של הסיבוב הזה מיושמות. |
roundDeltaChecksumHex |
פלט בלבד. ייצוג הקסדצימלי של ה-digest ההומומורפי של ההשפעות המצטברות של העסקה בסבב הזה. |
merkleTree |
פלט בלבד. עץ מרקל שבו הסיבוב הזה הוא צומת השורש, ואצוות העסקאות (שבוצעו בסיבוב) הן העלים. |
validatorSignatures[] |
זה שינוי אופציונלי. החתימה של המאמת. החתימה הזו מתבצעת על ה-digest של המטען הייעודי הקודם של הרשומה הזו. מחרוזת בקידוד Base64. |
isFinalized |
פלט בלבד. ערך בוליאני שמציין אם הסבב הסתיים, כלומר אם מספר מספיק של מאמתים אישרו את הסבב הזה באותו אישור. |
MerkleTree
עץ מרקל עם תקציר קריפטוגרפי של צומת השורש.
| ייצוג JSON |
|---|
{ "rootHashHex": string, "rootDigestHex": string, "numTransactions": string } |
| שדות | |
|---|---|
rootHashHex |
פלט בלבד. התקציר הקריפטוגרפי של צומת הבסיס. הוצא משימוש: במקומו, צריך להשתמש ב- |
rootDigestHex |
פלט בלבד. הייצוג ההקסדצימלי של הגיבוב של צומת השורש. פורמט: מחרוזת הקסדצימלית באורך 64 תווים. |
numTransactions |
פלט בלבד. מספר העסקאות בעץ. |
MerkleTreeNode
מייצג צומת בנתיב של עץ מרקל.
| ייצוג JSON |
|---|
{ "leftChildHashHex": string, "rightChildHashHex": string, "leftChildDigestHex": string, "rightChildDigestHex": string } |
| שדות | |
|---|---|
leftChildHashHex |
פלט בלבד. הייצוג ההקסדצימלי של ה-digest של צאצא שמאלי של צומת. הוצא משימוש: במקומו, צריך להשתמש ב- |
rightChildHashHex |
פלט בלבד. הייצוג ההקסדצימלי של ה-digest של צאצא ימני של צומת. הוצא משימוש: במקומו, צריך להשתמש ב- |
leftChildDigestHex |
פלט בלבד. הייצוג ההקסדצימלי של ה-digest של צאצא שמאלי של צומת. פורמט: מחרוזת הקסדצימלית באורך 64 תווים. |
rightChildDigestHex |
פלט בלבד. הייצוג ההקסדצימלי של ה-digest של צאצא ימני של צומת. פורמט: מחרוזת הקסדצימלית באורך 64 תווים. |
StatusEvent
מייצג אירוע בתהליך של עסקה כפי שנצפה על ידי מאמת יחיד.
כל הערכים שמדווחים הם מנקודת המבט של הכלי לאימות שמטפל בבקשה, ועשויים להיות שונים מנקודת המבט של כלים אחרים לאימות.
| ייצוג JSON |
|---|
{ "eventTime": string, "eventType": enum ( |
| שדות | |
|---|---|
eventTime |
פלט בלבד. הזמן שבו האירוע תועד על ידי הכלי הזה לאימות. הפלט שנוצר תמיד יהיה בפורמט RFC 3339, עם נורמליזציה של Z ושימוש ב-0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
eventType |
פלט בלבד. סוג האירוע. |
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 |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד event_details. פרטי האירוע. הערך event_details יכול להיות רק אחד מהבאים: |
|
executionDetails |
פלט בלבד. פרטים נוספים על אירוע הרצה. |
ExecutionDetails
פרטים נוספים על אירוע הרצה.
| ייצוג JSON |
|---|
{ "roundId": string } |
| שדות | |
|---|---|
roundId |
פלט בלבד. מזהה הסיבוב שבו התרחש אירוע ההפעלה. |