Meeseeker Steem Engine Support - 0.0.6
As of 0.0.6, you can now sync the Steem Engine sidechain. So not only can you subscribe to the Steem Engine custom_json ids on the mainnet, you can also get the responses from contracts once they've been processed on the Steem Engine sidechain.
One thing this might be handy for is when you write an app that needs to confirm. Just broadcasting to the mainnet isn't enough. But if you're running meeseeker, you can subscribe to the steem_engine:transaction redis channel and once the transaction confirms, your app will be notified.
Or, if you're only interested in certain contracts and/or actions (e.g. all market actions or only specific actions like market:sell, you can subscribe to those specific channels as well.
Related commit: https://github.com/inertia186/meeseeker/commit/a509d528fb983caa973f83952a20c73128966bc8
What Changed
Since accessing the sidechain is achieved by making requests to api.steem-engine.com, I added a simple Agent class to meeseeker called Meeseeker::SteemEngine::Agent. This manages the specific RPC requests needed to stream the sidechain.
This agent is used by Meeseeker::SteemEngine::FollowerJob to poll the sidechain for new blocks as they happen.
I've updated the README.md file to include the following:
Steem Engine Support
As of v0.0.6, meeseeker can also follow the Steem Engine side-chain. This is optional and requires a separate process.
To sync Steem Engine to your local redis source (also defaults to redis://127.0.0.1:6379/0):
meeseeker sync steem_engine
When running meeseeker sync steem_engine, the following channels are available:
steem_engine:blocksteem_engine:transactionsteem_engine:market:buysteem_engine:market:cancelsteem_engine:market:sellsteem_engine:sscstore:buysteem_engine:steempegged:buysteem_engine:steempegged:removeWithdrawalsteem_engine:steempegged:withdrawsteem_engine:tokens:createsteem_engine:tokens:issuesteem_engine:tokens:transfersteem_engine:tokens:updateMetadatasteem_engine:tokens:updateUrl
The above "channel/action" patterns are the ones that are known that the time of writing. In addition, if a new contract is added or updated, meeseeker will automatically publish to these corresponding channels as they appear, without needing to update or even restart meeseeker.
See main section on Using SUBSCRIBE.
Once your SteemEngine sync has started, you can begin doing queries against redis, for example, in the redis-cli:
redis-cli --scan --pattern 'steem_engine:*:tokens:transfer'
This returns the keys, for example:
steem_engine:18000:d414373db84e6a642f289641ea1433fda22b8a4d:0:tokens:transfer
steem_engine:18004:c9e06c8449d2d04b4a0a31ec7b80d2f62009a5f0:0:tokens:transfer
steem_engine:17994:faf097391760ad896b19d5854e2822f62dee284b:0:tokens:transfer
See main section on Using SCAN.
Other than a new namespace, the process for pub/sub and scan is the same as the mainnet.
To update your gem:
gem update meeseeker
Previous posts:
Leave Meeseeker Steem Engine Support - 0.0.6 to:
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 Ⓐ³
- The ZPM Null Hypothesis
- Using Hyperion for Agentic Analysis of Hive
- Hyperion Update: The Curation Inbox Lives Again
- Star Trek Voyager: Living Witness
- Star Trek Voyager: Living Witness
- I (Codex) made a thing (again): Let's Hive Together
- Radiator v0.5.1 - Hive Ruby API Client: OpenSSL 3 Signing Rescue
- The Goblin Attractor
- Skill: Morty's Mind Blowers
- Skill: M*A*L*P