Steem Engine Tender: A Sidechain Explorer - 0.0.3 - Precision Hardfork Update

avatar

The main feature in this release is the ability to interpret the new contract actions:

  • tokens.cancelUnstakes
  • tokens.checkPendingUnstakes
  • tokens.delegate
  • tokens.enableDelegation
  • tokens.transferToContract
  • tokens.undelegate
  • tokens.updatePrecision

Most of these are under the hood or haven't actually appeared on the sidechain yet. The main functionality now seen involves precision interpretation and when doing account/symbol search.

Other features/fixes added:

  • Bug fixes, gem updates
  • Various new minor resource views
  • Additional transaction interpretation details
  • Layout tweaks/improvements (e.g.: tabs for various token sub-types)
  • Using the latest Radiator version to deal with infrequent HTTP Persistence errors.
  • Added a richlist resources (e.g.: PAL, ENG)
  • Added a contracts resource with the ability to perform code diffs (e.g.: c3f244d vs. 8578e8b)

Find Typo Accounts

I also added a rake task that lets you locate account name typos. These are accounts that have received funds, where the actual account doesn't exist on the main blockchain. From the project source, run:

$ bundle exec rake tender:find_typo_accounts

This assumes you're running your own private node (or local docker tender instance) on port 5000. Which creates a report, e.g.:

All accounts: 19134
Valid accounts: 19096
....................
Typo accounts: 18
{
  "edprivate": {
    "MULA": "0.25"
  },
  "xyz1111": {
    "SCT": "0.001"
  },
  "stplinterlands": {
    "DEC": "102"
  },
  "chicago.cub": {
    "DEC": "847"
  },
  "fysrtikken": {
    "GMBLR": "100"
  },
  "frza": {
    "SHIT": "1"
  },
  "noaccnt234": {
    "GMBLR": "102"
  },
  "incizzleee": {
    "GMBLR": "1"
  },
  "stuffbyspence": {
    "CHICK": "0.1"
  },
  "garamee": {
    "AAA": "20.000",
    "JJM": "20"
  },
  "gerald.know": {
    "STEEMP": "7.44"
  },
  "dfjkadsljflakd": {
    "AAA": "1.000",
    "JJM": "1"
  },
  "aneilpatelwecghl": {
    "GMBLR": "10"
  },
  "aneilpatelxdf": {
    "GMBLR": "10"
  },
  "svr.refund": {
    "SVC": "1"
  },
  "lightplasher": {
    "PNC": "3"
  },
  "bluenge": {
    "SCT": "1"
  },
  "kingbit999": {
    "SCT": "0.01"
  }
}

As always, you can launch your own tender instance with docker (recommend: run your own local steemd to improve performance):

$ docker run -it --name tender -p 5000:5000 -p 3000:3000 inertia/tender:latest



All changes in v0.0.3 tag: https://github.com/inertia186/tender/commits/v0.0.3 (compare)



0
0
0.000
18 comments
avatar

Love the new richlist update, it's got that slick look and feel to it! It's nice to get a look under the hood of how this all kind of works. I'm not super technical but I can still pull out some key words from there and have some sort of idea as to what you're up to and what's in the pipeline. Keep up the good work. You guys are all crushing it :)

0
0
0.000
avatar

I guess nobody could get the gmblr accounts right haha...

0
0
0.000
avatar

is there a block explorer for steem-engine that can give us better insights on the number of transactions, volume, etc?

0
0
0.000
avatar

For transaction numbers, we can actually just use the main blockchain and query SteemSQL. This shows the number of attempted transactions. Even ones that fail are processed by the sidechain. Using SteemAPI rake commands, I get:

