EOSPark—重剑无锋,大巧不工

2021-11-23 10:38:08 浏览数 (1)

假期不再做源码赏析系列的更新,好好休息。但是昨天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会集成更多接口同时提供更多有用、简洁、便捷的工具供开发者使用。

0 人点赞