财大气粗的steemit全节点

지난달
in cn

之前熊熊@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的钱包了。

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

哈,还没做到这块来!

·

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

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

Du erhieltest aufgrund deiner LanaCharleenToken Miner ein Upvote von @sebescen81 alt-Text
Vielen lieben Dank für euren Support. Der Account meiner Tochter wächst und gedeiht.

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

帅哥/美女!欢迎在steemauto里设置跟赞 @cnbuddy 给整个cn区点赞假如我的留言打扰到你,请回复“取消”。

Hi @ericet!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.693 which ranks you at #1669 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 95 contributions, your post is ranked at #12.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers appreciate your great work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server