SEER区块浏览器开发指南
區塊瀏覽器基本功能
區塊鏈瀏覽器是瀏覽區塊鏈信息的主要窗口,每一個區塊所記載的內容都可以從區塊鏈瀏覽器上進行查閱。用戶可以使用區塊鏈瀏覽器查詢記錄在區塊中的交易信息,包括轉賬、預測、賬戶管理和社區治理操作等。
DAPP內的信息展示部分,和區塊瀏覽器的作用相似。
SEER基于石墨烯底層開發,區塊鏈上記錄的最小信息是操作(operations)。每個區塊(block)里可能有多個交易(transactions),每個交易里可能包含多個操作。
區塊瀏覽器需要預先考慮到多語言版本的需求。
時間顯示:區塊鏈時間為GMT/UTC,即英國格林尼治時間/世界標準時,考慮到SEER的用戶遍及世界各地,以年月日時分秒顯示時間時需考慮到用戶所在時區的問題,使用N分鐘前、N小時前、N天前的表達形式也是一個不錯的選擇。
在提法上,有的地方稱1.15.N為預測市場,有的地方又稱為房間,其實是一樣的。同時,1.14.N有時稱為預測市場設立者,有的時候又稱為平臺或是房主資質,二者也是一樣的,可根據場景來介紹。
區塊瀏覽器的頁面
首頁
1、滾動區域顯示最新區塊鏈上的操作信息:包括類型 發起ID(鏈接) 內容 被操作ID(鏈接,如果有并便于排版) 時間 交易ID(鏈接); 例如:
| [派發獎勵] | shehuilongge2018 對 預測市場446 “劉強東在明尼蘇達所涉...”派獎 | 10天前 | 160d9a381a21 |
| [轉賬] | okok 轉賬 1000SEER 給 else | 11天前 | 70dd572e03f7 |
160d9a381a21為縮寫,實際的交易ID是160d9a381a2152d55719b0e7e4aea4aaecce06e3,鏈接格式為:https://seerscan.com/tx/160d9a381a2152d55719b0e7e4aea4aaecce06e3 。之所以建議使用交易ID而不使用區塊高度,是因為最新區塊的信息不同于不可逆塊,理論上來說在區塊瀏覽器顯示的操作信息所屬區塊可能在入塊后會改變。而交易id是通過本地算法求得的,具有唯一性,更適合作為即時出現的鏈接地址。
滾動區域需顯示的最新操作信息,可以首先通過info獲得當前塊高,再通過get_block獲得當前塊信息,若當前塊包含交易信息,則將交易內的最新操作按一定格式顯示。每3秒以后,可以用在塊號上+1的方法再get_block獲取下一個塊的信息。
若要顯示歷史交易信息,則需要不斷存儲最新塊內的信息,并保存全部或一定時間范圍內的非空塊信息。
2、顯示區塊鏈狀態:包括最新塊生產時間、當前塊高、鏈號``出塊時間間隔、下次數據維護時間、區塊生產參與度,這些信息都可以通過info和get_global_properties獲得;
例如:
| 最新塊生產時間 | 0秒前 |
| 當前塊高 | 42421333 |
| 鏈號 | cea4fdf4f5c2278f139b22e782b308928f04008b0fc2c79970a58974a2a28f91 |
| 出塊時間間隔 | 3秒 |
| 下次數據維護時間 | 8小時后 |
| 區塊生產參與度 | 100% |
3、提供搜索功能:可以輸入區塊號、帳號、交易id、資產名、預測市場id等信息搜索相應的信息,進入相應的頁面;
先檢測填入的數據類型,若為純數字,則檢測相應的區塊和房間是否存在,若存在則下拉提示[預測市場]321416和[區塊]321416(只提示存在的);
分別通過get_block、list_accounts、list_assets、get_seer_room,以及查詢本地存儲交易信息中交易id獲得。
若輸入的是字符串,則檢測相應的帳號、交易id、資產名是否存在,若存在則下拉提示[帳號]opc、[帳號]opc002和[資產]opc,或[交易id]160d9a381a2152d55719b0e7e4aea4aaecce06e3(只提示存在的)。
| HIS(UIA) | 1.3.1 |
| IOU.HIS(UIA) | 1.3.21 |
| hiseer(賬號員) | 1.2.59 |
| hise01(賬號) | 1.2.8872 |
| hello-his(賬號) | 1.2.10231 |
| shis1(賬號) | 1.2.56782 |
| 160d9a381a2152d55719b0e7e4aea4aaecce06e3(交易) | 856782塊高 |
用戶點擊后跳轉到相應的頁面。
4、鏈接到其他頁面;
5、顯示本輪活躍見證人:列表可以通過info獲得,列表中的用戶名(鏈接)點擊跳轉到賬戶相關頁面;
6、顯示本輪活躍理事會:列表可以通過info獲得,列表中的用戶名(鏈接)點擊跳轉到賬戶相關頁面;
區塊信息頁面
1、顯示該區塊塊號,時間,出塊見證人。
2、該區塊所包含的所有操作信息列表:包括類型 發起ID(鏈接) 內容 被操作ID(鏈接,如果有并便于排版) 時間 交易ID(鏈接);
3、格式化后的該區塊json信息。
通過get_block獲得相應信息。
鏈接格式為:https://seerscan.com/block/723091
賬戶相關頁面
1、和該用戶相關的操作列表(最近100個),可以通過get_relative_account_history獲得:包括類型 發起ID(鏈接) 內容 被操作ID(鏈接,如果有并便于排版) 時間 交易ID(鏈接);
| [派發獎勵] | shehuilongge2018 對 預測市場446 “劉強東在明尼蘇達所涉...”派獎,else 獲得10000SEER | 10天前 | 160d9a381a21 |
| [轉賬] | okok 轉賬 1000SEER 給 else | 11天前 | 70dd572e03f7 |
| [參與預測] | else 參與 預測市場446 “劉強東在明尼蘇達所涉...”,預測選項“不起訴”,支出1000SEER | 15天前 | 19b0e7e4aea4 |
例如該賬號參與過的房間房主派獎時,除顯示房主派獎外,還應該顯示該帳號余額的變動情況。通過op.result.deltas獲取;
例如該賬號參與預測時,除顯示參與預測,該帳號余額的變動情況 (通過op.result.deltas獲取)、輸入結果(通過op.op.inputN獲取),同時顯示房間號(通過op.op.room 獲取,鏈接)
交易id通過get_block op.block_num 獲取該轉賬操作所在塊的信息,再通過op.trx_in_block的數值來獲取到塊信息中transaction_ids數組里該轉賬操作對應的txid,同一個txid可能對應多個操作。
2、該賬戶屬性:包含資產余額、Object_ID、帳戶名、推薦人、注冊人、是否終身會員,權限中顯示該用戶的資金、賬戶、MEMO公鑰,若此用戶具有預測市場設立者、預言機、見證人、理事會等角色,或是投票給某個理事會成員/設置了投票代理,也將其屬性值列出。以側邊欄的形式出現 例如:
| SEER | 1000000 |
| OPC | 120000 |
| PFC | 8700 |
通過list_account_balances獲取
| 帳戶名 | okok |
| Object_ID | 1.2.30 |
| 是否終身會員 | 是 |
| 推薦人 | seer |
| 注冊人 | seer |
| OwnerKey | SEER7SQVh85z8N38jvcmYTtE7JifoRsGH5DEea6HixVdxVHTezDfHv |
| ActiveKey | SEER7WyPH3aCQkGfWZkQnXuYPQNZ4ppC2n3tfA87hpAVtoqzXFh5gx |
| MemoKey | SEER7WyPH3aCQkGfWZkQnXuYPQNZ4ppC2n3tfA87hpAVtoqzXFh5gx |
通過get_account獲取
3、預測市場設立者屬性包括:Object_ID、描述、腳本、保證金、信譽度、參與量,以及當前正在進行的房間和歷史房間前N位(信息格式見預測市場列表); 例如:
| Object_ID | 1.14.6 |
| 描述 | 請叫我社會哥 |
| 腳本 | - |
| 保證金 | 300000 |
| 信譽度 | 2 |
| 參與量 | 2 |
通過get_house_by_account獲取以上信息,同時可以用rooms、finished_rooms作為get_seer_room的參數獲得以下數據:
正在進行的房間
| [PVP] | okok | 446 | “BTC 2018年10月21日...” | 367萬 SEER | 5天前 | 5分鐘后 | 70% | 幣比 幣圈 經濟 BTC |
| [高級] | okok | 486 | “曼城 VS 恒大 勝負” | 188萬 OPC | 3天前 | 3小時后 | 80% | 章魚寶 體育 賽事 足球 歐亞杯 2018 |
已結束的房間
| 類型 | 設立者 | 市場編號 | 描述 | 總參與量 | 開啟時間 | 結束時間 | 創建者權重 | 標簽 | | [PVD] | okok | 526 | “劉強東在明尼蘇達所涉...” | 42萬 ABC | 13天前 | 2天前 | 30% | 熱門 社會 大佬 |
4、預言機屬性包括:Object_ID、描述、腳本、保證金、信譽度、參與量。 例如:
| Object_ID | 1.13.1 |
| 描述 | 最帥預言機 |
| 腳本 | - |
| 保證金 | 16000 |
| 信譽度 | 3 |
| 參與量 | 3 |
通過get_oracle_by_account獲取
5、見證人屬性包括:Object_ID、抵押數、待領取抵押收益、抵押清單(抵押ID+數額)、待領取出塊收益、最近出塊號、鏈接、丟塊數、見證人簽名公鑰。
分別通過get_witness和get_vesting_balances獲取,其中get_vesting_balances返回信息中,object_id為1.11.N的即出塊收益,出塊收益id通過get_witness的pay_vb獲取。
例如:
| Object_ID | 1.5.11 |
| 抵押數 | 14000000 |
| 待領取抵押收益 | 187865 |
| 待領取出塊收益 | 318642 |
| 最近出塊號 | 3216572 |
| 鏈接 | https://baidu.com |
| 丟塊數 | 23 |
| 見證人簽名 | SEER7QatX8TjD44ZHayfqBFYENUQQtvRU9b8ykgCBxBdaFRzqagKxc |
| 抵押清單 | 2.16.0、2.16.1、2.16.3 |
6、理事會信息屬性包括:Object_ID、總得票數、鏈接。 例如:
| Object_ID | 1.4.7 |
| 總得票數 | 189765425 |
| 鏈接 | https://baidu.com |
通過get_committee_member獲取
鏈接格式為:https://seerscan.com/account/okok
熱門預測市場列表頁面
1、列出當前活躍的預測市場(房間)列表:[市場類型(PVD/高級/PVP)] 創建者 房間號(Object_ID,鏈接) 描述(鏈接) 總參與量 開啟時間 結束時間 創建者權重 標簽(鏈接),默認按參與量排序,用戶可按一定方式排序(排序方式包括總參與量、結束時間、創建者權重);
例如:
| [PVP] | shehuige18 | 446 | “BTC 2018年10月21日...” | 367萬 SEER | 5天前 | 5分鐘后 | 70% | 幣比 幣圈 經濟 BTC |
| [高級] | octopaul | 486 | “曼城 VS 恒大 勝負” | 188萬 OPC | 3天前 | 3小時后 | 80% | 章魚寶 體育 賽事 足球 歐亞杯 2018 |
| [PVD] | akira | 526 | “劉強東在明尼蘇達所涉...” | 42萬 ABC | 13天前 | 20天后 | 30% | 熱門 社會 大佬 |
標簽一欄中,根據頁面顯示區域顯示1個至全部個數標簽。
2、根據用戶標簽歷史紀錄在側邊欄生成標簽云,每個標簽鏈接到相應的預測市場標簽列表頁面。
3、列出活躍的預測市場設立者(按參與量排名列出前N位)。
可通過lookup_house_accounts獲得房主列表,再通過get_houses獲得所有活躍房間和歷史房間,再通過get_seer_room獲得房間詳細信息。
標簽云通過本地存儲數據中的標簽,列出使用次數最多的標簽。
| 1 | okok | 請叫我社會哥 | 300000 | 3 | 3 |
| 2 | else | 輸錢福利社,輸了又來的就是我。 | 500000 | 15 | 15 |
鏈接格式為:https://seerscan.com/hotmarkets
預測市場標簽列表頁面
1、列出當前活躍的預測市場(房間)列表:[市場類型(PVD/高級/PVP)] 創建者 房間號(Object_ID,鏈接) 描述(鏈接) 總參與量 開啟時間 結束時間 創建者權重 標簽(鏈接),默認按參與量排序,用戶可按一定方式排序(排序方式包括總參與量、結束時間、創建者權重);
2、顯示已結束/輸入中預測市場列表,格式同上。
3、顯示標簽云。
通過get_rooms_by_label獲取相應標簽的房間id,再通過get_seer_room獲取這些房間的詳細信息。
標簽云通過本地存儲數據中的標簽,列出使用次數最多的標簽。
鏈接格式為:https://seerscan.com/label/社會
預測市場詳情頁面
1、顯示房間屬性:
通過get_seer_room獲得房間詳細信息,屬性包括:市場Object_ID、設立者ID(鏈接)、標簽(鏈接)、描述、市場類型(PVD/高級/PVP)、市場狀態(進行中/未開始/已結束/結果輸入)。
| 類型 | PVD(LMSR) |
| Object_ID | 1.15.1236 |
| 設立者 | okok |
| 標簽 | 幣比 幣圈 經濟 BTC 幣價 USD 美元 牛市 |
2、顯示房間設置:接受資產、單次最小參與數額、單次最大參與數額;
| 單次最小參與數額 | 100 |
| 單次最大參與數額 | 10000 |
3、顯示市場狀態:開始時間、結束時間、結果輸入時限、資金池(僅高級模式和PVD模式顯示,PVD模式的資金池通過房主設定的L值和選項數,根據公式資金池F = L x ln(選項數量)計算出)、總參與量;
| 開始時間 | 2018-12-22T02:36:29 |
| 結束時間 | 2019-01-01T16:00:00 |
| 結果輸入時限 | 12小時 |
| 資金池 | 12412984 SEER |
| 總參與量 | 98372123 SEER |
4、顯示預言機設置和門檻:市場設立者權重、預言機獎勵、條件達到此門檻的預言機才能參與結果輸入:(名譽、保證金、參與量)
| 每個預言機獎勵 | 100 SEER |
| - | - |
| 條件達到此門檻的預言機才能參與結果輸入 | |
| 名譽 | 3 |
| 保證金 | 10000 SEER |
| 參與量 | 3 |
5、房間選項:包括選項描述、參與人數和參與數量(資產或份數),非LMSR顯示獎金倍數。
| 0 | 歸零 | 0次 | 0份 | 0% |
| 1 | 小于7000美元 | 8723次 | 1234140份 | 28.21% |
| 2 | 等于7000美元 | 1次 | 100000份 | 0.1% |
| 3 | 大于7000美元 | 7131次 | 3453253份 | 71.78% |
6、最新參與滾動信息:
| [派發獎勵] | okok 對 預測市場1236 派獎 | 2天前 | ZHayfqBF8QtvR |
| [輸入結果] | okok 對 預測市場1236 輸入結果:選項1“小于7000美元” | 2天前 | fqBFYENUx9a3 |
| [輸入結果] | else 對 預測市場1236 輸入結果:選項1“小于7000美元” | 2天前 | d55719b0e7e4 |
| [市場結算] | okok 對 預測市場1236 結算 | 3天前 | d9a381a2152d |
| [停止參與] | okok 停止 預測市場1236 | 3天前 | 4aecceds06e3 |
| [參與預測] | shehuilongge2018 參與 預測市場1236 ,預測選項1“小于7000美元” | 4天前 | a381a021520d |
| [參與預測] | else 參與 預測市場1236 ,預測選項1“小于7000美元” | 5天前 | 160d9a381a21 |
滾動信息包含房間參與數據,get_seer_room的參數包括房間object_id、參與記錄的開始索引start、參與記錄返回的最大數量limit。例如get_seer_room 1.15.236 0 100即表示返回236房間的前100個參與記錄。若要顯示更多記錄,需要修改start,在當前start的基礎上增加limit,例如若一個房間共200條記錄,要全部顯示需要get_seer_room 1.15.236 0 100,再get_seer_room 1.15.236 100 100。
7、參與預測圖表:參數包括時間、參與人次、參與數額、預測選項、選項賠率(PVD為單份成本);
鏈接格式為:https://seerscan.com/pm/3427 (PM = prediction market)
交易詳細信息頁面
1、顯示該交易時間、所屬區塊。
2、顯示該交易id下所有操作列表;
| [轉賬] | okok 轉賬 1000ABC 給 else |
| [轉賬] | okok 轉賬 1000ABC 給 alice |
| [轉賬] | okok 轉賬 1000ABC 給 bob |
3、顯示格式化后的該交易json信息。
通過交易id和本地存儲數據中的交易id匹配,顯示該交易id對應的交易信息。
交易id有多重獲取方式:
A 通過get_block獲取區塊信息中該交易所在transactions中的順序位置,對應該區塊信息中"transaction_ids"字符串中該交易對應的transaction_id;
B 用戶在轉賬操作時可以用transfer2替代transfer,這樣在交易廣播后,會在返回信息中直接給出該交易對應的transaction_id;
C 用戶可以使用get_transaction_id在參數中傳入該交易的json格式內容,即可生成對應的transaction_id;
D 用戶在使用RPC方式調用get_relative_account_history時,返回信息中op.block_num即該操作的入塊高度,op.trx_in_block 該操作所屬交易的transaction_id在該區塊transaction_ids字符串中的位置。
鏈接格式為:https://seerscan.com/tx/160d9a381a2152d55719b0e7e4aea4aaecce06e3
資產介紹頁面
1、該資產持有人列表(鏈接),持有占比; 2、持有分布統計餅圖; 3、該資產的屬性:資產代號、資產類型(CORE/UIA)、當前供應量、發行人(鏈接)、Object_ID、小數位數、最大供應量等(側邊欄)。 4、SEER的資產介紹頁面可以作為SEER持倉分布頁面在首頁提供鏈接;
| 1 | init0 | 8000000000.00000 |
| 2 | okok | 100000000.00000 |
| 3 | else | 300000.00000 |
| 4 | alice | 5400000.00000 |
屬性:
| Object_ID | 1.3.10 |
| 資產類型 | UIA |
| 當前供應量 | 8046234175 |
| 最大供應量 | 10000000000 |
| 發行人 | okok |
| 小數位數 | 5 |
| 手續費匯率 | 0.56 SEER/ABC | | 資金池余額 | 88838 | | 發行人未申領收入 | 171419 |
該資產持有人列表可使用余額快照功能,每隔一段時間對指定資產的所有用戶持倉進行快照,獲取持有人列表數據。 資產屬性可通過get_asset獲得。
鏈接格式為:https://seerscan.com/assets/SEER
預測市場排行榜頁面
1、顯示預測市場設立者排行榜;
| 1 | okok | 135 | 1000000 | 135 | 345156 | http://baidu.com |
| 2 | alice | 98 | 700000 | 98 | 142343 | http://google.com |
| 3 | bob | 76 | 600000 | 76 | 267780 | http://facebook.com |
默認通過聲譽排序,通過lookup_house_accounts獲得所有平臺id,get_houses可獲得平臺的詳細信息列表。
2、顯示預言機排行榜。
| 1 | else | 95 | 100000 | 95 | http://baidu.com |
| 2 | tomato | 65 | 80000 | 65 | http://google.com |
| 3 | tom | 62 | 50000 | 62 | http://facebook.com |
默認通過聲譽排序,通過lookup_oracle_accounts獲得所有預言機id,get_oracles可獲得預言機的詳細信息列表。
鏈接格式為:https://seerscan.com/ranking
見證人信息頁面
1、顯示本輪活躍見證人列表:包括排名、賬戶名、上一個區塊、上次生成塊、缺失塊數、抵押金、利息收入;
| 1 | okok | 1分鐘前 | 456123 | 2 | 1205616145 | 1353345 |
| 2 | else | 1分鐘前 | 456121 | 1 | 21456283 | 64562 |
| 3 | alice | 20秒前 | 456126 | 1 | 5981236 | 345343 |
| 4 | bob | 現在 | 456129 | 0 | 8123012 | 4081236 |
通過list_witnesses獲得所有見證人id,get_witness可獲得每個見證人的詳細信息。
按抵押金額排名前101位的為獲息見證人,通過get_global_properties.result.active_collateral_witnesses可以獲得獲息見證人列表。
通過info獲得本輪出塊的21位活躍見證人和參與率等信息,每塊獎勵通過get_global_properties獲得,本期剩余見證人獎勵通過get_dynamic_global_properties中的witness_budget本期見證人預算總額 - 本期已出塊數 * 每塊獎勵得出。
2、區塊生產狀態:包括當前見證人、活躍見證人、參與率、每塊獎勵、剩余預算、計票更新時間(側邊欄顯示);
| 活躍見證人 | 21 |
| 參與率 | 100% |
| 每塊獎勵 | 3SEER |
| 本期剩余預算 | 23127SEER |
| 計票更新時間 | 8小時后 |
3、可切換主力見證人、主力及候選見證人(獲息見證人)、所有見證人(所有注冊見證人資格的用戶,包括未入選獲息見證人的用戶)。
理事會信息頁面
1、顯示排名、賬戶名、得票數、競選網頁。
2、可以切換活躍理事會成員和所有(含競選中)理事會成員頁面
| 1 | okok | 65115531 | http://baidu.com |
| 2 | else | 54234798 | http://baidu.com |
| 3 | alice | 68633872 | http://baidu.com |
所有理事會成員列表通過list_committee_members獲得,活躍理事會成員列表通過get_global_properties.result.active_committee_members 或 info 獲得,詳細信息通過get_committee_member獲得。
轉載于:https://my.oschina.net/u/3995149/blog/2253409
總結
以上是生活随笔為你收集整理的SEER区块浏览器开发指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 016-OpenCV 图像对比度亮度调整
- 下一篇: HTML5的定位接口