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/160d9... 。之所以建议使用交易ID而不使用区块高度,是因为最新区块的信息不同于不可逆块,理论上来说在区块浏览器显示的操作信息所属区块可能在入块后会改变。而交易id是通过本地算法求得的,具有唯一性,更适合作为即时出现的链接地址。

滚动区域需显示的最新操作信息,可以首先通过info获得当前块高,再通过get_block获得当前块信息,若当前块包含交易信息,则将交易内的最新操作按一定格式显示。每3秒以后,可以用在块号上+1的方法再get_block获取下一个块的信息。

若要显示历史交易信息,则需要不断存储最新块内的信息,并保存全部或一定时间范围内的非空块信息。

2、显示区块链状态:包括最新块生产时间当前块高链号`出块时间间隔下次数据维护时间区块生产参与度,这些信息都可以通过infoget_global_properties`获得;

例如:

网络状态
最新块生产时间 0秒前
当前块高 42421333
链号 cea4fdf4f5c2278f139b22e782b308928f04008b0fc2c79970a58974a2a28f91
出块时间间隔 3秒
下次数据维护时间 8小时后
区块生产参与度 100%

3、提供搜索功能:可以输入区块号帐号交易id资产名预测市场id等信息搜索相应的信息,进入相应的页面;

先检测填入的数据类型,若为纯数字,则检测相应的区块和房间是否存在,若存在则下拉提示[预测市场]321416和[区块]321416(只提示存在的);

分别通过get_blocklist_accountslist_assetsget_seer_room,以及查询本地存储交易信息中交易id获得。

若输入的是字符串,则检测相应的帐号、交易id、资产名是否存在,若存在则下拉提示[帐号]opc、[帐号]opc002和[资产]opc,或[交易id]160d9a381a2152d55719b0e7e4aea4aaecce06e3(只提示存在的)。

his
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/72...

账户相关页面

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获取以上信息,同时可以用roomsfinished_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_witnessget_vesting_balances获取,其中get_vesting_balances返回信息中,object_id为1.11.N的即出块收益,出块收益id通过get_witnesspay_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/...

热门预测市场列表页面

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)、市场状态(进行中/未开始/已结束/结果输入)。

描述 新加坡时间2019年1月2日0时整,比特币价格高于7000美元吗?以coinmarketcap.com显示价格为准。
类型 PVD(LMSR)
Object_ID 1.15.1236
设立者 okok
标签 币比 币圈 经济 BTC 币价 USD 美元 牛市

2、显示房间设置:接受资产、单次最小参与数额、单次最大参与数额;

接受资产 SEER
单次最小参与数额 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、显示预言机设置和门槛:市场设立者权重、预言机奖励、条件达到此门槛的预言机才能参与结果输入:(名誉、保证金、参与量)

市场设立者权重 30%
每个预言机奖励 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/160d9...

资产介绍页面

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

属性:

资产代号 ABC
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、区块生产状态:包括当前见证人、活跃见证人、参与率、每块奖励、剩余预算、计票更新时间(侧边栏显示);

当前见证人 bob
活跃见证人 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获得。

你可能感兴趣的:(SEER区块浏览器开发指南)