inertia Ⓐ³ avatar

Meeseeker Update - 0.0.3pre1

inertia

Published: 01 Feb 2019 › Updated: 01 Feb 2019Meeseeker Update - 0.0.3pre1

Meeseeker Update - 0.0.3pre1

After the initial release of meeseeker, I came up with a few more improvements. At first, these changes were pretty small and only warranted small updates and, as such, I felt like all I had to do was update the original post. But now, there's a bit more to go over. I'll just enumerate all of the changes since the first announcement ...


At the initial release, SUBSCRIBE wasn't available, so once I added it, I edited the original post. In a nut-shell, you can subscribe to channels so your app is notified when any of these are added: block/transaction/op.

Full description: https://github.com/inertia186/meeseeker#using-subscribe

For this release, I added a bit more detail:

Normally, block headers are added to the steem:block channel. This requires one additional API call for each block. If you don't need block headers, you can configure the steem:block channel to only publish with the block_num:

MEESEEKER_INCLUDE_BLOCK_HEADER=false meeseeker sync

This means that when a the steem:block channel executes the message callback, instead of just this:

{"block_num":29861068}

... you get all this:

{
   "block_num":29861068,
   "previous":"01c7a4cb4424b4dc0cb0cc72fd36b1644f8aeba5",
   "timestamp":"2019-01-28T20:55:03",
   "witness":"ausbitbank",
   "transaction_merkle_root":"a318bb82625bd78af8d8b506ccd4f53116372c8e",
   "extensions":[]
}

As I said, the reason this is optional is because it represents one extra API call per block.

I also added a way to subscribe to custom_json.id as channels.

In addition to general op channels, there's an additional channel for custom_json.id. This option must be enabled:

MEESEEKER_PUBLISH_OP_CUSTOM_ID=true meeseeker sync

So this is cool becuse if you're interested in streaming just a particular sub-set of custom_json, this will notify you when a particular id shows up.

For example, subscribe steem:op:custom_json:sm_team_reveal will only trigger on that particular Steem Monster op.


I also added an option to allow for non-expiring keys:

If you never want the keys to expire (not recommended), set
MEESEEKER_EXPIRE_KEYS to -1:

MEESEEKER_EXPIRE_KEYS=-1 meeseeker sync

It might be useful if you don't care how big your redis storage is. Not sure how useful this might be. Would require benchmarks.


I also did a bit of a refactor on the Meeseeker::BlockFollowerJob#perform method to break it up a bit. This shouldn't affect performance. It's just for clarity.


Anyhow, I made this a pre-release (0.0.3pre1). If you want to try it out, just update your gem with:

gem update meeseeker --pre

Leave Meeseeker Update - 0.0.3pre1 to:

Written by

I can see the fnords.

Read more #utopian-io posts


Best Posts From inertia Ⓐ³

We have not curated any of inertia's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From inertia Ⓐ³