假期不再做源码赏析系列的更新,好好休息。但是昨天EOSPark发布了其API,让人眼前一亮,忍不住写了点。
熟悉《神雕侠侣》的朋友应该对杨过的兵器玄铁重剑不陌生。玄铁重剑由剑魔独孤求败所使用,打遍天下无敌手,若干年后由杨过所得。剑身镌刻着八个字—重剑无锋,大巧不工,意指剑作为英雄的一个工具并不是依靠剑有多锋利,而是这把剑所拥有的底蕴,深厚的底蕴便可克敌制胜。今天我们来谈谈EOS开发者的玄铁重剑—EOSPark。
最初了解到EOSPark是狼人事件出现之后EOSPark及时上线了代码一致性校验功能,从一定程度上阻止了类似狼人游戏这种事件的发生。EOS的生态处于初期,开发者和用户之间的相互信任是极其重要的,EOSPark的这个功能,也为开发者和用户之间架设了一座桥梁。EOSPark浏览器具备其他EOS浏览器所拥有的基本功能,并且逐渐开放,围绕EOS生态渐进开发一些特色功能。而EOSPark团队深厚的技术底蕴及强大的执行力才使这一切更舒适、更便捷的展现在我们面前。举一个小例子,在一个节点群中有朋友对EOSPark的数据展示产生了质疑,此时EOSPark的CTO及其团队立马进行排查,在短时间内解决了这个数据同步及显示问题。好的产品,如玄铁重剑,不需要什么好的技巧,要的就是这技术能力及相应迅速的执行力,此可谓大巧不工。
就在昨天,我们以各种形式给祖国母亲庆祝生日的时候,EOSPark开放了其API,这对开发者来说也可谓是神兵利器。我们在开发过程中,总会免不了EOS节点搭建、测试、使用官方原生RPC接口,但这些操作较为繁琐且容易出错。EOSPark开放的API降低了开发门槛,让开发者将更多精力放在有趣的创意上。
下面我们来简单的体验下EOSPark的新功能,可以让开发者事半功倍的新兵器。以最简单的查询账户eosbetdice11信息为例:
代码语言:javascript复制https://api.eospark.com/api?module=account&action=get_account_info&apikey=a9564ebc3289b7a14551baf8ad5ec60a&account=eosbetdice11
返回结果如下,可以看出其返回了错误码、错误信息以及该账号对应的一些创建者、创建时间、权限等相关信息:
代码语言:javascript复制{
"errno": 0,
"errmsg": "Success",
"data": {
"creator": "eosbetcasino",
"create_timestamp": "2018-08-02T19:16:31.500",
"permissions": [{
"perm_name": "active",
"parent": "owner",
"required_auth": {
"threshold": 1,
"keys": [{
"key": "EOS6a6mHd9D3PtXYPjNS2h9DrExkpAhzgrn54YBv42kz6AQprVgQw",
"weight": 1
}],
"accounts": [{
"permission": {
"actor": "eosbetdice11",
"permission": "eosio.code"
},
"weight": 1
}],
"waits": []
}
},
{
"perm_name": "owner",
"parent": "",
"required_auth": {
"threshold": 1,
"keys": [{
"key": "EOS5dmFStDg9h2698Y6U9vAM9emj5fyFPB8BNy1HdMzRPqFcYbBvx",
"weight": 1
}],
"accounts": [],
"waits": []
}
}]
}
}
在开发者群里,经常会有朋友问到,如何查询一个账户所有的交易信息,我们再以查询账户交易信息为例,来看EOSPark的使用规范以及返回内容:
代码语言:javascript复制https://api.eospark.com/api?module=account&action=get_account_related_trx_info&apikey=a9564ebc3289b7a14551baf8ad5ec60a&account=eosbetdice11&page=1&size=5&symbol=EOS&code=eosio.token
Key | Type | Required | Description |
---|---|---|---|
module | String | Yes | "account" |
action | String | Yes | "get_account_related_trx_info" |
account | String | Yes | account_name |
symbol | String | No | Token name |
code | String | No | Issue account |
page | Number | No | Page number |
size | Number | No | Number of records per page |
其中moudle、action、account是必须的,我们上面查询了eosbetdice11这个账户的前6条交易记录并展示在一页上,返回结果如下:
代码语言:javascript复制{
"errno": 0,
"errmsg": "Success",
"data": {
"trace_count": 8871964,
"trace_list": [{
"trx_id": "c9be51d7a99089bff856dd60af18c1cc2bc52c5532fdbd2af44f94270a080234",
"timestamp": "2018-10-02T07:52:36.000",
"receiver": "eosbetdice11",
"sender": "ge2aoegthege",
"code": "eosio.token",
"quantity": "0.1000",
"memo": "46-xxxxxxoxxxxx-",
"symbol": "EOS",
"status": "executed"
},
{
"trx_id": "f246a978a3513bb530cb95995d69e92b45cfa9493f6e2e9a4fc46b9786af790b",
"timestamp": "2018-10-02T07:52:35.000",
"receiver": "eosbetdice11",
"sender": "madezonecom1",
"code": "eosio.token",
"quantity": "1.0000",
"memo": "90-trademugcom1-",
"symbol": "EOS",
"status": "executed"
},
{
"trx_id": "fb76d58802fdb7deb46e09f71bf18a0cfa3c2769986afdd87cb73f1f3c266555",
"timestamp": "2018-10-02T07:52:34.500",
"receiver": "eosbetdice11",
"sender": "gu3tamazguge",
"code": "eosio.token",
"quantity": "0.1900",
"memo": "46-xxxxxxoxxxxx-",
"symbol": "EOS",
"status": "executed"
},
{
"trx_id": "bfc1284b01fac83ec0d6de9ccd9eeed22593b5ac7bed5ff0bf740eaff50c8471",
"timestamp": "2018-10-02T07:52:34.000",
"receiver": "eosbetdice11",
"sender": "theeosledger",
"code": "eosio.token",
"quantity": "1.6000",
"memo": "61-eosblockfare-",
"symbol": "EOS",
"status": "executed"
},
{
"trx_id": "d34d98ac13dd5cc5b0226d6f64a761e6615efc4a28a742860034bf2ebb1aba8c",
"timestamp": "2018-10-02T07:52:34.000",
"receiver": "eosbetdice11",
"sender": "skylose2sky2",
"code": "eosio.token",
"quantity": "0.1000",
"memo": "50-wlfowlfowlfo-",
"symbol": "EOS",
"status": "executed"
}]
}
}
从返回结果中,我们也可以看到除了返回了前五条交易的交易id、交易时间戳、交易的发送和接收方、合约的使用、交易金额、代币的类型、备注信息之外,在data的外层还包含有该合约账户共有8871964条交易记录,真可谓EOS圈热门应用。
对EOSPark的API感兴趣的同学可以逐一尝试一下其他接口。当然从EOSPark的API文档中我们可以发现,其只提供了get的相关接口,而push等其他相关接口还未展示开放,相信在未来EOSPark会集成更多接口同时提供更多有用、简洁、便捷的工具供开发者使用。