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
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:
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:updateUrlThe 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: