抵押
概念
本文明確了抵押模組。
此模組使基於Cosmos-SDK的區塊鏈能夠支持先進的權益證明系統。 在此系統中,鏈的本地抵押代幣持有者可以成為驗證者,並可以將代幣委託給驗證者,從而最終確定系統的有效驗證者集合。
內容
狀態
池
池用於追踪已綁定和未綁定的債券面額代幣供應。
最後總功率(LastTotalPower)
LastTotalPower 追踪了在上一個結束區塊期間記錄的已綁定代幣的總量。以 "Last" 為前綴的存儲條目在 EndBlock 之前必須保持不變。
- LastTotalPower:
0x12 -> ProtocolBuffer(sdk.Int)
Params
Params 是一個模組範疇的配置結構,用於存儲系統參數並定義權益擺放模組的整體運作方式。
- Params:
Paramsspace("staking") -> legacy_amino(params)
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.1/proto/cosmos/staking/v1beta1/staking.proto#L230-L241
驗證者
驗證者可以有三種狀態之一。
Unbonded
:驗證者不在活躍集合中。他們無法簽署區塊並且不獲得獎勵。但他們可以接收委託。Bonded
: 一旦驗證者獲得足夠的綁定代幣,他們將在 EndBlock 期間自動加入活躍集合,並將其狀態更新為 Bonded。他們正在簽署區塊並獲得獎勵。 他們可以接收更多的委託。 他們可能因行為不端而被削減。對此驗證者解除委託的委託人必須等待解除綁定時間(UnbondingTime
,一個鏈特定的參數), 在此期間,如果源驗證者在代幣綁定期間犯下了違規行為,委託人仍然有可能被削減。Unbonding
: When a validator leaves the active set, either by choice or due to slashing, jailing or tombstoning, an unbonding of all their delegations begins. All delegations must then wait the UnbondingTime before their tokens are moved to their accounts from theBondedPool
.
驗證者對象應主要通過OperatorAddr存儲和訪問,OperatorAddr是驗證者操作者的SDK驗證者地址。 每個驗證者對象都需要維護兩個額外的索引,以便完成削減和驗證者集合更新所需的查找。 還維護了第三個特殊索引(LastValidatorPower),但是它在每個區塊中保持不變,與前兩個索引不同,前兩個索引在區塊內反映驗證者記錄。
- Validators:
0x21 | OperatorAddrLen (1 byte) | OperatorAddr -> ProtocolBuffer(validator)
- ValidatorsByConsAddr:
0x22 | ConsAddrLen (1 byte) | ConsAddr -> OperatorAddr
- ValidatorsByPower:
0x23 | BigEndian(ConsensusPower) | OperatorAddrLen (1 byte) | OperatorAddr -> OperatorAddr
- LastValidatorsPower:
0x11 | OperatorAddrLen (1 byte) | OperatorAddr -> ProtocolBuffer(ConsensusPower)
Validators
是主要的索引 - 它確保每個操作者只能擁有一個關聯驗證者,其中該驗證者的公鑰可以在未來改變。
委託人可以引用驗證者的不可變操作者,而無需擔心公鑰的變化。
ValidatorByConsAddr
是一個額外的索引,用於支持削減查找。
當 Tendermint 報告證據時,它提供驗證者地址,因此需要此映射來查找操作者
請注意,ConsAddr 對應於可以從驗證者的 ConsPubKey 推導出的地址。
ValidatorsByPower
是一個額外的索引,提供了一個排序後的潛在驗證者列表,以快速確定當前的活躍集合。
在此,默認情況下,ConsensusPower 等於 validator.Tokens/10^6。
請注意,所有 Jailed 為 true 的驗證者都不會存儲在此索引中。
LastValidatorsPower
是一個特殊的索引,提供了上一個區塊的綁定驗證者的歷史列表。這個索引在一個區塊中保持不變,但在驗證者集合更新過程中會更新,該過程發生在 [EndBlock
].
每個驗證者的狀態都存儲在一個 Validator 結構中:
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L65-L99
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L24-L63
Delegation(委託)
委託是通過組合 DelegatorAddr(委託人地址)和 ValidatorAddr(驗證者地址)來標識的。在存儲中,委託人按以下方式進行索引:
- Delegation:
0x31 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorAddr -> ProtocolBuffer(delegation)
持有者可以將代幣委託給驗證者;在這種情況下,他們的資金被保存在一個 Delegation 數據結構中。 它由一個委託人擁有,並與一個驗證者的股份相關聯。交易的發送者是這個擁有者。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L159-L170
委託人股份
當某人將代幣委託給驗證者時, 他們將根據一個動態匯率獲得一定數量的委託人股份, 該匯率根據已委託給驗證者的代幣總數和迄今為止發行的股份數量計算,如下所示:
Shares per Token = validator.TotalShares() / validator.Tokens()
在DelegationEntry上只存儲了收到的股份數量。 當委託人取消委託時,他們收到的代幣數量是根據他們目前持有的股份數量和相反的匯率計算的:
Tokens per Share = validator.Tokens() / validatorShares()
這些股份僅僅是一種記賬機制,它們不是一種可互換的資產。 使用這種機制的原因是為了簡化對委託懲罰的記賬。 與其迭代地懲罰每個委託條目的代幣,不如直接懲罰驗證者的總抵押代幣,從而有效地降低每個已發行委託人股份的價值。
解除委託
在Delegation
中的股份可以解除抵押,但它們必須在一段時間內作為UnbondingDelegation
存在,如果檢測到拜占庭行為,股份可以相應減少。
UnbondingDelegation
在存儲中的索引方式為:
- UnbondingDelegation:
0x32 | DelegatorAddrLen (1 byte) | DelegatorAddr | ValidatorAddrLen (1 byte) | ValidatorAddr -> ProtocolBuffer(unbondingDelegation)
- UnbondingDelegationsFromValidator:
0x33 | ValidatorAddrLen (1 byte) | ValidatorAddr | DelegatorAddrLen (1 byte) | DelegatorAddr -> nil
第一個映射用於查詢,查找給定委託人的所有解除委託; 第二個映射用於削減,查找與給定驗證者相關的所有需要削減的解除委託。
每次啟動解除抵押時,都會創建一個UnbondingDelegation對象。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L172-L198
隊列(Queues)
所有隊列對象都按照時間戳排序。隊列中使用的時間首先四舍五入到最接近的納秒,然後進行排序。 可排序的時間格式是對RFC3339Nano的輕微修改,使用格式字符串"2006-01-02T15:04:05.000000000"。 值得注意的是,這種格式:
- 將所有零填充至右侧。
- 丟棄時區信息(使用UTC)。
在所有情況下,存儲的時間戳表示隊列元素的成熟時間。
(解除抵押委託隊列)UnbondingDelegationQueue
為了追踪解除委託的進度,需要維護一個解除委託隊列。
- UnbondingDelegation:
0x41 | format(time) -> []DVPair
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L123-L133
驗證者隊列
為了追踪解除驗證者的進度,需要維護一個驗證者隊列。
- ValidatorQueueTime:
0x43 | format(time) -> []sdk.ValAddress
存儲的對象作為每個鍵是一個驗證者操作地址數組,從中可以訪問驗證者對象。 通常,預期只有一個驗證者記錄與給定的時間戳關聯,但在同一位置的隊列中可能存在多個驗證者。
HistoricalInfo
HistoricalInfo 物件在每個區塊中被儲存和修剪,使得抵押持有者保留由抵押模組參數 HistoricalEntries 定義的最近 n 個歷史資訊。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/staking.proto#L15-L22
在每個 BeginBlock,staking keeper 將在一個 HistoricalInfo
對象中保留當前的 Header 和提交當前區塊的驗證者。
驗證者根據其地址進行排序,以確保它們按照確定的順序排列。
最老的 HistoricalEntries
將被修剪,以確保只存在參數定義的歷史條目數量。
狀態轉換
本文檔描述了與以下內容相關的狀態轉換操作:
驗證者
在每個 EndBlock
中,對驗證者進行狀態轉換,以檢查活動中的 ValidatorSet
是否有變化。
驗證者可以是 Unbonded
、Unbonding
或 Bonded
。
Unbonded
和 Unbonding
統稱為 Not Bonded
。
驗證者可以直接在所有狀態之間移動,但不能從 Bonded
直接轉為 Unbonded
。
從 Not Bonded 到 Bonded
當驗證者在 ValidatorPowerIndex
中的排名超過 LastValidator
時,將發生以下轉換。
- 將
validator.Status
設置為Bonded
- 將
validator.Tokens
從NotBondedTokens
發送到BondedPool
的ModuleAccount
- 從
ValidatorByPowerIndex
刪除現有記錄 - 向
ValidatorByPowerIndex
添加一個新的更新記錄 - 更新此驗證者的
Validator
對象 - 如果存在,刪除此驗證者的任何
ValidatorQueue
記錄
從 Bonded 到 Unbonding
當驗證者開始解除綁定過程時,將發生以下操作:
- 將
validator.Tokens
從BondedPool
發送到NotBondedTokens
的ModuleAccount
- 將
validator.Status
設置為Unbonding
- 從
ValidatorByPowerIndex
刪除現有記錄 - 向
ValidatorByPowerIndex
添加一個新的更新記錄 - 更新此驗證者的
Validator
對象 - 為此驗證者在
ValidatorQueue
中插入一個新記錄
從 Unbonding 到 Unbonded
當 ValidatorQueue
對象從綁定狀態轉為未綁定狀態時,驗證者從解除綁定狀態轉為未綁定狀態。
- 更新此驗證者的
Validator
對象 - 將
validator.Status
設置為Unbonded
監禁/解禁
當驗證者被監禁時,它實際上是從Tendermint集合中移除的。 這個過程也可以反轉。以下操作將發生:
- 設置
Validator.Jailed
並更新對象 - 如果被監禁,從
ValidatorByPowerIndex
刪除記錄 - 如果解禁,向
V
alidatorByPowerIndex` 添加記錄
被監禁的驗證者不會出現在以下任何存儲中:
- power store (從共識權力到地址)
委託
委派
當委託發生時,驗證者和委託對象都會受到影響。
- 根據代理的代幣和驗證者的匯率確定代理人的份額
- 從發送賬戶中刪除代幣
- 將份額添加到委託對象,或將其添加到創建的驗證者對象中
- 添加新的代表份額並更新
Validator
對象 - 根據
validator.Status
是否為Bonded
,將delegation.Amount
從代表賬戶轉移到BondedPool
或NotBondedPool
的ModuleAccount
- 從
ValidatorByPowerIndex
刪除現有記錄 - 向
ValidatorByPowerIndex
添加一個新的更新記錄
開始解除綁定
作為取消代表和完成解除綁定狀態過渡的一部分,可以調用解除綁定委託。
- 從委託人中扣除未綁定的份額
- 如果驗證者為
Unbonding
或Bonded
,將代幣添加到UnbondingDelegation
條目 - 如果驗證者為
Unbonded
,將代幣直接發送到提款賬戶 - 更新委託或在沒有更多份額的情況下刪除委託
- 如果委託是驗證者的操作者並且沒有更多的份額,則觸發監禁驗證者
- 更新已刪除代表份額和相關代幣的驗證者
- 如果驗證者狀態為
Bonded
,將未綁定份額的Coins
價值從BondedPool
轉移到NotBondedPool
的ModuleAccount
- 如果驗證者未綁定並且沒有更多的委託份額,則刪除驗證者。
完成解除綁定
對於不立即完成的取消委託,當解除綁定委託隊列元素成熟時,將發生以下操作:
- 從
UnbondingDelegation
對象中刪除條目 - 將代幣從
NotBondedPool
的ModuleAccount
轉移到委託人的Account
削減
削減驗證者
當驗證者被削減時,將發生以下情況:
- 總的
slashAmount
計算為slashFactor
(鏈參數)*TokensFromConsensusPower
, 即在違規行為發生時綁定到驗證者的代幣總數。 - 所有解除綁定的委託和偽解除綁定的重新委託,使得在解除綁定或 重新委託開始之前的違規行為都被削減 slashFactor 百分比的初始餘額。
- 從重新委託和解除綁定委託中削減的每個金額都會從 總削減金額中扣除。
- 然後從驗證者在
BondedPool
或 NonBondedPool 中的代幣中削減 remaingSlashAmount, 具體取決於驗證者的狀態。這將減少代幣的總供應量。
在需要提交證據的削減情況下(例如雙重簽名),削減發生在包含證據的區塊,而不是違規行為發生的區塊。 換句話說,驗證者不會追溯地被削減,只有在被抓到時才會被削減。
削減解除綁定委託
當驗證者被削減時,從驗證者開始解除綁定的那些解除綁定委託也會在違規行為發生後被削減。 來自驗證者的每個解除綁定委託中的每個條目都會被削減 slashFactor。 削減的金額是根據委託的 InitialBalance 計算的,並且有上限以防止產生負餘額。已完成(或成熟)的解除綁定不會被削減。
股份如何計算
在任何給定的時間點,每個驗證者都有一定數量的代幣 T
,並發行了一定數量的股份 S
。
每個委託人 i
持有一定數量的股份 S_i
。
代幣數量是所有委託給驗證者的代幣之和,加上獎勵,減去削減。
委託人有權獲得與其股份比例相當的基礎代幣部分。
因此,委託人 i 有權獲得驗證者代幣的 T * S_i / S
。
當委託人向驗證者委託新代幣時,他們將獲得與其貢獻成比例的股份數量。
因此,當委託人 j
委託 T_j
代幣時,他們將獲得 S_j = S * T_j / T
股份。
代幣總數現在是 T + T_j
,股份總數是 S + S_j
。
j 的股份比例與他們貢獻的代幣總數比例相同:(S + S_j) / S = (T + T_j) / T
。
一個特殊情況是初始委託,當 T = 0
和 S = 0
時,T_j / T
是未定義的。
對於初始委託,委託人 j
委託 T_j
代幣將獲得 S_j = T_j
股份。
因此,一個尚未獲得任何獎勵且未被削減的驗證者將擁有 T = S
。
訊息
在本節中,我們描述了抵押訊息的處理以及相應的狀態更新。 每條訊息所指定的所有創建/修改的狀態對象均在 狀態 部分中定義。
MsgCreateValidator
通過使用MsgCreateValidator
消息來創建驗證者。驗證者必須在操作者的初始委託下創建。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L16-L17
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L35-L51
如果出現以下情況,則預期此消息將失敗:
- 已經註冊了具有此操作者地址的另一個驗證者
- 已經註冊了具有此公鑰的另一個驗證者
- 初始自我委託代幣的面額未指定為抵押面額
- 佣金參數有誤,即:
MaxRate
大於 1 或小於 0- 初始
Rate
為負數或大於MaxRate
- 初始
MaxChangeRate
為負數或大於MaxRate
- 描述字段過大
此消息在適當的索引處創建並存儲Validator
對象。
此外,還將使用初始代幣委託代幣Delegation
進行自我委託。驗證者始終以未綁定的狀態開始,但可能在第一個結束區塊中綁定。
MsgEditValidator
可以使用MsgEditValidator
消息更新驗證者的Description
和CommissionRate
。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L19-L20
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L56-L76
如果出現以下情況,則預期此消息將失敗:
- 初始
CommissionRate
為負數或大於MaxRate
CommissionRate
已在過去 24 小時內更新CommissionRate
大於 MaxChangeRate- 描述字段過大
此消息存儲更新後的Validator對象。
MsgDelegate
在此消息中,委託人提供代幣,作為回報,他們將獲得其驗證者(新創建的)委託人股份中的一部分,這些股份分配給Delegation.Shares
。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L22-L24
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L81-L90
如果出現以下情況,則預期此消息將失敗:
- 驗證者不存在
Amount
Coin
的面額與params.BondDenom
定義的面額不同- 兌換率無效,即驗證者沒有代幣(由於削減)但存在未分配的股份
- 委託金額小於允許的最低委託金額
如果對於提供的地址尚不存在現有的Delegation
對象,則它將作為此消息的一部分創建,否則將更新現有的Delegation以包括新收到的股份。
委託人按當前匯率獲得新鑄造的股份。匯率是驗證者中現有股份數除以當前委託代幣數。
驗證者在ValidatorByPower
索引中進行更新,並在Validators
索引中的驗證者對象中跟踪委託。
可以委託給入獄的驗證者,唯一的區別是在其被解除監禁之前,它不會被添加到權力指數中。
MsgUndelegate
MsgUndelegate
消息允許委託人從驗證者那裡撤銷他們的代幣。
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L30-L32
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L112-L121
此消息返回包含解除委託完成時間的響應:
+++ https://github.com/cosmos/cosmos-sdk/blob/v0.40.0/proto/cosmos/staking/v1beta1/tx.proto#L123-L126
如果出現以下情況,則預期此消息將失敗:
- 委託不存在
- 驗證者不存在
- 委託的股份少於
Amount
的價值 - 現有的
UnbondingDelegation
具有由params.MaxEntries
定義的最大條目 Amount
具有與params.BondDenom
定義的面額不同的面額
處理此消息時,將發生以下操作:
- 驗證者的
DelegatorShares
和委託的Shares
都將通過消息SharesAmount
減少 - 計算股份的代幣價值,並從驗證者中移除該數量的代幣
- 使用這些移除的代幣,如果驗證者是:
Bonded
- 將它們添加到UnbondingDelegation
中的一個條目(如果不存在,創建UnbondingDelegation
),完成時間為從當前時間開始的完整解除委託期。更新池股份以減少BondedTokens
並增加NotBondedTokens
的股份代幣價值。Unbonding
- 將它們添加到UnbondingDelegation
中的一個條目(如果不存在,創建UnbondingDelegation
),與驗證者(UnbondingMinTime
)相同的完成時間。Unbonded
- 然後將coins
發送給消息DelegatorAddr
- 如果委託中沒有更多的
Shares
,那麼委託對象將從存儲中移除 - 在這種情況下,如果委託是驗證者的自我委託,那麼還將監禁驗證者。
Begin-Block(開始新區塊)
每次 abci begin block 調用時,歷史信息將根據HistoricalEntries
參數進行存儲和修剪。
Historical Info Tracking(歷史信息跟踪)
如果 HistoricalEntries
參數為 0,則 BeginBlock
不執行任何操作。
否則,最新的歷史信息將存儲在鍵 historicalInfoKey|height
下,而任何早於 height - HistoricalEntries
的條目都將被刪除。
在大多數情況下,這意味著每個區塊將修剪一個條目。
然而,如果參數 HistoricalEntries
已更改為較低的值,則存儲中將有多個條目需要修剪。
End-Block(結束區塊)
每次 abci end block 調用,都會指定執行更新隊列和驗證器集合變更的操作。
驗證器集合變更
在此過程中,通過每個區塊結束時運行的狀態轉換來更新抵押驗證器集合。 作為此過程的一部分,任何更新的驗證器也會返回到 Tendermint,以便包含在負責驗證共識層的 Tendermint 消息的 Tendermint 驗證器集合中。 操作如下:
- 新的驗證器集合取自從
ValidatorsByPower
索引中檢索的前params.MaxValidators
個驗證器 - 將先前的驗證器集合與新的驗證器集合進行比較:
- 缺失的驗證器開始解除綁定,並將其
Tokens
從BondedPool
轉移到NotBondedPool
的ModuleAccount
- 新的驗證器立即綁定,並將其
Tokens
從NotBondedPool
轉移到BondedPool的ModuleAccount
在所有情況下,任何離開或進入綁定驗證器集合的驗證器,或者在綁定驗證器集合內更改餘額, 都會產生一條更新消息,報告它們的新共識能力,然後將其傳回到 Tendermint。
LastTotalPower
和 LastValidatorsPower
保存了上一個區塊結束時的總功率和驗證器功率的狀態,
並用於檢查在ValidatorsByPower中發生的變化以及在EndBlock期間計算的新總功率。
隊列
在抵押中,某些狀態轉換並非瞬間完成,而是在一段時間內進行(通常是解除綁定期)。 當這些轉換成熟時,必須執行某些操作以完成狀態操作。這是通過在每個區塊結束時檢查/處理隊列來實現的。
解除綁定驗證器
當驗證器被踢出綁定驗證器集合時(無論是因為被監禁還是沒有足夠的綁定代幣), 它將開始解除綁定過程,同時所有與其委託的解除綁定也將開始(儘管仍然被委託給此驗證器)。 在這一點上,驗證器被認為是一個"解除綁定驗證器",在解除綁定期過去之後,它將成熟為一個"未綁定驗證器"。
在每個區塊中,都需要檢查驗證器隊列中是否有成熟的解除綁定驗證器(即完成時間 <= 當前時間和完成高度 <= 當前區塊高度)。
此時,任何沒有剩餘委託的成熟驗證器都將從狀態中刪除。
對於仍然有剩餘委託的所有其他成熟解除綁定驗證器,validator.Status
將從types.Unbonding
切換為types.Unbonded
。
解除綁定委託
在UnbondingDelegations
隊列中完成所有成熟的UnbondingDelegations.Entries
的解除綁定,遵循以下步驟:
- 將餘額代幣轉移到委託人的錢包地址
- 從
UnbondingDelegation.Entries
中移除成熟的條目 - 如果沒有剩餘條目,則從存儲中移除
UnbondingDelegation
對象。
Hooks(鉤子)
其他模組可以註冊操作,以便在抵押中發生某個事件時執行。這些事件可以註冊為在抵押事件之前(根據鉤子名稱)或之後執行。以下鉤子可以在抵押中註冊:
AfterValidatorCreated(Context, ValAddress)
- 當創建驗證器時調用。
BeforeValidatorModified(Context, ValAddress)
- 當驗證器的狀態發生變化時調用。
AfterValidatorRemoved(Context, ConsAddress, ValAddress)
- 當驗證器被刪除時調用。
AfterValidatorBonded(Context, ConsAddress, ValAddress)
- 當驗證器被綁定時調用。
AfterValidatorBeginUnbonding(Context, ConsAddress, ValAddress)
- 當驗證器開始解除綁定時調用。
BeforeDelegationCreated(Context, AccAddress, ValAddress)
- 當創建委託時調用。
BeforeDelegationSharesModified(Context, AccAddress, ValAddress)
- 當委託份額被修改時調用。
BeforeDelegationRemoved(Context, AccAddress, ValAddress)
- 當委託被移除時調用。
Events(事件)
抵押模組發出以下事件:
EndBlocker
Type | Attribute Key | Attribute Value |
---|---|---|
complete_unbonding | amount | {totalUnbondingAmount} |
complete_unbonding | validator | {validatorAddress} |
complete_unbonding | delegator | {delegatorAddress} |
complete_redelegation | amount | {totalRedelegationAmount} |
complete_redelegation | source_validator | {srcValidatorAddress} |
complete_redelegation | destination_validator | {dstValidatorAddress} |
complete_redelegation | delegator | {delegatorAddress} |
消息事件
MsgCreateValidator
Type | Attribute Key | Attribute Value |
---|---|---|
create_validator | validator | {validatorAddress} |
create_validator | amount | {delegationAmount} |
message | module | staking |
message | action | create_validator |
message | sender | {senderAddress} |
MsgEditValidator
Type | Attribute Key | Attribute Value |
---|---|---|
edit_validator | commission_rate | {commissionRate} |
edit_validator | min_self_delegation | {minSelfDelegation} |
message | module | staking |
message | action | edit_validator |
message | sender | {senderAddress} |
MsgDelegate
Type | Attribute Key | Attribute Value |
---|---|---|
delegate | validator | {validatorAddress} |
delegate | amount | {delegationAmount} |
message | module | staking |
message | action | delegate |
message | sender | {senderAddress} |
MsgUndelegate
Type | Attribute Key | Attribute Value |
---|---|---|
unbond | validator | {validatorAddress} |
unbond | amount | {unbondAmount} |
unbond | completion_time [0] | {completionTime} |
message | module | staking |
message | action | begin_unbonding |
message | sender | {senderAddress} |
- [0] 時間格式遵循 RFC3339 標準。
參數
抵押模組包含以下參數:
Key | Type | Example |
---|---|---|
UnbondingTime | string (time ns) | "259200000000000" |
MaxValidators | uint16 | 100 |
KeyMaxEntries | uint16 | 7 |
HistoricalEntries | uint16 | 3 |
BondDenom | string | "dst" |
PowerReduction | string | "1000000" |
客戶端
CLI
用戶可以使用命令行界面(CLI)查詢和與staking模組互動。
Query
query
命令允許用戶查詢staking的狀態。
stcd query staking --help
delegation
delegation
命令允許用戶查詢特定委託人在特定驗證者上的委託情況。
使用方法:
stcd query staking delegation [delegator-addr] [validator-addr] [flags]
範例:
stcd query staking delegation dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
balance:
amount: "10000000000"
denom: dst
delegation:
delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
shares: "10000000000.000000000000000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
delegations
delegations
命令允許用戶查詢特定委託人在所有驗證者上的委託情況。
使用方法:
stcd query staking delegations [delegator-addr] [flags]
範例:
stcd query staking delegations dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
範例輸出:
delegation_responses:
- balance:
amount: "10000000000"
denom: dst
delegation:
delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
shares: "10000000000.000000000000000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
- balance:
amount: "10000000000"
denom: dst
delegation:
delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
shares: "10000000000.000000000000000000"
validator_address: dstvaloper1x20lytyf6zkcrv5edpkfkn8sz578qg5sqfyqnp
pagination:
next_key: null
total: "0"
delegations-to
delegations-to
命令允許用戶查詢特定驗證者上的委託情況。
使用方法:
stcd query staking delegations-to [validator-addr] [flags]
範例:
stcd query staking delegations-to dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
- balance:
amount: "504000000"
denom: dst
delegation:
delegator_address: dst1q2qwwynhv8kh3lu5fkeex4awau9x8fwt45f5cp
shares: "504000000.000000000000000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
- balance:
amount: "78125000000"
denom: uixo
delegation:
delegator_address: dst1qvppl3479hw4clahe0kwdlfvf8uvjtcd99m2ca
shares: "78125000000.000000000000000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
pagination:
next_key: null
total: "0"
historical-info
historical-info
命令允許用戶在給定高度查詢歷史信息。
使用方法:
stcd query staking historical-info [height] [flags]
範例:
stcd query staking historical-info 10
範例輸出:
header:
app_hash: Lbx8cXpI868wz8sgp4qPYVrlaKjevR5WP/IjUxwp3oo=
chain_id: testnet
consensus_hash: BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=
data_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
evidence_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
height: "10"
last_block_id:
hash: RFbkpu6pWfSThXxKKl6EZVDnBSm16+U0l0xVjTX08Fk=
part_set_header:
hash: vpIvXD4rxD5GM4MXGz0Sad9I7//iVYLzZsEU4BVgWIU=
total: 1
last_commit_hash: Ne4uXyx4QtNp4Zx89kf9UK7oG9QVbdB6e7ZwZkhy8K0=
last_results_hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
next_validators_hash: nGBgKeWBjoxeKFti00CxHsnULORgKY4LiuQwBuUrhCs=
proposer_address: mMEP2c2IRPLr99LedSRtBg9eONM=
time: "2021-10-01T06:00:49.785790894Z"
validators_hash: nGBgKeWBjoxeKFti00CxHsnULORgKY4LiuQwBuUrhCs=
version:
app: "0"
block: "11"
valset:
- commission:
commission_rates:
max_change_rate: "0.010000000000000000"
max_rate: "0.200000000000000000"
rate: "0.100000000000000000"
update_time: "2021-10-01T05:52:50.380144238Z"
consensus_pubkey:
'@type': /cosmos.crypto.ed25519.PubKey
key: Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8=
delegator_shares: "10000000.000000000000000000"
description:
details: ""
identity: ""
moniker: myvalidator
security_contact: ""
website: ""
jailed: false
min_self_delegation: "1"
operator_address: dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc
status: BOND_STATUS_BONDED
tokens: "10000000"
unbonding_height: "0"
unbonding_time: "1970-01-01T00:00:00Z"
params
params
命令允許用戶查詢設置為抵押參數的值。
使用方法:
stcd query staking params [flags]
範例:
stcd query staking params
範例輸出:
bond_denom: dst
historical_entries: 10000
max_entries: 7
max_validators: 50
unbonding_time: 1814400s
pool
pool
命令允許用戶查詢存儲在抵押池中的金額值。
使用方法:
stcd q staking pool [flags]
範例:
stcd q staking pool
範例輸出:
bonded_tokens: "10000000"
not_bonded_tokens: "0"
``
範例:
```bash
stcd query staking redelegation dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p dstvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
pagination: null
redelegation_responses:
- entries:
- balance: "50000000"
redelegation_entry:
completion_time: "2021-10-24T20:33:21.960084845Z"
creation_height: 2.382847e+06
initial_balance: "50000000"
shares_dst: "50000000.000000000000000000"
- balance: "5000000000"
redelegation_entry:
completion_time: "2021-10-25T21:33:54.446846862Z"
creation_height: 2.397271e+06
initial_balance: "5000000000"
shares_dst: "5000000000.000000000000000000"
redelegation:
delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
entries: null
validator_dst_address: dstvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm
validator_src_address: dstvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm
unbonding-delegation
unbonding-delegation
命令允許用戶查詢特定委託人在特定驗證者上的解綁委託情況。
使用方法:
stcd query staking unbonding-delegation [delegator-addr] [validator-addr] [flags]
範例:
stcd query staking unbonding-delegation dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
entries:
- balance: "52000000"
completion_time: "2021-11-02T11:35:55.391594709Z"
creation_height: "55078"
initial_balance: "52000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
unbonding-delegations
unbonding-delegations
命令允許用戶查詢一個委託人的所有解綁委託記錄。
使用方法:
stcd query staking unbonding-delegations [delegator-addr] [flags]
範例:
stcd query staking unbonding-delegations dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
範例輸出:
pagination:
next_key: null
total: "0"
unbonding_responses:
- delegator_address: dst1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
entries:
- balance: "52000000"
completion_time: "2021-11-02T11:35:55.391594709Z"
creation_height: "55078"
initial_balance: "52000000"
validator_address: dstvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa
unbonding-delegations-from
unbonding-delegations-from
命令允許用戶查詢從驗證者解綁的委託情況。
使用方法:
stcd query staking unbonding-delegations-from [validator-addr] [flags]
範例:
stcd query staking unbonding-delegations-from dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
pagination:
next_key: null
total: "0"
unbonding_responses:
- delegator_address: dst1qqq9txnw4c77sdvzx0tkedsafl5s3vk7hn53fn
entries:
- balance: "150000000"
completion_time: "2021-11-01T21:41:13.098141574Z"
creation_height: "46823"
initial_balance: "150000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
- delegator_address: dst1peteje73eklqau66mr7h7rmewmt2vt99y24f5z
entries:
- balance: "24000000"
completion_time: "2021-10-31T02:57:18.192280361Z"
creation_height: "21516"
initial_balance: "24000000"
validator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
validator
validator
命令允許用戶查詢有關特定驗證者的詳細信息。
使用方法:
stcd query staking validator [validator-addr] [flags]
範例:
stcd query staking validator dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
範例輸出:
commission:
commission_rates:
max_change_rate: "0.020000000000000000"
max_rate: "0.200000000000000000"
rate: "0.050000000000000000"
update_time: "2021-10-01T19:24:52.663191049Z"
consensus_pubkey:
'@type': /cosmos.crypto.ed25519.PubKey
key: sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc=
delegator_shares: "32948270000.000000000000000000"
description:
details: Witval is the validator arm from Vitwit. Vitwit is into software consulting
and services business since 2015. We are working closely with Cosmos ecosystem
since 2018. We are also building tools for the ecosystem, Aneka is our explorer
for the cosmos ecosystem.
identity: 51468B615127273A
moniker: Witval
security_contact: ""
website: ""
jailed: false
min_self_delegation: "1"
operator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
status: BOND_STATUS_BONDED
tokens: "32948270000"
unbonding_height: "0"
unbonding_time: "1970-01-01T00:00:00Z"
validators
validators
命令允許用戶查詢網絡上所有驗證者的詳細信息。
使用方法:
stcd query staking validators [flags]
範例:
stcd query staking validators
範例輸出:
pagination:
next_key: FPTi7TKAjN63QqZh+BaXn6gBmD5/
total: "0"
validators:
commission:
commission_rates:
max_change_rate: "0.020000000000000000"
max_rate: "0.200000000000000000"
rate: "0.050000000000000000"
update_time: "2021-10-01T19:24:52.663191049Z"
consensus_pubkey:
'@type': /cosmos.crypto.ed25519.PubKey
key: sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc=
delegator_shares: "32948270000.000000000000000000"
description:
details: Witval is the validator arm from Vitwit. Vitwit is into software consulting
and services business since 2015. We are working closely with Cosmos ecosystem
since 2018. We are also building tools for the ecosystem, Aneka is our explorer
for the cosmos ecosystem.
identity: 51468B615127273A
moniker: Witval
security_contact: ""
website: ""
jailed: false
min_self_delegation: "1"
operator_address: dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
status: BOND_STATUS_BONDED
tokens: "32948270000"
unbonding_height: "0"
unbonding_time: "1970-01-01T00:00:00Z"
- commission:
commission_rates:
max_change_rate: "0.100000000000000000"
max_rate: "0.200000000000000000"
rate: "0.050000000000000000"
update_time: "2021-10-04T18:02:21.446645619Z"
consensus_pubkey:
'@type': /cosmos.crypto.ed25519.PubKey
key: GDNpuKDmCg9GnhnsiU4fCWktuGUemjNfvpCZiqoRIYA=
delegator_shares: "559343421.000000000000000000"
description:
details: Noderunners is a professional validator in POS networks. We have a huge
node running experience, reliable soft and hardware. Our commissions are always
low, our support to delegators is always full. Stake with us and start receiving
your Cosmos rewards now!
identity: 812E82D12FEA3493
moniker: Noderunners
security_contact: info@noderunners.biz
website: http://noderunners.biz
jailed: false
min_self_delegation: "1"
operator_address: dstvaloper1q5ku90atkhktze83j9xjaks2p7uruag5zp6wt7
status: BOND_STATUS_BONDED
tokens: "559343421"
unbonding_height: "0"
unbonding_time: "1970-01-01T00:00:00Z"
Transactions
tx
命令允許用戶與 staking
模組進行交互。
stcd tx staking --help
create-validator
create-validator 命令允許用戶創建一個新的驗證者,並對其進行自我委託初始化。
使用方法:
stcd tx staking create-validator [flags]
範例:
stcd tx staking create-validator \
--amount=1000000dst \
--pubkey=$(stcd tendermint show-validator) \
--moniker="my-moniker" \
--website="https://myweb.site" \
--details="description of your validator" \
--chain-id="name_of_chain_id" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--gas-adjustment="1.2" \
--gas-prices="5000000000dst" \
--from=mykey
delegate
delegate
命令允許用戶將流動代幣委託給一個驗證者。
使用方法:
stcd tx staking delegate [validator-addr] [amount] [flags]
範例:
stcd tx staking delegate dstvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 1000dst --from mykey
edit-validator
edit-validator 命令允許用戶編輯現有的驗證者賬戶。
使用方法:
stcd tx staking edit-validator [flags]
範例:
stcd tx staking edit-validator --moniker "new_moniker_name" --website "new_webiste_url" --from mykey
unbond
unbond
命令允許用戶從驗證者中解除綁定股份。
使用方法:
stcd tx staking unbond [validator-addr] [amount] [flags]
範例:
stcd tx staking unbond dstvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100dst --from mykey
gRPC
用戶可以使用 gRPC 端點查詢 staking
模塊。
Validators
Validators
端點查詢符合給定狀態的所有驗證者。
cosmos.staking.v1beta1.Query/Validators
範例:
grpcurl -plaintext localhost:9090 cosmos.staking.v1beta1.Query/Validators
範例輸出:
{
"validators": [
{
"operatorAddress": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"consensusPubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8="},
"status": "BOND_STATUS_BONDED",
"tokens": "10000000",
"delegatorShares": "10000000000000000000000000",
"description": {
"moniker": "myvalidator"
},
"unbondingTime": "1970-01-01T00:00:00Z",
"commission": {
"commissionRates": {
"rate": "100000000000000000",
"maxRate": "200000000000000000",
"maxChangeRate": "10000000000000000"
},
"updateTime": "2021-10-01T05:52:50.380144238Z"
},
"minSelfDelegation": "1"
}
],
"pagination": {
"total": "1"
}
}
Validator
Validator
端點根據給定的驗證者地址查詢驗證者信息。
cosmos.staking.v1beta1.Query/Validator
範例:
grpcurl -plaintext -d '{"validator_addr":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \
localhost:9090 cosmos.staking.v1beta1.Query/Validator
範例輸出:
{
"validator": {
"operatorAddress": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"consensusPubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"Auxs3865HpB/EfssYOzfqNhEJjzys2Fo6jD5B8tPgC8="},
"status": "BOND_STATUS_BONDED",
"tokens": "10000000",
"delegatorShares": "10000000000000000000000000",
"description": {
"moniker": "myvalidator"
},
"unbondingTime": "1970-01-01T00:00:00Z",
"commission": {
"commissionRates": {
"rate": "100000000000000000",
"maxRate": "200000000000000000",
"maxChangeRate": "10000000000000000"
},
"updateTime": "2021-10-01T05:52:50.380144238Z"
},
"minSelfDelegation": "1"
}
}
ValidatorDelegations
ValidatorDelegations
端點根據給定的驗證者查詢委託信息。`
cosmos.staking.v1beta1.Query/ValidatorDelegations
範例:
grpcurl -plaintext -d '{"validator_addr":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \
localhost:9090 cosmos.staking.v1beta1.Query/ValidatorDelegations
範例輸出:
{
"delegationResponses": [
{
"delegation": {
"delegatorAddress": "dst1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgy3ua5t",
"validatorAddress": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"shares": "10000000000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "10000000"
}
}
],
"pagination": {
"total": "1"
}
}
ValidatorUnbondingDelegations
ValidatorUnbondingDelegations
端點根據給定的驗證者查詢解綁委託信息。
cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations
範例:
grpcurl -plaintext -d '{"validator_addr":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \
localhost:9090 cosmos.staking.v1beta1.Query/ValidatorUnbondingDelegations
範例輸出:
{
"unbonding_responses": [
{
"delegator_address": "dst1z3pzzw84d6xn00pw9dy3yapqypfde7vg6965fy",
"validator_address": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"entries": [
{
"creation_height": "25325",
"completion_time": "2021-10-31T09:24:36.797320636Z",
"initial_balance": "20000000",
"balance": "20000000"
}
]
},
{
"delegator_address": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77",
"validator_address": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"entries": [
{
"creation_height": "13100",
"completion_time": "2021-10-30T12:53:02.272266791Z",
"initial_balance": "1000000",
"balance": "1000000"
}
]
},
],
"pagination": {
"next_key": null,
"total": "8"
}
}
Delegation
The Delegation
endpoint queries delegate information for given validator delegator pair.
cosmos.staking.v1beta1.Query/Delegation
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", validator_addr":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \
localhost:9090 cosmos.staking.v1beta1.Query/Delegation
範例輸出:
{
"delegation_response":
{
"delegation":
{
"delegator_address":"dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77",
"validator_address":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"shares":"25083119936.000000000000000000"
},
"balance":
{
"denom":"dst",
"amount":"25083119936"
}
}
}
UnbondingDelegation
UnbondingDelegation
端點根據給定的驗證者委託人查詢解綁委託信息。
cosmos.staking.v1beta1.Query/UnbondingDelegation
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77", validator_addr":"dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc"}' \
localhost:9090 cosmos.staking.v1beta1.Query/UnbondingDelegation
範例輸出:
{
"unbond": {
"delegator_address": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77",
"validator_address": "dstvaloper1rne8lgs98p0jqe82sgt0qr4rdn4hgvmgp9ggcc",
"entries": [
{
"creation_height": "136984",
"completion_time": "2021-11-08T05:38:47.505593891Z",
"initial_balance": "400000000",
"balance": "400000000"
},
{
"creation_height": "137005",
"completion_time": "2021-11-08T05:40:53.526196312Z",
"initial_balance": "385000000",
"balance": "385000000"
}
]
}
}
DelegatorDelegations
DelegatorDelegations
端點根據給定的委託人地址查詢所有委託信息。
cosmos.staking.v1beta1.Query/DelegatorDelegations
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77"}' \
localhost:9090 cosmos.staking.v1beta1.Query/DelegatorDelegations
範例輸出:
{
"delegation_responses": [
{"delegation":{"delegator_address":"dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77","validator_address":"dstvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8","shares":"25083339023.000000000000000000"},"balance":{"denom":"dst","amount":"25083339023"}}
],
"pagination": {
"next_key": null,
"total": "1"
}
}
DelegatorUnbondingDelegations
DelegatorUnbondingDelegations
端點根據給定的委託人地址查詢所有解綁委託信息。
cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77"}' \
localhost:9090 cosmos.staking.v1beta1.Query/DelegatorUnbondingDelegations
範例輸出:
{
"unbonding_responses": [
{
"delegator_address": "dst1y8nyfvmqh50p6ldpzljk3yrglppdv3t8phju77",
"validator_address": "dstvaloper1sjllsnramtg3ewxqwwrwjxfgc4n4ef9uxyejze",
"entries": [
{
"creation_height": "136984",
"completion_time": "2021-11-08T05:38:47.505593891Z",
"initial_balance": "400000000",
"balance": "400000000"
},
{
"creation_height": "137005",
"completion_time": "2021-11-08T05:40:53.526196312Z",
"initial_balance": "385000000",
"balance": "385000000"
}
]
}
],
"pagination": {
"next_key": null,
"total": "1"
}
}
DelegatorValidators
DelegatorValidators
端點根據給定的委託人查詢所有驗證者的信息。
cosmos.staking.v1beta1.Query/DelegatorValidators
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1ld5p7hn43yuh8ht28gm9pfjgj2fctujp2tgwvf"}' \
localhost:9090 cosmos.staking.v1beta1.Query/DelegatorValidators
範例輸出:
{
"validators": [
{
"operator_address": "dstvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "UPwHWxH1zHJWGOa/m6JB3f5YjHMvPQPkVbDqqi+U7Uw="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "347260647559",
"delegator_shares": "347260647559.000000000000000000",
"description": {
"moniker": "BouBouNode",
"identity": "",
"website": "https://boubounode.com",
"security_contact": "",
"details": "AI-based Validator. #1 AI Validator on Game of Stakes. Fairly priced. Don't trust (humans), verify. Made with BouBou love."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.061000000000000000",
"max_rate": "0.300000000000000000",
"max_change_rate": "0.150000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
}
],
"pagination": {
"next_key": null,
"total": "1"
}
}
DelegatorValidator
DelegatorValidator
端點根據给定的委託人和驗證者查詢驗證者的信息。
cosmos.staking.v1beta1.Query/DelegatorValidator
範例:
grpcurl -plaintext \
-d '{"delegator_addr": "dst1eh5mwu044gd5ntkkc2xgfg8247mgc56f3n8rr7", "validator_addr": "dstvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8"}' \
localhost:9090 cosmos.staking.v1beta1.Query/DelegatorValidator
範例輸出:
{
"validator": {
"operator_address": "dstvaloper1eh5mwu044gd5ntkkc2xgfg8247mgc56fww3vc8",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "UPwHWxH1zHJWGOa/m6JB3f5YjHMvPQPkVbDqqi+U7Uw="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "347262754841",
"delegator_shares": "347262754841.000000000000000000",
"description": {
"moniker": "BouBouNode",
"identity": "",
"website": "https://boubounode.com",
"security_contact": "",
"details": "AI-based Validator. #1 AI Validator on Game of Stakes. Fairly priced. Don't trust (humans), verify. Made with BouBou love."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.061000000000000000",
"max_rate": "0.300000000000000000",
"max_change_rate": "0.150000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
}
}
HistoricalInfo
cosmos.staking.v1beta1.Query/HistoricalInfo
範例:
grpcurl -plaintext -d '{"height" : 1}' localhost:9090 cosmos.staking.v1beta1.Query/HistoricalInfo
範例輸出:
{
"hist": {
"header": {
"version": {
"block": "11",
"app": "0"
},
"chain_id": "simd-1",
"height": "140142",
"time": "2021-10-11T10:56:29.720079569Z",
"last_block_id": {
"hash": "9gri/4LLJUBFqioQ3NzZIP9/7YHR9QqaM6B2aJNQA7o=",
"part_set_header": {
"total": 1,
"hash": "Hk1+C864uQkl9+I6Zn7IurBZBKUevqlVtU7VqaZl1tc="
}
},
"last_commit_hash": "VxrcS27GtvGruS3I9+AlpT7udxIT1F0OrRklrVFSSKc=",
"data_hash": "80BjOrqNYUOkTnmgWyz9AQ8n7SoEmPVi4QmAe8RbQBY=",
"validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=",
"next_validators_hash": "95W49n2hw8RWpr1GPTAO5MSPi6w6Wjr3JjjS7AjpBho=",
"consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=",
"app_hash": "ZZaxnSY3E6Ex5Bvkm+RigYCK82g8SSUL53NymPITeOE=",
"last_results_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"proposer_address": "aH6dO428B+ItuoqPq70efFHrSMY="
},
"valset": [
{
"operator_address": "dstvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1426045203613",
"delegator_shares": "1426045203613.000000000000000000",
"description": {
"moniker": "SG-1",
"identity": "48608633F99D1B60",
"website": "https://sg-1.online",
"security_contact": "",
"details": "SG-1 - your favorite validator on Witval. We offer 100% Soft Slash protection."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.037500000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.030000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
}
]
}
}
Pool
Pool
端點查詢抵押池(Pool)信息。
cosmos.staking.v1beta1.Query/Pool
範例:
grpcurl -plaintext -d localhost:9090 cosmos.staking.v1beta1.Query/Pool
範例輸出:
{
"pool": {
"not_bonded_tokens": "369054400189",
"bonded_tokens": "15657192425623"
}
}
Params
Params
端點查詢參數(Params)信息。
cosmos.staking.v1beta1.Query/Params
範例:
grpcurl -plaintext localhost:9090 cosmos.staking.v1beta1.Query/Params
範例輸出:
{
"params": {
"unbondingTime": "1814400s",
"maxValidators": 100,
"maxEntries": 7,
"historicalEntries": 10000,
"bondDenom": "dst"
}
}
REST
用戶可以使用 REST
端點查詢 staking
模塊。
DelegatorDelegations
DelegatorDelegations REST 端點查詢給定委託人地址的所有委託信息。
/cosmos/staking/v1beta1/delegations/{delegatorAddr}
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/delegations/dst1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5" -H "accept: application/json"
範例輸出:
{
"delegation_responses": [
{
"delegation": {
"delegator_address": "dst1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5",
"validator_address": "dstvaloper1quqxfrxkycr0uzt4yk0d57tcq3zk7srm7sm6r8",
"shares": "256250000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "256250000"
}
},
{
"delegation": {
"delegator_address": "dst1vcs68xf2tnqes5tg0khr0vyevm40ff6zdxatp5",
"validator_address": "dstvaloper194v8uwee2fvs2s8fa5k7j03ktwc87h5ym39jfv",
"shares": "255150000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "255150000"
}
}
],
"pagination": {
"next_key": null,
"total": "2"
}
}
DelegatorUnbondingDelegations
DelegatorUnbondingDelegations
REST 端點查詢給定委託人地址的所有解綁委託信息。
/cosmos/staking/v1beta1/delegators/{delegatorAddr}/unbonding_delegations
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/delegators/dst1nxv42u3lv642q0fuzu2qmrku27zgut3n3z7lll/unbonding_delegations" \
-H "accept: application/json"
範例輸出:
{
"unbonding_responses": [
{
"delegator_address": "dst1nxv42u3lv642q0fuzu2qmrku27zgut3n3z7lll",
"validator_address": "dstvaloper1e7mvqlz50ch6gw4yjfemsc069wfre4qwmw53kq",
"entries": [
{
"creation_height": "2442278",
"completion_time": "2021-10-12T10:59:03.797335857Z",
"initial_balance": "50000000000",
"balance": "50000000000"
}
]
}
],
"pagination": {
"next_key": null,
"total": "1"
}
}
DelegatorValidators
DelegatorValidators
REST 端點根據給定的委託人地址查詢所有驗證者的信息。
/cosmos/staking/v1beta1/delegators/{delegatorAddr}/validators
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/delegators/dst1xwazl8ftks4gn00y5x3c47auquc62ssune9ppv/validators" \
-H "accept: application/json"
範例輸出:
{
"validators": [
{
"operator_address": "dstvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "5v4n3px3PkfNnKflSgepDnsMQR1hiNXnqOC11Y72/PQ="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "21592843799",
"delegator_shares": "21592843799.000000000000000000",
"description": {
"moniker": "jabbey",
"identity": "",
"website": "https://twitter.com/JoeAbbey",
"security_contact": "",
"details": "just another dad in the cosmos"
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.100000000000000000"
},
"update_time": "2021-10-09T19:03:54.984821705Z"
},
"min_self_delegation": "1"
}
],
"pagination": {
"next_key": null,
"total": "1"
}
}
DelegatorValidator
DelegatorValidator
REST 端點根據給定的委託人和驗證者對查詢驗證者的信息。
/cosmos/staking/v1beta1/delegators/{delegatorAddr}/validators/{validatorAddr}
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/delegators/dst1xwazl8ftks4gn00y5x3c47auquc62ssune9ppv/validators/dstvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64" \
-H "accept: application/json"
範例輸出:
{
"validator": {
"operator_address": "dstvaloper1xwazl8ftks4gn00y5x3c47auquc62ssuvynw64",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "5v4n3px3PkfNnKflSgepDnsMQR1hiNXnqOC11Y72/PQ="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "21592843799",
"delegator_shares": "21592843799.000000000000000000",
"description": {
"moniker": "jabbey",
"identity": "",
"website": "https://twitter.com/JoeAbbey",
"security_contact": "",
"details": "just another dad in the cosmos"
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.100000000000000000"
},
"update_time": "2021-10-09T19:03:54.984821705Z"
},
"min_self_delegation": "1"
}
}
HistoricalInfo
HistoricalInfo
REST 端點根據給定的高度查詢歷史信息。
/cosmos/staking/v1beta1/historical_info/{height}
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/historical_info/153332" -H "accept: application/json"
範例輸出:
{
"hist": {
"header": {
"version": {
"block": "11",
"app": "0"
},
"chain_id": "cosmos-1",
"height": "153332",
"time": "2021-10-12T09:05:35.062230221Z",
"last_block_id": {
"hash": "NX8HevR5khb7H6NGKva+jVz7cyf0skF1CrcY9A0s+d8=",
"part_set_header": {
"total": 1,
"hash": "zLQ2FiKM5tooL3BInt+VVfgzjlBXfq0Hc8Iux/xrhdg="
}
},
"last_commit_hash": "P6IJrK8vSqU3dGEyRHnAFocoDGja0bn9euLuy09s350=",
"data_hash": "eUd+6acHWrNXYju8Js449RJ99lOYOs16KpqQl4SMrEM=",
"validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=",
"next_validators_hash": "mB4pravvMsJKgi+g8aYdSeNlt0kPjnRFyvtAQtaxcfw=",
"consensus_hash": "BICRvH3cKD93v7+R1zxE2ljD34qcvIZ0Bdi389qtoi8=",
"app_hash": "fuELArKRK+CptnZ8tu54h6xEleSWenHNmqC84W866fU=",
"last_results_hash": "p/BPexV4LxAzlVcPRvW+lomgXb6Yze8YLIQUo/4Kdgc=",
"evidence_hash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=",
"proposer_address": "G0MeY8xQx7ooOsni8KE/3R/Ib3Q="
},
"valset": [
{
"operator_address": "dstvaloper196ax4vc0lwpxndu9dyhvca7jhxp70rmcqcnylw",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "/O7BtNW0pafwfvomgR4ZnfldwPXiFfJs9mHg3gwfv5Q="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1416521659632",
"delegator_shares": "1416521659632.000000000000000000",
"description": {
"moniker": "SG-1",
"identity": "48608633F99D1B60",
"website": "https://sg-1.online",
"security_contact": "",
"details": "SG-1 - your favorite validator on cosmos. We offer 100% Soft Slash protection."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.037500000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.030000000000000000"
},
"update_time": "2021-10-01T15:00:00Z"
},
"min_self_delegation": "1"
},
{
"operator_address": "dstvaloper1t8ehvswxjfn3ejzkjtntcyrqwvmvuknzmvtaaa",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "uExZyjNLtr2+FFIhNDAMcQ8+yTrqE7ygYTsI7khkA5Y="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "1348298958808",
"delegator_shares": "1348298958808.000000000000000000",
"description": {
"moniker": "Cosmostation",
"identity": "AE4C403A6E7AA1AC",
"website": "https://www.cosmostation.io",
"security_contact": "admin@stamper.network",
"details": "Cosmostation validator node. Delegate your tokens and Start Earning Staking Rewards"
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "1.000000000000000000",
"max_change_rate": "0.200000000000000000"
},
"update_time": "2021-10-01T15:06:38.821314287Z"
},
"min_self_delegation": "1"
}
]
}
}
Parameters
Parameters REST 端點查詢抵押參數。
model: gpt-3.5-turbo-16k-0613
/cosmos/staking/v1beta1/params
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/params" -H "accept: application/json"
範例輸出:
{
"params": {
"unbonding_time": "2419200s",
"max_validators": 100,
"max_entries": 7,
"historical_entries": 10000,
"bond_denom": "dst"
}
}
Pool
Pool
REST 端點查詢池(Pool)信息。
/cosmos/staking/v1beta1/pool
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/pool" -H "accept: application/json"
範例輸出:
{
"pool": {
"not_bonded_tokens": "432805737458",
"bonded_tokens": "15783637712645"
}
}
Validators
Validators
REST 端點根據給定的狀態查詢符合條件的所有驗證者。
/cosmos/staking/v1beta1/validators
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/validators" -H "accept: application/json"
範例輸出:
{
"validators": [
{
"operator_address": "dstvaloper1q3jsx9dpfhtyqqgetwpe5tmk8f0ms5qywje8tw",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "N7BPyek2aKuNZ0N/8YsrqSDhGZmgVaYUBuddY8pwKaE="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "383301887799",
"delegator_shares": "383301887799.000000000000000000",
"description": {
"moniker": "SmartNodes",
"identity": "D372724899D1EDC8",
"website": "https://smartnodes.co",
"security_contact": "",
"details": "Earn Rewards with Crypto Staking & Node Deployment"
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.100000000000000000"
},
"update_time": "2021-10-01T15:51:31.596618510Z"
},
"min_self_delegation": "1"
},
{
"operator_address": "dstvaloper1q5ku90atkhktze83j9xjaks2p7uruag5zp6wt7",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "GDNpuKDmCg9GnhnsiU4fCWktuGUemjNfvpCZiqoRIYA="
},
"jailed": false,
"status": "BOND_STATUS_UNBONDING",
"tokens": "1017819654",
"delegator_shares": "1017819654.000000000000000000",
"description": {
"moniker": "Noderunners",
"identity": "812E82D12FEA3493",
"website": "http://noderunners.biz",
"security_contact": "info@noderunners.biz",
"details": "Noderunners is a professional validator in POS networks. We have a huge node running experience, reliable soft and hardware. Our commissions are always low, our support to delegators is always full. Stake with us and start receiving your cosmos rewards now!"
},
"unbonding_height": "147302",
"unbonding_time": "2021-11-08T22:58:53.718662452Z",
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.100000000000000000"
},
"update_time": "2021-10-04T18:02:21.446645619Z"
},
"min_self_delegation": "1"
}
],
"pagination": {
"next_key": "FONDBFkE4tEEf7yxWWKOD49jC2NK",
"total": "2"
}
}
Validator
Validator
REST 端點根據給定的驗證者地址查詢驗證者信息。`
/cosmos/staking/v1beta1/validators/{validatorAddr}
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/validators/dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q" \
-H "accept: application/json"
範例輸出:
{
"validator": {
"operator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"consensus_pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "sIiexdJdYWn27+7iUHQJDnkp63gq/rzUq1Y+fxoGjXc="
},
"jailed": false,
"status": "BOND_STATUS_BONDED",
"tokens": "33027900000",
"delegator_shares": "33027900000.000000000000000000",
"description": {
"moniker": "Witval",
"identity": "51468B615127273A",
"website": "",
"security_contact": "",
"details": "Witval is the validator arm from Vitwit. Vitwit is into software consulting and services business since 2015. We are working closely with Cosmos ecosystem since 2018. We are also building tools for the ecosystem, Aneka is our explorer for the cosmos ecosystem."
},
"unbonding_height": "0",
"unbonding_time": "1970-01-01T00:00:00Z",
"commission": {
"commission_rates": {
"rate": "0.050000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.020000000000000000"
},
"update_time": "2021-10-01T19:24:52.663191049Z"
},
"min_self_delegation": "1"
}
}
ValidatorDelegations
The ValidatorDelegations
REST endpoint queries delegate information for given validator.
/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations
範例:
curl -X GET "http://localhost:1317/cosmos/staking/v1beta1/validators/dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q/delegations" -H "accept: application/json"
範例輸出:
{
"delegation_responses": [
{
"delegation": {
"delegator_address": "dst190g5j8aszqhvtg7cprmev8xcxs6csra7xnk3n3",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "31000000000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "31000000000"
}
},
{
"delegation": {
"delegator_address": "dst1ddle9tczl87gsvmeva3c48nenyng4n56qwq4ee",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "628470000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "628470000"
}
},
{
"delegation": {
"delegator_address": "dst10fdvkczl76m040smd33lh9xn9j0cf26kk4s2nw",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "838120000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "838120000"
}
},
{
"delegation": {
"delegator_address": "dst1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "500000000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "500000000"
}
},
{
"delegation": {
"delegator_address": "dst16msryt3fqlxtvsy8u5ay7wv2p8mglfg9hrek2e",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "61310000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "61310000"
}
}
],
"pagination": {
"next_key": null,
"total": "5"
}
}
Delegation
Delegation
REST 端點根據給定的驗證者和委託人對查詢委託信息。
/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations/{delegatorAddr}
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/validators/dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q/delegations/dst1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8" \
-H "accept: application/json"
範例輸出:
{
"delegation_response": {
"delegation": {
"delegator_address": "dst1n8f5fknsv2yt7a8u6nrx30zqy7lu9jfm0t5lq8",
"validator_address": "dstvaloper16msryt3fqlxtvsy8u5ay7wv2p8mglfg9g70e3q",
"shares": "500000000.000000000000000000"
},
"balance": {
"denom": "dst",
"amount": "500000000"
}
}
}
UnbondingDelegation
UnbondingDelegation
REST 端點根據給定的驗證者和委託人對查詢解綁委託信息。
/cosmos/staking/v1beta1/validators/{validatorAddr}/delegations/{delegatorAddr}/unbonding_delegation
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/validators/dstvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu/delegations/dst1ze2ye5u5k3qdlexvt2e0nn0508p04094ya0qpm/unbonding_delegation" \
-H "accept: application/json"
範例輸出:
{
"unbond": {
"delegator_address": "dst1ze2ye5u5k3qdlexvt2e0nn0508p04094ya0qpm",
"validator_address": "dstvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu",
"entries": [
{
"creation_height": "153687",
"completion_time": "2021-11-09T09:41:18.352401903Z",
"initial_balance": "525111",
"balance": "525111"
}
]
}
}
ValidatorUnbondingDelegations
ValidatorUnbondingDelegations
REST 端點查詢驗證者的解綁委託信息。
/cosmos/staking/v1beta1/validators/{validatorAddr}/unbonding_delegations
範例:
curl -X GET \
"http://localhost:1317/cosmos/staking/v1beta1/validators/dstvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu/unbonding_delegations" \
-H "accept: application/json"
範例輸出:
{
"unbonding_responses": [
{
"delegator_address": "dst1q9snn84jfrd9ge8t46kdcggpe58dua82vnj7uy",
"validator_address": "dstvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu",
"entries": [
{
"creation_height": "90998",
"completion_time": "2021-11-05T00:14:37.005841058Z",
"initial_balance": "24000000",
"balance": "24000000"
}
]
},
{
"delegator_address": "dst1qf36e6wmq9h4twhdvs6pyq9qcaeu7ye0s3dqq2",
"validator_address": "dstvaloper13v4spsah85ps4vtrw07vzea37gq5la5gktlkeu",
"entries": [
{
"creation_height": "47478",
"completion_time": "2021-11-01T22:47:26.714116854Z",
"initial_balance": "8000000",
"balance": "8000000"
}
]
}
],
"pagination": {
"next_key": null,
"total": "2"
}
}