————用區塊鏈技術爲文體產業賦能————
日前,SEER核心開發者對SEER cli和database_api進行了更新,新增接口:get_transaction_by_txid,可用於通過交易ID查詢該交易在鏈上所在區塊高度和交易在區塊中的位置。
交易ID即txid,是通過已簽名的交易內容來進行計算出的散列值,可在區塊生產或被確認前產生。例如交易所等第三方網關,通常在發起一筆提現或充值後,會向用戶反饋此操作的交易id,用戶可憑此txid在區塊瀏覽器查詢此交易被確認的狀態。因此,TXID的一致算法非常重要,而在Graphene工具組中,傳統的形式是通過額外運行elasticsearch插件來實現此功能。SEER將此功能集成在database_api中,可極大減輕前端開發者的工作量,提高開發效率。
格式:get_transaction_by_txid transaction_id
參數:transaction_id,交易的散列值。可通過cli的get_transaction_id 、transfer2 、get_block接口進行前端計算生成,新升級後的database_api的get_block也將包含transaction_ids字段。
作用:通過transaction_id查詢該交易在鏈上所在區塊高度和交易在區塊中的位置,前端開發者可再通過get_block接口向用戶返回該transaction_id所對應的transactions結構體(即交易詳細內容)。
示例:{"jsonrpc": "2.0", "method": "get_transaction_by_txid", "params": [3ecbd34522eb320b105b653247012ea996fa7065], "id": 1}
返回信息示例:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"id": "2.22.102327",//交易的object_ID
"txid": "3ecbd34522eb320b105b653247012ea996fa7065",//transaction_id
"timestamp": "2019-08-26T08:32:51",//時間戳,格林尼治時間
"block_num": 13274359,//交易所在塊高
"trx_in_block": 0//交易在區塊中的位置
}
}
通過接口返回的"block_num"
、"trx_in_block"
兩個參數可知道此交易所在塊高及此交易在該區塊中的位置,從而再使用get_block
接口查詢其交易詳細內容。
示例:{"jsonrpc": "2.0", "method": "get_block", "params": [13274359], "id": 1}
返回信息示例:
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"previous": "00ca9c96829ff5fbcef6c087c762e2cde24b5915",//上一個塊的塊號
"timestamp": "2019-08-26T08:32:51",//時間戳,格林尼治時間
"witness": "1.5.55",//該塊的見證人object_ID
"transaction_merkle_root": "c41ddd9469e13daf8b7f75cbdf1ed2b4c8a98b79",//交易默克爾根值
"extensions": [],
"witness_signature": "2048394f5d99f22f58cdc2de15568fb27397eb5bb9da3a235a04f6da68f622aa8b5face2f9e7d01a4c58e3fcd605855c683ac9ca58b250a53775d5a8afd199134d",//見證人簽名
"transactions": [//交易列表
{//第一個交易結構體
"ref_block_num": 40186,//引用的區塊號
"ref_block_prefix": 4227178370,//引用的區塊頭
"expiration": "2019-08-28T08:33:18",//交易可能的過期時間
"operations": [//操作列表
[0, {//操作代碼,此處0表示轉賬
"fee": {//手續費
"amount": 200000,//金額,帶5位小數精度,此處200000表示2
"asset_id": "1.3.0"//資產類型
},
"from": "1.2.28828",//發起用戶ID
"to": "1.2.8848",//接收用戶ID
"amount": {
"amount": 100000,//金額,帶5位小數精度,此處100000表示1
"asset_id": "1.3.0"
},
"extensions": []
}]
],
"extensions": [],
"signatures": ["1f5cd08d2edbb100429915dee6b0449c8a6319c4dc556147db13cc9af1ef26c51756b437926dc29d24dc65cf1110c71f246fb82fa698f1970ae3523729d0bbc3fe"],//交易簽名
"operation_results": [//操作結果
[0, {}]
]
}, {//第二個交易結構體
"ref_block_num": 40186,//引用的區塊號
"ref_block_prefix": 4227178370,//引用的區塊頭
"expiration": "2019-08-28T08:33:19",//交易可能的過期時間
"operations": [//操作列表
[0, {//操作代碼,此處0表示轉賬
"fee": {//手續費
"amount": 200000,//金額,帶5位小數精度,此處200000表示2
"asset_id": "1.3.0"//資產類型
},
"from": "1.2.28828",//發起用戶ID
"to": "1.2.8848",//接收用戶ID
"amount": {
"amount": 100000,//金額,帶5位小數精度,此處100000表示1
"asset_id": "1.3.0"//資產類型
},
"extensions": []
}]
],
"extensions": [],
"signatures": ["20295aa7c286a406c86540524a97e6395815effd6e617ef940b869d37da303aabb175123fd6f83a6661d4955cf90198babe7a3002c0e2a7d73a771b92cd097648c"],//交易簽名
"operation_results": [//操作結果
[0, {}]
]
}],
"block_id": "00ca9c97062a5716c580219349f3d7fb04713f89",//當前塊號
"signing_key": "SEER7txfWeMueDBWKs6sC9zTUmwhjG6xeVwPZhXwcvH5ctCYdnCPnu",//見證人簽名公鑰
"transaction_ids": ["3ecbd34522eb320b105b653247012ea996fa7065", "501e507c8c62221f9f4484d1f0334585e3cf362a"],//交易ID集合
"txs_count": 2//此塊包含的交易數量
}
}
在此例中,同一個塊中包含2筆交易,"trx_in_block"
參數爲0
可知該筆交易爲塊中第一筆交易,於是可取得該筆交易結構體內容:
{ //第一個交易結構體
"ref_block_num": 40186, //引用的區塊號
"ref_block_prefix": 4227178370, //引用的區塊頭
"expiration": "2019-08-28T08:33:18", //交易可能的過期時間
"operations": [ //操作列表
[0, { //操作代碼,此處0表示轉賬
"fee": { //手續費
"amount": 200000, //金額,帶5位小數精度,此處200000表示2
"asset_id": "1.3.0"//資產類型 此處表示SEER
},
"from": "1.2.28828", //發起用戶object_ID,可通過get_account查詢其用戶名,此處爲bm520
"to": "1.2.8848", //接收用戶ID,此處爲xyz123
"amount": {
"amount": 100000, //金額,帶5位小數精度,此處100000表示1
"asset_id": "1.3.0"//資產類型 此處表示SEER
},
"extensions": []
}]
],
"extensions": [],
"signatures": ["1f5cd08d2edbb100429915dee6b0449c8a6319c4dc556147db13cc9af1ef26c51756b437926dc29d24dc65cf1110c71f246fb82fa698f1970ae3523729d0bbc3fe"], //交易簽名
"operation_results": [ //操作結果
[0, {}]
]
}
翻譯該交易內容爲:bm520 向 xyz123 轉賬 1 SEER
。
目前具備此功能的API已部署到SEER社區提供的新加坡節點:ws://sg1.seerchain.org ,並將在下次硬分叉升級時整合進發布版本節點程序,擴展到所有API節點。當下,SEER社區開發者正基於此最新功能API開發新版本網頁錢包和區塊瀏覽器。
大家可使用wscat、http://www.websocket-test.com...。
示例:
> root@ubuntu:~# wscat -c ws://sg1.seerchain.org
connected (press CTRL+C to quit)
> {"jsonrpc": "2.0", "method": "get_transaction_by_txid", "params": [15b922cbbd7f3648d92bed9f001a2cc99651228c], "id": 1}
< {"id":1,"jsonrpc":"2.0","result":{"id":"2.22.101376","txid":"15b922cbbd7f3648d92bed9f001a2cc99651228c","timestamp":"2019-08-24T00:50:36","block_num":13158209,"trx_in_block":0}}
> {"jsonrpc": "2.0", "method": "get_block", "params": [13158209], "id": 1}
< {"id":1,"jsonrpc":"2.0","result":{"previous":"00c8c740c7025d851d50eade54a0a4a5255215eb","timestamp":"2019-08-24T00:50:36","witness":"1.5.89","transaction_merkle_root":"ef0d18cdd451e748b30bfeaca3ed87e366b47550","extensions":[],"witness_signature":"201ebf2bd6f81f0bf35309dead3c7c40d28040a724b754f7af1204f66277ba0327696b8db0ba6172703a249e92c99ea214dc8c42962bca4bbfd74d9b6417400c90","transactions":[{"ref_block_num":51008,"ref_block_prefix":2237465287,"expiration":"2019-08-24T00:52:35","operations":[[0,{"fee":{"amount":336718,"asset_id":"1.3.0"},"from":"1.2.50","to":"1.2.9981","amount":{"amount":"10000000000","asset_id":"1.3.0"},"memo":{"from":"SEER6uDmZCs76JMpFTHjcTFLmjPhkjLTnA8FP3wwmSo5X7fCDATLRe","to":"SEER646RGdL4gncz7y834wfGfcHECnKdbdVWd6gh9aEYdn3HWyhBjB","nonce":"401051605206583","message":"1143d782c85ec6a8f42b401af0289b3082ed72a79a9e64200caf8a4d099b90936e552093ab285fda2972a5cd7d6a541fedf144557440b742e201642a527a350a"},"extensions":[]}]],"extensions":[],"signatures":["206665af3497858608911b602d7b69fadd8e6324ecf7c24ded5b2885449b05535210189789b5c5aac2ebfa58084c1ecb430488bfba0112c28ea62eb81544397753"],"operation_results":[[0,{}]]}],"block_id":"00c8c74161854887391db23c38dd960268760f17","signing_key":"SEER81CmBUXQUTCLCsym74KM7S7PTRpU5WyWSRJ92ZWfVck5S3Fyai","transaction_ids":["15b922cbbd7f3648d92bed9f001a2cc99651228c"],"txs_count":1}}
>
往期回顧
🔸技術派 I SEER區塊鏈壓力測試告訴什麼叫“黑科技”
🔸SEER項目投資方拿雲體育與海南省文投合資註冊公司
🔸SEER超級福利來襲!5,000,000SEER爲你整裝待發!
🔸領航區塊鏈研究中心正式成立,拿雲體育成爲理事長單位
微信羣:請加小助手微信seeryuanyuan
Telegram:https://t.me/seerchain
Twitter:https://twitter.com/info_seer
微博:SEER愛好者社區