财大气粗的steemit全节点

in #cn5 years ago

之前熊熊@mylord1992说steemcn的钱包页面载入不了,试了一下的确是有这个问题。

尝试在本地运行网站,没有这个问题。想了一下,可能是节点的问题,因为steemcn.org用的是anyx.io而我在本地运行的则是api.steemit.com. 就记录了一下这个问题,想着有时间解决一下。

昨天有时间就仔细看了一下,发现steemit的全节点真是财大气粗啊!

只用一个api就可以获取所有数据(比如订阅,热门,新帖,钱包,作者帖子等等)

const raw = await api.getStateAsync(path);

有用的,没用的数据都读取进来,反正每个月的管理费砸点STEEM就有了~

steemit有钱大家都知道,但是其他节点可没有steemit那么有钱,所以哪些api比较费钱或者重复,他们就会选择不支持。

其中transfers API他们就选择不支持。钱包页面需要transfers API来获得钱包数据,由于anyx.io或者minnowsupportproject 节点都不支持这个API,导致steemcn的钱包页面载入不了。

支持不了transfers api也不是世界末日,看看transfers API返回什么数据,用其他的API读取相关的数据就好了。

image.png

上图里面,主要需要的是accounts。accounts保存关于钱包的记录(比如steem/SBD数量,sp数量,转账记录等)

既然不让用transfers API,可以改用getAccountsAsync。这个API会返回steem/SBD数量,sp数量等信息。但是又缺少了转账记录。要获得转账记录,可以使用getAccountHistoryAsync来获得。但是getAccountHistoryAsync会返回所有的账号历史,比如点赞记录,审查收益记录,文章收益记录,转账记录等等,而我们只需转账记录,所以还要把除了转账记录以外的数据过滤掉。

按照上面的方法,就可以取代transfers api了。

修改后的steemcn。除了账号估值没去修复(修复了也没啥用,那个价值也不准),其他都正常显示了

image.png

虽然麻烦了点,但是经过折腾,倒是对代码有了更多的了解。下面就要去加上Steem-engine的钱包了。

Sort:  

哈,还没做到这块来!

做到这块的时候可以做好准备

Posted using Partiko iOS

刚试了下getAccountHistory这个函数,有点问题啊。
它设定点后是从后往前查的,用循环没法终止呢!没有终止条件,这个怎么破?

其实会终止,只是数据有点多。这个api会获得所有点赞,转账,收益,custom json等等记录,所以数据有点多。做法可以像feed那样,先返回1-50记录,如果用户要求,再读取50-100,再100-150。。。

Posted using Partiko iOS

如果帐户只有10条数据,那么这样查的话:getAccountHistory('XX', 21, 10 ..)是能查到所有数据的,它会自动获取最后一位开始查,不会报错!如果还要继续查,也是从最后一位开始查,获得重复的数据。

查最近的10条不应该是getAccountHistory(‘xx’,-1,10)吗?

Posted using Partiko iOS

是啊,但你这样,怎么循环查出全部的呢?
我想得到全部的帐户历史

我今天有空试试看

Posted using Partiko iOS

!thumbup
恭喜你!您的这篇文章入选 @justyy 今日 (2019-11-10) 榜单 【优秀的文章】, 回复本条评论24小时内领赏,点赞本评论将支持 @dailychina 并增加将来您的奖赏。
@justyy 是CN区的见证人,请支持他,给他投票,或者设置justyy为见证人代理。感谢!@justyy的主要贡献:https://steemyy.com

Congratulations! This post has been selected by @justyy as today's (2019-11-10) 【Good Posts】, Steem On! Reply to this message in 24 hours to get rewards. Upvote this comment to support the @dailychina and increase your future rewards! ^_^

SteemIt 工具、API接口、机器人和教程
SteemIt Tools, Bots, APIs and Tutorial



If you believe what I am doing, please consider a spare vote voting me here, thank you very much indeed.

@justyy - the author of https://SteemYY.com and I have been a Steem Witness for more than a year now.

加油!@ericet
鸽子在mediaofficials支持你。

加油!@ericet
来自鸽子在Marlians的支持。

Thank you for supporting @CatsMakeKittens by being a part of our community @ericet.

Each CATS you purchase gets you daily upvotes from me @CatScientist as our community grows so do your rewards for being a member!

JCAR 11월 구독보팅입니다. 11월 둘째 주말 즐거운 시간 되세요.

感谢代理500.63SP 给team-cn! 由于你使用CN作为你的首标签,额外获得2%点赞! 你的帖子获得team-cn 22% 点赞!(如果不想看到这个回复,请回复“取消”)

You have used the Hashtag #[CC] and can now reward 19.0 comments under your post with one CC.

More information about the Commentcoin-Project can be found on this account.
Thanks for using it.

Happy comments.
Your CC-Team:
@kristall97 ([Code-Designer])
@alucian ([Project-Designer])

Support your post (by ACTNEARN Token)
Thank you for sharing, Nice post

Coin Marketplace

STEEM 0.16
TRX 0.12
JST 0.026
BTC 56965.36
ETH 2498.49
USDT 1.00
SBD 2.34