Loading
0

SEER区块浏览器开发指南

区块浏览器基本功能

区块链浏览器是浏览区块链信息的主要窗口,每一个区块所记载的内容都可以从区块链浏览器上进行查阅。用户可以使用区块链浏览器查询记录在区块中的交易信息,包括转账、预测、账户管理和社区治理操作等。

DAPP内的信息展示部分,和区块浏览器的作用相似。

SEER基于石墨烯底层开发,区块链上记录的最小信息是操作(operations)。每个区块(block)里可能有多个交易(transactions),每个交易里可能包含多个操作。

区块浏览器需要预先考虑到多语言版本的需求。

时间显示:区块链时间为GMT/UTC,即英国格林尼治时间/世界标准时,考虑到SEER的用户遍及世界各地,以年月日时分秒显示时间时需考虑到用户所在时区的问题,使用N分钟前、N小时前、N天前的表达形式也是一个不错的选择。

在提法上,有的地方称1.15.N为预测市场,有的地方又称为房间,其实是一样的。同时,1.14.N有时称为预测市场设立者,有的时候又称为平台或是房主资质,二者也是一样的,可根据场景来介绍。

区块浏览器的页面

首页

1、滚动区域显示最新区块链上的操作信息:包括类型 发起ID(链接) 内容 被操作ID(链接,如果有并便于排版) 时间 交易ID(链接);

例如:

160d9a381a21为缩写,实际的交易ID是160d9a381a2152d55719b0e7e4aea4aaecce06e3,链接格式为:https://seerscan.com/tx/160d9a381a2152d55719b0e7e4aea4aaecce06e3 。之所以建议使用交易ID而不使用区块高度,是因为最新区块的信息不同于不可逆块,理论上来说在区块浏览器显示的操作信息所属区块可能在入块后会改变。而交易id是通过本地算法求得的,具有唯一性,更适合作为即时出现的链接地址。

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

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

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

例如:

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

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

分别通过get_block、list_accounts、list_assets、get_seer_room,以及查询本地存储交易信息中交易id获得。

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

用户点击后跳转到相应的页面。

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(链接);

例如该账号参与过的房间房主派奖时,除显示房主派奖外,还应该显示该帐号余额的变动情况。通过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公钥,若此用户具有预测市场设立者、预言机、见证人、理事会等角色,或是投票给某个理事会成员/设置了投票代理,也将其属性值列出,以侧边栏的形式出现。

例如:

3、预测市场设立者属性包括:Object_ID、描述、脚本、保证金、信誉度、参与量,以及当前正在进行的房间和历史房间前N位(信息格式见预测市场列表);

例如:

4、预言机属性包括:Object_ID、描述、脚本、保证金、信誉度、参与量。

例如:

5、见证人属性包括:Object_ID、抵押数、待领取抵押收益、抵押清单(抵押ID+数额)、待领取出块收益、最近出块号、链接、丢块数、见证人签名公钥。

分别通过get_witness和get_vesting_balances获取,其中get_vesting_balances返回信息中,object_id为1.11.N的即出块收益,出块收益id通过get_witness的pay_vb获取。

例如:

6、理事会信息属性包括:Object_ID、总得票数、链接。

例如:

热门预测市场列表页面

1、列出当前活跃的预测市场(房间)列表:[市场类型(PVD/高级/PVP)] 创建者 房间号(Object_ID,链接) 描述(链接) 总参与量 开启时间 结束时间 创建者权重 标签(链接),默认按参与量排序,用户可按一定方式排序(排序方式包括总参与量、结束时间、创建者权重);

例如:

标签一栏中,根据页面显示区域显示1个至全部个数标签。

2、根据用户标签历史纪录在侧边栏生成标签云,每个标签链接到相应的预测市场标签列表页面。

3、列出活跃的预测市场设立者(按参与量排名列出前N位)。

可通过lookup_house_accounts获得房主列表,再通过get_houses获得所有活跃房间和历史房间,再通过get_seer_room获得房间详细信息。

标签云通过本地存储数据中的标签,列出使用次数最多的标签。

预测市场标签列表页面

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

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

3、显示市场状态:开始时间、结束时间、结果输入时限、资金池(仅高级模式和PVD模式显示,PVD模式的资金池通过房主设定的L值和选项数,根据公式资金池F = L x ln(选项数量)计算出)、总参与量;

4、显示预言机设置和门槛:市场设立者权重、预言机奖励、条件达到此门槛的预言机才能参与结果输入:(名誉、保证金、参与量)

5、房间选项:包括选项描述、参与人数和参与数量(资产或份数),非LMSR显示奖金倍数。

6、最新参与滚动信息:

滚动信息包含房间参与数据,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下所有操作列表;

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、显示预测市场设立者排行榜;

默认通过声誉排序,通过lookup_house_accounts获得所有平台id,get_houses可获得平台的详细信息列表。

2、显示预言机排行榜。

默认通过声誉排序,通过lookup_oracle_accounts获得所有预言机id,get_oracles可获得预言机的详细信息列表。

链接格式为:https://seerscan.com/ranking

见证人信息页面

1、显示本轮活跃见证人列表:包括排名、账户名、上一个区块、上次生成块、缺失块数、抵押金、利息收入;

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

3、可切换主力见证人、主力及候选见证人(获息见证人)、所有见证人(所有注册见证人资格的用户,包括未入选获息见证人的用户)。

理事会信息页面

1、显示排名、账户名、得票数、竞选网页。

2、可以切换活跃理事会成员和所有(含竞选中)理事会成员页面。

所有理事会成员列表通过list_committee_members获得,活跃理事会成员列表通过get_global_properties.result.active_committee_members 或 info 获得,详细信息通过get_committee_member获得。

声明:本站信息大都来源于互联网,如无意中侵犯了您的权益,请联系站长删除,谢谢。

最后编辑于:2018/10/31作者: seer123