查詢交易狀態。這個方法可針對提交至網路的任何交易呼叫。傳回的交易明細在不同呼叫之間可能有所差異,因為端點可能會將要求傳送至網路和區域內的不同驗證器,而驗證器在任何指定時間可能不屬於同一個回合 ID。
HTTP 要求
GET https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryTransactionState 這些網址使用 gRPC 轉碼語法。
路徑參數
| 參數 | |
|---|---|
endpoint |
這是必要旗標,處理要求的端點。格式: |
查詢參數
| 參數 | |
|---|---|
transactionDigestHex |
這是必要旗標,要取得狀態的交易 ID。 |
要求主體
要求主體必須為空白。
回應主體
endpoints.queryTransactionState 的回應訊息。
如果成功,回應主體會含有以下結構的資料:
| JSON 表示法 |
|---|
{
"transactionAttempts": [
{
object ( |
| 欄位 | |
|---|---|
transactionAttempts[] |
每個已知交易提交給處理要求的驗證器時,都會產生一個項目。 |
授權範圍
需要下列 OAuth 範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱Authentication Overview。
TransactionAttempt
嘗試提交交易的狀態。
| JSON 表示法 |
|---|
{ "status": enum ( |
| 欄位 | |
|---|---|
status |
僅供輸出。交易嘗試的目前狀態。 |
proofOfInclusion |
僅供輸出。交易效果納入世界狀態的憑證。只有在狀態為 |
statusEvents[] |
僅供輸出。為交易嘗試記錄的排序狀態事件。 |
TransactionStatus
交易嘗試的狀態。
| 列舉 | |
|---|---|
TRANSACTION_STATUS_UNSPECIFIED |
狀態不明或未初始化。 |
PENDING |
驗證器已知這筆交易,但尚未完成。 |
FINALIZED |
交易已完成。這項操作已記錄在區塊鏈上,無法復原。 |
ProofOfInclusion
證明交易效果已納入世界狀態的憑證。
| JSON 表示法 |
|---|
{ "transactionCertificate": { object ( |
| 欄位 | |
|---|---|
transactionCertificate |
僅供輸出。證明特定回合已納入交易效果的憑證。 |
roundCertificate |
僅供輸出。輪次執行證明。 |
pathToRoundRoot[] |
僅供輸出。交易效果納入執行回合的加密證明。 這是從指定葉節點 (交易摘要) 到執行回合根節點的路徑。路徑會以 (左子項、右子項) 配對清單表示,而第一個配對是指定葉節點的父項節點的左子項和右子項。舉例來說,假設 Merkle 樹狀結構是以八個葉節摘要 在此處, 您可以連續計算每個路徑節點的 SHA-256 摘要,驗證路徑摘要是否產生與 |
TransactionCertificate
一輪中執行特定交易的認證。
| JSON 表示法 |
|---|
{ "transactionDigestHex": string, "roundId": string, "transactionEffects": { object ( |
| 欄位 | |
|---|---|
transactionDigestHex |
僅供輸出。此憑證適用的交易 ID。 |
roundId |
僅供輸出。執行這項交易的執行回合 ID。 |
transactionEffects |
僅供輸出。交易對世界狀態的影響。 |
events[] |
僅供輸出。交易產生的事件。 |
transactionEffectsStateChecksumHex |
僅供輸出。效果的同態檢查碼。以十六進位字串編碼的 2048 位元組值。 |
certificationResultsDigestHex |
僅供輸出。所有先前欄位的密碼編譯摘要 (依序排列)。用於建構 Merkle 樹狀結構,以證明納入。 |
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 |
僅供輸出。認證適用的回合 ID。 |
validatorId |
僅供輸出。人類可讀的驗證器 ID。這項資訊可用於查詢公開金鑰,並驗證 |
roundStateChecksumHex |
僅供輸出。套用此輪效果後,世界狀態的同態摘要十六進位表示法。 |
roundDeltaChecksumHex |
僅供輸出。此輪匯總交易效果的同態摘要十六進位表示法。 |
merkleTree |
僅供輸出。以本輪做為根節點,並以交易批次 (在本輪中執行) 做為葉節點的 Merkle 樹狀結構。 |
validatorSignatures[] |
選用。驗證者的簽章。這是針對這項記錄先前酬載的摘要簽署。 Base64 編碼字串。 |
isFinalized |
僅供輸出。布林值,指出該回合是否已完成,也就是是否有足夠的驗證器以相同憑證認證該回合。 |
MerkleTree
Merkle 樹狀結構,根節點包含加密摘要。
| JSON 表示法 |
|---|
{ "rootHashHex": string, "rootDigestHex": string, "numTransactions": string } |
| 欄位 | |
|---|---|
rootHashHex |
僅供輸出。根節點的加密摘要。已淘汰:請改用 |
rootDigestHex |
僅供輸出。根節點摘要的十六進位表示法。格式:64 個字元的十六進位字串。 |
numTransactions |
僅供輸出。樹狀結構中的交易數。 |
MerkleTreeNode
代表 Merkle 樹狀路徑中的節點。
| JSON 表示法 |
|---|
{ "leftChildHashHex": string, "rightChildHashHex": string, "leftChildDigestHex": string, "rightChildDigestHex": string } |
| 欄位 | |
|---|---|
leftChildHashHex |
僅供輸出。節點左側子項摘要的十六進位表示法。已淘汰:請改用 |
rightChildHashHex |
僅供輸出。節點右側子項摘要的十六進位表示法。已淘汰:請改用 |
leftChildDigestHex |
僅供輸出。節點左側子項摘要的十六進位表示法。格式:64 個字元的十六進位字串。 |
rightChildDigestHex |
僅供輸出。節點右側子項摘要的十六進位表示法。格式:64 個字元的十六進位字串。 |
StatusEvent
代表單一驗證器觀察到的交易處理事件。
所有回報的值都是從處理要求的驗證器角度來看,可能與其他驗證器的觀點不同。
| JSON 表示法 |
|---|
{ "eventTime": string, "eventType": enum ( |
| 欄位 | |
|---|---|
eventTime |
僅供輸出。驗證器記錄事件的時間。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
eventType |
僅供輸出。事件類型。 |
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。活動的詳細資料。event_details 只能是下列其中一個設定: |
|
executionDetails |
僅供輸出。執行事件的其他詳細資料。 |
ExecutionDetails
執行事件的其他詳細資料。
| JSON 表示法 |
|---|
{ "roundId": string } |
| 欄位 | |
|---|---|
roundId |
僅供輸出。執行事件發生的回合 ID。 |