Tag: 数据库

解决单点故障: STEEM区块链ChatGPT机器人的多个读进程

我在STEEM区块链上部署了ChatGPT机器人:系统设计: Steem区块链ChatGPT机器人,这个系统设计同时还跑了其它类型的机器人,原理就有一个读进程监听链上的操作,发现是相关的操作就把数据写到数据库中,然后由相关机器人的进程(比如ChatGPT)把数据再取出来,进行处理,然后再相应的写到数据库中的另一个表中。这里的数据库就类似中消息中间件 Message Queue,用来解耦不同的组件。 单点故障 Single Point of Failure,指得是系统中的一些零件如果损坏不能用了,整个系统也就变得不能用了。这里的读取进程就是单点故障,因为如果该进程崩溃了,再重新启用的时候也无法回溯过去区块链上的信息,这个进程实时监听链上的操作,如果错过了就是错过了。而这个系统设计其它的零件则没有这个问题,毕竟是处理数据库中的数据,进程崩溃会被自动重启,然后继续处理数据库中未被处理完的数据。 解决这个问题也不难,只要在不同的服务器上多跑几个读进程即可。不过这里需要保证数据库表里有唯一的限制,这样多台服务器在同时往同一数据库表格写数据的话只会有一条成功,而其它则会失败。 下面SQL给表格加个唯一的限制: alter table blockchain add unique key (block, ...); 英文:Avoid Single Point of Failures by Introducing Multiple Master Backup …

SteemIt Discord 机器人更新: 查询过去7天的收益

动机 有一些时候, 我们想了解到我们在STEEM平台上一周得到的奖励. 特别是对于一些全职在STEEM上的贡献者来说, 他们想了解到是否能通过STEEM来得到足够养家的收入. 现在, DISCORD的机器人 steemit 还有微信公众号 justyyuk 都将支持查询: 过去7天收益. SteemIt 机器人 把 steemit 添加到你的 discord 频道上: https://discordapp.com/oauth2/authorize?client_id=418196534660694037&permissions=522304&scope=bot 怎么样查询 只需要和以前一样 输入 ?steemit_account 即可查询 SBD – 流动性很强 SP …

怎么样查看 STEEMSQL 是否数据同步完全?

尽管它已经转换为按月订阅模式, SteemSQL是由@arcange开发和维护的一个很好的服务(MSSQL). 其实对于这些中心化的数据库来说, 最重要的就是它要能够及时的从区块链上同步数据. 如果数据不全, 那么其实是没有多大用处的. STEEMSQL每隔8分钟就会从区块链上同步数据. 之前有过几回, STEEMSQL数据并不及时的同步, 如果你的程序很需要很及时的数据, 则STEEMSQL并不是很好的选择. 相反, 如果你只是想运行几个语句去查询以往的数据, 则STEEMSQL是个很好的方案, 毕竟从中心化关系型数据库取数据要比去区块链上取数据快得多. 我做了一个API, 用于返回 STEEMSQL 的块同步状态. 在哪里可以看到STEEM区块链最新的块高度? 最简单的方法就是到 steemdb.com 在首页上就能看到: 获取 STEEMSQL 最新块号和时间 API Endpoint: /api/steemit/blocknumber/steemsql/ …

SteemSQL 教程 – 一鸣惊人的作者

@nationalpark 兄在 他的帖子里 列出了史上一鸣惊人的作者, 也就是只发表一篇文章但收入却好多金. 通过 SteemSQL 的 Comments 表格, 我们可以通过下面的条件把评论给去除掉: depth = 0 然后只需要 用 group author 来对作者进行归类, 通过 having count(1) = 1 对作者的文章数进行限制. 如果是归类的字段, 我们需要用 having 而不是 …

SteemSQL 教程 – 如何获取史上赚最多金的作者?

@nationalpark 兄在过去几天发了好几篇 关于史上最多金的分析. 这篇我将介绍这是如何实现的, 这样的话, 你也可以自己分析这些数据了. 我们都知道在 Comments 表里存放的帖子数据, 这就包括了收益. 我们只需要按 作者来分类 (group by author) 然后累计 total_payout_value (过去已经结算的帖子) 和 total_pending_payout(7天内的帖子) 即可. select top 100 author, sum(total_payout_value) + sum(total_pending_payout_value) from …