bucky:steem_api (master *)$ rake created:custom_json[ssc-mainnet1]
# Daily custom_json count by ssc-mainnet1 since 2019-05-22 16:43:59 UTC ...
{
    [ Wed, 22 May 2019, "ssc-mainnet1" ] => 1675,
    [ Thu, 23 May 2019, "ssc-mainnet1" ] => 5921,
    [ Fri, 24 May 2019, "ssc-mainnet1" ] => 6354,
    [ Sat, 25 May 2019, "ssc-mainnet1" ] => 5349,
    [ Sun, 26 May 2019, "ssc-mainnet1" ] => 5880,
    [ Mon, 27 May 2019, "ssc-mainnet1" ] => 6852,
    [ Tue, 28 May 2019, "ssc-mainnet1" ] => 6341,
    [ Wed, 29 May 2019, "ssc-mainnet1" ] => 5482,
    [ Thu, 30 May 2019, "ssc-mainnet1" ] => 5573,
    [ Fri, 31 May 2019, "ssc-mainnet1" ] => 5817,
    [ Sat, 01 Jun 2019, "ssc-mainnet1" ] => 6136,
    [ Sun, 02 Jun 2019, "ssc-mainnet1" ] => 5765,
    [ Mon, 03 Jun 2019, "ssc-mainnet1" ] => 6257,
    [ Tue, 04 Jun 2019, "ssc-mainnet1" ] => 6755,
    [ Wed, 05 Jun 2019, "ssc-mainnet1" ] => 6419,
    [ Thu, 06 Jun 2019, "ssc-mainnet1" ] => 6047,
    [ Fri, 07 Jun 2019, "ssc-mainnet1" ] => 8176,
    [ Sat, 08 Jun 2019, "ssc-mainnet1" ] => 8498,
    [ Sun, 09 Jun 2019, "ssc-mainnet1" ] => 8334,
    [ Mon, 10 Jun 2019, "ssc-mainnet1" ] => 7705,
    [ Tue, 11 Jun 2019, "ssc-mainnet1" ] => 8265,
    [ Wed, 12 Jun 2019, "ssc-mainnet1" ] => 9135,
    [ Thu, 13 Jun 2019, "ssc-mainnet1" ] => 9383,
    [ Fri, 14 Jun 2019, "ssc-mainnet1" ] => 7848,
    [ Sat, 15 Jun 2019, "ssc-mainnet1" ] => 8165,
    [ Sun, 16 Jun 2019, "ssc-mainnet1" ] => 9022,
    [ Mon, 17 Jun 2019, "ssc-mainnet1" ] => 10889,
    [ Tue, 18 Jun 2019, "ssc-mainnet1" ] => 9242,
    [ Wed, 19 Jun 2019, "ssc-mainnet1" ] => 9833,
    [ Thu, 20 Jun 2019, "ssc-mainnet1" ] => 10944,
    [ Fri, 21 Jun 2019, "ssc-mainnet1" ] => 7991
}
# Total custom_json_operation: 226053

For volume, that's difficult because there's a lot of people who do wash trading on their own token, which artificially inflates the volume. Currently, I like to gauge the amount of STEEMP locked in the order books. That represents the amount of STEEMP people are willing to buy other tokens with, such that they've put in trades and left them in the order book, even if the asks are unrealistic. These expire after 30 days.

An uninteresting example would be:

Sells: 1; Tokens locked: 99900000.0 PIZZA
No open buys for PIZZA

Because someone created a token and loaded it full of sell orders, locking their own token but nobody wants to buy it.

On the other hand, the most interesting order book sums are currently:

Sells: 51; Tokens locked: 11640.25797995 ENG
Buys: 76; Tokens locked: 22332.30238858 STEEMP

Sells: 146; Tokens locked: 12624581.322 PAL
Buys: 135; Tokens locked: 4999.24728544 STEEMP

No open sells for STEEMSC
Buys: 4; Tokens locked: 75748.818 STEEMP

Sells: 115; Tokens locked: 2132998.504 DEC
Buys: 42; Tokens locked: 3299.29249361 STEEMP

Sells: 8; Tokens locked: 51505.2083 JJM
Buys: 11; Tokens locked: 4840.06536328 STEEMP

Sells: 9; Tokens locked: 5585.464 EOSP
Buys: 6; Tokens locked: 3768.97381875 STEEMP

Sells: 45; Tokens locked: 2691.25 SCT
Buys: 31; Tokens locked: 8256.40083 STEEMP

Sells: 47; Tokens locked: 1182549.8593 AAA
Buys: 22; Tokens locked: 3528.40915576 STEEMP

In total, all STEEMP locked in all order books, including those I did not list above:

Total locked: 138508.64645321004 STEEMP
0
0
0.000
avatar

Hi, @inertia!

You just got a 0.88% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

0
0
0.000
avatar

Great updates.

Typo transfers are interesting. Does the sidechain still transfer the tokens even though the account doesn't exist in the main chain? Or is it just the faulty transactions not picked up by the sidechain?

There is not much to say on Utopian compatibility side. This is a great example of the development category.


Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

0
0
0.000
avatar

The contracts allow actions like transfers and delegations to accounts that the main chain doesn't know about. For the most part, there's nothing the contracts should do about this because, as I understand it, it's inappropriate for contracts to do API lookups.

And yep, those transferred funds are basically lost unless someone manages to create the matching account later on. But if the account name is a bad format, then the main chain won't allow you to create the account. I don't even show the bad-format account names in this rake report.

So I believe contracts could be enhanced to ensure account name formats follow the exact same requirements that the main chain does. Then at least creating the account would always recover the funds.

0
0
0.000
avatar

If one of these accounts has enough high value tokens, it might be worth creating it and taking it. Just saying. You made it really easy :).

0
0
0.000
avatar

So its after the update possible to delegate Tokens from Steem Engine? This would be really nice :)

0
0
0.000